论坛首页 编程语言技术论坛

Eclipse简介和JDK5.0高新技术

浏览 1829 次
精华帖 (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集成开发环境:

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 中的那些包和类的集合)。

 

JDK 5.0(Tiger)中的一些新特性:

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;

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics