javase的基础面试题

1.&和&&的区别
1)&和&&都可以作为逻辑与的运算符
2)&&具有短路的功能,第一个表达式为false时,就不再计算第二个表达式
2.Byte 类型的-128 怎么表示
byte范围是-128~127,10000000 到0111 1111。
3==运算符
结果是boolean类型,如果基本数据类型,比较的是两边的值,如果是引用数据类型,比较的是引用变量指向的那个地址值
4.Switch 问题
switch 语句在JDK1.5 之前只支持四种数值的判断,分别为:byte,short,int 和
char。JDK1.5 开始支持对枚举类型变量的判断,JDK1.7 开始支持对String 类型变量的判断
5.String 创建对象的内存问题
答案:class StringDemo {
public static void main(String[] args) {
String s1=“abc”;
String s2=new String(“abc”);
System.out.println(s1
s2); //false,这个比较的是内存地址
System.out.println(s1.equals(s2));//true,这个比较的是内容,string重写了equals
6.抽象类和接口的区别
1)抽象类可以有构造方法,接口中不能有构造方法。
2)抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有
非抽象的普通方法
3) 抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法
只能是public 类型的,并且默认即为public abstract 类型。
4)一个类可以实现多个接口,但只能继承一个抽象类。
5) 抽象类中可以包含静态方法,接口中不能包含静态方法
7.重载和重写的区别
①重载Overload 表示同一个类中可以有多个名称相同的方法,但这些方法的参数列
表各不相同(即参数个数或类型不同)。
②重写Override 表示子类中的方法可以与父类中的某个方法的名称和参数完全相同
8.出现死锁的条件
①互斥:存在互斥使用的资源,也就是临界资源;
②占有等待:拥有资源的进程都在等待另外的资源;
③非剥夺:进行所占有的资源是不可剥夺使用的资源;
④循环等待:都在相互等待资源。
线程问题
9.Synchronized 锁与lock 锁有什么区别
①synchronized 锁只锁括号里面的代码内容,一个方法或者一个类等等。如果被锁的代码抛出异常会自动释放锁资源。
②lock 锁锁定lock 和unlock 之间的代码,被锁的代码抛出异常不会自动释放锁资源,需要try catch 后在finally 里面手动unlock 释放锁资源。
集合框架
1.List 和Array 数组之间怎么互相转换
数组转集合:asList()方法
String[] arr ={“123”,“456”,“789”};
List list = Arrays.asList(arr);
集合转数组:toArray()方法
ArrayList al = new ArrayList();
al.add(“abc1”);
al.add(“abc2”);
al.add(“abc3”);
String[] arr = al.toArray(new String[al.size()]),
2.集合框架中容器简单用法
①List 集合元素是有序,不唯一:
ArrayList 低层是数组,查询速度快;
LinkedList 低层是链表,增删速度快;
②Set 集合元素是无序,唯一;
HashSet 低层是哈希表;
LinkedHashSet 是 HashSet 的子类
TreeSet 底层是二叉树,
③Map 集合(键值对)
HashTable 低层是哈希表,不存在null 键和null 值;
HashMap 低层是哈希表,存在null 键和null 值;
TreeMap 低层是二叉树
技巧:Array 是数组结构,有角标,查询速度很快。link 就是链表结构:增删速度快,而且
有特有方法,addFirst、 addLast、removeFirst()、removeLast()、getFirst()、getLast()。
hash 就是哈希表,就要想要哈希值,就要想到唯一性,就要想到存入到该结构的中的元素
必须覆盖hashCode,equals 方法tree 就是二叉树,就要想到排序,就想要用到比较。
3.Hashtable 和hashMap 的区别
答案:① HashMap 不是线程安全的 ,是一个接口,是map 接口的子接口,是将键映射
到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap
允许null key 和null value,而Hashtable 不允许。
②HashTable 是线程安全的一个Collection。HashMap 是Hashtable 的轻量级实现
4.LinkedList 为什么有索引还慢
答案:ArrayList:基于数组的遍历查找。LinkedList:基于链表的遍历查找。按照对象在内
存中存储的顺序去考虑,数组的访问要比链接表快,因为对象都存储在一起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值