2020最新Java面试题

2020最新Java面试题

研发了这么多年,天天都在搬砖,斗转星移,从一个被面试者,成为了一个面试者。总感受本身在面试的时候提出的问题没有一个由浅入深的感受,老是东一个问题,西一个问题的,因此整理一些面试问题,首先是给本身扫盲,丰富本身的技术栈。其次做为一个下次被面试的准备。
若是文章有错误,但愿指正。java

将围绕下图进行面试题总结和整理:
在这里插入图片描述web

Java基础

1.基本数据类型,占用字节?
在这里插入图片描述
2. Integer c =128 , Integer d =128,c==d,输出的是什么?
输出的是false,由于128大于IntegerCache的最大值,因此须要从新建立对象。
在Integer内部有一个静态类面试

private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];

        static {
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
                try {
                    int i = parseInt(integerCacheHighPropValue);
                    i = Math.max(i, 127);
                    // Maximum array size is Integer.MAX_VALUE
                    h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
                } catch( NumberFormatException nfe) {
                    // If the property cannot be parsed into an int, ignore it.
                }
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);

            // range [-128, 127] must be interned (JLS7 5.1.7)
            assert IntegerCache.high >= 127;
        }

        private IntegerCache() {}
    }

参考资料: Integer缓存池(IntegerCache)及整型缓存池.缓存

3.String能被继承吗?为何?
不能被继承,由于被final修饰,主要目的就是保证String是不可变(immutable)。不可变就是第二次给一个String 变量赋值的时候,不是在原内存地址上修改数据,而是从新指向一个新对象,新地址。下面看String类源码如何保证是不可变的:svg

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

参考资料: 【JAVA基础】String类为何是final的.spa

4.谈谈你对final的理解?
修饰类,修饰方法,修饰变量。.net

5.接口能够有方法体吗?
能够有方法体,前提是使用default修饰,这个是1.8的新特性。code

6.JDK的新特性?
本身去看吧
参考资料: 【JAVA基础】String类为何是final的.orm

7.Java 的反射机制?
经过反射,该类对咱们来讲是彻底透明的,想要获取任何东西均可以。xml

……未完待续

JVM

JVM 主要从 内存划分,垃圾回收,JMM模型几个方面

1.JVM内存划分?
在这里插入图片描述