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基础总结——笔面题的主要内容,如果未能解决你的问题,请参考以下文章

字节跳动算法工程师面试总结,头条抖音后端技术3面题:Linux

Java 基础知识点 笔记总结

java_语句_基础总结

java面向对象基础2

第五次JAVA课,java语法基础课件总结

Java基础总结--变量运算符总结