守护线程:为所有非守护线程提供服务的线程;任何一个守护线程都是整个JVM中所有非守护线程的保姆; 守护线程类似于整个进程的一个默默无闻的小喽喽;它的生死无关重要,它却依赖整个进程而运行;哪 天其他线程...
Java知识点系列教程(7)——Volatile详解
保证被volatile修饰的共享变量对所有线程总是可见的 也就是当一个线程修改了一个被volatile修饰共享变量的值,新值总是可以被其他线程立即得知。 如果线程2改变了stop的值,线程1一定会停止...
Java知识点系列教程(6)——线程安全是什么
不是线程安全、应该是内存安全 堆是共享内存,可以被所有线程访问,因此堆不是内存安全的。在每个进程的内存空间中都会有一块特殊的公共区域——堆(内存)。进程内的所有线程都可以访问到该区域,这就是造成问题的...
Java知识点系列教程(5)——GC如何判断对象可以被回收
引用计数法:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收, 可达性分析法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 G...
Java知识点系列教程(4)——字节码详解
java中的编译器和解释器 Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚...
Java知识点系列教程(3)——final详解
Java的final关键字 修饰类:表示类不可被继承 修饰方法:表示方法不可被子类覆盖,但是可以重载 修饰变量:表示变量一旦被赋值就不可以更改它的值 (1)修饰成员变量 如果final修饰的是类变量,...
Java知识点系列教程(2)——==和equals区别
==和equals区别 ==对比的是栈中的值,new出来的对象,==比较的是该对象在堆内存中的地址。 equals:object中默认也是采用==比较,通常会重写,如String,重写equals来实...
Java知识点系列教程(1)——JDK JRE JVM
JDK:Java Develpment Kit(java 开发工具) JRE:Java Runtime Environment(java运行时环境) JVM:java Virtual Machine ...