Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Java进阶知识点汇总 PDF 下载


分享到:
时间:2024-03-30 15:29来源:http://www.java1234.com 作者:转载  侵权举报
Java进阶知识点汇总
失效链接处理
Java进阶知识点汇总 PDF 下载
 
 
 
相关截图:
 


主要内容:

(一)关键字
 
1static
修饰变量、方法、静态块、静态内部内、静态导包。
随着类的加载而加载,只执行一次,并优先于主函数。存在于方法区中。
 
2final
1.final 修饰的部分
类、方法、域、方法参数
2.作用
a.设计上:被 final 修饰的类不能被继承;被 final 修饰的方法不能被重写;被
final 修饰的变量的引用不能被修改。
b.效率上:被 final 修饰后,内联(inline 在 Java 中就是编译器为程序做的一种
优化操作)会起作用。
备注:内联是发生在编译期的一个优化操作。所做的优化操作的意义在于两个字
替换” 
3.为什么 Java 匿名内部类访问的外部局部变量或参数需要被 final 修饰?
内部类对象的生命周期会超过局部变量的生命期。
局部变量的生命期:当该方法被调用时,该方法中的局部变量在栈中被创建
(诞生),当方法调用结束时(执行完毕),退栈,这些局部变量全部死亡。而:
内部类对象生命期,与其它类一样,当创建一个该局部类对象后,只有没有其它
人再引用它时,它才能死亡。完全可能:一个方法已调用结束(局部变量已死亡),
但该局部类的对象仍然活着。即:局部类的对象生命期会超过局部变量。
 
3transient
用 transient 关键字标记的成员变量不参与序列化过程。
 
4volatile
作用
1.如果一个字段被声明成 volatilejava 线程内存模型确保所有线程看到这个变量
的值是一致的。
2.禁止指令重排序。(jdk5 或更高版本)
它比 synchronized 的使用和执行成本会更低,因为它不会引起线程上下文的切换和调
度。
volatile 是基于 Memory Barrier 实现的。如果一个变量是 volatile 修饰的,
JMM 会在写入这个字段之后插进一个 Write-Barrier 指令,并在读这个字段之前
插入一个 Read-Barrier 指令。
Write-Barrier(写入屏障)将刷出所有在 Barrier 之前写入 cache 的数据,因
此,任何 CPU 上的线程都能读取到这些数据的最新版本。
底层基于 C++的 volatile 实现,因为 volatile 自带了编译器屏障的功能,总
能拿到内存中的最新值。
 

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐