Java基础[5]-2-装箱拆箱;反射和继承设计技巧
来源:互联网 发布:学生选课系统java实现 编辑:程序博客网 时间:2024/06/18 00:38
对象包装器与自动装箱
- 自动装箱规范要求 boolean,byte,char<=127。
- 介于-128~127之间的short 和 int被包装到固定对象中,可理解为如同字符串的常量池一样存储,效率高,节省空间。拆箱和装箱是编译器认可而不是虚拟机认可。
- 示例:
/** * @author gao tianci * @version $Id: AutoBoxingTest.java, v 0.1 2017年6月4日 下午5:41:32 gao tianci Exp $ */public class AutoBoxingTest { public static void main(String[] args) { Integer integer1 = 127; Integer integer2 = 127; System.out.println(integer1 == integer2);//true Integer integer3 = 128; Integer integer4 = 128; System.out.println(integer3 == integer4);//false }}
反射
能够分析类能力的程序称为反射。
1. Class
运行时系统始终为所有对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类,保存这些信息的类被称为Class.
- 获取Class类型实例的三种方法
(1)调用对象的getClass()方法获取,因为Object类中使用getClass()返回一个Class类型的实例。
(2)使用Class的静态方法forName(类名),获得类名对应的Class对象。
(3)第三种方法:Class cl = Double[].class。
(4)示例程序
/** * @author gao tianci * @version $Id: ClassTest.java, v 0.1 2017年6月4日 下午6:20:05 gao tianci Exp $ */public class ClassTest { public static void main(String[] args) { try { Person person = new Person(); Class class1 = person.getClass(); Class class2 = Class.forName("com.ly.tainci.exercise.Class.Person"); Class class3 = Person.class; Person person1 = (Person) class1.newInstance(); Person person2 = (Person) class2.newInstance(); Person person3 = (Person) class3.newInstance(); System.out.println(person1); System.out.println(person2); System.out.println(person3); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { System.out.println("获取Class实例失败!"); } }}
- 通过反射可以分析类的能力
在java.lang.reflect包中有三个类Field,Method和Constructor分别描述类的域,方法和构造器。具体使用时在进行详细的查阅。
继承的设计技巧
- 将公共操作和域放在超类。
- 不要使用受保护的域。
- 使用继承实现“is-a”关系。
- 除非所有继承的方法都有意义,否则不要使用继承。
- 在覆盖方法时,不要改变预期的行为。
阅读全文
0 0
- Java基础[5]-2-装箱拆箱;反射和继承设计技巧
- java反射机制+继承设计技巧
- Java基础(2) 装箱与拆箱
- Java基础:深入剖析Java中的装箱和拆箱
- java基础加强(枚举,反射,增强for循环,可变参数,自动拆箱装箱,内省)
- java基础之自动装箱和拆箱
- JAVA基础(三)·自动装箱和拆箱
- java装箱和拆箱
- java装箱和拆箱
- java拆箱和装箱
- Java 装箱和拆箱
- Java 装箱和拆箱
- Java基础之自动装箱拆箱
- java-基础-装箱与拆箱
- Log4j,装箱拆箱,反射
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- java基础(29)--深入剖析Java中的装箱和拆箱
- 自动装箱和拆箱 枚举 反射 数组反射的应用。ArrayList和HashSet
- [quagga-users 8071] Re: Virtual interfaces / aliases supported?
- TraceView看函数运行时间
- book_effective Python_59个有效办法(二)
- HTML页面间传值(JS)(window.location.search方式)
- css第一天
- Java基础[5]-2-装箱拆箱;反射和继承设计技巧
- 【动态规划06】bzoj2096Pilots(dp+单调队列)
- POJ 1755 Triathlon 笔记
- JQuery总结
- 毕业杂记
- 【Lucene&&Solr】Lucene索引和搜索流程
- 业界 | 摩根大通报告12个亮点总结:金融领域的机器学习工具有哪些?
- 解决Android Studio编译时出现GC overhead limit exceeded
- ArcEngine 10.1到10.2之间的相互编译问题--待解救