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

4.数值常量的默认类型
   java中整形常量默认为int类型,为其分配4字节大小的空间,如果需要声明long类型的常量,可以在后面加"l"或"L"。
   java中浮点型常量默认为double,如果声明一个常量为float型,则需在数字后面加"f"或"F"。
 
5.float f=3.4;是否正确?
   错误,浮点型常量默认为double类型,float f=(float)3.4;
 
6.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
    short s1 = 1; s1 = s1 + 1;错:1是int类型,s1是short类型,int与short类型相加结果为int类型,
    short s1 = 1; s1 += 1;对,s1+= 1 隐含强制类型转换,即s1=(short)s1+1;  
 
7.int 和 Integer 有什么区别?
   int是基础数据类型,Integer是int的封装类,一个对象

 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线程是不安全的。

posted @ 2021-03-30 22:49  远方的风景  阅读(67)  评论(0)    收藏  举报