【面试题】Java面试题汇总(无解答)

此内容会持续补充。。。

基础

  1. short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?
  2. String str=”aaa”,与 String str=new String(“aaa”)一样吗?
  3. String 和 StringBuilder、StringBuffer 的区别?
  4. Sring最大能存多大内容?
  5. 重载和重写的区别
  6. 构造方法能不能重写?能不能重载?
  7. 数组实例化有几种方式?
  8. Java 中各种数据默认值
  9. Object 类常用方法有那些?
  10. java 中是值传递还是引用传递?
  11. 形参与实参区别
  12. 内部类与静态内部类的区别?
  13. Static 关键字有什么作用?
  14. final 在 java 中的作用,有哪些用法?
  15. Char 类型能不能转成 int 类型?能不能转化成 string 类型,能不能转成 double 类型
  16. 讲下 java 中的 math 类有那些常用方法?
  17. 什么是拆装箱?
  18. 一个 java 类中包含那些内容?
  19. 针对浮点型数据运算出现的误差的问题,你怎么解决?
  20. 面向对象的特征有哪些方面?
  21. 普通类与抽象类有什么区别?
  22. 什么是接口?接口有什么特点?为什么需要接口?
  23. 抽象类和接口的区别?
  24. 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?
  25. 访问修饰符 public,private,protected,以及不写(默认friendly) 时的区别?
  26. Hashcode 的作用
  27. 深拷贝和浅拷贝的区别是什么?
  28. JDBC 操作的步骤
  29. 什么时候用 assert
  30. 数组有没有 length()这个方法? String 有没有 length()这个方法
  31. 用最有效率的方法算出 2 乘以 8 等于几?
  32. 一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?

集合

  1. ArrayList 和 linkedList 的区别
  2. HashMap 排序
  3. Collection 包结构,与 Collections 的区别
  4. 说说 List,Set,Map 三者的区别
  5. 并发集合和普通集合如何区别?
  6. Map 有什么特点
  7. 集合类存放于 Java.util 包中, 主要有几 种接口
  8. 什么是 list 接口
  9. 说说 ArrayList(数组)
  10. Vector( 数组实现、 线程同步)
  11. 说说 LinkList(链表)
  12. 什么 Set 集合
  13. HashSet( Hash 表)
  14. 什么是 TreeSet(二叉树)
  15. List 和 Map、Set 的区别?
  16. 数组和链表分别比较适合用于什么场景,为什么?
  17. 说说 ConcurrentHashMap
  18. Java 中 ArrayList 和 LinkedList 区别?
  19. TreeMap(可排序)
  20. 请用两个队列模拟堆栈结构?
  21. Map 中的 key 和 value 可以为 null?
  22. 数据结构基础之双向链表
  23. HashMap 的底层实现
  24. ConcurrentHashMap 和 Hashtable 的区别
  25. 说出 ArrayList,Vector,LinkedList 的存储性能和特性
  26. 你所知道的集合类都有哪些?主要方法?
  27. HashMap 原理,java8 做了什么改变
  28. poll()方法和 remove()方法的区别?
  29. 写一段代码在遍历 ArrayList 时移除一个元素

异常

  1. Java 中异常分为哪两种?
  2. 异常的处理机制有几种?
  3. 如何自定义一个异常
  4. try catch fifinally,try 里有 return,finally 还执行么?
  5. Excption 与 Error 包结构及区别
  6. Thow 与 thorws 区别
  7. final、finally、finalize 的区别?
  8. 说出最常见的 5 个 RuntimeException?
  9. 在 Java 异常处理的过程中,你遵循的那些最好的实践是什么?
  10. 你遇到过 OutOfMemoryError 错误嘛?你是怎么搞定的?

IO

  1. Java 中 IO 流?
  2. 字节流如何转为字符流?
  3. 常用 io 类有那些
  4. IO模型有哪些
  5. 阻塞 IO 模型
    a. 读取数据时一直等待数据准备完毕
  6. 字节流和字符流的区别?
  7. 多路复用 IO 模型
  8. 如何实现对象克隆?
  9. 异步 IO 模型
  10. 什么是 java 序列化,如何实现 java 序列化?
  11. NIO 的缓冲区
  12. 面向 Stream 和面向 Buffer
  13. Channel
  14. NIO 和 IO 对应用的设计有何影响
  15. Selector
  16. Java IO 与 NIO 的区别
  17. 字节流与字符流的区别
  18. 非阻塞 IO 模型
  19. 信号驱动 IO 模型
  20. NIO 的非阻塞
  21. Buffer

反射

  1. 什么是反射?
  2. Java 反射创建对象效率高还是通过 new 创建对象的效率高?
  3. 哪里会用到反射机制?
  4. 反射机制的优缺点?
  5. 实现 Java 反射的类:
  6. 动态代理是什么?有哪些应用?
  7. Java 反射 API
  8. 获取 Class 对象有几种方法
  9. 反射的实现方式
  10. 反射使用步骤(获取 Class 对象、调用对象方法)

序列化

  1. 什么是 java 序列化?
  2. Serializable 实现序列化
  3. 如何实现 java 序列化?
  4. 哪些变量不会被序列化?
  5. 序列化作用
  6. 序列化场景

注解

  1. 4 种标准元注解是哪四种?
  2. 什么是注解?他们的典型用例是什么?
  3. 从标准库中描述一些有用的注解。
  4. 注解原理
  5. 可以从注解方法声明返回哪些对象类型?
  6. 哪些程序元素可以注解?
  7. 什么是重复注解?
  8. 怎么能检索注解?这与保留政策有何关系?
  9. 是否可以扩展注解?

并发

  1. 什么是线程?
  2. 继承 Thread 类
  3. 如何在 java 中实现线程
  4. ExecutorService、 Callable、 Future 有返回值线程
  5. 实现多线程 Thread 和 Runnable 区别?
  6. 4 种线程池:单线程,计划线程,固定线程,可缓存线程
  7. 解释 java 中的 volatile 变量:直接操作内存,数据立刻展示
  8. notify()和 notifyAll()有什么区别?:通知一个线程,通知全部全程
  9. sleep()和 wait() 有什么区别?:睡眠一定实践自动唤醒;等待需要其他线程通知唤醒。
  10. volatile 是什么?可以保证有序性吗?只保证可见性,不保证有序性
  11. Thread 类中的 start() 和 run() 方法有什么区别?开始进入准备实践,运行即刻执行。
  12. 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
  13. 共享锁和独占锁
  14. Java 中 interrupted 和 isInterruptedd 方法的区别?
  15. Java 中 synchronized 和 ReentrantLock 有什么不同?
  16. 有三个线程 T1,T2,T3,如何保证顺序执行?
  17. SynchronizedMap 和 ConcurrentHashMap 有什么区别?
  18. 什么是线程安全
  19. 重量级锁(Mutex Lock)
  20. Java 线程池中 submit() 和 execute()方法有什么区别?
  21. 偏向锁
  22. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗 synchronized 关键字最主要的三种使用方式
  23. 什么是线程安全?Vector 是一个线程安全类吗?
  24. Java 中实现多线程有几种方法
  25. 实现 Runnable 接口。
  26. 如何停止一个正在运行的线程
  27. 线程基本方法
  28. 线程让步(yield)
  29. 线程唤醒(notify)

  1. 锁有哪些分类
  2. Java 中 synchronized 和 ReentrantLock 有什么不同?
  3. 共享锁和独占锁
  4. 自旋锁和自适应自旋
  5. 偏向锁 轻量级锁 重量级锁(Mutex Lock)

JVM

  1. JVM 运行时内存模型
  2. 64 位 JVM 中,int 的长度是多数?
  3. 新生代、老年代、永久代
  4. 32 位和 64 位的 JVM,int 类型变量的长度是多数?
  5. JAVA8 与元数据
  6. 分代收集算法
  7. 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?
  8. 分代收集算法
  9. JRE、JDK、JVM 及 JIT 之间有什么不同?
  10. 解释 Java 堆空间及 GC?
  11. JVM 内存区域
  12. JAVA 强引用、软引用、弱引用、虚引用
  13. 虚拟机栈(线程私有)
  14. 分代收集算法
  15. 你能保证 GC 执行吗?
  16. 怎么获取 Java 程序使用的内存?堆使用的百分比?
  17. 在老年代-标记整理算法
  18. 描述一下 JVM 加载 class 文件的原理机制
  19. Serial Old 收集器(单线程标记整理算法)
  20. 堆(Heap-线程共享) -运行时数据区
  21. G1 收集器
  22. JVM 类加载机制
  23. 堆和栈的区别
  24. 什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?
  25. Parallel Old 收集器(多线程标记整理算法)
  26. 垃圾收集算法
  27. Minor GC 与 Full GC 分别在什么时候发生?
  28. 你知道哪些 JVM 性能调优
  29. 说一下 JVM 的主要组成部分及其作用?
  30. 队列和栈是什么?有什么区别?

网络

  1. HTTP 响应码 301 和 302 代表的是什么?有什么区别?
  2. 简单说一下http协议?
  3. HTTP与HTTPS的区别?
  4. HTTP协议下客户端请求报文是什么?
  5. HTTP协议服务器响应报文有哪些?
  6. HTTP协议中的请求方法有哪些?
  7. 常见的HTTP状态码有哪些?
  8. forward 和 redirect 的区别?
  9. 简述 tcp 和 udp的区别?
  10. TCP 为什么要三次握手,两次不行吗?为什么?
  11. 说一下 TCP 粘包是怎么产生的?
  12. OSI 的七层模型都有哪些?
  13. GET和POST的区别?
  14. 如何实现跨域?
  15. 什么是WebSocket?
  16. WebSocket与HTTP的关系
  17. WebSocket与Socket的关系
  18. WebSocket示例
posted @ 2023-03-11 16:22  CryDongle  阅读(2)  评论(0编辑  收藏  举报  来源