你所不知道的java
Chapter three:接口与多态
1、 接口自身也包括了数据成员,但他们都被默认为是static或是final,接口只提供一种形式,而不提供实施的具体细节,其是为了java实现多重继承而存在的,避免了如同C++一般的多重继承复杂性;
2、 与抽象类不同的是:接口允许在看起来不相干的类之间定义共同行为;
3、 Java支持隐性的(自动)类型转换,也支持显性的(强制)类型转换;
4、 除了数据类型的转换,还有对象类型的转换,类型转换的过程称之为“塑型”;
5、 对象类型的塑型过程比基本数据类型的塑型要复杂很多,其只能被塑型成:
1) 任何一个父类类型;
2) 对象所属的类实现的一个接口;
3) 回到他自己原本所在的类;(多次塑型是允许的)
6、 对象塑型的本质:对象塑型其实本质上没有改变它的类型,而是将其暂时看做更为一般的类型;
7、 在定义构造方法的时候,请遵循以下的原则,尽可能地避免错误:
1) 用尽可能少的动作把对象的状态设置好;
2) 如果可以避免,不要调用任何的方法;
3) 在构造方法内唯一能够安全调用的是在基类中具有final属性的那些方法(也适合用于private方法,因为其自动拥有final属性)。这些方法不能被覆盖,所以不会出现潜在性的问题。
Chapter four:输入与输出
1、 java中并没有标准的输入和输出语句,在java中将信息输入和输出过程抽象为输入流和输出流;
2、 输入是指数据流入程序,输出是指数据从程序流出;
3、 Java中字符使用的都是16—bit的Unicode编码,每个字符占两个字节,即16bit。人们为了解决各个国家和地区使用本地化字符编码所导致的种种问题,将全世界所有的符号进行统一编码得到Unicode编码,java技术通过Unicode编码保证了跨越平台的特性;
4、 面向字符的流:Reader类和Writer类;
5、 面向字节的流:InputStream类和OutputSteam类;
6、 Java中有以下三个标准输入输出流:
1) 标准输入:System.in;
2) 标准输出:System.out;
3) 标准错误输出:System.err;
Chapter five:对象群体组织与多线程
1、 把数据有次序地排列起来的操作称之为“排序”,常用的排序算法有:选择排序、插入排序和交换排序;
2、 多态算法是JDK提供的可重用功能模块,这些算法都在集合类中,且都为静态算法:
1) 排序算法sort;
2) 洗牌算法shuffle;
3) 常规数据处理算法:reverse、fill、copy;
4) 查找算法binarySearch;
5) 最值算法max、min;
3、 使用java5所新增的增强型for循环遍历存在着无法在遍历中删除对象的缺点,故应选择性使用;
4、 在任何时候,具有最高优先级的线程将被调度算法优先选择而执行;
5、 只有高优先级的线程结束或是因为某种原因暂停,较低优先级的线程才能开始运行,如果此时有一个比现在正在运行的线程具有更高优先级的线程需要运行,那么这个高优先级的线程就会立刻被调度算法调度,从而抢占在CPU上的运行权;
6、 Java的线程调度机制并不能保证在任何时候具有最高优先级的线程一定在运行,线程调度机制也可能调度一个优先级相对较低的线程运行;
7、 对于同样优先级的线程,java线程调度机制采取的调度方式是:随机;
“JDBC与数据库访问”和“Servlet程序设计”部分由于尚未接触,不好做过多的阐述,两期博文所陈列的信息点都是高度概括的,真正的内容留与个人发掘~
<!--EndFragment-->