锁定老帖子 主题:Eclipse简介和JDK5.0高新技术
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-10-20
<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]--> Eclipse :2011年 11 月, IBM 投资 4000 万美元贡献给开源社区。 Eclipse 是支持多语言的开发平台。它的价值是为 可扩展 的集成开发环境提供了一个开放源码平台,这个平台允许任何人构建与环境和其他工具无缝集成的工具( 插件 )。Eclipse 除了一个小型的运行时核心之外,其余的都是插件。 IDE:Integrated Development Environment,集成开发环境。 常见java 英文缩写: JDK: Java Development Kit, 编写 Java 程序的程序员使用的软件。 JRE: Java Runtime Environment ,运行 java 程序的用户使用的软件。 SE: Standard Edition, 用于桌面或简单的服务器应用的 java 平台。 EE: Enterprise Edition, 用于复杂的服务器应用的 Java 平台。 ME: Micro Edition, 用于微型手机 Cell phone 和其他小型设备的 Java 平台。 J2: Java 2 ,一个过时的术语,用于描述 1998 年 ——2006 年之间的 Java 版本。 SDK: Software Development Kit ,一个过时的术语,用于描述 1998 年 ——2006 年之间的 JDK 。 u: Update,Sun 的术语,用于发布修改的 bug 。 NetBeans: Sun 的集成开发环境。 MyEclipse:其实就是 Eclipse 的一个插件( plugin ),主要用于 Java web 开发。 JDT:开发 java 所需要的插件。 CDT:开发 C 和 C++ 所需要的插件。 Perspective:透视图(也叫视角);将某些有联系的小窗口组成的集合叫做透视图。想要显示这些小窗口只要切换到这个透视图下就可以了,不必一个一个窗口的调用。
Content Assist:内容助理; ALT+/;
在Eclipse 里面如何调试查看一个变量的值? 1, debug as: 在 Debug 透视图进行调试。 2,选中要调试的变量,右击选择 Watch 。
import:导入一个类或者某个包中的所有类。 import static:导入一个类的某个静态方法或者所有静态方法。
Eclipse插件安装方法: 1.拷贝安装。 2.Links安装: eclipse 目录下创建 links 目录 >> 在 links 下创建 link 文件(文本就行),指定插件路径。 path=D:/Plugins-Download/GEF-All-3.1 ;一个 link 文件里面可以添加多个 path 。 3.Update安装。只要知道插件的更新地址就行。 Help>>software update>>find and install>> 选择 “search for new features to install”>>next >>“New Renote Site”, 添加新的站点后,按 eclipse 更新向导就可以完成插件安装了。 查看插件:Help >>About Eclipse SDK>>Plug-in Details
Eclipse常用来开发 java 项目。一下是关于 java 的一些概念: Java程序语言: 是目前最先进的面向对象编程语言,它的语法和C 语言相当类似。
Java虚拟机: 或称java 解释器( interpreter ),是 java 安装系统最重要的一部分, java 程序被设计成具有可移植性,但也只能在安装了 java 解释器的平台上运行。
Java平台: 所有使用java 语言编写的程序都必须依赖构成 java 平台的预定义类集合才能顺利运行。即:预定义类的集合(就像我们常用的 Java SE 中的那些包和类的集合)。
5.0中引入了可变参数: invoke(Object obj, Object... args) 1.4中使用的还是数组: invoke(Object obj ,Object[] args)
为了兼容1.4 版本,如果在向 invoke 中传入的对象是一个数组类型的时候,我们要么再加一层数组嵌套,要么利用强制转换告诉 jvm 这里是一个对象。因为如果没有特殊处理的话, jvm 将按照 1.4 的方法处理,即把数组拆开!
MethodCharAt.invoke(str,new Object[]{new int[]{2}}); MethodCharAt.invoke(str,(Object)new int[]{2});
可变参数特点: 1,只能出现在参数列表的最后; 2, ... 位于变量类型和变量名之间,前后有无空格都可以。 3,调用可变参数的方法时,编译器为该可变参数隐含创建了一个数组,在方法中以数组的形式访问可变参数。 由于可变参数这个特性是在jdk5.0 出现的,所以为了兼容老版本,在使用可变参数时,如果我们希望传入的是一个数组,那么 jvm 会把这个数组拆开,为了避免这样的情况我们可以,在这个数组外面再加一层数组或者申明 这个数组是Objecct 的。 Example: 在反射中我们用到的这段代码: MethodCharAt.invoke(str,new Object[]{new int[]{2}}); MethodCharAt.invoke(str,(Object)new int[]{2});
增强for 语句 (for\in or foreach ) : 5.0出现的新特性。格式: for(type variableName : variabaleSet){...}
注意事项: 1,迭代的变量必须在 () 中定义; 2,集合变量可以是数组集合或实现了 Iterable 接口的集合类。
注释快捷键:ctrl+shift+/ ; 取消注释快捷键:ctrl+shift+\ ;
如何获得新的知识?去oracle 官网下载最新 JDK 的语言规范( langspec ) 英语词汇:specification 规范,明确说明,说明书。
自动装箱:基础数据类型(primitive data type)——> 相应的对象。 Integer iObj = 12;
自动拆箱:对象——> 相应的基础数据类型。 sop( iObj + 12 );
java中在创建一个小于 127 的 Integer 对象时,先到缓冲池中去找有没有一个一样的对象,如果没有就创建一个,如果有直接指向那个对象,这是因为小于 127 的比较常用,所以可以节省内存资源,这里使用了享元设计模式。
强调: Integer小于 127 的如果内存中存在相同的,就不再建立新的对象。
享元模式(flyweight ): 如果有很多很小的对象,我们会经常用到,用的时候该对象的内部状态都没有变化,那么就可以把他变成一个对象。那些不同的属性把它变成方法的参数(外部状态),那些相同的属性叫内部状态。
Alt+shift+x:运行; Alt+shift+x j:运行 java Application ;
枚举类型:定义一种类型变量,它指向的值都是固定的。这些值称作枚举的元素,这些元素可以是这个枚举类或者其子类的一个实例对象。该类型的取值只可以是这些元素和null 。
在没有枚举类型以前我们是怎样实现枚举的功能的呢?
下面是我们模拟枚举类型的一个事例: package cn.itcast.day1;
public abstract class WeekDay1 { private WeekDay1() { }
public final static WeekDay1 SUN = new WeekDay1() {
@Override public WeekDay1 nextDay() { return MON ; }
}; public static final WeekDay1 MON = new WeekDay1() {
@Override public WeekDay1 nextDay() { return MON ; }
};
public abstract WeekDay1 nextDay();
public String toString() { return this == SUN ? "SUN" : "MON" ; } }
JDK 5.0后,我们可以怎样做: public enum WeekDay { SUN , MON , TUE , WED , THU , FRI , SAT }
就像类和接口一样,enum 关键字定义了一个新的引用类型。这些值就像 static final 字段一样(这就是为什么它们的名称一般用都大写来表示), WeekDay 可以被指定为这七个值中的任意一个和 null ,但是不能是其他值。
思考:在刚接触到枚举的时候我很不解,既然我们可以自己构造一个和枚举功能相当的类,那么JDK 在枚举的升级是不是就是简化操作和代码的升级呢?其实不然,简化操作是一方面,其实更重要的是提供了类型安全性。在 5.0 之前,我们会可能会使用 int 型的 1 来表示 SUN ,剩下的以此类推,但是当我们应用 weekday 时,给一个 weekday 变量赋值的时候我们如果赋予的是一个大于 7 的值,那么编译是不会报错的。
5.0以前: public static final int SUN = 1; 如果我们在另外一个地方引用SUN 时: 正确的:int day = WeekDay.SUN; 错误但不会报错:int day = 45; 如果打印某个枚举类型,打印出来的就是枚举的字符串本身,与name() 方法获得的一样。
下面是交通灯的一个枚举事例: public enum TrafficLamp { Red (25) { @Override public TrafficLamp nextLamp() { return Green ; } }, Yellow (5) { @Override public TrafficLamp nextLamp() { return Red ; } }, Green (30) { @Override public TrafficLamp nextLamp() { return Yellow ; } }; public abstract TrafficLamp nextLamp();
@SuppressWarnings ( "unused" ) private color: #7f0055; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1829 次