-
读取zip压缩文件内容
JDK压缩输入流ZipInputStream直接读取压缩包内容,可读取UNI小程序获取版本信息,使用ant解压工具类读取压缩文件
-
提升开发效率的17个工具类
Collections,CollectionUtils,Objects,StringUtils,IOUtils,MDC,ClassUtils,BeanUtils,ReflectionUtils,Base64Utils,DigestUtils,SerializationUtils,HttpStatus,gson与map的转换
-
Bean自动映射工具
常用的get/set,spring的beanutils.copyProperties,详细介绍MapStruct的使用
-
1M图片压缩优化到100kb
JDK原生API压缩图像实战与其他开源库介绍
-
HashSet如何保证元素不重复
它会调用元素类的hashcode与equal方法进行判断元素是否已存在
-
序列化和反序列化详解
序列化将内存中的java对象转为字节数组用于网络传输或写到磁盘,目的端收到字节数组按指定的数据结构规则恢复为java对象,就是反序列化
-
重学Java第45讲:LinkedList的扩容机制
核心私有内部类Node,常用操作add方法添加元素、remove方法删除元素、set方法更新元素、indexOf和get方法查找元素
-
重学Java第44讲:ArrayList的扩容机制
添加元素时调用grow方法扩容原来1.5倍以上,移位运算与位权,添加元素到指定位置,set方法更新元素,remove方法删除元素,indexof方法查找元素,时间复杂度的概念,ArrayList 执行效率的时间复杂度
-
重学Java第43讲:throw 和 throws
throw 主动抛出异常,throws 关键字写在方法上声明可能产生的异常,让调用方法通过try catch进行捕捉处理
-
使用一个规则执行器替代大量if判断
自定义规则执行器
-
java 中那些持久化对象persistant object
PO,BO,VO,DTO,DAO
-
消除if...else,写出更优雅的代码
使用注解,动态拼接bean名称,模版方法判断,策略工厂模式,责任链模式获取匹配的bean进行处理,枚举场景举例,stream流过滤场景,Assert类断言替换
-
代码Review的那些事儿
代码Review的好处,做好一场合格的代码评审
-
java8的新特性介绍
Optional类避免显示null,Stream流使用,lambda表达式,函数式接口,冒号方法引用,扩展接口-默认方法和静态方法,新的日期时间API,java类库新增Base64
-
如何在开发中使用对象减少对内存的使用
都知道堆内存要回收垃圾,那么你也得知道如何在开发中使用对象来减少内存使用,软引用,使用享元模式,分析对象的外在状态和内在状态成员变量
-
请谨慎使用Arrays.asList,ArrayList的subList,小心踩坑
巴里巴巴java开发手册上也有说明,Arrays.asList返回的ArrayList是Arrays的内部类,subList并不是ArrayList,只是一个视图,所有操作都会反映到原列表
-
使用javassist修改class文件
简单的动态编程,反编译class文件查看代码,javassist修改
-
Java的常见陷阱,生成随机数的4种方法,String的长度限制
Integer.parseInt的转换失败陷阱,Bigdecimal.divide的除不尽陷阱,Collection.emptyList、Array.asList不支持添加/删除元素操作,List使用Iterator迭代遍历时删除,Java生成随机数的4种方式
-
Java注解的原理,来了解一下
用来注释注解的注解叫做元注解,编写自己的注解
-
使用java做爬虫
使用python做爬虫是比较简单,java也可以做的到,去爬某东上的商品数据
-
优雅的NPE判断
不使用if null 逻辑,采用JDK8的Optional,自己设计工具类OptionalBean优雅判断NPE
-
Java的IO流
Java IO按数据格式和传输方式分组,基于字节操作的IO、基于字符操作的IO、基于磁盘操作的IO、基于网络操作的IO,字节与字符的转化,网络IO的工作方式-BIO\NIO\AIO
-
JAVA 线上故障排查完整套路,CPU->磁盘->内存->网络->GC
线上故障主要会包括cpu、磁盘、内存以及网络问题
-
生产环境JVM内存溢出案例分析
公司的业务量比较大,在生产环境经常会出现JVM内存溢出的现象,如何快速响应,快速定位,快速恢复业务
-
ThreadLocal使用与内存泄漏
threadLocal线程局部变量为我们解决了多线程访问变量的安全问题,key是弱引用,只能生存到下次GC前,如果很多线程使用Threadlocal可能会引起内存泄露,不同的请求获取相同的ThreadLocal值如何解决,InheritableThreadLocal可继承线程变量在线程池中执行被获取相同值的原因,因为线程变量没有被重新set值
-
阿里Java开发手册泰山版-个人精简
会当凌绝顶,一览众山小
-
为什么 Java 中“1000==1000”为false,而”100==100“为true?
integer的缓存,快戳进来看答案
-
Error和Exception,抽象类,EOF错误
error 一般指与JVM相关的问题如OOM就是error,exception是指程序中可以遇见性的异常
-
遍历HashMap的5种最佳方式!
5种方式都很常用
-
飞天班第7节:深入JVM系列(下)
GC的作用域(堆中),一个对象的历程,GC的复制算法(新生代)、标记清除压缩算法(老年代),GC Root 可达性算法确定垃圾对象,JVM常用调优参数-X, -XX,全面认识OOM的6种溢出情况,4种垃圾回收器-串行、并行、并法、G1垃圾回收器,强引用、软引用、弱引用、虚引用的了解
-
飞天班第6节:深入JVM系列(上)
JVM的位置,JVM架构图,类加载过程,双亲委派机制,加载static,加载final常量池,Native方法,程序计数器,方法区的前世今生,理解栈帧,堆的新生区、养老区、永久区(1.7前),元空间(1.8),jvm分析常用命令,Dump内存快照分析工具jconsole,jprofile
-
java的语法糖
专为开发者设计,提高开发效率,代码更优雅易读
-
java枚举、static与final
java里枚举是一个特殊的类,static、final关键字