Java基础
银河舰长
我的征途,在星辰大海。
展开
-
JVM基础之语法关键字的作用和原理(六)
1. new指令new指令用于在内存中分配空间,并执行对象的构造方法。因此2. static指令3. final指令4. volatile指令volatile指令用于限制机器指令的重排序,保证了工作内存对主存的可见性,其修饰的变量在编译为机器指令时,编译器对其进行了特殊处理。在volatile变量的写操作指令,前面插入StoreStore Barriers,后面插入StoreLoad...原创 2020-04-03 21:58:49 · 175 阅读 · 0 评论 -
JVM基础之内存空间和异常(一)
“合抱之木,生于毫末;千里之行,始于足下;九层之台,起于垒土。”一、虚拟机运行时数据区程序计数器是一块较小的内存空间,可以看作是当前线程执行的字节码的行号指示器。根据虚拟机的概念模型,字节码解释器就是通过改变这个计数器的值来选取下一条需要执行的字节码指令(分支、循环、跳转、异常处理、线程恢复都依赖于计数器)。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现...原创 2019-03-23 16:43:18 · 214 阅读 · 0 评论 -
JVM基础之虚拟机垃圾回收详解(五)
程序所使用的内存空间不断扩大,是GC算法演进的根本原因。一、垃圾回收器算法总览垃圾回收器(Garbage Collection)是Java虚拟机(Java Virtual Machine),用于清理堆空间(Heap Space)中无引用对象(Non-Reference Object)的算法的实现。1. Serial算法Serial是单线程的垃圾回收算法2. Parallel算法...原创 2020-03-28 17:34:27 · 245 阅读 · 0 评论 -
Java类加载和static修饰符
Java类加载和static修饰符类加载和几个常见关键字 也许你经常使用static,可是你是否思考过它的意义。1. static关键字顾名思义,static(静态的)修饰符。 被static修饰的变量和方法是不会被实例化的,在类加载的时候,只在内存中保留一份,以后再调用,还是会拿到这个内存地址,永远不会产生新的了。 static在安卓中常被用在内部类上,内部类会持有外部类的强引用,导致原创 2016-01-25 23:08:18 · 705 阅读 · 0 评论 -
Java基础之线程机制(一)
Java线程基础(一)要想学问大,就要多读、多抄、多写。要记住,一个人想要在学业上有所建树,一定得坚持这样做卡片、摘记。一、线程的状态线程包括7种状态:创建(new)、就绪(runable)、运行(running)、阻塞(blocked)、休眠等待(time waiting)等待(waiting)、结束(terminated)。创建状态(Thread.State.NEW),在代码中使...原创 2019-03-31 13:40:21 · 179 阅读 · 0 评论