1. 用最有效的的方法算出 2 称以 8 等于几
答案为:2<<3。
2.Math.round(11.5)和 Math.round(-11.5)的值是多少?
答案为:11 和-11。
3. 两个对象 a 和 b,请问 a==b 和 a.equals(b)有什么区别?
答案为: ab a与b之间比较的时地址值,a.equals(b)分为,两个类有没有重写equals()方法,如果重写equals()方法则按照重写的进行比较,如果没有重写方法,那就和一样比较的是地址值。
4. switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
答案为:switch可以作用在byte、short、char、int、不能作用于long;JDK1.5之后可以支持枚举;JDK1.7之后可以支持String类型。
5. char 型变量中是否可以存储一个汉字?
答案为:能,一个字符是两个字节,每个字符字符使用Unicode编码表示。
6. float f=3.4;是否正确,表达式 15/2*2 的值是多少
答案为:不正确,应该为float f=3.4F;表达式的值为14。
7. 编写代码实现两个变量值交换,int m = 3, n =5;
答案为:第一种方法:int temp; temp=m; m=n; n=temp;、第二种方式: m=n+m; n=m-n; m=m-n;、第三中方式
m=m^n; n=m ^n; m=m ^n;
8. Java 的基本数据类型有哪些?String 是基本数据类型吗?
答案为:byte、char、short、int、long、double、float、boolean。String类型不是基本数据类型,是引用数据类型。9.数组有没有 length()方法?String 有没有 length()方法?File 有没有 length()方法?ArrayList 有没有 length()方法?
答案为:数组没有length()方法,数组的是length;String有length()方法;ArrayList没有length()方法、有size()方法 10.String str = new String(“hello”);创建了哪些对象?
答案为:字符串常量池有个对象、堆中有个字符串对象。
11. 如何将 String 类型转化 Number 类型?举例说明String str = “123”;
答案为:第一种、Integer num=new Integer(str);第二种int num=Integer.parseInt(str);第三种 Integer num=Integer.valueof(str);
12.以下代码的运行结果:
public static void main(String[] args) {
char x = 'x';
int i = 10;
System.out.println(true? x : i);
System.out.println(true? 'x' : 10);
}
答案为:120
x
13.以下代码的执行结果
public static void main(String[] args) {
int a = 8, b = 3;
System.out.println(a>>>b);
System.out.println(a>>>b | 2);
}
14.下面程序片段的输出结果是?
public static void main(String[] args) {
int a = 3;
int b = 1;
if(a = b){
//a=b不是boolean类型,索引编译不能通过。
System.out.println("Equal");
}else{
System.out.println("Not Equal");
}
}
答案为:编译不通过
执行如下代码后,c 的值是多少?
三、基础简答题(5 分/题)
1、break、continue、return 的区别?
答案为:break用于switch和循环的结束;
continue用于结束当前循环;
return用于结束当前方法,还可以用于返回结果和值。
2、请列出一些常用的类、接口、包,各至少 5 个
答案为:类有String、Math、ArrayList、HashMap、LinkedList;
接口有Map、Collection、Runnable、List、Set;
包有java.lang、java.util、java.io、java.text、java.net。
3. 访问修饰符的作用范围由大到小,及各自的范围是什么?可以修饰什么?
答案为: 同一类 同包 子类 任何地方
public yes yes yes yes
protected yes yes yes
缺省 yes yes
private yes
4、请对 public static void main(String[] args)的每一个单词做解释?
答案为:public 是修饰权限公共的,public修饰的类或成员任何地方可以用
static 是静态的,被static修饰的方法可以通过类名调用
void 返回值类型为空
main java程序的主方法、javaSE的入口
string[] 字符串数组,这是main方法的形参类型
args 这是main方法的形参名
5、请解释 Overload 与 Override 的区别?
答案为:Overload是方法的重载,在同一个类中,方法名必须相同,方法的参数列表必须不同,与返回值无关。
Override是方法的重写,在子父类继承中,父类方法体不能满足子类方法体时,子类对其方法体进行相应的重写。方法的方法名必须相同、参数列表也必须相同。返回值类型如果是基本数据类型和void,那返回值必须是与其相同。反之子类的返回值类型必须小于或等于父类的返回值类型,方法的权限修饰符,子类必须等于或大于父类的权限修饰符。
6、final、finalize、finally 的区别?
答案为:final是表示最终的,是一个修饰符,修饰类表示类不能被继承、修饰方法表示子类不能被重写其方法、修饰属性和局部变量时表示不能被修改是一个常量。
finally是try…catch的一部分,表示不管是否发生异常,最终都会被执行的代码块
finalize表示最终的方法,是java.lang.Object包下的方法、在对象被垃圾回收时调用
7、面向对象的基本特征有哪些?并作出解释
答案为:封装。封装的好处是安全、方便。在封装的过程中隐藏了对象的具体实现,要操作对象时只要调用其提供的方法。而不能管方法的具体实现。属性的封装在于、对属性进行私有化,提供相应的get、set方法来操作供外界操作。
继承。继承的好处是复用和扩展。父类的属性和方法都会被子类继承、子类也可以扩充自己独有的属性或者方法。
多肽。多肽的好处是灵活性。多肽的体现方法的重载和重写。多肽更多的体现在于对象的多肽。父类对象指向子类的引用。当父类对象调用方法时,执行的是父类被重写后的子类方法。
8、请解释 String、StringBuilder、StringBuffer 的区别?
答案为:String是不可以修改的字符串、StringBuilder、StringBuffer是可以修改的字符串。
String类型的字符串是在常量池中,所以对字符串进行修改时。是相应的创建了一个新的字符串。
StringBuilder和StringBuffer可以在对象上进行append、delete、replace、insert
StringBuilder是线程不安全的、StringBuffer是线程安全的。
10、BigDecimal 和 float、double 有什么区别?BigInteger和 int、long 有什么区别?
答案为:BigDecimal和BigInteger是引用数据类型,其底层是字符串,所以不能用算数运算符来进行操作。只能用add、subtract等方法来操作
int、long、float、double都是基本数据类型,但是他们的取值范围有限、精确度的问题。
11、请对 Java 的基本数据类型与包装类做解释?
答案为: int Integer
short Short
byte Byte
double Double
char Character
boolean Boolean
float Float
long Long
JDK1.5之后提供了自动装箱拆箱
12、java.lang.Comparable 与 java.util.Comparator 有什么区别?
先这样吧