Java 知识小集 第 1 期

1. JVM 永久代中会发生垃圾回收么(JDK 8 之前)?

答案:会。
永久代是 Hotspot 对 JVM 规范中方法区的实现,方法区用于存储类信息、常量池、静态变量、即时编译器编译后的代码等数据。虽然 Java 虚拟机规范中并没有要求虚拟机在方法区实现垃圾回收,但在 Hotspot 虚拟机中永久代是存在垃圾回收的。永久代的垃圾收集主要回收两部分内容:废弃常量和无用的类。回收废弃常量与回收Java堆中的对象非常类似。永久代的垃圾回收和老年代的垃圾回收是绑定的,一旦其中一个区域被占满,这两个区都要进行垃圾回收。
在 JDK 8 中,永久代被彻底移除,用一块与堆不相连叫做元空间的本地内存代替。那么元空间中会发生垃圾回收吗?答案也是会的。元空间使用的本地内存大小达到设定的 MaxMetaspaceSize 或者默认的MetaspaceSize (12Mbytes on the 32bit client VM and 16Mbytes on the 32bit server VM with larger sizes on the 64bit VMs)值时,就会触发 GC 来回收失效的 classloader 和类信息。

2. 什么是准确式 GC?

即虚拟机可以知道内存某个位置的数据具体是什么,这样虚拟机才能在垃圾收集的时候准确判断堆上的数据是否还能被使用。

3. 可作为 GC Roots 的节点有哪些?

可作为 GC Roots 的节点主要在全局性的引用(例如常量或类静态属性)与执行上下(例如帧栈中的本地变量表)中。

4. Java 对象的回收时机

首先 JVM 的 GC 不是实时运行的,而是被触发的,具体的触发条件由 JVM 决定,一般当 JVM 的堆区内存不够时,GC 开始运行。
对象的回收条件:当对象没有被引用变量所引用时,对象就处于可以被 GC 回收的状态,当 GC 触发时,该对象就会被回收。

5. 什么是方法签名method signature

由方法名和参数类型组成,不包括返回类型。
举例:calculateAnswer(double, int, double, double)

6. 线程控制、线程同步和线程通讯

  • 线程控制:sleep(), yield(), join()
  • 线程同步:volatile ,synchronized
  • 线程通信:wait() , notify()

7. 线程和进程的区别

The typical difference is that threads (of the same process) run in a shared memory space, while processes run in separate memory spaces.

8. 进程间通信的方式

  • Socket:
    One option is to use sockets for interprocess communication. One program can act as the server program that listens on a socket connection for input from the client program. The client program connects to the server with a socket. Once the socket connection is established, either program can send or receive information.
  • Stream files:
    Another option is to use stream files for communication between programs. To do this, use the System.in, System.out, and System.err classes.
  • 内存映射
    进程通过把一个共享的文件映射到自己的进程地址空间。
  • 消息队列
    对消息队列有写权限的进程可以向消息队列中添加新的消息,对消息队列有读权限的进程可以从消息队列中读走新的消息。

9. HashMap, TreeMap 和 LinkedHashMap 的区别

  • HashMap 中的元素不保持顺序
  • TreeMap 中的元素根据 key 的值按升序排列
  • LinkedHashMap 中的元素保持插入时的顺序

10. 什么是帧栈(Stack Frame)

每个线程运行的时候都会在虚拟机栈中开辟一个私有的虚拟机栈。当对象的方法调用的时候就会在虚拟机栈中创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成就对应着一个栈帧在虚拟机中入栈道出栈的过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容