day03:刷基础的第三天
- byte类型的变量在做运算时被会转换为int类型的值。等号左为byte,右为int,需要奖右面强转为byte,否则会保存;而如果用的是a+=b的语句,此语句会将被赋值的变量自动强制转化为相对应的类型。
-
“==”:作用是判断两个对象的地址是否相等,即,判断两个对象是不是同一个对象,如果是基本数据类型,则比较的是值是否相等。
"equal":作用是判断两个对象是否相等,但一般有两种使用情况
-
类没有覆盖equals()方法,则相当于通过“==”比较
-
类覆盖equals()方法,一般,我们都通过equals()方法来比较两个对象的内容是否相等,相等则返回true,如String
地址比较是通过计算对象的哈希值来比较的,hashcode属于Object的本地方法,对象相等(地址相等),hashcode相等;对象不相等,hashcode()可能相等,哈希冲突;如果equals相等,则hashCode一定相等。
-
-
关于线程
一般线程调度模式分为两种——抢占式调度和协同式调度。
抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。
协同式调度指某一线程执行完后主动通知系统切换到另一线程上执行,这种模式就像接力赛一样,一个人跑完自己的路程就把接力棒交接给下一个人,下个人继续往下跑。线程的执行时间由线程本身控制,线程切换可以预知,不存在多线程同步问题,但它有一个致命弱点:如果一个线程编写有问题,运行到一半就一直堵塞,那么可能导致整个系统崩溃。 线程调度算法是平***立的 java采用的是抢占式调度方式。
线程的互斥锁机制:synchronized,lock,condition
-
Byte是byte的包装类型,初始化为null;byte基本类型,初始值是0。
-
java.util.*,只能读取其目录下的类,不能读取其子目录下的类。
因为其根目录和子目录下可能有同名类,若都能读取,则会混淆。
- JZ53 数字在升序数组中出现的次数
- JZ13 机器人的运动范围
- JZ6 从尾到头打印链表
- JZ74 和为S的连续正数序列