摘要: 问题1: 为什么wait() 和 notify()是Object类中的方法,而不是Thread类中的方法呢? 答:因为锁是任意对象的所以要在Object类中,如果在Thread类中锁对象不是任意的了。 问题2: 为什么wait() 和 notify()必须在同步代码快中或同步函数中使用呢? 答:因为 阅读全文
posted @ 2016-08-18 22:03 lifehrx 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 实现Runnable接口: 问题1:Runnable实现类的对象是线程对象吗? 答:不是,该对象只不过是实现了Runnable接口的对象而已,只有是Thread或Thread的子类才是线程对象。 问题2:为什么要把Runnable实现类的对象最为,实参传递给Thread对象呢?作用是什么? 答:把R 阅读全文
posted @ 2016-08-17 19:55 lifehrx 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 死锁现象: 死锁原因: 1.存在两个或两个以上的线程。 2.存在两个或两个或两个以上的共享资源。 死锁现象解决的方案: 没有方案只能尽量避免。 阅读全文
posted @ 2016-08-17 19:22 lifehrx 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 需求:模拟三个窗口同时买票。 问题1:static 修饰num,只创建一份在内存中,要不就会创建3份。 问题2:线程安全问题。(代码重1的红色字体) 出现的原因:存在两个或两个以上的线程对象,而且线程间共享着一个资源, 有多个语句操作了共享资源。 解决方式:加个锁,synchronized,把锁放到 阅读全文
posted @ 2016-08-17 00:35 lifehrx 阅读(192) 评论(0) 推荐(0) 编辑
摘要: class MyThread extends Thread { @Override public void run() { super.run(); for (int i = 0; i < 50; i++){ System.out.println("线程----------" + i + "--------" + this.... 阅读全文
posted @ 2016-08-16 22:32 lifehrx 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 进程: 线程: 多线程: 假象:只是CPU在做快速的切换 多线程的好处: 1.解决了一个进程里面可以同时运行多个任务(执行路径) 2.提高资源利用率,而不是效率。 多线程的弊端: 1.降低了一个进程里面线程的执行效率。 2.加重CPU的负担。 3.发生线程安全问题, 4。发生死锁问题。 阅读全文
posted @ 2016-08-16 10:40 lifehrx 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Object中常用方法: 1.toString(): 返回对象的的描述信息,输出形式:类名@哈希码值的十六进制 System.out.println(obj); = System.out.println(obj.toString()); 编程习惯:重写toString(); 2.equals(): 阅读全文
posted @ 2016-08-15 22:57 lifehrx 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 模板模式: 解决某类事情的步骤有些是固定的,有些是会发生变化的,这时我们提供 一个模板代码,从而提高效率。 模板模式的作用: 1.解决这类事情其中一件的解决方案。 2.分析代码,把发生变化的代码抽象取出来独立成一个方法, 把该方法抽象描述。(也就是改写成一个抽象方法)别忘记把类名也用abstract 阅读全文
posted @ 2016-08-14 23:11 lifehrx 阅读(104) 评论(0) 推荐(0) 编辑
摘要: java的导入包语句的作用仅仅是简化书写,很多时候我们都误以为是将一个类导入到内存中。 如果是这样,那么运行的效率会很慢。 阅读全文
posted @ 2016-08-14 21:21 lifehrx 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 导入包 问题:类名冲突时,要如何解决。 解决:sun提供导入包语句让我们解决该问题。 导入包语句的作用:简化书写。 导入包语句的格式:import 包名.类名;(导入xxx包的XX类) 导入包语句的细节: 1.一个java文件中可以出现多个语句。 2.* 可以通配任何类名。 3.import aa. 阅读全文
posted @ 2016-08-14 21:07 lifehrx 阅读(436) 评论(0) 推荐(0) 编辑