Java基础
这个昵称是必须要的吗
这个作者很懒,什么都没留下…
展开
-
Java总结(进阶)
10.JavaSE新特性概述多例设计模式构造方法私有化,类内部需要提供若干个实例化对象,然后通过static方法返回这些实例化对象枚举(JDK1.5) 枚举并不是一种新的结构,使用enum关键字定义的枚举本质上是继承于 java.ang.Enum 父类的枚举类 JDK 1.5之后的枚举比起多例设计模式,简单且代码少,可以说枚举是一种高级的多例设计模式 三个方法 ...原创 2019-10-24 12:37:18 · 227 阅读 · 0 评论 -
IDEA的几个常用快捷键
1.将代码添加到try,catch块中,或者将代码嵌套进条件语句 选中代码按Ctrl+alt+t 2.将代码上下移动 选中代码按Ctrl+shift+上下键 3复制整行代码,将光标放到要复制的那一行 Ctrl+d 4.删除整行代码,将光标放到要复制的那一行 Ctrl+x...原创 2018-09-09 17:17:25 · 174 阅读 · 0 评论 -
Lock体系
AQS:int类型变量+同步队列同步队列:带有头尾指针的双向链表,Node节点连接节点状态:lockInterrupt响应中断独占锁的获取获取锁失败后调用AQS提供的acquire(int arg)模板方法流程:acquire(int arg)->tryAcquire(int arg)尝试再次获取同步状态,成功方法退出,失败调用addWaiter方法addWaiter(Node...原创 2018-12-03 12:31:58 · 137 阅读 · 0 评论 -
深入理解volatile关键字
故事要从盘古开天辟地的时候说起,不好意思,走错片场了…想要深入理解volatile就必须从Java虚拟机层面去理解,所以,在介绍volatile关键字之前就要从硬件谈起。硬件的效率与一致性由于计算机的读写速度与其运算速度差距十分巨大,所以,计算机上都会加一层读写速度尽可能接近处理器运算速度的高速缓存(cache)来作为内存与处理器之间的缓冲:意思就是将需要用到的数据放到缓存中,让运算快速进行...原创 2019-04-15 15:19:58 · 167 阅读 · 0 评论 -
Java中的泛型擦除
Java泛型的引入加强了参数类型的安全性,减少了类型的转换,但有一点,Java的泛型在编译器有效,在运行期被删除,也就是泛型参数类型在编译后都被清楚List、List 擦除后的类型为 List。List[]、List[] 擦除后的类型为 List[]。List<? extends E>、List<? super E> 擦除后的类型为 List。List<T ...原创 2019-05-23 21:19:13 · 118 阅读 · 0 评论 -
Java面试题
一、Java 基础1.JDK 和 JRE 有什么区别? JDK是Java开发工具包,包含各种类库和工具 JRE是JVM和核心类库 电脑上装了jre能运行java程序,但不能进行java开发2.== 和 equals 的区别是什么? ==比较的是内存地址 equals比较的是两个变量或者实例指向的是不是同一内存空间3.两个对象的 hashCode()相同,则 equals(...原创 2019-07-24 15:52:20 · 1096 阅读 · 0 评论 -
深入理解Synchronized关键字
java对象头在同步的时候获取对象的monitor,即可获取对象的锁,那么锁怎么理解,其实就是一个标记位,那么这个标志就是放在java对象头,java对象头里面的Mark Word里面默认存放对象的HashCode,分代年龄和锁标记synchronized底层实现synchronized最大特征是同一时刻只有一个线程能获得对象的监视器,从而进入同步代码块或者同步方法中(MonitorEnt...原创 2019-07-25 19:56:57 · 181 阅读 · 0 评论 -
JVM运行时区域划分
程私有:程序计数器是一块比较小的内存空间,记录当前线程的执行字节码的行号指示器,每条线程都有独立的PCRegister。如果执行java方法,那计数器中的值不为0;如果正在执行的是Native方法,计数器中值为0。PCRegister是JVM规范中唯一一个不会产生OOM(OutOfMemoryError异常,虚拟机动态扩展时无法申请到足够的内存)情况的区域。虚拟机栈java方法的信息...原创 2019-08-27 15:30:32 · 143 阅读 · 0 评论