Java基础知识(一)
1.面向对象特征
继承、封装、多态、抽象
2.访问修饰符private、protected、default、public区别
当前类 同包中类 子类 其他
private √ × × ×
default √ √ × ×
protected √ √ √ ×
public √ √ √ √
default修饰时相当于对同一个包中的其他类公开(public)、protect修饰时,相当于是子类公开(public)。
3.基本的数据类型
字节类型:char(2字节)
整数类型:byte (1字节)、short(2字节)、int(4字节)、long(8字节)
浮点类型:float(4字节)、double(8字节)
布尔类型:boolean
8.&和&&的区别?
&是位运算符,&&是逻辑与运算法,且&&具有短路特性,即前一个表达式为false,则后面表达式不计算
9.
String s1 = new StringBuilder("go") .append("od").toString(); System.out.println(s1.intern() == s1); String s2 = new StringBuilder("ja") .append("va").toString(); System.out.println(s2.intern() == s2);
输出结果:true、false
String的intern()方法是先去常量池中取,如果取不到就new一个放进常量池,java是保留字,初始的时候就已经在常量池中了,所以相当于从常量池中取出一个和新new的比较,所以为false
10 、==和equals()的区别
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
11.Collections.sort()和Arrays.sort()的实现原理、如何实现数组与list之前的互转。
Collection.sort是对list进行排序,Arrays.sort是对数组进行排序。
public static void main(String[] args) { LinkedList<Integer> list = new LinkedList<>(); list.add(1); list.add(9); list.add(4); list.add(3); list.sort(null); System.out.println(list.toString()); --输出结果为[1, 3, 4, 9] int[] array=new int[]{1,4,6,3,7}; Arrays.sort(array); System.out.println(Arrays.toString(array));--输出结果为[1, 3, 4, 6, 7]
//list 转array
Integer[] a=list.toArray(new Integer[list.size()]);
//array转list
List b=Arrays.asList(array);
}
12.ArrayList和Vector的区别
Vector是线程安全的,ArrayList线程是不安全的。
浙公网安备 33010602011771号