张孝祥J2SE加强自学笔记(2-16)

2、IDE开发工具介绍(明白下面的单词缩写):
java ee
ide:IDE为(Integrated Devolop Environment)集成开发环境之意.
jndi:Java Naming and Directory Interface Java名称和目录接口
jms:即Java消息服务(Java Message Service)
jmx:JMX--Java Management Extensions,即Java管理扩展,是一个为应用程序、设备、系统等植入管理功能的框架。

3、工程管理与快捷键的配置:
包名与类名起名字要专业,这对于面试来说相当重要
到哪个公司面试,写程序起包名的时候可以以这个公司的名字为准
General---keys--content assist:配置快捷键

4、视图管理与程序调试:
学会用debug调试程序,视图与透视图的关系:一个小的窗口就是一个视图,而透视图就是很多小窗口的集合
不同的透视图下面下面有有不同的视图,也就有不同的功能。

5、Eclipse的编译与运行环境:
(1)高版本的java能运行低版本的javac,而低版本的java不能运行高版本的javac,注意Bad version number in.class file 这个错误
是说java程序的编译和运行的版本不一样。
(2)Eclipse工作台中的所有工程继承工作台的配置,其中某个工程也可以覆盖工作台的配置,可以理解为java面向对象的思想。

6、Eclipse配置Java模板:
配置java模板的方法:window--preferences--java--Editor--Templates-->new输入name 在pattern中加入你的模板代码-->Insert Variable
配置选择值"line_selection"和光标位置"cursor"的位置

7、在Eclipse中导入已有的工程:

8、静态导入与编译器语法设置:
import 可以导入一个类或者一个包下的所有的类,而import static 可以导入某个类中的一个静态方法或所有的静态方法。
我们调用静态方法都是 类名.方法的方式进行调用,有了import static 就可以不用写类名(jdk1.5或更高的版本),而直接写方法名了,只是介绍有
这个一个知识点,但是并不常用因为没有多大的意义。

9、可变参数:(经典面试题:OverLoad与Override的区别)
问题:一个方法接收参数的个数不固定,例如:
System.out.println(add(2,5));
System.out.println(add(2,5,7));
可变参数的特点:
(1)只能出现在参数列表的最后
(2)...位于变量类型和变量名之间,前后有无空格都可以
(3)调用可变参数的方法是,编译器为该可变参数隐含创建一个数组,在方法体中以数组的方式访问可变参数
代码举例:
public static void main(String[] args) {
System.out.println(add(2, 3));
System.out.println(add(2, 3, 5));
}

public static int add(int x, int ... args) {
int sum = x;
for(int i=0; i<args.length; i++) {
sum += args[i];
}
return sum;
}

10、java5的增强的for循环:
语法:for(VariableModifies(可选) type 变量名: 集合变量名) {....}
注意事项:(1)迭代变量必须在()中实现!
(2)集合变量可以是数组或者实现了Iterable接口的集合类
代码举例:
public static int add(int x, int ... args) {
int sum = x;
/**
*可以增加修饰符
*for(final int arg : args)
*/
for(int arg : args) {
sum += arg;
}
return sum;
}

11、基本数据类型的自动拆装箱及享元模式:
自动装箱:Integer num1 = 12;
自动拆箱:System.out.println(num1 + 12);
基本数据类型的对象缓存:

Integer num1 = 12;
Integer num2 = 12;
System.out.println(num1 == num2); true

Integer num3 = 129;
Integer num4 = 129;
System.out.println(num3 == num4); false

Integer num5 = Integer.valueOf(12);
Integer num6 = Integer.valueOf(12);
System.out.println(num5 == num6); true

Integer num7 = Integer.valueOf(129);
Integer num8 = Integer.valueOf(129);
System.out.println(num7 == num8); false

享元模式:有很多个小的对象,他们有很多相同的属性,把他们相同的属性抽取出来组成一个对象,把不同的属性
变成方法的参数,成为“外部状态”;

12、枚举的作用的介绍:

13、普通类模拟枚举的实现原理:
public abstract class WeekDay {

private WeekDay() {}

public abstract WeekDay nextDay();

//因为WeekDay是抽象的,所以不能直接new后面加一对大括号表示用它的子类来new对象
//这是一个匿名类,然后实现了父类的抽象方法
public static final WeekDay SUN = new WeekDay(){

@Override
public WeekDay nextDay() {

return MOD;
}
};
}

14、枚举的基本应用:
15、实现带有构造方法的枚举:
public class EumTest {

public static void main(String[] args) {
WK wk = WK.FRI;
}

public enum WK {
SUN(), MON(2), TUE, FRI;
private WK() {System.out.println("first");}

private WK(int i) {System.out.println("second");}
}
}
注意:(1)枚举的构造方法必须定义在所有定义的常量的后面
(2)构造方法必须是private的
(3)要访问有参数的构造方法,只要在定义的常量后面加小括号传入构造方法指定的参数类型即可
(4)如果要在定义完常量后定义方法,则定义的最后一个常量必须要加上分号

16、实现带有抽象方法的枚举:
public enum TrafficLamp {
RED(30){
public TrafficLamp nextLamp() {
return GREEN;
}
}
,
GREEN(45){
public TrafficLamp nextLamp() {
return YELLOW;
}
}
,
YELLOW(27){
public TrafficLamp nextLamp() {
return RED;
}
};
private int time;
private TrafficLamp(int time) {
this.time = time;
}
public abstract TrafficLamp nextLamp();
}

提示:枚举只有一个成员时,就可以作为单例的一种实现方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值