摘要: P685)临界区 通过使用同步控制块,而不是对整个方法进行同步控制,可以使多个任务访问对象的时间性能得到显著提升。宁愿使用同步控制块而不是对整个方法进行同步控制的典型原因:使得其他线程能更多的访问(在安全的情况下尽可能多)。 P689)在其他对象上同步 synchronized块必须给定一个在其上进 阅读全文
posted @ 2017-06-27 23:54 TooLateToLearn! 阅读(135) 评论(0) 推荐(0) 编辑
摘要: P662)后台线程(daemon:守护) 所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台进程。反过来说,只要有任何非后台线程还在运行,程序就不会终止。 阅读全文
posted @ 2017-06-27 23:25 TooLateToLearn! 阅读(168) 评论(0) 推荐(0) 编辑
摘要: P655)静态方法Thread.yield()的调用是对线程调度器(Java线程机制的一部分,可以将CPU从一个线程转移给另一个线程)的一种建议:此线程以及执行完生命周期中最重要的部分了,此刻正是切换给其他任务执行一段时间的大好时机。P661)不过这只是一个暗示,没有任何机制保证它将会被采纳。当调用 阅读全文
posted @ 2017-06-27 19:58 TooLateToLearn! 阅读(222) 评论(0) 推荐(0) 编辑
摘要: P621)定义注解时,会需要一些元注解(meta-annotation),例如@Target和@Retention。@Target用来定义你的注解将应用于什么地方(例如是一个方法或者一个域)。@Retention用来定义该注解在哪一个级别可用,在源代码中(SOURCE)、类文件(CLASS)中或者运 阅读全文
posted @ 2017-06-26 21:56 TooLateToLearn! 阅读(290) 评论(0) 推荐(0) 编辑
摘要: (1)抽象工厂——Abstract Factory (2)Prototype——原型模式 (3)Strategy——策略模式 (4)Bridge——桥接模式 (5)Chain of Responsibility——职责链模式 阅读全文
posted @ 2017-06-25 15:50 TooLateToLearn! 阅读(181) 评论(0) 推荐(0) 编辑
摘要: (1)Iterator——迭代器模式 (2)Adapter——适配器 (3)Factory——工厂方法 (4)Builder——生成者 (5)Template——模板方法 阅读全文
posted @ 2017-06-24 19:54 TooLateToLearn! 阅读(180) 评论(0) 推荐(0) 编辑
摘要: P474)Arrays.asList()会生成一个List,它基于一个固定大小的数组,仅支持那些不会改变数组大小的操作。任何会引起底层数据结构的尺寸进行修改的方法都会产生一个UnsupportedOperationException异常,以表示对未获支持操作的调用。 应该把Arrays.asList 阅读全文
posted @ 2017-06-24 16:45 TooLateToLearn! 阅读(168) 评论(0) 推荐(0) 编辑
摘要: P434)数组硕果仅存的有点就是效率。length是数组的大小,而不是实际保存的元素个数。 P378)对于在泛型中创建数组,使用Array.newInstance()是推荐的方式。 P437)Java SE5的Arrays.deepToString()方法可以将多维数组转换为多个String。 P4 阅读全文
posted @ 2017-06-22 22:13 TooLateToLearn! 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Linux终端中运行.class文件出错 阅读全文
posted @ 2017-06-21 22:26 TooLateToLearn! 阅读(384) 评论(0) 推荐(0) 编辑
摘要: P316)Class fancyToyClass = Class.forName("FancyToy"); 这个方法是Class类的一个成员static成员。forName()是取得Class对象引用的一种方法,它返回一个Class对象的引用。对forName()的调用就是为了它产生的“副作用”:如 阅读全文
posted @ 2017-06-21 20:54 TooLateToLearn! 阅读(260) 评论(0) 推荐(0) 编辑