自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凌云之陟

饥饿、谦逊、沉淀、自省

  • 博客(173)
  • 资源 (5)
  • 收藏
  • 关注

原创 在线阅读-阿里Java开发手册最强版本【泰山版】

前言《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理 成册,当前的版本是泰山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅 是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设 计缺陷可能带来软件上的架构缺陷或...

2020-04-23 15:54:26 5088

原创 都说找工作难, 你真的好好准备了吗?

结尾没有面试宝典。。。。没有公众号推荐, 只是想吐槽下。坐标蚂蚁金服, 最近组内想招聘几个三年内工作经验的外包同学, 面试了几天面的有些不理解, 都说现在是寒冬, 工作不好找, 不过《Java面试宝典》都不看的话, 敢找后端开发职位是咋想的呢? 默认引擎是啥都不知道,简历上就敢写熟悉mysql? 不要求别的, 八股文背一背不过分吧? 只是想说, 面试机会也不容易, 好好准备下额。。。 还好今晚有个小伙伴准备了八股文, 可以送去二面了。。。...

2021-12-22 20:23:59 1208 1

原创 35岁挑战者联盟!35岁后, 程序员的路在哪里?

好多人说35岁中年危机是贩卖焦虑。 呵呵, 如果你是35附近的人你就知道这句话有多正确了。 当然,你要是特别牛逼的同学,那就算了,确实有这样的人,年轻轻靠打工就可以财富自由的。楼主33岁, 阿里底层垃圾P6, 年薪+年终奖+股票 收入还算不错, 至少在程序员这个群体里属于偏上的吧, 但是现在已经感觉要干不过新来的年轻人了, 不是硕士就是博士,再不就是海龟, 技术上人家干一年,能熟练干活了,你基本就没啥技术优势了。 加班加不过、创新也搞不过人家,学术功底都没人家深厚,这特么还咋玩下去, 不由得开始给自己找出

2021-04-02 11:18:51 293 1

原创 Spring异常重试框架Spring Retry

依赖: <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version>1.3.0</version></dependency>1,代码例子@EnableRetry@SpringBootApplicationpub

2020-12-30 14:28:22 225

原创 如何优化代码中的if...else

概述如果你要去查多层IF…ELSE有什么危害, 估计会有很多, 什么不容易扩展、可读性差。 其实所有代码优化的核心目的都是一个: 不让人看见是自己写的代码看起来很LOW。。 想象一下公司新来了一个毕业生, 要研读一下系统代码, 忽然看见有十个if else… 一打开代码记录,发现是对面的你写的, 一定心里想, 这个师兄技术一定不咋地。 所以 今天简单总结下如何优化代码中看起来很low的if…else…第一式:能返回及时返回if(条件1) { return;} else { //逻辑B

2020-06-18 14:46:01 328

原创 机器学习必知框架

机器学习工程师是开发产品和构建算法团队中的一部分,并确保其可靠、快速和成规模地工作。他们和数据科学家密切合作来了解理论知识和行业应用。数据专家和机器学习工程师的主要区别是:机器学习工程师构建、开发和维护机器学习系统的产品。数据专家进行调查研究形成有关于机器学习项目的想法,然后分析来理解机器学习系统的度量影响。下面是机器学习的框架介绍:1.Apache Singa 是一个用于在大型数据集上训...

2019-10-10 10:31:26 179

原创 Git修改已经push的message

今天写完代码,提交到本地仓库后,发现push远程失败,原来是远程的push message有规则校验,于是在此记录一下修改已经push的message的方法。涉及的命令有四个:$ git log$ git rebase -i HEAD~N$ git commit --amend$ git rebase --continue1,git log 查看分支的message信息。git l...

2019-04-03 10:34:58 2201 1

原创 kafka学习整理

1,安装部署: 见上一篇2,可视化工具使用:https://www.cnblogs.com/frankdeng/p/9452982.html3,Kafka消息存储:https://www.cnblogs.com/cynchanpin/p/7339537.html4,高可用、高并发实现原理:https://blog.csdn.net/qq_38710236/article/details/81...

2019-03-27 21:34:45 198

原创 kafka安装和简单的使用

1. 安装kafka$ brew install kafka(1) 安装过程将依赖安装 zookeeper(2) 软件位置/usr/local/Cellar/zookeeper/usr/local/Cellar/kafka(3) 配置文件位置/usr/local/etc/kafka/zookeeper.properties/usr/local/etc/kafka/se...

2019-03-27 19:22:55 212

原创 Idea 生成thrift接口代码

继续上一篇文章讲到Mac可以安装本地的thrift环境来生成接口的java代码,写完之后我一想,这么简单的功能,难道idea没有插件支持么?还要我们来安装thrift环境、拷贝么? 然后一查,idea果然是支持的,在这里写一下简单的步骤。1,准备idea环境, 在plugins中搜索thrift。 会出现 thrift support插件, 安装插件并重启idea。2,新建maven 工程,...

2019-03-27 15:37:26 3749 1

原创 Thrift简介、环境搭建以及简单的Dome

入职美团了,用了N年的Windows换成mac. 有些不一样的技术也要学一下,美团这面用的RPC框架为Thrift, 以前用的RPC都是dubbo、springboot.这篇文章主要是介绍一下thrift、 搭建一下mac下的thrift环境, 以及一个最简单的thrift dome.thrift 简介thrift是Facebook开发的一种跨语言、可伸缩的PRC框架。 现在已经开源并...

2019-03-27 10:47:41 588

原创 两个线程交替打印奇数偶数的两种实现。

这是一个经典的java多线程面试题,今天分享一下实现交替打印的两种实现方式。第一种:public class ThreadTest { public static void main(String[] args) { PrintNum p=new PrintNum(); Thread t1=new Thread(p); Thread t2...

2019-03-13 18:27:44 5822

原创 对本地程序进行多线程并发压测的单元测试

在分布式系统开发的过程中, 我们写的方法要充分的考虑并发条件下会不会有问题,所以会有对方法进行多线程并发测试的要求,这里分享一个简单可行的多线程并发单元测试的模板。假设我们有一个方法generateOrderId()要进行单元测试, 方法本身就是生成订单号的方法。public static String generateOrderId(String prefix){ return "";...

2019-03-13 17:26:25 1487

原创 java规则引擎二【Aviator】

Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。现在已经有很多开源可用的java表达式求值引擎,为什么还需要Avaitor呢?Aviator的设计目标是轻量级和高性能 ,相比于Groovy、JRuby的笨重,Aviator非常小,加上依赖包也才450K,不算依赖包的话只有70K;当然,Aviator的语法是受限的,它不是一门完整的语言,...

2019-02-21 20:06:36 5339 1

转载 spring-boot 之Lombok的使用,通过注解来省略一些常用代码,set get 日志等

https://blog.csdn.net/qq_27886997/article/details/82798962

2019-02-20 16:06:56 245 1

原创 java规则引擎一:Drools

Drools是一个基于java的开源规则引擎, 规则引擎基本都只有一个逻辑就可以解释清楚: when…then… 当达到什么条件的时候,触发某一个动作。 Drools是java项目中常用的规则引擎之一。规则引擎的应用场景单一,但是用处很大。 例如在某个场景下 有100个方法都要修改数据库的数据,且修改后都要有一个动作,就是想某一个系统发送一条消息。 传统的解决方案中,需要100个...

2019-02-20 13:53:00 977

原创 insert …select …带来的死锁问题

mysql中 insert …select …带来的问题当使用insert…select…进行记录的插入时,如果select的表是innodb类型的,不论insert的表是什么类型的表,都会对select的表的纪录进行锁定。对于那些从oracle迁移过来的应用,需要特别的注意,因为oracle并不存在类似的问题,所以在oracle的应用中insert…select…操作非常的常见。例如:有时候...

2019-02-19 09:56:31 1029

原创 SpringMVC处理请求流程

SpringMVC核心处理流程:1、DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndV...

2018-12-26 14:19:10 393

原创 开发自定义Spring-Boot-Starter

Spring Boot由众多Starter组成,随着版本的推移Starter家族成员也与日俱增。在传统Maven项目中通常将一些层、组件拆分为模块来管理,以便相互依赖复用,在Spring Boot项目中我们则可以创建自定义Spring Boot Starter来达成该目的。一:先创建一个Maven项目并引入依赖pom.xml文件:&lt;?xml version="1.0" encoding...

2018-10-15 10:51:55 408

原创 ActiveMQ的几种消息持久化机制

为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB四种方式,无论使用哪种持久化方式,消息的存储逻辑都是一致的。就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继...

2018-10-15 09:41:45 252

原创 【AMQ】三:发布订阅模式Dome

如上文所说,AMQ包含两种通讯方式,点对点模式和发布订阅模式,两种模式的主要区别是发布订阅模式的消息可以重复的消费,而点对点模式的消息在消费一次之后就会从消息队列中移除,更直白的说,当你的一个同样的MQ需要多个下游系统消费的时候, 如果选择点对点模式的话,那么你只能给每一个系统都建立一个队列,然后队列里放入相同的MQ, 当你选用发布订阅模式的时候,你只需要发布一个主题的MQ即可。生产者:pa...

2018-10-12 12:08:48 505

原创 【AMQ】 二:点对点模式Dome

AMQ通讯分为两种,一种是点对点模式,另一种是发布订阅模式,本文主要介绍点对点模式和简单实现。什么是点对点模式?点对点模式是AMQ的一种通过队列方式通讯的模式, 即生产者会把生产的消息放在某个队列中,消费者从队列中取得消息进行通讯的方式。基本实现:生产者:package www.amp.com;import javax.jms.Connection;import javax.jms...

2018-10-11 15:41:20 632

原创 【AMQ】 一:AMQ在liunx下的环境搭建

一:下载AMQ:http://activemq.apache.org/activemq-5156-release.html二:拷贝并解压到任意目录下。tar -zxvf apache-activemq-5.15.6-bin.tar.gz三:启动cd apache-activemq-5.15.6/bin./activemq start备注:AMQ启动依赖java环境,必须先安装j...

2018-10-11 14:46:44 684

原创 精品小众网站

一、找资源利器 PS:请复制转走,知乎禁了不要怪我,不谢 去转盘网:http://www.quzhuanpan.com/ 西林街:http://www.xilinjie.com/ EV搜索:http://www.evsou.com/ 找文件:http://www.zhaofile.com/ 胖次:http://www.panc.cc/ 呆木瓜:http://www.daimugua...

2018-08-21 17:17:52 116635

转载 tcpcopy简单用法

http://www.cnblogs.com/phennry/p/6382755.html?utm_source=itdadao&amp;utm_medium=referral

2018-08-21 10:50:02 393

原创 使用WordPress搭建自己的博客

1. 安装apache2.0sudo apt-get install apache2在浏览器中打开http://localhost/ 或者http://127.0.0.1 如果出现It works!那证明OK了 重启apache:sudo /etc/init.d/apache2 restart2. 安装PHP依次在终端打开:sudo apt-g...

2018-08-15 20:47:59 252

原创 java对象的强引用,软引用,弱引用和虚引用

众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留...

2018-08-13 17:42:12 178

原创 Maven生成可直接执行Jar包

Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现”no main manifest attribute, in xxx.jar”(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。要想jar包能直接通过java -jar xxx.jar运行,需要满足:1、在ja...

2018-08-01 17:48:39 247

原创 使用Excelsior JET编译java程序为.exe程序

1,下载Excelsior JET:https://www.excelsiorjet.com/evaluate, 下载32位的最好,64位的编译的程序不能再32位电脑上运行。2,安装很简单,一直下一步就行。大概长这个样子。 3,打包自己的java程序为可执行的jar文件。4,点击Plain Java SE application 5,工作空间随便选一个目录就可以,用来存放最后...

2018-07-31 18:41:09 5103 26

原创 Integer之间比较大小

class Test { public static void main(String[] args) { Integer i1 = new Integer(5); Integer i2 = new Integer(5); System.out.println(i1 == i2); //false (情况,即new的id,而不是=的i...

2018-07-26 14:09:02 6596

原创 TDDL 在分布式下的SEQUENCE原理

在数据库中创建 sequence 表,用于记录,当前已被占用的id最大值。每台客户端主机取一个id区间(比如 1000~2000)缓存在本地,并更新 sequence 表中的id最大值记录。客户端主机之间取不同的id区间,用完再取,使用乐观锁机制控制并发。TDDL大家应该很熟悉了,淘宝分布式数据层。很好的为我们实现了分库分表、Master/Salve、动态数据源配置等功能。那么分布...

2018-07-25 10:06:23 1592

原创 生成全局唯一ID

数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。 单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求: 1 不能有单点故障。 2 以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。 3 可以控制ShardingId。比如某一个用户的文章要放在同一个分片内,这样查询效率高,修改也容易。 4 不要太长,最好...

2018-07-25 09:59:45 186

转载 Elastic入门

https://blog.csdn.net/laoyang360/article/details/52244917

2018-07-24 19:47:56 152

原创 MySQL 性能优化神器 Explain 使用分析

简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如:EXPLAIN SELECT * from user_info WHERE id &lt; 300;准备 为了接下来方便演示 ...

2018-07-24 19:45:40 162

转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

https://blog.csdn.net/hao_hl1314/article/details/74529226

2018-07-24 18:00:28 164

转载 spring中用到的设计模式

https://www.cnblogs.com/hwaggLee/p/4510687.html

2018-07-24 11:27:10 377

原创 JDK中使用的设计模式

这也是篇老文了,相信很多人也看过。前面那些废话就不翻译了,直接切入正题吧~结构型模式:适配器模式: 用来把一个接口转化成另一个接口。 java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter...

2018-07-24 11:20:56 2008

原创 ReenTrantLock可重入锁(和synchronized的区别)总结

ReenTrantLock可重入锁(和synchronized的区别)总结可重入性: 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。锁的实现: Synchronized是依赖于JVM实现的,而R...

2018-07-24 11:00:27 213

原创 Java BitSet

BitSet的原理Java BitSet可以按位存储,计算机中一个字节(byte)占8位(bit);而BitSet是位操作的对象,值只有0或1(即true 和 false),内部维护一个long数组,初始化只有一个long segement,所以BitSet最小的size是64;随着存储的元素越来越多,BitSet内部会自动扩充,一次扩充64位,最终内部是由N个long segement ...

2018-07-23 16:26:48 1212

转载 LinkedList、ConcurrentLinkedQueue、LinkedBlockingQueue对比分析

在某家公司,有个服务会收集业务系统的日志,此服务的开发人员在给业务系统的sdk中就因为使用了LinkedList,又没有做并发控制,就造成了此服务经常不能正常收集到业务系统的日志(丢日志以及日志上报的线程停止运行)。看一下add()方法的源码,我们就可以知道原因了:public boolean add(E e) { linkLast(e);//调用linkLast,在队列尾部添加元素...

2018-07-23 14:51:28 1194

mysql-client-5.5.8-1.rhel5.x86_64.rpm等三个安装包

包含mysql三个rpm安装包:MySQL-client-5.5.55-1.rhel5.x86_64.rpm、MySQL-devel-5.5.16-1.rhel5.x86_64.rpm、MySQL-server-community-5.1.73-1.rhel5.x86_64.rpm 下载三个花了九个币

2018-01-12

MyEclipse SVN插件

svn myeclipse 插件

2016-05-16

spring mvc开发包

springmvc环境搭建需要的所有jar包

2016-05-16

Redis可用安装包

鼓捣了一上午redis终于找齐了资源,供大家下载,花了我十几分,上面还有资源要5分的。。这个资源保证可用,放心下载

2016-03-28

Redis安装包开发包合集

看不惯下载个能用的redis还要5分的人,过来下载,能用可用的redis资源。保证能用。windows下的。

2016-03-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除