"Java大厂200面试题总结及附答案,加油圆梦大厂!"
需积分: 5 44 浏览量
更新于2024-01-04
收藏 1.66MB DOCX 举报
final修饰类表示该类不能被继承;final修饰方法表示该方法不能被子类重写;final修饰变量表示该变量是一个常量,只能被赋值一次,赋值后数值不可改变;final修饰参数表示该参数是只读的,不能在方法内部被修改。
4、抽象类和接口有什么区别?
(1)抽象类可以有普通方法的实现,接口不可以有普通方法的实现;
(2)一个类只能继承一个抽象类,但是可以实现多个接口;
(3)抽象类中的成员变量可以有各种修饰符,而接口中的成员变量只能是public static final的;
(4)抽象类中可以包含构造方法,接口中不能包含构造方法。
5、String、StringBuffer、StringBuilder有什么区别?
String是不可变的字符序列,每次对String进行修改,都会生成一个新的String对象,消耗更多的内存,效率比较低;
StringBuffer和StringBuilder是可变的字符序列,对它们进行修改并不会生成新的对象,可以在原有对象的基础上进行修改,节省内存,StringBuffer是线程安全的,而StringBuilder是非线程安全的。
6、重载和重写的区别?
(1)方法名称相同,参数列表不同(个数不同或类型不同或顺序不同);
(2)重载是一个类中多态性的表现,同名方法可以有不同的参数列表;
(3)重写是子类继承父类后对父类方法的重新定义;
(4)重写方法的访问修饰符不能比被重写方法的访问修饰符更严格;
(5)重写方法不能抛出比被重写方法更宽泛的异常;
7、Java 中的内存区域划分是什么?
Java 的内存区域划分包括了方法区(JVM 机器级的 setup),堆,栈,程序计数器和本地方法栈。方法区用来存放 class、静态变量、常量等,堆用来存放对象,栈是线程私有的,存放基本数据类型和对象的引用,程序计数器是用来标记线程执行的位置,本地方法栈是执行 native 方法时使用的内存区域。
8、什么情况下会发生内存泄漏?
(1)对象被错误的保留;(2)数据结构中的指针被意外的分配;(3)一些类加载器被保留;(4)线程被不正确的阻塞。内存泄漏的解决方法:(1)查明泄漏的原因;(2)删除泄漏对象的引用;(3)使相应的位置清零;(4)等待垃圾回收;
9、反射的作用是什么?
反射是指在Java运行时环境中,对程序的的类的属性、方法等进行访问和操作的机制。通过反射可以在程序运行时获取类的信息,如类的构造器、方法、属性,通过反射还可以在运行时调用对象的方法,对类的字段进行赋值和取值。
10、Servlet中forward和redirect的区别是什么?
forward和redirect都是服务端跳转的方式,forward是服务器内部进行页面跳转,浏览器地址栏的URL不会改变,request和response都是同一个对象实例;redirect是客户端跳转,服务器会告诉浏览器重新向指定的url发起请求,这个过程是两个独立的请求,request和response不同。forward一般用于表单数据重复提交问题,redirect一般用于某个资源的访问路径已经变了。
281 浏览量
153 浏览量
2024-01-17 上传
2021-03-19 上传
2023-10-26 上传
2023-04-13 上传
CITART
- 粉丝: 501
最新资源
- Qt多类型输入对话框库InputFormDialog教程
- JavaScript日历组件的使用与自定义渲染
- 纯CSS实现红色高亮效果的网站导航菜单
- VK视频播放一次后自动停止的CRX插件功能介绍
- C#与SQL SERVER图书管理系统开发教程
- 深入理解JavaScript实用技巧与实战演练
- Termius CLI:跨平台SSH客户端命令行工具
- 剪影效果的Flash乐队演奏动画资源
- Web出版物注释扩展规范的资料库与协作指南
- 全面解析stm32驱动OLED显示屏技术资料
- 深入研究DALC人工智能技术的JupyterNotebook实践
- 打造简洁优雅的圆形Android菜单界面
- microlog:Node.js微服务器端日志记录器的使用和特性
- Three.js进阶指南:掌握BufferGeometry的贴图属性
- 探索旧Macintosh ROM文件:Macintosh-ROMs-master
- 全面解析CRMEB知识付费源码v1.2版功能特点