java_jdk1.5部分新特性

本文深入探讨了myEclipse的使用技巧,包括通过任务栏启动javaw,工程化管理项目,快捷键配置,透视图与视图管理,Java与javac配置,模板快捷键,静态导入,可变参数,自动装箱与拆箱,枚举的使用,以及Java面向对象思想的应用。此外,还介绍了myEclipse中模版快捷键、静态导入、可变参数、自动装箱与拆箱、枚举等核心概念及其在实际开发中的应用。

myEclipse的使用技巧

 

关eclipse可以通过任务栏里的javaw

Eclipse是一种IDE开发工具,开发工具都支持使用工程化方式管理一个项目的程序开发过程,一般来说一个相对独立的项目就是一个工程,一个项目中涉及多个java文件,资源管理等用一个工程进行管理

Javaee jde jms jmx jndi

IDE—integrity development environment

 

File里可以切换工作间,每个工作间的配置信息不一样

 

在preference里的key来改快捷键

 

Perspective透视图and view

Perspective-debug java Myeclipse

View 每一个小的窗口,组成透视图

 

配置java和javac

  Preference里Complier 和Installed JREs

  编译和运行的版本要一致

  高版本的java能运行低版本的java编译的程序

  低版本的java不能运行高版本的javac编译的程序

Eclipse工作台中的所有工程继承工作台的配置,其中某个工程也可以覆盖工作台的配置!这是不是java面向对象的思想呢

 

模版快捷键

Editor→Template→new

 

静态导入

Import语句可以导入一个类或某个包中的所有类

Import static 语句导入一个类中的某个静态方法或所有的静态方法

Eg:import static java.lang.Math.max;

这样就可以直接用了

 

可变参数

一个方法接受的参数个数不固定

可变参数的特点:

args只能出现在参数裂变的最后;

…位于变量类型和变量名之间,前后无空格都可以;

调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体重以数组的形式访问可变参数

 

 

 

public static int add(int x,int…args){

int sum=x;

for(int i=0;i<args.length;i++){

sum+=args[i];

}

 

}

增强for循环

public static int add(int x,int…args){

int sum=x;

for(int arg:args)

sum+arg;

}

 

自动装箱与拆箱

Eg

自动装箱

Integer num1=12;

自动拆箱

System.out.println(num1+12);

基本数据类型的对象缓存:

Integer num1=12;

Integer num2=12;

 

System.out.println(num1==num2);//true

Integer num3=128;

Integer num4=128;

 

System.out.println(num3==num4);//false

享元模式 (flyweight):如果数字在一个字节范围里,就是-128到127

这个数字的封装对象就会被缓存起来,因为数字小运用的频率较高,每出现一次就把他封装成一个对象比较占内存。另外一个例子,当我们在输入字符的时候,如果说每一个字母是一个小对象的话,是非常浪费内存的。我们可以采取只有26个对象,每一个对象都有一个字母属性,我们可以设计一个位置属性,把他设计成为一个方法的参数即外部属性,这样每次输入字母的时候就调用这个display的方法,可以供用一个char。另外一个例子就是windows的文件夹图标,每个图标都差不多,但是就是位置和标题不怎么一样,我们就可以这么设计

总之,如果有很多很小的对象,他们有相同的属性,就可以把他变成一个对象,不同的属性可以通过方法的参数传入

 

Integer num5=Integer.valueOf(12);

Integer num6=Integer.valueOf(12);

System.out.println(num5==num6);//true;

 

 

枚举

 

为什么要有枚举

 问题:要定义星期几或性别变量,该怎么定义?假设1-7分别表示星期一到星期日,但有人可能写成int weekday=0;

枚举就是要让某个类型的变量取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序写非法值,普通变量的方式在开发阶段无法实现这一目标。错误越早提醒越好

 

 用普通类如何实现枚举功能,定义一个weekday的类来模拟枚举功能。

  私有的构造方法

  每个元素分别用一个公用的静态成员变量表示

  可以有若干共有方法的或抽象方法,例如,要提供nextDay方法必须是抽象的

public abstract class WeedDay{

   private WeekDay(){}//其他的类不能new 此类

  public final static WeedDay SUN=new WeekDay(){//抽象方法的内部类

    public WeekDay nextDay(){

return MON;}

};

  public final static WeedDay MON=new WeekDay(){

public WeekDay nextDay(){

return TUE;}

 

};

  public abstract WeekDay nextDay();//采用抽象方法定义nextDay将大量if.else语句转移成一个个独立的类。

 

/*public WeekDay nextDay(){

    if(this==SUN){

     return MON;

}

    else{return SUN;}

}*/

   Public String toString(){

    Return this==SUN?”SUN”:”MON”;

}

   }

public class EnumTest{

 

public static void main(String[] args){

     WeekDay weekDay=WeekDay.MON;

}}

 

 

枚举的基本应用

扩展:枚举类的values, valueOf, name, toString, ordinal等方法

总结:枚举是一种特殊的类,其中的每个元素都是该类的一个对象,例如可以调用WeekDay.SUN.getClass().getName和WeekDay.class.getName().

 

Public class EnumTest{

   public static void main(String[] args)

{

System.out.println(WeeKDay.valueOf(“SUN”));//把字符转换为字符串

System.out.println(WeeKDay.values().length);//数组

}

public enum WeekDay{

 

SUN,MON,TUE,WED,THI,FRI,SAT;//SUN(1)调用第二个构造器,如果只是括号调用第一个构造器,数据列表必须是第一个

private WeekDay(){}//其他类不能new此类

private WeekDay(int day){}

}

public enum TrafficLamp{

RED(30){public TrafficLamp nextLamp(){//

     Return GREEN;

}//带上抽象的方法的枚举

},

GREEN(45){ public TrafficLamp nextLamp(){

     Return Yellow;

}

},

YELLOW(5){ public TrafficLamp nextLamp(){

     Return RED;

}

 

};

Public abstract TrafficLamp nextLamp();

private TrafficLamp(int time){this.time=time;}

}

}

要创建单例可以用枚举,枚举只有一个成员时,就可以作为一种单例的实现方式

转载于:https://www.cnblogs.com/fred-zhang/p/jdk5%e9%83%a8%e5%88%86%e6%96%b0%e7%89%b9%e6%80%a7.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值