黑马程序员--java高新技术 25--枚举,反射
2013-06-05 01:28
513 查看
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
/*1.5 新特性总结: 静态导入 可变参数 增强for(foreach) 基本数据的自动拆装箱 枚举 泛型 */ /*25-2 API: Application Programming Interface java EE IDE: Integrated development environment jms jmx jndi */ /*25-3 preference--java--compiler //javac 编译器版本 |--Installed JREs //java 运行的版本 |--general--keys //快捷键 file--switch workspace //切换工作间 */ /*25-4 debug 透视图下: r变量--watch */ /*25-5 r--run as--run configuration--jre //运行环境 低版本的java不能运行高版本的javac编译的程序,会出现 UnsupportedClassVersionError r(一个工程)--properties--run/debug setting--edit--(edit configuration) //该路径也可打开运行环境 */ /*25-6 模板代码: properties--java--editer-templates */ /*25-7 jar Libaray 更改jre库,Libaray 就是很多的jar r工程--build path--configure build path--java build path */ /*25-8 1.5 新特性 静态导入 */ /*25-9 1.5 新特性 可变参数 overload vs override */ /*25-10 1.5 新特性 增强for */ /*25-11 1.5 新特性 基本数据的自动拆装箱 享元设计模式flyweight: 有很多个小的对象,它们有很多属性相同,把它们变成一个对象, 那些不同的属性变成方法的参数,称之为外部状态,那些相同的属性称之为内部状态。 */ /*25-12 1.5 新特性 枚举 */ /*25-14 枚举的基本应用: name(); ordinal();//类似数组的角标 valueOf("SUN").toString(); values(); 把枚举变成数组 */ /*25-17 Class cls = 字节码; 获得字节码的三种方式: System.class; new Date().getClass(); Class.forName("java.util.Date");//全名 预定义的实力对象://参照isPrimitive(); void.class; int.class = Integer.Type;//还有其他的7种基本数据类型。 isArray();//是否是数组。 */ /*25-19 反射会导致程序的性能下降 */ /*25-20 getField(pt1); getDeclaredField(pt1); setAccessible(true);//暴力反射 */ /*25-22 谁有数据谁就是干这个事的专家,方法就分配给谁。 */ /*25-23 用反射调用 main 方法的原因是可以在没有加载 类的前提下用 class.forName(name); 方法来加载类, 之后就可以执行main 方法了。 r--run as--run configuration--arguments //用于给程序传递参数。 */ /*25-24 getSuperclass(); 可变参数:若满足1.4 的条件就按照1.4的处理,不满足就按照1.5的处理。 */ /*25-26 存入HashSet 集合的元素(对象) 的 数据发生改变时,其hashcode 的值也会发生改变,因此在使用时应该注意其HashCode 值 是否有发生改变。否则会发生内存泄露。 */ /*25-27 反射的作用: 实现框架 */ /*25-28 getClass().getResourceAsStream(); //无法通过类加载器写入数据 */ /*25-29 内省:introspector javaBean: 以set 或 get 开头 的方法 的类 */ //个人疑问:?1, ?2, ?3, ?4 import java.lang.reflect.Constructor; public class Demo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //WeekDay Class clazz = WeekDay.MON.getClass();//@0 用getClass()获得的构造函数是一个 //?1: 为何是一个? 为何会少掉构造函数?少掉了哪些构造函数? Constructor[] cons = clazz.getDeclaredConstructors(); System.out.println("共有 "+cons.length+" 个构造函数"); for (Constructor con : cons) { System.out.println(con.toGenericString()); } Class clazz1 = WeekDay.class;//@1 与@0 相比 用 .class 的方法却获得3个。 //?2: 为何是3个 ,多出来的那个构造函数是什么意思? ?3: 为何与@0 不同? Constructor[] cons1 = clazz1.getDeclaredConstructors(); System.out.println("共有 "+cons1.length+" 个构造函数"); for (Constructor con : cons1) { System.out.println(con.toGenericString()); } System.out.println(); //Weekday1 Class clazz2 = Weekday1.MON.getClass();//@2 与@0 相比 该方法enum 没有 abstract 方法, 获得的构造函数却是2个 Constructor[] cons2 = clazz2.getDeclaredConstructors(); System.out.println("共有 "+cons2.length+" 个构造函数"); for (Constructor con : cons2) { System.out.println(con.toGenericString()); } Class clazz3 = Weekday1.class;//@3 比较WeekDay 和 Weekday1,WeekDay仅多了一个abstract方法。 //说明WeekDay 之所以会多出或少掉构造函数是因为 abstract 方法 //?4:为何WeekDay 和 Weekday1 会有这样的差异?或者为何abstract方法会造成这样的差异 Constructor[] cons3 = clazz3.getDeclaredConstructors(); System.out.println("共有 "+cons3.length+" 个构造函数"); for (Constructor con : cons3) { System.out.println(con.toGenericString()); } } } enum WeekDay{ SUN(){ public WeekDay nextDay(){ return MON; } },MON(){ public WeekDay nextDay(){ return SUN; } }; WeekDay(){ System.out.println("first"); } WeekDay(int x){ System.out.println("second"); } public abstract WeekDay nextDay(); } enum Weekday1{ SUN,MON; Weekday1(){ System.out.println("first"); } Weekday1(int x){ System.out.println("second"); } }
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员_Java高新技术(静态导入、可变参数、增强for循环、自动拆装箱、枚举、反射)
- 黑马程序员_java高新技术_枚举与反射
- 【黑马程序员】张孝祥Java高新技术_装箱拆箱、枚举、反射
- Java高新技术-枚举和反射-----黑马程序员
- 黑马程序员 java高新技术<二>--java5的枚举、反射的深入讲解
- 黑马程序员_java高新技术(1)枚举、反射、内省
- java高新技术_枚举反射内省(黑马程序员)
- 黑马程序员_Java高新技术_反射的深入探究
- 黑马程序员_java高新技术(2)枚举
- 黑马程序员_Java高新技术一_增强FOR、枚举
- 黑马程序员_java学习日记_Java高新技术_枚举
- 黑马程序员-Java学习(高新)16-枚举,反射
- 黑马程序员 java高新技术 反射
- 黑马程序员——Java高新技术视频笔记:反射
- 黑马程序员_Java高新技术二_反射
- 黑马程序员_java枚举、反射
- 黑马程序员_Java高新技术_反射
- 黑马程序员_java高新技术 枚举
- 黑马程序员--高新技术(枚举和反射)
- 黑马程序员---java高新技术之枚举