【YY下】最简单的、最基础的往往容易被忽视。基础的熟练千百遍,自然高级的得心应手。这和习武从基本功做起,一个舞化舞出来,一开场行家就知道修为。所以,抓细、抓基础是不厌其烦之后带来的是永久的东西。最近重新拿起双结棍等基本功,生疏了不少啊。
(1)匿名内部类 与正规的继承相比有些受限,因为匿名内部类既可以扩展类,也可以实现接口,但是不能两种兼备。而且如果是实现接口,也只能实现一个接口
(2)每个内部类都能独立地继承自一个接口实现,所以无论外围类是否已经继承了某个接口的实现,对于内部类都没有影响
(3)回调的价值在于它的灵活性
(4)设计模式总是将变化的事物与保持不变的事物分离开
(5)更灵活的方法是避免对事件进行硬编码,取而代之的是从文件中读取需要的事件
(6)如果内部类是匿名的,编译器会简单的产生一个数字作为其标示符
(7)java 容器类类库的用途是保存对象,并将其划分为两个不同的概念,collection 一个独立元素的序列。List必须按照插入的顺序保存元素,而set不能有重复元素,queue
按照排队规则来确定对象产生的顺序。map 一组成对的键值对 对象
(8)TreeSet将元素存储在红黑树数据结构中,而HashSet使用的是散列函数
(9)任何实现Iterable类,都可以将它用于foreach语句中
(10)不存在任何从数组到Iterable的自动转换
(11)如果要进行大量的随机访问,就使用ArrayList,如果经常从表中间插入或删除元素,则使用LikedList
(12)各种Queue以及栈的行为,由LinkedList提供支持
(13)Set不接受重复元素,HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态,LinkedhashSe以插入顺序保存元素
(14)新程序中不应该使用过时的Vector Hashtable Stack
(15)容器类库一直以来都是设计难题-----解决这些难题涉及到要去满足经常彼此之间互为牵制的各方面需求。因此你应该学会中庸之道
(16)java的基本理念是“结构不佳的代码不能运行”
(17)只有匹配的catch字句才能得到执行
(18)既然异常也是对象的一种,所以可以继续修改这个异常类,以得到更强的功能
(19)Throwable 这个java 类被用来表示任何可以作为异常被抛出的类
(20)属于运行时异常的类型有很多,它们会自动被java虚拟机抛出,所以不必在异常说明中它们列出来
(21)当要把除内存之外的资源恢复到它们的初始状态时,就要用到finally字句
(22)因为finally字句总是会被执行的,所以在一个方法中,可以从多个点返回,并且可以保证重要的清理工作仍旧会执行
(23)一种更加简单的丢失异常的方式是从finally子句中返回
(24)除了内存的清理之外,所有的清理都不会自动发生
(25)在创建需要清理的对象之后,立即进入一个try-finally语句块
(26)自动构造过程和单元测试的重要性
(27)“报告”功能是异常的精髓所在
(28)可以用JDK自带的工具javap来反编译代码
(29)在java中,所有新的格式化功能都由java.util.Formater 来处理
(30)正则表达式是一种强大而灵活的文本处理工具
(31)split()方法将输入字符串断开成字符串对象数组
(32)反射机制,允许我们在运行时发现和使用类的信息
(33)所有的类都是在对其第一次使用时,动态加载到jvm中
(34)在传递给forName()的字符串中,你必须使用全限定名(包含包名)
(35)Class的newInstance() 方法是实现“虚拟构造器”的一种途径,虚拟构造器允许你声明:“我不知道你的确切类型,但是无论如何要正确地创建你自己”
(36)使用newInstance() 来创建的类,必须带有默认的构造器