天天看点

Java基础总结——笔面题Java基础总结——笔面题9.请列出数据库事务的四个特性

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