Java
文章平均质量分 81
Java
「已注销」
这个作者很懒,什么都没留下…
展开
-
Synchronize 锁的使用和原理
是的一个关键字,加锁方式有: 对象锁、类锁,其用法有:方法锁: 默认所对象为,当前实例对象同步代码块锁: 手动指定锁定对象(或者自定义锁)自定义对象类锁修饰静态方法或指定锁对象为Class对象synchronized原理枷锁和释放锁是基于和指令实现的和指令,会让对象在执行,使其锁计数器加1或者减1。每一个对象在同一时间只与一个monitor(锁)相关联,而一个monitor在同一时间只能被一个线程获得,一个对象在尝试获得与这个对象相关联的Monitor锁的所有权的时候,:释放对于moni原创 2022-11-04 21:27:18 · 118 阅读 · 0 评论 -
多线程基础
总结:我们不能通过run方法来新开一个线程,只能调用线程中重写的run方法(可以在线程中不断的调用run方法,但是不能开启子线程,即不能同时干几件事),start是开启线程,再调用方法(即默认开启一次线程,调用一次run方法,可以同时执行几件事):一般在不允许失败的、对性能要求不高、并发量较小的场景下使用,因为线程池一般情况下不会关闭,也就是提交的任务一定会被运行,但是由于是调用者线程自己执行的,当多次提交任务时,就会阻塞后续任务执行,性能和效率自然就慢了。因为它就是个空实现,会悄无声息的吞噬你的的任务。.原创 2022-08-17 01:20:28 · 410 阅读 · 0 评论 -
HashMap put过程
计算索引位置的公式为:(n - 1) & hash,当 n 为 2 的 N 次方时,n - 1 为低位全是 1 的值,此时任何值跟 n - 1 进行 & 运算的结果为该值的低 N 位,达到了和取模同样的效果,实现了均匀分布。因为中间多个个7,不会使得红黑树和链表之间频繁转换,如果我们设置节点多于8个转红黑树,少于8个就马上转链表,当节点个数在8徘徊时,就会频繁进行红黑树和链表的转换,造成性能的损耗。不存在的),这个概率足够低了,并且到8个节点时,红黑树的性能优势也会开始展现出来,因此8是一个较合理的数字。.原创 2022-08-15 21:03:21 · 449 阅读 · 0 评论 -
ArrayList扩容机制
JDK7 new无参构造的ArrayList对象时,直接创建了长度是10的Object[]数组elementData。方法不知道大家注意到没有,这个方法 ArrayList 内部没有被调用过,所以很显然是提供给用户调用的,那么这个方法有什么作用呢?需要目标数组,将原数组拷贝到你自己定义的数组里或者原数组,而且可以选择拷贝的起点和长度以及放入新数组中的位置。如果是奇数的话会丢掉小数.方法就一定会进入(执行)这个方法,下面我们来研究一下这个方法的源码!,而jdk8中的ArrayList的对象的创建。...原创 2022-08-15 20:43:29 · 48 阅读 · 0 评论 -
Java基础
发展历史:创始人: 詹姆斯·高斯林1991年,高司令带领Sun公司的工程师小组以C++为基础创建的这种语言,起初命名为Oak,橡树的意思,后来发现Oak是一种已有的计算机语言的名字,于是更名为Java。JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上跨平台/可移植性。...原创 2022-08-15 00:41:41 · 242 阅读 · 0 评论 -
深克隆与浅克隆
被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所拷贝的对象,而不复制它所引用的对象。...原创 2022-08-15 00:06:14 · 50 阅读 · 0 评论 -
Java设计模式之单例模式
简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。枚举很特殊,它在类加载的时候会初始化里面的所有的实例,而且 JVM 保证了它们不会再被实例化,所以它天生就是单例的。,严格地说,内部类和嵌套类是不一样的,它们能访问的外部类权限也是不一样的。在类加载的时候直接实例化一个单例对象。...原创 2022-08-15 00:01:37 · 103 阅读 · 0 评论 -
JVM基础知识
垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序的结束,被保留的空间无法被其它对象使用,甚至可能导致内存溢出。......原创 2022-08-14 23:43:25 · 342 阅读 · 0 评论