基础部分(1)

1.Java基本数据类型 

四种整数类型(byte、short、int、long)

两种浮点数类型(float、double)

一种字符类型(char)

一种布尔类型(boolean)


2.原始数据类型和封装类的区别

原始数据类型性能好,但是封装数据类型提供了collections的一些方法


3.String、StringBuffer、StringBuilder区别 

String是字符串常量

StringBuffer 字符串变量(线程安全)

StringBuilder 字符串变量(非线程安全)

StringBuilder和StringBuffer成员属性和成员方法基本相同。

区别是StringBuffer类的成员方法前面多了一个关键字:synchronized,

就是这个关键字是在多线程访问时起到安全保护作用的,也说StringBuffer是线程安全的。

String、StringBuilder、StringBuffer三者的执行效率:

StringBuilder > StringBuffer > String

当字符串相加操作或者改动较少的情况下,建议使用String str=”hello”这种形式;

当字符串相加操作较多的情况下,建议使用StringBuilder,如果采用了多线程,则使用StringBuffer。


4.运行时异常和非运行时异常区别

运行时异常不需要捕获,常见异常有:

ClassCastException(类转换异常)   

IndexOutOfBoundsException(数组越界)   

NullPointerException(空指针)   

ArrayStoreException(数据存储异常,操作数组时类型不一致)   

还有IO操作的BufferOverflowException异常

非运行时异常就必须得捕获了,否则编译不过去常见异常有:

常见的非运行异常有io异常和sql异常

IOException、FileNotFoundExcetion 和SQLException



5.简述一下面向对象的特征,并举例说明你对面向对象的理解

封装   是把客观事物封装成抽象的类

继承 它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展

多态  二种方式

1覆盖,是指子类重新定义父类的虚函数的做法

2重载  是指允许存在多个同名函数,而这些函数的参数表不同


6.java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别代表什么意义?finally代码是在return之后还是之前执行?

throws是声明异常 

throw是抛出异常

 try是将会发生异常的语句括起来,从而进行异常的处理

 catch是如果有异常就会执行他里面的语句

 而finally不论是否有异常都会进行执行的语句。

//throws是用来声明一个方法可能抛出的所有异常信息,而throw则是指抛出的一个具体的异常类型。

此外throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。

 7、abstract class和interface有什么区别?接口可以继承接口吗?接口可以继承抽象类吗,为什么? 

抽象类里面可以定义方法,也可以实现方法

interface只能定义抽象类的的方法在子类中可以不实现,也可以重写父类的方法。 而接口中的所有方法一定要实现,不可遗漏

8.构造器(constructor)是否可被重写(override)? 

构造器Constructor不能被继承,因此不能被重写(Override),但是可以被重载(Overload)


9.是否可以继承String类? 

不可继承,String里面的方法皆为final


10.Java中的final关键字有哪些用法? 

用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于 成员变量来讲,我们必须在声明时或者构造方法中对它赋值;

用来修饰方法参数,表示在变量的生存期中它的值不能被改变;

修饰方法,表示该方法无法被重写;

修饰类,表示该类无法被继承

11.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后? 

 finally语句在return语句执行之后return返回之前执行的

如果return在TRY前或try里有system.exit(0)则不执行。


12阐述final、finally、finalize的区别

1.final:如果一个类被final修饰,意味着该类不能派生出新的子类,不能作为父类被继承。因此一个类不能被声明为abstract,又被声明为final。将变量或方法声明为final。可以保证他们在使用的时候不被改变。其初始化可以在两个地方:一是其定义的地方,也就是在final变量在定义的时候就对其赋值;二是在构造函数中。这两个地方只能选其中的一个,要么在定义的时候给值,要么在构造函数中给值。被声明为final的方法也只能使用,不能重写。

2.finally:在异常处理的时候,提供finally块来执行任何的清除操作。如果抛出一个异常,那么相匹配的catch字句就会执行,然后控制就会进入finally块,前提是有finally块。

3.finalize:finalize是方法名,java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是在垃圾收集器确认一个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此,所有的类都继承了它。子类覆盖finalize()方法已整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。


13.如何通过反射创建对象?



14.Java 8的新特性 

15.Java数组和链表的两种结构的操作效率 

16.Java的引用类型有哪几种 




你可能感兴趣的:(基础部分(1))