
Java基础
爱喝冰红茶阿
IT程序员
展开
-
CopyOnWriteArrayList源码分析
CopyOnWriteArrayList(Copy-On-Write: 写入时复制)是一个线程安全的ArrayList,对其进行的修改操作都是先加锁然后在底层的一个复制数组上进行。需要拷贝原数据,数据较大的时候容易引起频繁Full GC;写和读在不同的数组上,读取的是老数组的数据(弱一致性问题)经常被用于"读多写少"的并发场景,因为读取的时候不需要加锁,性能较好。读写分离,在使用迭代器迭代的时候不会抛出异常。原创 2022-09-18 21:54:17 · 491 阅读 · 0 评论 -
创建对象在堆区如何分配内存
我们都知道对象创建后,会被存入堆区,那么在堆区中是如何分配内存的呢?再了解对象在堆区中是如何分配内存之前,我们先来了解一下堆区(heap),堆是JVM管理的内存中最大的一块区域,是被所有线程共享的一块区域,堆区被划分为新生代和老年代,新生代占总内存的三分之一,其中又被划分为两个区域eden区和survivor区,eden区占十分之二,survival区占十分之八。老年代占总内存的三分之二。 当创建一个对象后,会先判断eden区是否被填满,若没有填满,直接存放在eden区,若填满则会触发新生代GC(原创 2022-09-18 13:47:37 · 201 阅读 · 0 评论 -
equals()与==的区别
“equals”用于引用类型的内容比较 而 “==”一般用于基本类型之间的比较 ,equals比较的是引用类型的地址,就用String类型来比较,String类型有自己的缓存池,在缓存池范围内,若输入两个相等的字符串,此时,它并没有开辟新的内存空间,所以用==来比较是相等的 若开辟一个新的内存空间 来存放或是超出了该缓存池的范围 用==来比较便是不相等的,此时只能用equals方法来比较该字符串是否相等。...原创 2022-02-20 19:31:07 · 273 阅读 · 0 评论 -
抽象类与接口的区别
抽象类和抽象类中的方法必须用abstract修饰,如果该类里面有抽象方法,则这个类一定是抽象类,抽象方法没有方法体接口是一个规范抽象方法的地方 在接口中的方法都是抽象方法没有方法体 可以不用abstract修饰,接口中也可以存在普通方法 但必须用default修饰,一个类只能继承一个父类但可以实现多个接口...原创 2022-02-20 18:33:00 · 194 阅读 · 0 评论 -
字符串常见方法总结
文章目录一、构造方法二、静态方法三、其他方法一、构造方法字符串中有无参构造方法和有参构造方法两种构造方法1、String s1="中国";2、String s2=new String(“中国”);//创建一个对象,指向字符串常量对象。3、String s3=new String(char数组);//将char数组中的存放的每一字符连结起来形成字符串4、String s3=new String(char数组,起始下标,长度);//将char数组中的存放的起始位置起...原创 2022-02-20 19:23:30 · 2103 阅读 · 0 评论 -
String、StringBuilder、StringBuffer以及它们之间的区别
文章目录一、String类二、StringBuilder类三、StringBuffer类四、三者的区别一、String类字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。常用的集中创建字符串的方法1.String name = "中国加油"! 存在字符串常量池中2.String name= new String("中国加油"); // String 对象创建 开辟新的空间存放字符串...原创 2022-02-21 17:45:34 · 510 阅读 · 0 评论 -
重载和重写的区别
重载是在同一个类中的具有相同方法名,不同参数(个数,类型,顺序)的方法的定义,构造方法普通方法,抽象方法都可以重载;重写是在子类继承父类的方法重写,在子类重写的方法必须和父类方法完全相同,可以用@override检查是否是重写方法......原创 2022-02-20 18:31:40 · 11056 阅读 · 1 评论 -
Java缓存池
Integer缓存池(-127-128)当我们在使用int的包装类型(Integer)类创建对象时,Java内部给我们提供了Integer缓存池,出现缓存池的目的是为了减少的内存空间浪费,尽可能的节约内存空间。当我们使用Interger创建对象时Integer i1 = 127;Integer i2 = 127; Integer i1 = Integer.valueOf(127);Integer i2 = Integer.valueOf(127);//用上面两个方...原创 2022-02-21 18:06:36 · 326 阅读 · 0 评论 -
当添加一个键值对元素时,HashMap发生了什么?
在了解添加一个键值对元素,HashMap会发生什么之前我们先来了解一下HashMap的存储结构:HashMap内部数据结构使用的方式进行存储。数组类型为Node[ ],每个Node都保存了某个KV键值对元素的key、value、hash、next等值,由于next的存在,所以每个Node对象都是一个中的组成结点。...原创 2022-08-14 09:46:54 · 223 阅读 · 0 评论