java程序员经典笔试题

String、StringBuffer、StringBuilder区别?

String是字符串常量,Stirng对象重新赋值,其实是两个对象

StringBuffer、StringBuilder是字符串变量,StringBuffer是线程安全的,StringBuilder是非线程安全的

执行速度:StringBuilder > StirngBuffer > String

float f = 3.4; 是否正确?

不正确,类型不匹配,3.4是double类型,应写成float f = 3.4f; 或者float f = (float)3.4;

short s1 = 1; s1 = s1 + 1; 有什么错? short s1 = 1; s1 += 1; 有什么错?

前者s1+1为int类型,需要强制类型转换 后者无错,可正确编译

内部类? package test;

public class OuterClass { private class InnerClass() { System.out.println(“InnerClass create”); } public OuterClass()

{ InnerClass ic = new InnerClass(); System.out.println(“OuterClass create”); } public static void main(String []args)

{ OuterClass oc = new OuterClass(); } }

&和&&的区别?

&是位运算符,按位与

&&是逻辑运算符,表示逻辑与 and

String有length属性?数组有length属性? 数组有length属性,String有length()方法

String s = new String(“xyz”); 创建了几个String Object 对象? 两个,一个字符串对象,一个字符串对象的引用对象

String是否可以被继承?

String是final类,不可以被继承

Math.round(11.5) = ? Math.round(-11.5) = ?

12 -11 Math.round()返回与参数最接近的整数,参数加1/2后求其floor

char型变量中能不能存储一个汉字?

可以,char在java中占2个字节,java采用unicode编码,一个中文占16位

switch(表达式)表达式的类型可以是哪些? 1.6及以前:byte short char int 1.7增加支持String类型

如果try中有return语句,那么finally中的语句会执行吗?什么时候执行? 会执行,在return语句执行之前执行

Collection和Collections的区别 ?

java.util.Collection是一个集合接口(集合类的一个顶级接口),它提供了对集合对象进行基本操作的通用接口方法,其直接继承接口有Set和List java.util.Collections是一个包装类(工具类/帮助类),它提供各种有关集合操作的静态多态方法,不能实例化,用于排序、搜索、线程安全。

HashMap与HashTable的区别?

1. HashTable基于陈旧的Dictionary类,HashMap是接口Map的一个实现 2. HashMap是非线程安全的,HashTable是线程安全的

3. 只有HashMap允许将空值作为一个表的条目的key或value

ArrayList和Vector的区别?

1.Vector是线程安全的,即它的方法之间是线程同步的,而ArrayList是非线程安全的,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好

2.当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

抽象类和接口的区别?

接口中的方法全部而为抽象方法,由实现它的类全部重写,多实现

抽象类中含有抽象方法,由继承它的类重写(不一定要全部重写),单继承 接口可以继承接口

创建子类实例时,父子构造方法如何调用?

子类继承父类,创建子类实例时,会先调用父类的构造方法,再调用子类的构造方法

overload(重载)和override(重写)的区别?

overriding(重写)是父类和子类之间多态性的一种表现 overloading是一个类中多态性的一种表现

构造器Constructor是否可以被override?

构造器Constructor不能被继承,因此不能被重写,但可以被重载

多线程有几种实现方法?同步有几种实现方法?

多线程:一个程序中有多条不同的执行路径,是一种提升效率的技术。 多线程实现方法,继承Thread类

实现Runnable接口

同步实现方法:synchronized notify、wait

java中关键词volatile的作用? 用在多线程,同步变量

一个变量声明为volatile就意味着这个变量是随时会被其他线程修改的,volatile不能保证操作的原子性,因此不能代替synchronized

abstract可与static同时修饰方法吗?abstract与native呢?abstract与synchronized呢? 都不能

static表明方法在不生成类实例时可调用,而abstract方法不能被类调用,两者矛盾 native表明方法的实现又非java语言实现,有实现体,而abstract修饰的方法无实现体 synchronized用于防止多线程同时调用该方法,显然可调用,而abstract修饰的方法不能被调用

对象克隆?

浅度克隆:实现java.lang.Cloneable接口、重载java.lang.Object.clone()方法 深度克隆:要克隆的类和类中所有非基本数据类型的属性对应的类应

1. 都实现Cloneable接口 2. 都重载clone()方法

java的垃圾回收机制?

在空闲时间以不定时的方法动态回收无任何引用的对象占据的内存空间。

java会内存泄漏吗?

会,当一个对象在逻辑上已经没有用了,但是在语法上还被某个变量所引用,那么GC是不会回收它的,这就导致了内存泄漏问题。

JVM类加载机制?

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4