Tips

  • int[] 无法转型为 Object[], 因而被当作一个单纯的数组对象 ; Integer[] 可以转型为 Object[], 可以作为一个对象数组。
  • 队列,栈的遍历有两种方式,一种是foreach,他不会对集合元素剔除。另一种是while(X.isEmpty() != true)这会对集合内元素进行清空。
  • @HotSpotIntrinsicCandidate说明函数实现被JVM用手写汇编或者IR优化了。
  • LinkedHashSet和LinkedHashMap支持记录插入顺序和访问顺序两种模式。具体调用为new LinkedHashMap(initialCapacity, loadFactor, accessOrder)
  • 二叉树的遍历有三种,前序遍历意味着从上往下操作二叉树;中序遍历意味着从左往右;后序遍历意味着从下往上操作;
  • 在Java中一个字节等于8个bit,int型有4个字节,所以是4*8=32bit;所以能表达的数为-2^31~2^31-1;
  • 可持久化数据结构,如Java的String,用于并发时可以对解决共享数据结构的并发修改提供一些帮助。
  • if(A){if(B)}else{}if(A && B)else{}是不一样的,前者A真B假时不会执行else{}后者会;if(A && B)else{do C}等价于if(A){if(B)else{do C}}else{do C}
  • wait(long outime)wait()的区别在于,前者的不仅仅可以通过notify(),notifyAll()方法唤醒(进入就绪状态),还可以在时间超时后进入就绪状态。后者只能通过notify(),notifyAll()方法唤醒。
  • ArrayList的add(int index, T element)``set(int index, T element)方法都会调用list.size()方法来查看当前数组包含的元素个数,并以此来判断是否能在指定位置插入。因此,ArrayList并不能在一个没有元素的位置进行插入元素。这点和数组不同。如果要想提前设置某个下标的值,就要先填充List,方法如下:List<Integer> list = new ArrayList<>(Collections.nCopies(i, 1));
  • 字符串的比较要用a.equals(b)
  • java类是单继承的:classB Extends classA,但是java接口可以多继承:Interface3 Extends Interface0, Interface1, interface……
  • -
int与Integer的比较

①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,i3的引用指向堆,而i4指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false
②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false。java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
③两个都是new出来的,都为false
④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比

子类与父类调用方法
  1. 若变量是父类,则只能调用父类方法
  2. 若变量是父类,但存的是子类,并且子类覆盖了父类方法,则调用子类方法(多态)
  3. 若变量是子类,则可以调用子类没有但是父类的方法(继承)
finally块和return

finally块在栈帧弹出前最后一秒执行,即将finally语句插入return之前(但是对原始变量无影响)。

public class Main {
    public static void main(String[] args){
        System.out.print(fun1());   //ACBD
    }
    public static String fun1(){
        try {
            System.out.print("A");
            return fun2();
        } finally {
            System.out.print("B");
        }
    }
    private static String fun2(){
        System.out.print("C");
        return "D";
    }
}
父类的静态变量

若对子类调用的是父类静态变量(子类没有该变量),则子类不加载(不运行静态块)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值