黑马程序员--【学习日记九】——基础加强
2014-09-12 16:20
302 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
知识列表
静态导入
可变参数
增强for循环
享元设计模式
枚举
反射
内省
1)静态导入:
import static 语句导入一个类中的某个静态方法或所有静态方法。
2)可变参数:
可变参数特点:只能出现在参数列表的最后。
3)增强for循环:
格式: for(type 变量名:集合变量名){} 增强for循环有局限性,必须有被遍历的对象。就像三元运算符必须有结果一样,一般简单意味有局限性。
4)享元设计模式:
享元设计模式: 享元模式通过共享实现对象的重用。 优点:提高程序效率和性能的模式,会大大的增加程序的运行速度。极大的减少了内存中,对象 的数量,使得相同对象在内存中只保存一份。
5)枚举:
JDK1.5新特性。
枚举的好处:
1),定义常量:
2)可以设计单利,枚举的每个元素都是其对象;
6)反射:
反射就是将java中的各个成分通过类的形式进行操作。
操作类用Class类,操作方法用Method类,操作成员变量用Filed类,操作构造函数用Constructor类
当成员被私有时,还能通过暴力反射进行访问和操作,filed.setAccessible(tr
4000
ue)
数组的反射:
基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用;
具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象
非基本类型的一维数组,即可以当作Object类型使用也可以当作Object[]类型使用。
Arrays.asList()处理int类型数组和String类型数组的差异。
int用System.out.print()打印的还是地址。而String可以打印对象的属性值。
Array工具类用于完成对数组的反射操作
不能修改HashSet集合中参与了hashCode计算的元素的值,否则就会会出现无法删除该元素的情况,会造成内存泄漏。
例子:
12),反射的作用――>实现框架功能:
工具类和框架的区别:工具类是被用户所调用,而框架则是调用用户提供的类。
7)内省:
1,什么是JavaBean:
JavaBean是一种特殊类,主要用于传递信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
2,JavaBean的属性:
JavaBean的属性是根据其中的set和get方法来确定的,而不是根据其中的成员变量,去掉set和get后的名称就是属性名。如果剩余部分的第二个字母是小写,则把剩余部分的首字母改成小写。
例子: setName()的属性名->name
isOpen()的属性名->Open
setAGE()的属性名->AGE
getAGE()的属性名->AGE
总之:一个类被当作JavaBean使用时,JavaBean的属性是根据方法名判断出来的。
一个符合JavaBean的特点的类可以当作普通类一样进行使用。但作为javabean处理有好处:
JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省,如果通过getX方法来访问私有
的x,有一定难度,用内省操作JavaBean就变得很方便。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
-------
知识列表
静态导入
可变参数
增强for循环
享元设计模式
枚举
反射
内省
1)静态导入:
import static 语句导入一个类中的某个静态方法或所有静态方法。
2)可变参数:
可变参数特点:只能出现在参数列表的最后。
3)增强for循环:
格式: for(type 变量名:集合变量名){} 增强for循环有局限性,必须有被遍历的对象。就像三元运算符必须有结果一样,一般简单意味有局限性。
4)享元设计模式:
享元设计模式: 享元模式通过共享实现对象的重用。 优点:提高程序效率和性能的模式,会大大的增加程序的运行速度。极大的减少了内存中,对象 的数量,使得相同对象在内存中只保存一份。
5)枚举:
JDK1.5新特性。
枚举的好处:
1),定义常量:
1: public enum TrificLamp{
2: RED,GREEN,YELLOW;
3: }
2)可以设计单利,枚举的每个元素都是其对象;
6)反射:
反射就是将java中的各个成分通过类的形式进行操作。
操作类用Class类,操作方法用Method类,操作成员变量用Filed类,操作构造函数用Constructor类
当成员被私有时,还能通过暴力反射进行访问和操作,filed.setAccessible(tr
4000
ue)
数组的反射:
基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用;
具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象
非基本类型的一维数组,即可以当作Object类型使用也可以当作Object[]类型使用。
Arrays.asList()处理int类型数组和String类型数组的差异。
int用System.out.print()打印的还是地址。而String可以打印对象的属性值。
Array工具类用于完成对数组的反射操作
不能修改HashSet集合中参与了hashCode计算的元素的值,否则就会会出现无法删除该元素的情况,会造成内存泄漏。
例子:
1: public static void main(String[] args) {
2: Set<Person> set = new HashSet<Person>();
3: Person p1 = new Person("张三",20);
4: Person p2 = new Person("李四",21);
5: Person p3 = new Person("王五",22);
6: set.add(p1);
7: set.add(p2);
8: set.add(p3);
9:
10: p3.setAge(2); //修改p3的年龄
11: set.remove(p3); //无法删除
12:
12),反射的作用――>实现框架功能:
工具类和框架的区别:工具类是被用户所调用,而框架则是调用用户提供的类。
7)内省:
1,什么是JavaBean:
JavaBean是一种特殊类,主要用于传递信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
2,JavaBean的属性:
JavaBean的属性是根据其中的set和get方法来确定的,而不是根据其中的成员变量,去掉set和get后的名称就是属性名。如果剩余部分的第二个字母是小写,则把剩余部分的首字母改成小写。
例子: setName()的属性名->name
isOpen()的属性名->Open
setAGE()的属性名->AGE
getAGE()的属性名->AGE
总之:一个类被当作JavaBean使用时,JavaBean的属性是根据方法名判断出来的。
一个符合JavaBean的特点的类可以当作普通类一样进行使用。但作为javabean处理有好处:
JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省,如果通过getX方法来访问私有
的x,有一定难度,用内省操作JavaBean就变得很方便。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
相关文章推荐
- 黑马程序员_学习日记44_611基础加强(扩展方法、XML、深拷贝浅拷贝、特性)
- 黑马程序员————学习日记【18】 【基础加强2】
- 黑马程序员Java基础加强33-40学习日记
- 黑马程序员_学习日记36_531基础加强(抽象类、接口实现多态)
- 黑马程序员_学习日记十四_基础加强之JDK1.5的新特性
- 黑马程序员_学习日记35_529基础加强(封装、继承、多态)
- 黑马程序员_学习日记39_604基础加强(垃圾回收、弱引用、集合ArrayList和Hashtable、泛型集合List和Dictionary、var)
- 黑马程序员_学习日记38_602基础加强(string、StringBuilder、Object.ReferenceEquals)
- 黑马程序员Java学习日记(9)基础加强
- 黑马程序员Java基础加强9-16学习日记
- 黑马程序员————学习日记【17】 【基础加强1】
- 黑马程序员_学习日记十五_基础加强之反射
- 黑马程序员Java基础加强1-8学习日记
- 黑马程序员_学习日记37_601基础加强(enums_truct_类型转换_值类型与引用类型_异常处理_函数返回值)
- 黑马程序员_学习日记34_528基础加强(面向对象)
- 黑马程序员Java基础加强17-24学习日记
- 黑马程序员_学习日记42_608基础加强(正则表达式、委托、匿名方法)
- 黑马程序员Java基础加强49-56学习日记
- 黑马程序员_学习日记40_605基础加强(自定义泛型、装拆箱、foreach、文件操作、字符串与byte数组转换)
- 黑马程序员_学习日记43_609基础加强(多播委托、事件、程序集、反射)