12月6日
学习内容:高新技术1-7
课程的大纲和eclipse的使用.
高新技术8-11
Java1.5新特性
1. 静态导入static imports
2. 可变参数VariableParameter: ”…”放在参数最后,位于变量名和类型之间以数组形式访问
3. 面试题override与overLoad区别
区别 | ||
Item | Override覆写 | Overload重载 |
位置 | 存在于继承关系的类中 | 存在于同一类中 |
方法名 | 相同 | 相同 |
参数列表 | 相同 | 必须不同 |
返回值 | 相同 | 可以不相同 |
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类
4. 增强for循环 语法: for(type 变量名:集合变量名){..}
5. 自动拆/装箱以及享元模式
12月7日
学习内容:高新技术12-21
枚举Enum的介绍与应用:
注意:
1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略
",".
2. 初始化时可以赋负数, 以后的标识符仍依次加1.
3. 枚举变量只能取枚举说明结构中的某个标识符常量.
反射基础Class类:从Java1.2就有反射.
众多的Java类叫Class.
得到类字节码三种方法:
类名.class//例如: System.class;
对象.getClass();// 例如:Person.getClass();获得Person类的字节码
Class.forName(“java.lang.String”);//做反射的主要方法
反射:将Java类的各种成分映射成相应的Java类.包:package
1.构造方法:Constructor
创建实例对象:
通常方法:String str = new String(new StringBuffer(“abc”));
反射方法:String str=(String) constructor.newInstance(new StringBuffer(“abc”));
2.成员变量的反射:Field
注意:FieldY.get(成员1)表示是取成员1的y字段.
暴力反射:例FileldY.setAccessible(true);
12月8日
学习内容:高新技术22-26
3.成员方法反射:Method
调用:
通常方法:System.out.println(str.charAt(1));
反射方法:System.out.println(charAt.invoke(str,1));
4.接收数组参数的反射
问题:通过反射方法调用main方法,invoke方法传参时出现错误
注意:JDK版本的兼容问题
解决方法:mainMethod.invoke(null,new Object[]{new String[]{“abc”}})或
mainMethod.invoke(null, (Object)new String[]{“abc”})
5.数组的应用以及与Object关系
数组是用Array工具类
注意:没有方法得到数组中的元素类型.
一维数组不能转换成Object数组
综合案例分析ArrayList与HashSet的比较:
ArrayList 有序集合 可重复
HashSet 无序集合 不可重复
HashCode分析: 它返回的就是根据对象的内存地址换算出的一个值。这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。
To Be Continued...