随笔分类 - java基础
摘要:guava Lists下通过了两个创建指定容量的list方法,newArrayListWithExpectedSize,newArrayListWithCapacity。它们主要的区别如下: public static <E> ArrayList<E> newArrayListWithCapacit
阅读全文
摘要:(1)break 跳出当前循环体 (2)continue 跳过当前循环体continue后面的代码,继续执行下一个循环 (3)return 和循环没关系,就是跳出该函数
阅读全文
摘要:我知道Java枚举会被编译成一个包含私有构造参数和一堆静态方法的类,当去比较两个枚举的时候,总是使用equals()方法,例如: public useEnums(SomeEnum a) { if(a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } ... }参考
阅读全文
摘要:堆内存存储的对象分为对象头 实例变量 填充字段 对象头包含 标记字段 类型指针 标记字段中包含锁的记录
阅读全文
摘要:ReentrantLock是一种基于AQS框架的应用实现,AQS 是核心思想。 第一 、自旋 while(true) 第二 、加锁 保证只有一个线程可以拿到锁,其他线程一直在自旋的循环中等待,CAS 加锁 compare and swap 第三 、用队列实现公平或非公平锁 第四 、LockSuppo
阅读全文
摘要:问题现象 idea 代码静态扫描提示:Result of 'BigDecimal.add()' is ignored 原因 在java中,BigDecimal的add方法是个坑。 BigDecimal a = new BigDecimal(1); BigDecimal b= new BigDecim
阅读全文
摘要:代码示例一 1 public static void main(String[] args) { 2 List<Object> list = null; 3 for(Object s : list){ 4 System.out.println("a"); 5 } 6 } 结果: 代码示例二 1 pu
阅读全文
摘要:1、初步认识hashMap debug模式,从数据结构上认知HashMap: JDK8中HashMap的数据结构源码: 2、HashMap的两个重要参数 capacity 就是初始化HashMap时的数组容量,load factor 指负载因子; 当我们对迭代性能要求比较高时,不能把capacity
阅读全文
摘要:【解析hashMap的源码实现】 点击进入hashMap的源码实现 0、谈谈对hashMap的理解? 从底层结构、存取、扩容、冲突、实现原理、源码等方面说明。 1、你知道哪些常用的Map集合? HashMap、HashTable、LinkedHashMap、ConcurrentHashMap。 2、
阅读全文
摘要:代码优化的目标是 减小代码的体积 提高代码运行的效率 减小代码的体积 提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类
阅读全文
摘要:1、默认方法的定义和作用 在Java8以前的版本中,由接口定义的方法是抽象的,不包括方法体。JDK8版本的发布改变了这一点,其中给接口添加了一个新的功能:默认方法。默认方法允许为接口方法定义默认实现。也就是说,通过使用默认方法,现在可以为接口方法提供方法体,使其不再是抽象方法。 默认方法的主要作用是
阅读全文
摘要:一、Lambda表达式是什么? Lambda表达式有两个特点 一是匿名函数,二是可传递。 匿名函数的应用场景是 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用Lambda表达式。lambda表达式所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lam
阅读全文