`

JAVA笔试前面基础题汇总(描述篇幅短)

 
阅读更多

 

1、Equals方法和==的区别

equals()方法是用来比较两个字符串值是否相等而==是用来比较对象引用是否相等(也就是是否为同一个对象)

2、Throw Throws的区别

throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常

 

3、在异常捕获时 try catchfinally 中可不可以没有catch语句块。

可以,但try块不能单独执行,后面必须跟catch或者finally、或者两者都有。

 

4、面向对象有哪些特征,你如何理解?

抽象、继承、封装、多态

 

5、  内存的泄露以及溢出是怎么回事?

   内存溢出就是你要求分配的java虚拟机内存超出了系统能给你的,系统不能满足需求,于是产生溢出。

  内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问,该块已分配出来的内存也无法再使用,随着服务器内存的不断消耗,而无法使用的内存越来越多,系统也不能再次将它分配给需要的程序,产生泄露。一直下去,程序也逐渐无内存使用,就会溢出。

 

 

6、  类的加载顺序

   父类静态块---->子类的静态块---->程序的入口(main)---->父类的初始化块---->父类的构造方法---->子类的初始化块------>子类的构造方法

 

7、  一个抽象类是否可以继承一个普通类

可以,但被继承的类必须要有明确的构造方法

 

8、 什么时候用接口?抽象类?

当你写一个类时,可能面临部分代码可能会发生变化  
 
你可以把这些代码封装成(接口或抽象类或基础类中的)一个或多个方法  
  1
、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现  
  2
、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的方法实现,不确定的方法抽象,由实现类部分实现,部分重写(不变就不重写啦)  
  3
、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用写子类啦)

 

 

9、代码的重构:

代码的输入、输出不变,只是改变中间实现代码!

 

 

10、映射是什么

映射是什么?你怎么理解映射?

 

11、字符串相加用“+”和append()的区别

 用“+“号每加一次创建一个对象,比如:字符串常量池中有原字符串:”abc”

       之后要加”de”,加过之后内存中会有”abc””abcde”两个字符串!但”abc”会失去原本指向它的引用变成垃圾回收机制回收的对象!

       Append()只是将字符串追加到原字符串的尾部,始终都是一个对象!

--------------------------

12、垃圾回收机制原理:

当一个对象赋值为null或者没有指引指向他的时候,那么这个对象就符合垃圾回收机制回收的范围,java虚拟机会不定时的对垃圾进行回收,回收对象之前会调用被回收对象的finalize()方法!

注意Java虚拟机何时来回收垃圾不确定!

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics