"Java大厂200面试题总结及附答案,加油圆梦大厂!"
需积分: 5 56 浏览量
更新于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一般用于某个资源的访问路径已经变了。
2022-02-18 上传
2023-05-08 上传
2023-03-21 上传
2023-01-15 上传
2021-03-19 上传
2023-10-26 上传
2023-04-13 上传
CITART
- 粉丝: 496
- 资源: 499
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析