黑马程序员_java技术加强
来源:互联网 发布:淘宝旺铺免费装修模板 编辑:程序博客网 时间:2024/06/06 00:56
---------------------- android培训、java培训、期待与您交流! ----------------------
进入java技术加强的学习了,自我感觉进入了一个较为高深的层次了,现在是看张孝祥老师的视频了,相比起老毕,祥叔更显稳重,毕竟两位老师都有各自不同的风格。不过在此深表遗憾的是祥叔已经不在了,是我们乃至世界的一大损失,但是他所倡导的精神却永远熠熠生辉。
视频伊始,祥叔介绍了学习java技术加强的必要性和重要性,而且还重点提到了jdk1.5的新特性,以下是本人自行从视频和相关资料中的归纳:
1. 泛型(Generics)可以指定集合的元素类型。
2. 增强的for循环(enhanced for loop)就是for-each
3. 自动装箱/自动拆箱(Autoboxing /unboxing)基本类型与其包装类型自动转换
4. 类型安全的枚举(Type safe enum)增加类enum,取值范围有限时使用
5. 格式化打印(formatted print)c语言中printf()风格的格式化输出
6. 静态导入(static import)可使被导入类的所有静态变量和静态方法在当前类直接可见
7. 可变参数(var args)可以声明一个可以接受可变数目的参数的方法
8. 元数据(Metadata)是开发者们借助厂商提供的工具可以进行更简易的开发
9. 引入StringBuilder类,该类的方法不是同步的,这使得它比StringBuffer更加轻量级和有效。
10. 控制台输入控制(Console input),在jdk1.5之前我们只能通过JOptionPane.showInputDialog 进行输入,但在1.5中我们可以通过类Scanner在控制台进行输入操作
11. 协变返回类型(Covariant return types)jdk1.5之前我们覆盖一个方法是无法改变方法的返回类型,但在jdk1.5中可以改变。
除了以上的新特性之外,祥叔还重点讲述了反射的概念及应用,据说这个知识点是一个难点而且挺重要的。
关于反射比较精辟的一个定义是一个大学生提出来的:反射就是把Java类中各种成分映射成相应的java类。学完这节之后再来琢磨琢磨这句话,果然是至理名言。例如一个java类中一个Class 类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等信息也用一个个的java类来表示,就像汽车是一个类,发动机,变速箱等也都是一个个的类。表示java的Class类显然要提供一系列的方法来获得其中的变量,方法,构造方法,包等相关信息,这些信息就是用相应的实例对象来表示,它们是Field,Method, Constructor,package等等。
反射的基石------Class类(大写C),java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class。
通俗一点的讲,Class类的对象对应的是java中各个类对应的字节码,譬如一下代码:
Person p=new Person();//这里Person类定义了一个对象
而Class类的对象就是此Person类的字节码:
Class cls=Person.class;//Person类的字节码充当Class的对象。
对于如何得到各个字节码对应的实例对象(Class 类型)有三种方式:
第一, 直接类名.class,例如 System.class
第二, 通过类定义的对象获得,即对象.getClass(),例如:new Date().getClass()
第三, 通过Class类的静态方法,Class.forName(类名),例如:Class.forName(“java.lang.String”)
当然对于基本数据类型和void关键字有预定好的Class实例对象,如:boolean,byte,char,short,int,long,float和double。
还有它们所对应的类也有预定好的实例对象:
Boolean.TYPE=Boolean.class Char.TYPE=char.class Byte.TYPE=byte.class
Short.TYPE=short.class Integer.TYPE=int.class Long.TYPE=long.class
Float.TYPE=float.class Double.TYPE=double.class Void.TYPE=void.class
总之任何类型的类都可以用“.class”来表示,换句话说都有各自的Class实例对象,例如int[], void 等等。
关于反射的其余内容,我也不再一一赘述,祥叔在视频里分析讲解的极为透彻,在此我只是写出自己学习的一点收获,希望与大家分享,并恳请大家给出批评指正意见。
---------------------- android培训、java培训、期待与您交流! ----------------------
- 黑马程序员_java技术加强
- 黑马程序员_java 加强-注解
- 黑马程序员_java基础加强
- 黑马程序员_JAVA基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_java基础加强
- 黑马程序员_java基础加强1
- 黑马程序员_java基础加强2
- 黑马程序员_java基础加强3
- 黑马程序员_java基础加强4
- 黑马程序员_java基础加强5
- 黑马程序员_java基础加强_代理
- 黑马程序员_java基础加强_1
- 黑马程序员_java基础加强_2
- 黑马程序员_java基础加强之JavaBean
- 黑马程序员_Java基础加强之反射
- 黑马程序员_java基础加强之反射
- 在 Ubuntu 10.10 操作系统中安装 Mono 2.8.2
- iphone layer 动画
- android学习日记
- 《C语言名题精选百则----3》
- 解决安装CentOS 5.7中文版报错问题
- 黑马程序员_java技术加强
- Qt制作QQ好友列表
- 几个IP查询接口
- poj 2192 DFS+剪枝
- cilk之User Guide学习笔记(3)Cilk执行模型
- 企业级软件开发与设计
- 函数可变参数
- 《C语言名题精选百则----4》
- 迭代器