Java基础总结——笔面题
Posted 美少女降临人世间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础总结——笔面题相关的知识,希望对你有一定的参考价值。
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<Person> list = new ArrayList<Student>();
答案: 报错,List<Person>
不是ArrayList<Student>
的父类型。
修改:
List<Person> list = new ArrayList<Person>();
List<Student> list = new ArrayList<Student>();
List<?> list = new ArrayList<Person>();
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
以上是关于Java基础总结——笔面题的主要内容,如果未能解决你的问题,请参考以下文章