zoukankan      html  css  js  c++  java
  • JVM

     

    JVM的内存模型

    JVM内存模型常考吧,我面了几家都问了。

    1. 线程私有:虚拟机栈,程序计数器,本地方法栈
    2. 线程共享:堆,方法区(JDK1.8之后改为位于直接内存的元空间)
    3. 直接内存

    JVM的GC了解多少

    我主要从触发GC方面回答的:

    MinorGC: new出的对象一般进入到堆空间的新生代的Eden区(对象很大会直接放入老年代),如果此时Eden区已满,触发一次MinorGC,将Eden存活的对象连同ServivorFrom区存活的对象一同复制到ServivorTo区,ServivorFrom和ServivorTo区互换,存活下来的对象年龄+1。

    MajorGC: 默认情况下,如果此时有对象年龄达到15,将晋身到老年代,如果此时导致老年代空间不够,则会触发MajorGC,回收老年代的垃圾对象。

    没有说的太细节,例如MinorGC过程中,如果ServivorTo区空间不够,会直接放入老年区,年龄信息放在对象头部占用4位,所以最大只能是15。GC算法也没提   
     


    操作系统
    进程线程
    分页分段➕虚拟内存➕动态链接静态链接
    Linux内存布局  用户态内核态

    JVM
    如何判断一个对象死亡? 可达性算法三色图  增量更新   oopmap  卡片集
    类加载机制   双亲委派模型   解决问题
    synchronized  锁优化


    Java
    从aop到代理模式  静态代理 动态代理  cglib
    范型擦除
    interrupt方法乐观锁悲观锁

     

     
     

    • CAP 定理说一下,一般选择牺牲哪些特性?(CP, AP)
    • 手撕算法:LeetCode 160
    • 口撕算法:LeetCode 543
    • class,abstract class,interface 区别?
    • 类加载机制(双亲委派模型)

    • GC 大概说一说(说书环节……具体就是背诵《深入理解 Java 虚拟机》)
    • C/C++ 和 golang 了解过吗


      • 一面结束后很快就约了二面,在一面三个小时之后
      1. 自我介绍

      2. 聊项目,主要是 Kafka connect 相关,还提了一下项目中 Redis 的应用场景

      3. Redis 数据结构?

      4. Redis hash 数据结构说一下(提到类似 Java 1.7 的 HashMap)

      5. Java 1.8 之后的 HashMap 结构,为什么要这么设计?

      6. Redis list 底层是什么数据结构?

      7. Java int 和 Integer 区别?使用场景?

      8. final 关键字

      9. 并发编程有实践过吗?说一说乐观锁,Java 的乐观锁底层怎么实现的?

      10. Java 的异常体系(说了一下类/接口的继承结构,免检异常和受查异常的区别这些)

      11. 数据库索引(说了一下 InnoDB,聚簇索引,B+树,还有哈希索引)

      12. B+树索引和哈希索引的区别?

      13. 只走索引就查询到全部数据的这种叫什么?(覆盖索引)

  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/yulianggo/p/13444306.html
Copyright © 2011-2022 走看看