java问题收集

1、int与Integer用==比较详解

 public static void main(String[] args) {
        int t1 = 12;
        int t2 = 12;

        Integer integer1 = new Integer(12);
        Integer integer2 = new Integer(12);
        Integer integer3 = new Integer(127);

        Integer a1 = 127; //或者写成Integer a1 = Integer.valueOf(127);
        Integer a2 = 127;//或者写成Integer a2 = Integer.valueOf(127);

        Integer a = 128;
        Integer b = 128;

        // 基本数据类型==比较只要值相等就为true
        System.out.println("2个int类型比较 -> " + (t1 == t2));
        // Integer与int进行==比较时,Integer就会拆箱成一个int类型,所以还是相当于两个int类型进行比较
        System.out.println("int和integer比较 -> " + (t1 == integer1));
        // 两个都是对象类型,而且不会进行拆箱比较
        System.out.println("2个new出来的integer比较 -> " + (integer1 == integer2));
        // 无论如何,Integer与new Integer不会相等。不会经历拆箱过程,因为它们存放内存的位置不一样。
        System.out.println("integer3 == a1 -> " + (integer3 == a1));

        // Integer作为变量时,对于-128到127之间的数,会进行缓存,再次创建直接拿原来的赋值给变量。
        // 超出这个范围,则会new一个对象
        System.out.println("a1 == a2 -> " + (a1 == a2));
        System.out.println("a == b -> " + (a == b));
    }
View Code

2、找到的基础题

https://blog.nowcoder.net/n/7d0544796437467285bd1032c79a0d3a

3、

一个java文件中可以定义多个类,但是最多只有一个类被public修饰(类只能被public修饰),

并且这个类的类名与文件名必须相同,若这个文件中没有public的类,则文件名随便是一个类的名字即可。

需要注意的是,当用javac指令编译有多个类的Java文件时,它会给每一个类生成一个对应的.class 文件

4、 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类,但线程不安全

5、ArrayList 和Linkedlist 区别

二者都线程不安全,但是效率比 Vector 的高

ArrayList 底层是以 数组 的形式保存数据,随机访问集合中的元素比LinkedList 快(原因是 LinkedList 要移动指针);

LinkedList 内部以 链表 的形式保存集合里面数据,它随机访问集合中的元素性能比较慢,但是新增和删除时速度比 ArrayList 快(原因是 ArrayList 要移动数据)

一个只会点点点的测试,有疑问可以在测试群(群号:330405140)问我
原文地址:https://www.cnblogs.com/yinwenbin/p/15395283.html