面试
文章平均质量分 80
秋雨叶落
一个软件工程的大学生,编程萌新上路。坚持、努力,朝气蓬勃。
展开
-
秋招面经——上海汉得Java(9.27)
我:假设有A、B两表,通过连接筛选条件得到结果,左连接是:A表与B表的重合部分加上A表未重合的部分;全连接是:AB两表重合的部分,加A表未重合的部分、加B表未重合的部分。我:首先对象创建是先存放在新生代中,然后经历gc没有被回收会晋升到生存者区,然后经历gc还没被回收且达到晋升条件,那就晋升到老年代,如果当中被gc回收了,那就结束了。equals只能用于比较两个对象是否相等,在没有重写equals方法时,和==相同,但在String类中重写了equals方法,是比较两者中的值是否相等。原创 2022-10-15 16:18:27 · 882 阅读 · 0 评论 -
java面试——JVM(内存结构、垃圾回收、内存溢出)
对于JVM内存配置参数:-Xmx10240m -Xms10240m -Xmn5120m -XX:SurvvorRatiO=3具最小内存值和Survivor区总大小分别是?所谓的双亲委派,就是指优先委派上级类加载器进行加载,如果上级类加载器。GC的目的在于对无用的对象内存自动释放,减少内存碎片、加快分配速度。虚拟机栈:存储方法内的局部变量、方法参数、线程。除程序计数器外,都有可能产生内存溢出。方法区与永久代、元空间之间的关系。说说GC和分代回收算法。方法区:存放类的信息。类加载过程、双亲委派。原创 2022-09-19 11:17:54 · 235 阅读 · 0 评论 -
Java面试——单例模式(5种写法、可能存在的问题)
破坏单例:反射破坏单例、反序列化破坏单例(单例实现了序列化接口)、Unsafe破坏单例。反射破坏原理:获取单例的类名,用反射机制强行访问构造方法,生成新的对象。防止反射破坏:在构造方法中判断是否已经生成实例,如有则抛出异常。构造方法私有,提供一个静态的成员变量,提供公共静态方法访问。防止:写一个特殊方法 readResolve。枚举类单例可以防止反射破坏、反序列化破坏。定义:一个类只有一个实例。饿汉式:一开始就生成实例。懒汉式:需要时才生成实例。懒汉式多线程时会有问题。不用考虑线程安全问题。原创 2022-09-17 22:14:33 · 251 阅读 · 0 评论 -
Java面试——并发问题(sleep、synchronized、volatile等)
1.8之前ConcurrentHashMap使用了Segment+数组+链表的结构,每个Segment对应一把锁,如果多个线程访问不同的Segment,则不会冲突。1.8开始ConcurrentHashMap将数组的每个头节点作为锁,如果多个线程访问的头节点不同,则不会冲突。Hashtable并发度低,整个Hashtable对应一把锁,同一时刻,只能有一个线程操作它。Hashtable初始数组大小是11、扩容阈值是超过3/4,扩容数量是原容量*2+1。3.keepAliveTime 生存时间。原创 2022-09-16 20:27:28 · 435 阅读 · 0 评论