八维教育IT培训学校

八维教育IT培训学校七大校区

首页 > 新闻资讯 > >

IT技术面试题资料|java知识点合集(二)

发布时间:2023-02-08 15:11:18 点击:

  一. new String("a") + new String("b") 会创建几个对象?

  对象1:new StringBuilder()

  对象2:new String("a")

  对象3:常量池中的"a"

  对象4:new String("b")

  对象5:常量池中的"b"

  深入剖析:StringBuilder中的toString():

  对象6:new String("ab")

  强调一下,toString()的调用,在字符串常量池中,没有生成"ab"
java知识点

  二. 普通类和抽象类有哪些区别?

  抽象类不能被实例化;

  抽象类可以有抽象方法,只需申明,无须实现;

  有抽象方法的类一定是抽象类;

  抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;

  抽象方法不能声明为静态、不能被static、final修饰。
java知识点

  三. 什么是反射?

  所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。

  在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。

  四. 什么是Java序列化?什么情况下需要序列化?

  序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。

  序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的,使用一个输出流(FileOutputStream)来构造一个ObjectOutputStream对象,接着使用ObjectOutputStream对象的writeObejct(Object object)方法就可以将参数的obj对象到磁盘,需要恢复的时候使用输入流。
java知识点

  序列化是将对象转换为容易传输的格式的过程。

  例如,可以序列化一个对象,然后通过HTTP通过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从流中心构造成对象。

  一般程序在运行时,产生对象,这些对象随着程序的停止而消失,但我们想将某些对象保存下来,这时,我们就可以通过序列化将对象保存在磁盘,需要使用的时候通过反序列化获取到。

  对象序列化的最主要目的就是传递和保存对象,保存对象的完整性和可传递性。

  譬如通过网络传输或者把一个对象保存成本地一个文件的时候,需要使用序列化。