Java经典初级题及答案

1. 抽象方法能否可以使用static修饰?原因?
答案:不能,抽象方法需要被子类重写,而静态方法不能被重写。

2. int 和 Integer 有什么区别?下面两个输出语句打印出的结果是什么?
int a = 1; int b = 1; println(a == b);
Integer c = 1;Integer d = 1;println(c==d);

答案:int是基本类型,用来表示整型数据,Integer是int对应的包装类型,可以指向对象。
输出结果:true true
(Integer内有缓存)

3. 编写一个方法(addAll()),实现以下如何结果:
addAll(1,8); //结果:9
addAll(5,8,-7); // 结果:6
addAll(6,7,-1,-8) // 结果:4

答案:
public int addAll(int… a){
int sum = 0;
for(int i:a){
sum+=i;
}
return sum;
}

4. 请阐述线程中run方法与start的关系
答案:run方法中是线程启动后真正要运行的代码,start方法的作用是用来启动线程,线程启动后会自动执行run方法。

5. 说说下面语句是否有错误,并指出错在哪里
import java.util.List;

List list = new List();

答案:报错,List是接口,不能直接new对象。

6. 有以下代码,请写出输出结果
int i = 1;
println(i++);
println(++i);
println(i);

答案:1 , 3, 3

7. 有以下程序是否会编译报错,如果没报错,请描述输出结果是什么?如果报错请写出理由,并指出如何修改,以及修改后的输出结果是什么?
public void test() {
int a;
try{
a = (int)Math.random()*10;
}catch(Exception e){
e.printStackTrace();
}
System.out.println(a);
}

答案:编译报错,编译器认为输出变量a的时候可能尚未初始化,去掉try-catch或者给a一个初始值即可,输出结果为0

8. 线程中sleep方法与wait方法的区别

答案:sleep是让当前线程进行休眠,如果这时候线程是拿着锁对象的,这个锁对象是【不会】释放的。
wait是让当前线程进入等待池,如果这时候线程是拿着锁对象的,这个锁对象是【会】释放的。

9. 请列出数据库事务的四个特性
答案:
原子性、一致性、隔离性、持久性

10. 现在有t1、t2、t3三个线程,你怎样保证t2在t1执行完后执行,t3在t2执行完后执行?
答案:
在t3线程中调用t2.join().在t2线程中调用t1.join();

11. 运行时异常与编译时异常的区别?
答案:
运行时异常在编译的时候是不会报错的,只有在运行的时候才可能会报错。
编译时异常在编译的时候如果不处理,那么编译器就会报错。

12. 以下程序是否会报错,如果没有,请写出结果,有的话请写出理由。
public class A extends String {
public static void main(String[] agrs) {
int num = 0;
for(int i = 1; i <= 10; i++) {
num += i;
}
System.out.println(num);
}
}

答案:报错,Stirng类型不能被继承。

13. 请写出jdbc编程步骤
答案:
1.加载/注册去掉类
2.获得conn对象
3.获得stmt对象
4.执行sql语句
5.处理结果集rs
6.关闭资源

14. 同步方法和同步代码块分别指的是什么?
答案:给代码块加上synchronized关键字,那么就是同步代码块
给方法加上synchronized关键字,那么就是同步方法

15. 以下代码是否会报错,如果没有请写出结果,有请写出理由
public class A extends Object {
public static void main(String[] agrs) {
short a = 1;
System.out.println(a += 1);
a = a + 1;
System.out.println(a);
}
}

答案:报错,因为a = a+1;这句代码中,a+1的结果int类型,会提示int值无法赋值给short类型变量。

16. JDK8中的函数式接口的特点是什么
答案:接口中只有一个抽象方法。

17. 有以下代码:请使用Lambda在进行实现一次,并将代码进行简化。
Action a = new Action(){
public int test(int x,int y){
return x+y;
}
};

答案:Action a = (x,y)->x+y;

18. 有以下代码:编译是否报错,如果报错,请说明原因并进行修改,如果不报错,请说明代码的含义。其实Person是Studnet的父类型。
List list = new ArrayList();

答案: 报错,List不是ArrayList的父类型。
修改:List list = new ArrayList();
List list = new ArrayList();
List<?> list = new ArrayList();

19. 有以下代码:编译是否报错,如果报错,请说明原因,如果不报错,请说明代码的运行结果
public void test() {
int a = 1;
try {
System.exit(0);
}finally {
System.out.println(a);
}
}

答案:不报错,运行后什么都不输出,因为System.exit(0);直接将JVM退出了。

20. 在java中,数字16,使用2进制、8进制、10进制、16进制分别怎么声明
答案:
int a1 = 0b10000;
int a2 = 020;
int a3 = 16;
int a4 = 0x10;

21. java中,A类继承B类,B类继承C类,那么在A中是否可以通过super关键字直接调用到C类中的方法?
答案:不能。

22. java中,Map集合如何获取所有key值的集合,如何获取所有value值的集合,如何获取key-value键值对的集合?写出调用的方法即可。
答案:map.keySet(); map.values(); map.entrySet();

23. Mysql的分页可以使用关键字limit来完成,那么Oracle中的分页功能可以什么来完成?
答案:oracle中可以使用rownum来完成分页功能。

24. 抽象类中是否有构造器,它的作用是什么?
答案: 有构造器,作用是让子类调用的。

25. 请写出jsp的九大内置对象(WEB)
答案:
pageContent
request
session
application
page
response
out
config
exception

发布了144 篇原创文章 · 获赞 117 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41306364/article/details/102957693
今日推荐