Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的 ...
分类:
编程语言 时间:
2018-03-30 13:14:20
阅读次数:
169
一、类加载机制 类加载器将类的.class文件中的二进制数据读入到内存中,将其放在方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问 ...
分类:
编程语言 时间:
2018-03-29 19:09:30
阅读次数:
161
关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoader) 深入理解Java并发之synchronized实现原理 Java并发编程-无锁CAS与Uns ...
分类:
编程语言 时间:
2018-03-27 18:47:31
阅读次数:
268
推荐书:Java并发编程实战、深入理解Java虚拟机、大话设计模式 HashMap的工作原理 HashMap与HashTable的区别。1、HashMap是非线程安全的,HashTable是线程安全的。2、HashMap的键和值都允许有null值存在,而HashTable则不行。3、因为线程安全的问 ...
分类:
编程语言 时间:
2018-03-18 23:22:24
阅读次数:
386
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言的功能产生任何影响,却能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会。 ...
分类:
编程语言 时间:
2018-03-17 13:21:39
阅读次数:
269
深入理解java虚拟机: 1、java内存模型 java虚拟机规范中试图定义一种Java内存模型。Java Memory Model(JMM) 1.1 主内存与工作内存 java内存模型规定所有的变量都存储在主内存中(Main Memory)中。 每个线程还有自己的工作内存(working Memo ...
分类:
编程语言 时间:
2018-03-15 22:17:32
阅读次数:
290
之前在看深入理解Java虚拟机一书中第一次接触相关名词,但是并不理解,只知道Object obj = new Object()类似这种操作的时候,obj就是强引用。强引用不会被gc回收直到gc roots不可达时。而对其他三个名词并不清楚,因为并没有被真正使用过。通过查看软引用,弱引用和虚引用的源码 ...
分类:
编程语言 时间:
2018-03-11 02:36:58
阅读次数:
232
深入理解java内存模型(一)——基础 深入理解java内存模型(二)——重排序 深入理解java内存模型(三)——顺序一致性 深入理解java内存模型(四)——volatile 深入理解java内存模型(五)——锁 深入理解java内存模型(六)——final 深入理解java内存模型(七)——总 ...
分类:
编程语言 时间:
2018-03-03 00:41:20
阅读次数:
228
J2SE基础推荐书籍:《java核心技术卷I》《Thinking in java》《java并发编程》《effictive java》《大话设计模式》 JVM《深入理解java虚拟机》 操作系统《深入理解现代操作系统》 TCP/IP《TCP/IP协议族》 数据结构与算法《大话数据结构》《剑指offe ...
分类:
其他好文 时间:
2018-03-02 12:35:13
阅读次数:
201
背景:最近开始忙着找工作了,把需要储备的知识再整理总结一遍!关于JVM的总结,是转自下面的连接。结合《深入理解java虚拟机》,看起来有更清晰的认识。 转载自:http://blog.csdn.net/seu_calvin/article/details/51404589 0. 前言 Java虚拟机 ...
分类:
编程语言 时间:
2018-03-02 12:29:24
阅读次数:
216