黑马程序员--基础加强部分
来源:互联网 发布:张伯伦数据统计 编辑:程序博客网 时间:2024/05/19 20:41
一、MyEclipse的使用技巧
一个Workspace(工作区)可以包含多个Project(工程),一个Workspace保留了Eclipse的一套环境变量的配置。
一个Perspective代表了若干个View的集合,可以通过window-->show view-->选择需要的View;
可以手动配置编译和运行环境:window-->preference-->java-->compiler(或者Installed JREs);注意:高版本编译出来的字节码交给低版本的JRE运行,会出现错误。
导入已有的工程:先把要导入的工程copy到Workspace文件目录下,然后:import-->Existing Projects into Workspace,确认即可。导入的工程后,有可能工程原来所用的JRE与Workspace中的JRE不一致,导致一些编译运行错误。这时可以点击右键,buildPath-->configure buildPath,先删除已有的JRE库,再增加原来的JRE库,即可。
怎样调试一个变量的值?双击一行,观察到左边出现断点,右键debug as,切换到调试视图下,选中变量右键watch,单步运行即可。
注释整个段落的内容:先选中要注释的内容,然后ctr+shift+/;
当类文件或者某个字段的名称写错时,可以重构:右键refactor-->rename,即可。
设置单个工程的javac和java,选择工程,右键->properties可以设置javac,右键->run as-->open rundialog可以设置java。
内容助理:alt+/;单行注释:ctr+/;多行注释:ctr+shift+/。
代码模板的设置:java-->editor-->Templates。
2、JDK1.5的几个新特性
2.1、静态导入:import static
import语句可以导入一个类或者某个包中的所有类;
import static语句可以导入一个类中的某个静态方法或者所有的静态方法。导入后可以直接写方法名,不用注明类名;但静态导入的多个类中有相同的静态方法,需要注明方法的类名。
2.2、可变参数
当一个方法接收的参数不固定时,在JDK1.4版本之前,用一个数组存储这些参数;在1.5版本之后,用可变参数(…)的形式。其实可变参数内部还是封装了一个数组,只不过是编译器隐式帮助创建一个数组罢了;注意:可变参数必须出现在参数列表的末尾。
2.3增强for循环
格式:for(type 变量名:集合变量名){…};
被遍历的集合变量要么是数组,要么是集合,增强for循环只能对集合中的元素进行遍历,不能进行增删改等的操作。建议平时使用普通for循环,因为可以操作角标。这个升级:简化书写。
2.4基本数据类型的自动装箱和自动拆箱
自动拆箱与自动装箱:发生在八种基本数据类型和所对应的包装类之间的自动转换动作。
享元模式:flyweight,当整数在一个字节大小内时,使用享元模式,即在内存中使用的是同一个对象。
三、枚举
枚举:枚举就是让某个类型的变量的取值只能是若干个固定值中的一个,否则,编译器会报错。枚举可以让编译器在编译时期就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。枚举也是JDK1.5的一个新特性。
用普通类实现枚举功能的方法:1、私有化构造方法;2、每个元素用一个公有的静态成员变量表示;3、可以定义一些抽象方法,然后每个枚举的元素用匿名内部类的形式实现该抽象方法。
enum:枚举有enum关键字表示,相当于一个类,其中也可以定义构造方法、成员变量、普通方法、抽象方法等等。
注意:枚举元素必须位于枚举体中的最开始部分,枚举元素列表的最后要有分号与其他成员分隔。在枚举中的构造方法必须私有化;枚举中可以带有抽象的方法,抽象方法可以交给枚举元素分别取实现,使用匿名内部类的形式。
四、反射
4.1、Class类
Person类代表人,它的实例对象可以是张三、李四等等这样具体的人。同理:Class类描述的是内存中的字节码,每一份字节码都是Class类在内存中的一个具体对象。
获取Class类对象、即具体的一份字节码的方法:
1、类名.class;例如:System.class;
2、对象.getClass(),例如:new Stirng(“abc”).getClass();
3、Class.forName(“类名”),例如:Class.forName(“java.lang.String”);
每一种不同的类型,都有对应的字节码,同一种类型在内存中使用的是同一份字节码。
例如:int、double、int[]、int[][]、void等等都有对应的字节码。
注意:每一个类在内存中的字节码唯一!
4.2、反射
反射:反射就是把java类中的各个成分映射成为相应的java类。例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示,就像汽车是一个类,汽车中的发动机,变速箱等等也是一个个的类。表示java类的Class类显然要提供一系列的方法,来获得其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、Method、Contructor、Package等等。
4.3、Constructor类
Constructor类:代表某一份字节码中的构造方法。
获取全部构造函数:Constructor[]constructors =
Class.forName(“java.lang.String”).getConstructors();
获取某一个构造函数:Constructorconstructor =
Class.forName(“java.lang.String”).getConstructor(StringBuffer.class);
获取到一份字节码中的构造函数后,就可以用这些构造函数创建具体的实例对象了,
例如:constructor.newInstance(new StringBuffer(“abc”));注意:构造函数的参数列表的类型必须一致,否则运行出错。
一般是先获取具体的一份字节码,然后再获取该字节码中的构造函数,之后才能用该构造函数去创建对象;为了简化过程,可以使用字节码直接创建对象(只能创建默认无参的);
例如:Class.newInstance()方法:
Stringobj =(String)Class.forName(“java.lang.String”).newInstance();
该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象,缓存机制。
4.4、Field类
Field类:代表某一份字节码中的成员变量。注意:得到的只是一份字节码中的某个成员变量字段,并非具体对象的那个成员变量字段。具体的操作会在代码中说明。
4.5、Method类
Method类:代表的是某一份字节码中的成员方法。关于main方法的反射、数组的反射等都在接下来的代码中详细说明,在此不再细说。
4.6、反射的作用
反射的作用:实现框架功能。因为框架往往是先写成,写的时候要调用的那些类还没存在,所以只能使用反射,将特定的类名传入到框架中,即可。
框架:专门调用别人的类,提高效率的工具。注意:框架是调用用户提供的类,而工具类被用户的类调用。
----------------------云10期javaEE+物联网与云计算期待与您交流! ----------------------
- 黑马程序员--基础加强部分
- 黑马 基础加强部分
- 黑马 加强基础部分
- 黑马 基础加强部分
- 黑马 基础加强部分
- 黑马 基础加强部分
- 黑马 基础加强部分
- 黑马 基础加强部分
- 黑马 基础加强部分
- 黑马程序员:基础加强
- 黑马程序员-基础加强
- 黑马程序员---------------------基础加强
- 黑马程序员—(基础加强JDK1.5)—枚举部分
- 黑马程序员基础-----基础加强
- 《黑马程序员》基础加强---eclipse加强
- 黑马程序员__基础加强
- 黑马程序员-Java基础加强
- 黑马程序员_基础加强
- spoj375 Query on a tree 树链剖分
- Java集合01----ArrayList的遍历方式及应用
- 易信的差异化,送给来往
- cocos2dX UI控件之CCLabelTTF
- VC内存泄露检查工具:VisualLeakDetector
- 黑马程序员--基础加强部分
- [Cocos2d-x v3.x]cocos2d::Value
- 游戏开发图片格式选择
- 编写高质量代码——“零星”总结
- 安卓模拟器
- web常用端口
- 【C++ STL Map】遍历
- [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个
- 被颠倒的现实主义与理想主义