牛客网错题集锦——Day01

牛客网 错题 Day01

1.Java初始化顺序

/**
 * @date 2020/9/1 14:47
 */

class Father {
    public Father(){
        System.out.println("父类构造方法");
    }
    { System.out.println("父类的普通代码块"); }
    static { System.out.println("父类的静态代码块"); }
}

public class Test03 extends Father {

    public Test03() {
        System.out.println("子类的构造方法");
    }

    {
        System.out.println("子类的普通代码块");
    }

    static {
        System.out.println("子类的静态代码块");
    }

    public static void main(String[] args) {
        new Test03();
    }
}

Java初始化的顺序是:
父类的静态代码块-子类的静态代码块-父类的普通代码块-父类的构造方法-子类的普通代码块-子类的构造方法。
也就是说初始化时,静态代码块>普通代码块>构造方法;父类>子类。

2. JDBC statement

JDBC执行查询语句

  1. Statement 用于通用查询
  2. PreparedStatement 用于执行参数化查询
  3. CallableStatement 用于存储过程

PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。还可以阻止常见的SQL注入式攻击。

3. 多线程调用问题

如果多线程中直接调用run方法那么会按照普通的线程按照顺序执行,只有调用start方法才会真正实现多线程根据CPU的调度去实现。

多线程的yield()礼让方法,只会礼让统级别的线程,不会礼让级别低的线程。

4. 多线程安全的Map

Hashtable,SynchronizedMap,ConcurrentHashMap

5. 关于Java运算顺序

题:设三个整型变量 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是
代码:

/**
 * @date 2020/9/8 6:32
 * 计算顺序
 */
public class Test04_OperationsOrder {

    public static void main(String[] args) {
        System.out.println(doOperation(1, 2, 3));
    }

    public static int doOperation(int x, int y,int z){
        y += z -- / ++ x;
        return y;
    }

}

Java的整型会向下取整(z–/++x)= 1.5 = 1所以答案为3,但是运算时 z-- 等于 z 等于 3。原因是会先进行其它运算 --或者 ++ 会在前放代码运行之后再运行(赋值)。
如同这个代码:它确实是执行完毕了,但是是再println方法之后再执行的,所以第一次输出为0!

		int i = 0;
        System.out.println(i++);
        System.out.println(i);

6. Java中的集合类型

在这里插入图片描述

7. java.util.Collection 和 java.util.Collections

collection是一个接口集合,提供了对集合对象进行基本操作的通用接口方法,意义是为各种具体的集合提供了最大化的统一操作,。
collections是一个包装类,包含多种集合操作的静态多态方法,不能实例化。

8. 异常

Java所以异常和错误的父类都是java.lang.Throwable

9. 垃圾回收机制

JVM一旦启动,就会创建一个守护线程来检测是否需要有对象内存被释放;System.gc()无法指定时间释放,只是提醒jvm可以进行Full GC 但是真正执行的时间是不知道。

10. split

调用这个方法会根据传递的分割条件返回一个数组,如果没有找到分隔符会默认返回一个长度为1的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值