Java面试题一

基础篇

Java基础

  • 面向对象的特征:继承、封装和多态
  • final、finally和finallize的区别
  • Exception、Error、运行时异常与一般异常有何异同
  • 请写出5种常见的RuntimeException
  • int和Integer有什么区别,Integer的值缓存范围
  • 包装类、装箱和拆箱
  • String、StringBuilder、StringBuffer
  • 重载和重写
  • 抽象类和接口有什么区别
  • 说说反射的用途及实现
  • 说说自定义注解的场景及实现
  • HTTP请求的GET和POST方式的区别
特征 GET方法 POST方法
提交数据类型 文本 文本、二进制文件
提交数据长度 不超过255个字符 没有限制
提交数据可见性 作为URL地址的一部分显示在浏览器地址栏 作为请求的消息体,不可见
提交数据缓存 缓存在浏览器URL历史状态中 不会被浏览器缓存
  • Session和Cookie的区别
  • 列出自己常用的JDK包
  • MVC设计思想
  • equals与==的区别
  • hashCode和equals方法的区别与练习
  • 什么是Java序列化和反序列化,如何实现Java序列化?或者请解释Serializable接口的作用
  • Object类常见的方法,为什么wait()、notify()会放在Object里边?
  • Java的平台无关性如何体现出来的
  • JDK和JRE的区别
  • Java8有哪些新特性

    Java常见集合

  • List、Set和Map的区别
  • Set和hashCode以及equals方法的联系
  • ArrayList和LinkedList的区别
  • ArrayList和Vector的区别
  • HashMap和HashTable的区别
  • HashMap和CurrentHashMap的区别
  • HashMap的工作原理及代码实现,什么时候用到红黑树
  • 多线程情况下HashMap死循环的问题
  • HashMap出现Hash Dos攻击的问题
  • ConcurrentHashMap的工作原理及代码实现,如何统计所有的元素个数
  • 手写简单的HashMap
  • 看过哪些Java集合类的源码

    进程和线程

  • 线程和进程的概念、并行和并发的概念
  • 创建线程的方式及实现
  • 进程间通信的方式
  • 说说CountDownLatch、CyclicBarrier原理和区别
  • 说说Semaphore原理
  • 说说Exchanger原理
  • ThreadLocal原理分析,ThreadLocal为什么会出现OOM,出现的深层次原理

to be continued…