JAVA 面试题 TOP100
1. 说说JAVA中的几种基本类型,各占用多少字节? 2. String能被继承吗?为什么? 3. 说说String, Stringbuffer, StringBuilder 的区别? 4. 说一下ArrayList 和 LinkedList 有什么区别? 5. HashMap 是线程安全的吗,并发下使用的 Map 是什么? 6. 说一下讲讲类的实例化顺序过程? 7. 深入理解Java类实例化时jvm执行顺序 8. 说一下抽象类和接口的区别? 类可以继承多个类么?接口可以继承多个接口么?类可以实现多个接口么? 9. 说一下继承和聚合的区别是什么? 10. 说说什么是java的反射? 11. 反射机制常用的api有哪些? 12. 说说Java反射机制有哪常用功能? 13. 讲一下java静态代理和动态代理分别是什么? 14. Class.forName 和 ClassLoader 区别是什么? 15. 说一下动态代理实现的几种方式? 16. 说一下java 的final关键字? 17. 实现单例模式有哪些常见方法? 18. 单例模式(懒汉模式)线程安全问题 19. 如何在父类中为子类自动完成所有的 hashcode 和 equals 实现?这么做有何优劣 20. 说说java的访问修饰符都有哪些? 21. 说一下java 深拷贝和浅拷贝区别? 22. 说说error 和 exception 的区别?CheckedException,RuntimeException 的区别? 23. 说下java的Exception的种类?经常遇到的都有哪些? 24. 说出5个常见的运行时异常? 25. java泛型的存在是用来解决什么问题? 26. 说说hashcode和equals方法有什么关系? 27. 两个不相等对象的 hashcode 是否可能相同? 28. 说说JDK 和 JRE 有什么区别 29. 说说 == 和 equals 的区别是什么 30. 说一下java 中的 Math.round(-1.5) 等于多少 31. 手撕 一个字符串反转方法 32. 说说 String 类的常用方法都有那些? 33. 抽象类必须要有抽象方法吗? 34. List、Set、Map 之间的区别是什么? 35. 如何实现数组和 List 之间的转换? 36. ArrayList 和 Vector 的区别是什么? 37. Array 和 ArrayList 有何区别? 38. 在 Queue 中 poll()和 remove()有什么区别? 39.  哪些集合类是线程安全的? 40. 迭代器 Iterator 是什么? 41. Iterator 怎么使用?有什么特点? 42. Iterator 和 ListIterator 有什么区别? 43. synchronized 和 volatile 的区别是什么? 44. 什么情况下会发生栈内存溢出? 45. 简单说说JVM内存模型? 46. 谈谈java的栈和堆的区别? 47. 说一下java堆中的数据分区? 48. 简述一下jvm的gc过程? 49. jvm内存相关常用参数有哪些? 50. 简单说下jvm的垃圾回收器有哪些? 51. jvm垃圾回收GC Root是什么? 52. 业务中常用的gvm参数有哪些? 53. 简单说说g1 和 cms 区别? 54. 请解释如下 jvm 参数的含义 55. 32位系统jvm堆内存如下哪一个设置是最大且有效的? 56. 简单讲讲 tomcat 结构,以及其类加载器流程 57. tomcat 如何调优,涉及哪些参数。 58. java 中 IO 流分为几种? 59. 简单说下Spring 加载流程? 60. 讲讲 Spring 事务的传播属性? 61. Spring 如何管理事务的?

讲一下java静态代理和动态代理分别是什么?

  1. 代理分为静态代理和动态代理两种。
  2. 静态代理,代理类需要自己编写代码写成。
  3. 动态代理,代理类通过 Proxy.newInstance() 方法生成。
  4. 不管是静态代理还是动态代理,代理与被代理者都要实现两样接口,它们的实质是面向接口编程。
  5. 静态代理和动态代理的区别是在于要不要开发者自己定义 Proxy 类。
  6. 动态代理通过 Proxy 动态生成 proxy class,但是它也指定了一个 InvocationHandler 的实现类。
  7. 代理模式本质上的目的是为了增强现有代码的功能。