java经典面试题及答案,java面试题选择题
一、String、StringBuffer与StringBuilder的区别
(相关教程推荐:java面试题)
String的值是不可变的,这使得对String的每个操作都会生成一个新的String对象。
类StringBuffer和StringBuilder的对象可以多次修改,不会生成新的未使用的对象。
速度为:stringbuilder字符串缓冲区字符串
StringBuilder类和StringBuffer最大的区别是StringBuilder的方法不是线程安全的。
看图:
如何解决写爬虫IP受阻的问题?立即使用。
(推荐教程:java入门)
二、所有的类都继承于object类,你用过的object类的直接子类有哪些,object类常用的方法有哪些?
布尔代数学体系的
性格;角色;字母
班级
类加载器
编译程序
列举型别
线
系统
线
对象类的常用方法
toString();
equals();
hashCode();
三、什么是泛型,怎么使用的,有什么好处?
它是一种特殊的类型,将类型定义的工作延迟到创建对象或调用方法的时候。
将类型参数化,并将类型作为参数传递。它是一种支持多态的设计模式,比如各种容器。
好处:
运行时问题提前到编译期,避免了强制类型转换。
四、java对象序列化为什么要使用serialversionUID?
1.用什么来序列化对象?
将对象转换成字节序列的过程称为对象序列化。
将字节序列还原到对象的过程称为对象的反序列化。
2.对象的序列化有两个主要目的:
(1)对象的字节序列被永久保存到硬盘上,通常存储在一个文件中;
(2)在网络上传输对象的字节序列。
3.为什么使用SerialversionUID?
如果用户自己没有声明serialVersionUID,默认情况下接口会生成一个serialVersionUID。如果一个新的字段被添加到对象中,系统分配的serialversionUID将会改变,导致反序列化异常。
(视频教程推荐:java视频教程)
五、反射的优缺点
1.优势
反射提高了Java程序的灵活性和扩展性,降低了耦合性,提高了适应性。它允许程序创建和控制任何类的对象,而无需对目标类进行硬编码。
反射在其他通用语言中是没有的,比如C,C,Fortran或者Pascal。
Java反射技术有着广泛的应用,如软件测试、JavaBean等。
许多流行的开源框架,如Struts、Hibernate和Spring,都在它们的实现中采用了这种技术。
2.不足之处
(1)性能优先性能开销
包括一些动态类型,所以JVM无法优化这些代码。因此,反射操作的效率远低于非反射操作的效率。我们应该避免在频繁执行的代码或具有高性能要求的程序中使用反射。
(2)安全限制
使用反射技术要求程序必须在没有安全限制的环境中运行。如果一个程序必须在有安全限制的环境中运行,比如Applet,那么这就是一个问题。
(3)内部构件的内部暴露
因为反射允许代码执行一些正常情况下不允许的操作(比如访问私有属性和方法),所以使用反射可能会导致意想不到的副作用。代码中有一个功能错误,降低了可移植性。代码反射破坏了抽象,所以当平台改变时,代码的行为也可能改变。以上是java经典面试题(三)的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。