文章目录
JAVA基础
- 面向对象有哪些特征?
- JDK与JRE的区别是什么?
- Java有哪几种基本数据类型?
- == 和equals比较有什么区别?
- public,private,protected,默认的区别什么?
- short s1=1; s1+=1;有错吗? s1=s1+1; 有错吗?
- float f = 1.9; 有错吗?
- &和&&有什么区别?
- 2*8最有效率的计算方法是什么?
- 怎么理解值传递和引用传递?
- Java到底是值传递还是引用传递?
- 一个".java"源文件的类有什么限制?
- final关键字有哪些用法?
- final、finally、finalize有什么区别?
- void和Void有什么区别?
- 为什么byte的取值范围为-128~127?
- char类型可以存储中文汉字吗?
- 重载和重写有什么区别?
- 构造器可以被重写和重载吗?
- Java中的断言(assert)是什么?
- Error和Exception有哪些区别?
- Java中常见的异常有哪些?
- Java中常见的运行时异常有哪些?
- 运行时异常和受检异常有什么区别?
- 什么时候会发生空指针异常?
- 你知道有哪些避免空指针异常的方法?
- throw和throws有什么区别?
- try里面return,finally还会执行吗?
- int和Integer有什么区别?
- 什么是包装类型?有什么用?
- 什么是自动装箱和拆箱?
- 你怎么理解Java中的自动类型转换和强制类型转换?
- 你怎么理解Java中的类型提升?
- 你怎么理解强、软、弱、虚引用?
- switch是否能用在long上?
- switch case支持哪几种数据类型?
- String的底层实现是怎样的?
- String是可变的吗?为什么?
- 为什么不能用 + 拼接字符串?
- StringBuffer和StringBuilder有什么区别?
- StringJoiner有什么用?
- 普通类和抽象类有什么区别?
- 静态内部类和普通内部类有什么区别?
- 静态方法可以直接调用非静态方法吗?为什么?
- 静态变量和实力变量有什么区别?
- 内部类可以访问其外部类的成员吗?
- 接口和抽象类有什么区别?
- 接口里面可以写方法实现吗?
- Java中的UUID是什么?
- Java类初始化顺序是怎样的?
- hashCode有什么作用?
- hashCode和identityHashCode的区别?
- 什么是Hash冲突?
- Java常用的元注解有哪些?
- Java泛型中的T、R、K、V、E分别指什么?
- Java金额计算怎么避免精度丢失?
- Java语法糖是什么意思?
- transient关键字有什么作用?
- 如何实现对象克隆?
- 对象克隆浅拷贝和深拷贝有什么区别?
- Java反射机制有什么作用?
- Java反射机制有什么优缺点?
- 什么是宏变量和宏替换?
- 什么是逃逸分析?
- 什么是伪共享?有什么解决方案?
- Java 8新增了哪些特性?
- Java 8中的Lambda表达式有什么作用?
- Java 8中的Optional类有什么作用?
- Java 8中的@Repeatable注解有什么作用?
- Java 8中的方法引用是指什么?
- Java 8中的Stream有什么作用?
- Java 8中的函数式编程怎么用?
- 如何获取一个Stream流对象?
- 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。
集合
- 说说常见的集合有哪些?
- Comparable和Comparator接口的区别?
- 集合使用泛型有什么优点?
- List、Set、Map之间的区别是什么?
- 为什么Map接口不继承Collection接口?
- 常用的线程安全的Map有哪些?
- HashMap和Hashtable有什么区别?
- HashMap和TreeMap怎么选?
- HashMap的数据结构是什么?
- HashMap在JDK 8中有哪些改变?
- HashMap是怎么解决Hash冲突的?
- HashMap是怎么扩容的?
- HashMap如何实现同步?
- 有没有可能2个不相等的对象有相同的hashcode。
- ConcurrentHashMap的数据结构是什么?
- ArrayList是线程安全的吗?
- 常用线程安全的List集合有哪些?
- 循环删除List集合可能会发生什么异常?
- ArrayList和LinkedList有什么区别?
- ArrayList和Vector有什么区别?
- 什么是CopyOnWriteArrayList?
- 什么是fail-safe?
- 什么是fail-fast?
- fail-fast和fail-safe有什么区别?
- HashSet的底层实现原理是什么?
- 怎么确保一个集合不能被修改?
JVM
- JVM是什么?
- JVM内存区域分类有哪些?
- 堆和栈的区别是什么?
- JVM那块内存区域不会发生内存溢出?
- 什么情况下会发生栈内存溢出?
- 对象都是在堆上分配的吗?
- 常用的JVM参数有哪些?
- 什么是类加载器?
- 类加载器的分类及作用?
- 什么是双亲委派模型?
- 为什么要打破双亲委派模型?
- 可以自定义一个java.lang.String吗?
- 什么是JVM内存模型?
- JVM内存模型和JVM内存结构有什么区别?
- 什么是指令重排序?
- 内存屏障是什么?
- 什么是Happens-Before原则?
- GC是什么?为什么需要GC?
- 什么是MonitorGC和FullGC?
- 一次完整的GC流程是怎样的?
- 常用的垃圾收集器有哪些?
- 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。
- 什么是内存泄漏?
- 为什么会发生内存泄漏?
- 如何防止内存泄漏?
- 常用的JVM问题定位工具有哪些?
- 你们线上应用的JVM参数有哪些。
- g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择。
- 怎么打出线程栈信息。
- 请解释如下jvm参数的含义:
-server -Xms512m -Xmx512m -Xss1024K
-XX:PermSize=256m -XX:MaxPermSize=512m -
XX:MaxTenuringThreshold=20XX:CMSInitiatingOccupancyFraction=80 -
XX:+UseCMSInitiatingOccupancyOnly。
WEB
- http和https有什么区别?
- get和post有什么区别?
- foward和redirect有什么区别?
- 什么是Servlet?
- 描述一下Servlet的生命周期
- Servlet是单例还是多例?支持异步处理吗?
- Servlet和JSP有什么区别和联系?
- JSP有哪些常用内置对象?
- JSP有哪几种作用域?
- Cookie和Session有什么区别?
- 什么是跨域,有哪些解决方案?