一、变量 1、不写var,默认var 2、如果只是声明变量而没有赋值,则该变量的值是undefined。 3、变量提升:所有声明语句会被提到开头 4、var作用域 二、Switch Switch采用严格相等 Read More
posted @ 2020-08-04 10:38 卑微芒果 Views(123) Comments(0) Diggs(0) Edit
操作系统面试考点 1、明白并发和并行的区别对理解操作系统很重要 并发:指两个或多个事件在同一时间间隔内发生 并行: 指两个或多个事件在同一时刻发生 操作系统中的程序可以并发执行,而不是并行执行。 2、程序、进程以及线程的区别 从定义来看 程序:程序是对算法的描述,一段静态的代码序列 进程:程序在一个 Read More
posted @ 2020-03-15 22:34 卑微芒果 Views(293) Comments(0) Diggs(0) Edit
千万千万不要把java中的线程状态和操作系统中的线程状态弄混淆,如果线程状态没有搞清楚,并发编程就无从谈起。 在Java JDK类库中的Thread类里,只定义了6种状态。 Blocked:阻塞状态,等待锁的释放 New:未启动状态 Runnable:可运行状态,包括(运行和就绪状态) Termin Read More
posted @ 2020-03-15 22:25 卑微芒果 Views(665) Comments(0) Diggs(0) Edit
线程让步Thread.yield():当前线程已经把重要的部分执行完毕,此时可以切换线程。 class MyThread implements Runnable { public void run() { int i = 0; while(i < 6) { System.out.println(Th Read More
posted @ 2020-03-15 22:24 卑微芒果 Views(299) Comments(0) Diggs(0) Edit
Thread.sleep(ms):当前线程进入Time—Wait状态,并等待指定时间。 与wait的区别:wait只能用于同步块中,wait释放锁。 class MyThread implements Runnable { public void run() { int i = 0; while(i Read More
posted @ 2020-03-15 22:23 卑微芒果 Views(1864) Comments(0) Diggs(0) Edit
join():当前线程等待子线程终止 class MyThread implements Runnable { public void run() { int i = 0; while(i < 100) { System.out.println(Thread.currentThread() + " Read More
posted @ 2020-03-15 22:21 卑微芒果 Views(140) Comments(0) Diggs(0) Edit
synchronized关键字定义同步代码块活方法,进入同步代码块的线程获得该对象的锁。锁没有释放,其他线程阻塞,锁释放,其他线程争锁。 实例锁:synchronized修饰非静态方法,线程获得普通对象的锁。 类锁:synchronized修饰静态方法,线程获得Class对象的锁。 class My Read More
posted @ 2020-03-15 22:20 卑微芒果 Views(131) Comments(0) Diggs(0) Edit
1、Interrupt() 当该线程处于Runnable状态时,调用Interrupt()设置该线程中断标志 当线程处于Wait状态时,调用interrupt()该线程抛出异常并清除中断标志 当线程处于Blocked的状态时,调用interruput(),线程不响应中断,线程会在获得锁后自中断一次 Read More
posted @ 2020-03-15 22:19 卑微芒果 Views(319) Comments(0) Diggs(0) Edit
1、JAVA内存模型(注意与JVM内存模型的区别) 内存模型:定义一组规范,围绕可见性、原子性、有序性定义变量的访问方式,屏蔽软硬件差异达到内存一致性效果。 2、volatile关键字 可见性:内存屏障保证写操作立刻刷新缓存,读操作要从内存读取最新值到工作内存 禁止指令重排:(针对普通无锁的全局变量 Read More
posted @ 2020-03-15 22:18 卑微芒果 Views(257) Comments(0) Diggs(0) Edit
1、乐观锁与悲观锁 悲观锁:假设一定会发生问题,所以要进行加锁。 乐观锁:假设不会发生问题,边运行边检测冲突,发生冲突采取补偿措施,一般是不断重试。(CAS) 乐观锁适用于发生冲突频率不高的情况,悲观锁适用于发生冲突频率高情况(使用乐观锁就会不断重试开销很大) 2、公平锁与非公平锁 公平锁:多线程在 Read More
posted @ 2020-03-15 22:17 卑微芒果 Views(519) Comments(0) Diggs(0) Edit