java常见的笔试题(1)

1.java接口的修饰符可以是什么

答:public,abstract

2.字符输入流和字节输入流有哪些以及区别

答:

3.java中0.6666的数据类型是什么

答:double,float需要带f

4.是否存在i+1 < i

答:存在,i = Integer.MAX_VALUE

5.新建一个流对象的方法有哪些

答:

6.constructor(构造器)是什么以及定义

答:1.构造器必须和类同名
2.每个类可以有一个以上的构造器
3.构造器可以0到n个参数
4.构造器没有返回值
5.构造器总是伴随着new操作一起调用
6.不添加任何构造器会默认空的构造器

7.要从文件file读出第10个字节到变量c中,需要如何读取

答:

8.Map map = new HashMap(10000) 当添加10000个元素后会触发多少次扩容

答:0次扩容,初始化大小是16384个 只有超过16384才会进行扩容

9.当创建一个子类对象时,子类和父类都拥有代码块,静态代码块,构造函数之间的执行顺序是怎么样的

答:父类静态代码块->子类静态代码块->父类代码块(代码块的顺序)->父类的构造方法->子类代码块(代码块的顺序)->子类的构造方法

10.抽象类里可以存在什么方法或代码块

答:

11.java中的hashMap的key为类对象时则该类需要满足什么条件

答:需要重写hashCode()方法和他的equals()

  • 从源码可知,插入元素的时候是先算出hashCode,如果hashCode相同的话,表明对象是存储在同一位置
  • 需要再调用equals()方法,如果equals()相同,则替换元素
  • 如果调用equals()方法不同时,则把元素放到桶上

12.ArrayList和linkedList的区别

答:

13.String, StringBuffer与StringBulider之间的区别和使用场景

答:String 字符常量,StringBuffer字符变量(线程安全),StringBuilder字符变量(线程不安全)
String适用于不常变的

14.error和exception有什么区别

答:

15.悲观锁和乐观锁的区别,怎么实现

答:

  • 悲观锁:每次拿数据都认为别人会修改,所以每次拿数据都会加上锁,实现:开启锁机制或者开启事务
  • 乐观锁:认为每次拿数据都不会被别人修改,不用上锁,但是在更新数据的时候会去判断数据是否被修改过,实现一般使用版本号或者时间戳

16.如何快速找出两个集合的交集和并集

答:

String[] arrayA = new String[] { "1", "2", "3", "4"};
String[] arrayB = new String[] { "3", "4", "5", "6" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);

//1、并集 union
System.out.println(CollectionUtils.union(listA, listB));
//输出: [1, 2, 3, 4, 5, 6]

//2、交集 intersection
System.out.println(CollectionUtils.intersection(listA, listB));
//输出:[3, 4]

//3、交集的补集(析取)disjunction
System.out.println(CollectionUtils.disjunction(listA, listB));
//输出:[1, 2, 5, 6]

//4、差集(扣除)
System.out.println(CollectionUtils.subtract(listA, listB));
//输出:[1, 2]

17.关于Java中length、length()、size()的区别

答: length是数组的属性,length()是字符串的方法,size()是集合的一个方法

18.HashMap和ConcurrentHashMap区别,ConcurrentHashMap线程安全吗,如何保证线程安全的?并简述java多线程内存模型

答:

19.Spring的AOP是什么, 实现原理是什么

答:

21.如何找出二叉树任意节点的前驱节点和后继节点

答:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值