小知识

来源:互联网 发布:连接助理软件 编辑:程序博客网 时间:2024/05/23 21:17

  1、String 和StringBuffer的区别

String:
是对象不是原始类型;
不可变对象,一旦被创建就不能修改;
对已经存在的String对象的修改都是重新创建一个新的对象
是final类不能被继承。

 

StringBuffer:
是一个可变对象,对它进行修改时不会被重新建立对象;
只能通过构造函数来建立

StringBuffer的性能比String的性能高。

 


2、启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,
这并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
 

3、final, finally的区别。
final:
修饰一个基本类型时,就表示这个变量被赋予的值是不可变的,即是个常量;
被final修饰的变量必须被初始化;
如果一个变量或方法参数被final修饰,就表示它只能被赋值一次


finally:
只能用于try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行。


4、List 和 Map 区别?

list是对象集合,允许对象重复。
map是键值对的集合,不允许key重复。


5、JDBC中的PreparedStatement相比Statement的好处
好处:

相对比较安全,可以防止sql注入;

有预编译功能,相同操作批量数据效率较高

 


6、你所知道的集合类都有哪些?主要方法?

最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,
它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。

List 适用于按数值索引访问元素的情形。
 
Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。


7、abstract class和interface有什么区别?

abstract:
声明方法但不去实现,是一个抽象类
抽象支持单继承;
可以有实例变量

interface:
只能有抽象方法
只可以定义为static final成员变量,不能有实例变量;
接口支持多继承;

 

8、作用域public,private,protected,以及不写时的区别?

public:对所有用户开放,所有用户都可直接调用
private:私有。除了class自己之外,任何人都不可直接使用
protected:可自由使用,无任何限制;而对于其他的外部class,protected就变成private。
(同一个包中的类,若不在同一个包中,必须为其子孙类才可使用)

 

 作用域       当前类    同一package   子孙类     其他package

 public        √         √            √           √

 protected   √          √             √           ×

 friendly       √         √           ×           ×

 private        √          ×          ×           ×

    注:不写时默认为friendly

 

 

9、== 与 equals  的区别

==操作比较的是两个变量的值是否相等;
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。


10、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?

有两种实现方法,分别是继承Thread类与实现Runnable接口;
用synchronized关键字修饰同步方法。

 

11、面向对象的特征有哪些方面

封装,继承,多态;


12、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。


13、事务的特性有哪些?

事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性

 

14、得到Class的三个方法是什么?

对象.getClass()
类.class
Class.forName();

 

15、数组有没有length()这个方法? String有没有length()这个方法

数组没有length()这个方法,有length的属性。String有length()这个方法。

 

16、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节流,字符流。字节流继承于InputStream \ OutputStream,字符流继承于InputStreamReader \
OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

 


17、字节流与字符流的区别

字符:二个字节
字节:一个字节
实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,
而字符流在操作时使用了缓冲区,通过缓冲区再操作文件;

 

18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?


方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型

,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

 

 

19、Integer与int的区别

int:
基本数据类型;


integer:
是其包装类.


20、JAVA的基本数据类型有哪些 ?String 是不是基本数据类型?

基本:byte short int long float double boolean char

String是类类型

原创粉丝点击