![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
fly丶
记录平时的工作心得,和自己学习的一些新东西。
展开
-
HashMap源码分析-jdk1.8
首先来看hashmap的几个构造方法:loadFactor :负载因子,默认是0.75;简单来说就是达到当前最大容量 * 负载因子,就该扩容了。1. Map<String, Integer> map1 = new HashMap<>();public HashMap() { // static final float DEFAULT_LOAD_FACTOR = 0.75f; this.loadFactor = DEFAULT_LOAD_FACTOR; //原创 2020-05-27 17:44:19 · 178 阅读 · 0 评论 -
阿里巴巴开发手册-阅读记录
以下是对阿里巴巴java开发手册看了后的一些总结,便于自己以后复习。功能类命名AbstractXXXXX,XXXXXExceptionXXXXXTestboolean变量 不要用is前缀 序列化会出问题将设计模式体现在名称中 便于阅读者快速理解接口类中的方法和属性不要加任何修饰符号(public 也不要加)暴露出去的服务一定是接口 实现类以Impl为后缀来区分枚举类带上 Enum后缀service/Dao层的命名规范:获取单个对象 用get做前缀获取多个对象 用list做前缀,负数结果,原创 2020-05-22 16:17:23 · 772 阅读 · 0 评论 -
Integer源码深度分析
首先,先抛出一个判断题,如下:public static void main(String[] args) { Integer i1 = 124; Integer i2 = Integer.valueOf(124); Integer i3 = new Integer(124); System.out.println(i1 == i2); System.out.println(...原创 2020-01-21 10:49:04 · 136 阅读 · 0 评论 -
ArrayList源码分析-超详细
分析方式:断点调试,一步一步跟代码。(基于openjdk1.8)先看看ArrayList类定义的一些私有属性private static final int DEFAULT_CAPACITY = 10;//数组默认大小private static final Object[] EMPTY_ELEMENTDATA = {};//空数组private static final Object[]...原创 2019-12-31 15:42:31 · 292 阅读 · 1 评论 -
结合实例看ArrayList和LinkedList区别
List集合的重要性不言而喻,直接开干。(下面测试基于openjdk1.8)ArrayList: 底层采用的是数组,所以增删慢,查找快。增删慢 : 比如你的数组里面现在有5个元素(对应下标是0-4),你现在需要往下标为2的地方添加元素,那么数组中下标为2,3,4的元素就需要往后移,但是如果你只是添加到数组末尾,是不用移动的(导致集合扩容除外);删除也一样,删除中间的就会导致后面的元素往前移。...原创 2019-12-31 10:30:32 · 273 阅读 · 0 评论 -
Effective Java 创建和销毁对象
1.考虑用静态工厂方法代替构造器;一个boolean对象的静态工厂方法:public static Boolean valueOf(boolean b){ return b?Boolean.TRUE : Boolean.FALSE;}静态工厂方法和构造器不同的第一大优势:工厂方法有名称(这样可以让用户更容易使用,更易于阅读);第二大优势:不必在每次调用...原创 2018-01-23 14:59:31 · 261 阅读 · 0 评论 -
成为Java大牛 需要看的书
1.《Java编程思想》2.《深入理解Java虚拟机》3.《Java并发编程实战》4.《Effective Java中文版》5.《深入分析Java Web技术内幕》6.《大型网站技术架构 核心原理与案例分析》7.《大型网站系统与Java中间件实践》8.《从Paxos到ZooKeeper 分布式一致性原理与实践》9.《Spring源码深度解析》10.《java设...原创 2018-02-22 17:38:28 · 243 阅读 · 0 评论 -
Effective Java阅读理解
作为一个刚毕业的程序员,提升自己的技术是很必要的,听说这本书不错,看了后总结一下,也方便以后再回顾。说实话,有的原则还需要在以后的工作中才能深刻体会到了。立个flag,一年后再看一遍。1. 好的代码应该有以下特点代码的清晰性和简洁性最为重要;代码应该被重用,而不是被拷贝;错误应该被尽早检测出来,最好是在编译时刻(fast-fail);好的代码应该是清晰,正确,可用,健壮,灵活和可维护...原创 2018-12-22 19:48:17 · 196 阅读 · 0 评论 -
记Arrays.asList()踩坑后,分析源码
开发中,一次偶然的机会,就用到了这个方法,然后就莫名其妙报错了。当时的场景是这样的,controller接受数组,service方法参数为list,就用Arrays.asList()转了一下。在service方法中,调用了这个list的remove方法,然后就报错了,异常信息都没打印出来,最后看日志,发现最有可能就是remove方法报异常了,然后就在本地写了个测试方法。代码是这样的,就是移除...原创 2018-12-23 13:36:14 · 208 阅读 · 0 评论 -
java核心知识总结
本篇博客内容,主要是我看了《java核心知识》后觉得有的内容有必要记下来,方便自己以后复习。1.jdk1.8永久代变成了元数据区,类的元数据存在本地内存,字符串常量池和常量存在了堆中(jdk1.8以前都是存在方法区中)2.程序计数器是唯一不会出现oom的;Eden:servivorFrom:servivorTo=8:1:1;新生代:老年代=1:3(默认比值);minorGC=复制-》清空—》...原创 2019-05-22 10:22:05 · 182 阅读 · 0 评论