![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 56
LLAiden
这个作者很懒,什么都没留下…
展开
-
volatile有什么用
volatile作用与小程序原创 2022-07-21 21:57:26 · 141 阅读 · 1 评论 -
synchronized是如何实现的
synchronized字节码层面的实现原创 2022-07-21 20:53:54 · 282 阅读 · 1 评论 -
Java对象布局
java对象布局Markword原创 2022-07-21 20:00:37 · 208 阅读 · 0 评论 -
LinkedList源码解析
LinkedList源码阅读原创 2022-07-06 21:42:46 · 312 阅读 · 0 评论 -
ThreadLocal是如何做到线程之间的值互相不影响的
ThreadLocal源码分析原创 2022-07-06 21:12:20 · 365 阅读 · 0 评论 -
WebSocket的简单使用
介绍WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输介绍完直接上代码服务端public class .原创 2022-02-11 22:17:30 · 2218 阅读 · 0 评论 -
ArrayList源码解析
前言ArrayList是我们非常常用的数据存储内,在这篇文章里我们就了解一下ArrayList的内部数据结构,从最开始构造函数说起构造 ArrayList<Object> arrayList1 = new ArrayList<>(); ArrayList<Object> arrayList2 = new ArrayList<>(10); ArrayList<Object> arrayL原创 2022-02-10 22:10:09 · 833 阅读 · 0 评论 -
String和StringBuilder,StringBuffer的区别
共同点都是final类不可以被继承,都是现实了Serializable, Comparable, CharSequence接口作用上的共同点则是都是用来存储字符串区别String在申明内容是字面值常量每次对字符串进行拼接其实是对新建了一个对象,如果是有大量的字符串拼接则会创建大量的对象这样就效率低下了,适用于内容较短的且不需要多次拼接的场景StringBuilder @Override @IntrinsicCandidate public S.原创 2021-11-12 22:03:57 · 202 阅读 · 0 评论 -
java中 == equals hashCode的区别
==在基本数据类型中用啦比较两个数值是否相等,引用数据类型则是用于比较两个对象引用是否相同换言之就是比较是不是同一个对象equals public boolean equals(Object obj) { return (this == obj); }上面这段代码是Object类中equals的实现可以看出在不重写equals方法的情况下是和 ==相同的在我们实际开发中如果是需要比较两个对象内的值是不是相等就可以去重写equals方法在...原创 2021-11-12 21:18:29 · 377 阅读 · 0 评论 -
深度理解Java虚拟机
运行时数据区程序计数器一块很小的内存区域线程私有可以看作记录代码执行行数的记录器虚拟机通过它选取下一行要执行的代码控制循环判断跳转异常等为线程切换时恢复到正确的代码执行位置虚拟机栈和程序计数器一样是线程私有的内存区域,他的生命周期和线程一致在线程执行一个函数就会创建一个栈帧,在栈帧中存储着局部变量表(boolean,byte,short,char,int,float,double,对象引用并非真正的对象),操作数栈,动态链接以及方法出口等,每一个方法调用到执行完毕就对应着一.原创 2021-07-31 00:00:59 · 102 阅读 · 0 评论 -
Java线程死锁的造成
线程线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程下面我们看一段造成死锁的代码public class Main { priva原创 2020-08-20 22:10:32 · 118 阅读 · 0 评论 -
Java中Object的wait(),notify(),notifyAll()理解
Objectjava中所有的类都会隐式的继承Object,但是Object的wait,notify,notifyAll我们又真的会用吗synchronizedsynchronized是用来保证我们的一段代码在执行的过程中不会被中断而引起并发问题,synchronized可以修饰一个函数,某一段代码而wait()函数就应该在synchronized代码块中执行synchronized使用场景当我们有多个线程同时开启,但是在某一个特定时刻只有一个线程在真正的执行,当我们需要一段代码执行完而不被中断原创 2020-08-19 23:47:49 · 176 阅读 · 0 评论 -
Java生产者消费者,控制一个数在0-4之间变化
代码public class Main { private static int i = 0; public static void main(String[] args) { Main main = new Main(); producer(main); consumer(main); } private static void consumer(Main main) { new Thread(原创 2020-08-19 19:45:06 · 113 阅读 · 0 评论