1、String 和StringBuffer的区别
String:
是对象不是原始类型;
不可变对象,一旦被创建就不能修改;
对已经存在的String对象的修改都是重新创建一个新的对象
是final类不能被继承。
StringBuffer:
是一个可变对象,对它进行修改时不会被重新建立对象;
只能通过构造函数来建立
StringBuffer的性能比String的性能高。
2、启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,
这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。
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 提供了一个更通用的元素存储方法。
Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
7、abstract class和interface有什么区别?
abstract:
声明方法但不去实现,是一个抽象类
interface:;
是一个接口,是抽象类的变体;
只可以定义为static final成员变量。
8、作用域public,private,protected,以及不写时的区别?
public:对所有用户开放,所有用户都可直接调用
private:私有。除了class自己之外,任何人都不可直接使用
protected:可自由使用,无任何限制;而对于其他的外部class,protected就变成private。
(同一个包中的类,若不在同一个包中,必须为其子孙类才可使用)
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是类类型