• 7 个 IntelliJ IDEA 必备插件,显著提升编码效率
    用插件下面的所有插件都使用上面外部引用方式集成相应的插件包即可1. FindBugs-IDEA作用:检测代码中可能的bug及不规范的位置,写完代码后检测下 避免低级bug。FindBugs支持对包级别、项目级别、模块级别、单个文件级别,以及自定义范围的Bug分析。Malicious code vulnerability 可能受到的恶意攻击如果代码公开,可能受到恶意攻击的代码,下面列举几个:FI:一个类的finalize()应该是protected,而不是public的。);用类似Integer.toString 代替new Integer.toString();方法调用了低效的float的构造器,应该用静态的valueOf方法。
  • 用 Spring 的 BeanUtils 前,建议你先了解这几个坑!
    中间只有一个Spring的copy属性的方法,当时觉得很诡异由于中间只有这么一行代码,玄机肯定在这里面,初步怀疑是两个静态内部类不同导致,所以自己写Demo,准备搞一把这个BeanUtils的copyProperties方法,写了两个类和一个Main,@Data和@ToString是lombok插件的注解,这里用来自动生成getter和setter方法以及toString方法@ToString@DatapublicclassCopyTest1{publicStringouterName;publicCopyTest1.InnerClassinnerClass;publicList<CopyTest1.InnerClass>clazz;@ToString@DatapublicstaticclassInnerClass{publicStringInnerName;}}@ToString@DatapublicclassCopyTest2{publicStringouterName;publicCopyTest2.InnerClassinnerClass;publicList<CopyTest2.InnerClass>clazz;@ToString@DatapublicstaticclassInnerClass{publicStringInnerName;}}CopyTest1test1=newCopyTest1();test1.outerName="hahaha";CopyTest1.InnerClassinnerClass=newCopyTest1.InnerClass();innerClass.InnerName="hohoho";test1.innerClass=innerClass;System.out.println;CopyTest2test2=newCopyTest2();BeanUtils.copyProperties;System.out.println;这里遇到了第一个坑,一开始图省事,属性写为public,想着省掉了getter和setter方法,没加@Data注解,结果运行完test2所有属性都为null,一个都没copy过去,加上@Data继续跑,果然,基本属性复制过去了,但是内部类在test2中还是null。
  • 分享一个牛逼的阿里天猫面经,已经拿到 Offer ,来自朋友的朋友
    失败是成功的老娘,所以朋友的朋友「郑健」面阿里。后面证实真是如此,看JUC,集合的一些源码的时候既然很容易就看懂了,这就让我领悟了基础的重要性,后面就准备了下面试题,就直接去面阿里了,自信心爆炸。接下来就有了今年第一次面阿里,一面挂的经历,后面就开始了漫长的面试过程。面完之后,让内推的朋友看了下流程,通过了,当时开心的不行。9 月 23 号一直等到9月23号,终于等到了收集身份信息,体检,背调。持续了一周终于收到了offer。
  • Spark 全套知识体系,终于搞到了!
    福利手慢无☆廖雪峰的大数据开发必备教程-Spark视频资料终于免费啦!别急,这里有一份由廖雪峰等多位技术专家历时2个月精心打磨的价值1788元的《Spark底层核心RDD和Spark框架内部原理深度讲解》学习视频,对从事Java、PHP、运维等工作想要转行,或想从事大数据相关工作等人群来说,这份资料将特别适合。
  • 不是我吹,Lambda 这个坑你真的不知道
    分析在本地重现后,通过jstack获得系统停滞期间的线程栈,发现这个时候zookeeper的EventThread有个比较奇怪的现象:客户端实际上很快就连上了zookeeper并返回后生成了SyncConnected事件,而且EventThread已经在回调Watcher.process方法了,但似乎事件线程就一直hold在上面#_1的位置无法往下走, 同时,lambda表达式变成了ClientZkAgent的一个方法了:lambda$connect$0。了解了一下Java中lambda的实现方式,事情水落石出了。简而言之,jvm会把lambda表达式转换成所在类的一个方法lambda${method}${seq},同时通过动态代理生成一个代理类,在该代理类中调用lambda${method}${seq}。
  • 25岁后,你更应该逼自己系统性成长
    去问了几位在腾讯和阿里的朋友,他们都提到了一个关键词:系统性成长。仔细一问才知道,想要获得系统性成长,有2个方法:1.要么进入腾讯阿里这样的大公司,有专门的资深同事带领成长;2.要么就找到一个系统性的课程和导师,从思维、工具和方法论层面帮助自己搭建成体系的职场成长路径。那么,有没有这样的成长神器,能够让职场人通过自学,逐渐学会系统性成长?系统性的成长+扩大职场人脉,单是这两点就终身受益。但是,这对人才而言是灾难性的,因为你将会成为企业的“定制化人才”。
  • 如何去写一手好SQL?
    MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。max_connections是指MySQL实例的最大连接数,上限值是16384,max_user_connections是指每个数据库用户的最大连接数。MySQL会为每个连接提供缓冲区,意味着消耗更多的内存。实施原则相比NoSQL数据库,MySQL是个娇气脆弱的家伙。避免空值MySQL中字段为NULL时依然占用空间,会使索引、索引统计更加复杂。索引优化分页查询很重要,如果查询数据量超过30%,MYSQL不会使用索引。
  • SpringBoot注解大全,收藏一波!!!
    @Configuration等同于spring的XML配置文件;使用Java代码可以检查类型安全。packagecom.example.myproject;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication//sameas@Configuration@EnableAutoConfiguration@ComponentScanpublicclassApplication{publicstaticvoidmain{SpringApplication.run;}}@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。@EnableAutoConfiguration:Spring Boot自动配置:尝试根据你添加的jar依赖自动配置你的Spring应用。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。
  • 公司前端和后端因为接口扯起了皮,还列了 5 宗罪
    Final~文档是及其关键的,无论是在线文档还是本地文档,有是关键。虽然写文档是麻烦的事,但对后端人员来说,是利人利己。Final~文档最重要的部分是返回值的状态,我也建议上面的升级返回数据结构,这样就不存在任何不明朗情况。不过还是提醒后端人员,做好参数校验是第一步,不要偷懒了。Final~统一处理好接口校验,后端好好考虑下。Final~原子性一定要保证,保证,保证!
  • 这个28岁大厂程序员,已经开始研究Spring源码缺陷了……
    单单一个SpringFramework项目就比较庞大,整个Spring全家桶更加庞大。一Spring难在什么地方?针对Spring的源码做扩展也比较复杂。Springframework项目中提供的组件比较丰富,每个组件都有其对应的功能,能不能合理利用起来Spring提供的组件是考察一个程序员对Spring应用熟悉程度的重要标准。学习Spring或者说学习任何一门技术都需要有规划,清楚自己在学什么,学了之后对自己有没有用。当你能够阅读完Spring的文档之后,就要开始学习Spring的源码。因为Spring太强大了,基本市面上的主流技术都要配合Spring工作。当你看完Spring源码之后,就需要去动手写一个Spring的中间件了。
个人资料

纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等