Eclipse和MyEclipse的区别与联系?
Workspace和project的关系?
英文缩写的全称
Jdk-----Java Development Kit
IDE----Integrated Development Environment(集成开发环境)
Java EE--- java 2 Platform Enterprise Edition(企业版平台)
Jvm---Java Virtual Machine
Jms----Java Message Service (java消息服务)
Jmx----Java Management Extensions
Jndi----Java Naming and Directory Interface
Jdk5.0新特性:
1. 静态导入
对于类的静态方法我们可以想导入类一样导入静态方法,此时我们可以直接调用此静态方法,而不用加上类名或对象引用,也可以将某个类的手游静态方法都引入,用*号,与引入一个包中的所有类时类似的
例如
import static java.lang.Math.max;
import static java.lang.Math.*;
public class haha{
public static voidmain(String[] args){
int a =max(3,5);
int b =abs(-78);
System.out.println("a= "+ a +" " + " b =" + b);
}
2. 可变参数列表
可变参数列表顾名思义即参数的长度是不确定的。在5.0之前用的是数组,其实5.0底层用的也是数组
Public static int add (int a ,int …args){
int sum = a;
for(int i =0;i<args.length;i++){
sum+=args[i];
}
}
3. 增强的for循环
for(变量类型变量名:集合)
此处的集合必须是实现了Iterator接口的集合
public class Enhancefor {
/**
* @paramargs
*/
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
int[] arr = {1,2,3,4,5,7,9};
for(int i : arr)
System.out.println(i);
}
}
/*
* 增强的for
* for(type 变量名:集合变量名)
*
*/
4. 基本数据类型的自动封装与拆包
Jdk5.0以后基本数据类型与对应的包装类之间可以自动转换
5. public class AutoBox {
6.
7. /**
8. * @paramargs
9. */
10. public static void main(String[]args) {
11. // TODO Auto-generated method stub
12. IntegeriObj = 11;
13.
14. System.out.println(iObj +13);
15.
16. /*-128-127之间的Integer对象都是同一个对象享元模式
17. *
18. * */
19. Integeri1 = 13;
20. Integeri2 = 13;
21. System.out.println(i1 == i2);
22.
23. Integeri3 = 137;
24. Integeri4 = 137;
25. System.out.println(i3 == i4);
26.
27. Integeri5 = Integer.valueOf(13);
28. Integeri6 = Integer.valueOf(13);;
29. System.out.println(i5 == i6);
30.
31. Integeri7 = Integer.valueOf(137);
32. Integer i8 = Integer.valueOf(137);
33. System.out.println(i7 == i8);
34.
35.
36. }
37.
38.}
运行结果:
24
true
false
true
false
享元模式(flyWeight):有很多个小对象他们有很多属性相同,可以把他们变成一个对象,那些不同的属性作为方法的参数称之为外部状态,相同属性称之为内部状态
-128-127子类的整数都只有一个对象存在于内存中,这里就用到了享元模式
1. 枚举(enum)
枚举其实就是一个类,而这个类的对象是由该类自己决定的若干个对象或子类对象,也就是说我们不能通过其构造方法创建对象,而要通过枚举类本身来得到相应的对象。
枚举元素上必须在类的首行,其元素其实就是此类的对象或子类对象,构造方法必须是private的。我们可以在元素的后面跟上相应的参数来决定用哪个构造函数
例如:
import java.util.Arrays;
public class EnumTest {
/**
* @paramargs
*/
public static void main(String[] args) {
// TODO Auto-generatedmethod stu
Weekday weekday = Weekday.THU;
System.out.println(weekday);
System.out.println(weekday.name());
System.out.println(weekday.ordinal());
System.out.println(Weekday.valueOf("SUN"));
System.out.println(Arrays.toString(Weekday.values()));
}
public enum Weekday{
SUN(),MON,TUE(3),WED,THU,FRI,SAT;
private Weekday(){//枚举的构造方法只能是private的
System.out.println("FIRST");
}
private Weekday(int a){
System.out.println("SCONED");
}
}
}
运行结果:
FIRST
FIRST
SCONED
FIRST
FIRST
FIRST
FIRST
THU
THU
4
SUN
[SUN, MON, TUE, WED, THU, FRI, SAT]
如果枚举只有一个成员就可以认为是是一个单例的实现方式