------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
1、eclipse的使用技巧
在这行最重要的是java基础的掌握,已经学习能力和学习态度。
eclipse可以去网站下载http://www.eclipse.org/downloads/ (下载Eclipse IDE for Java Developers),按提示安装。也可以下载MyEclipse插件进行安装。
单词的英文:
ide ——》itegtity development environment 集成开发环境
Compiler 编译器
一个wordspace(工作间)可以包含多个project(工程),一个workspace保留了eclipse的一套环境选项的配置,例如,所使用的javac和java命令,等待。细节可以查看window—>preferences,如果要为eclipse再配置一套环境选项,可以重新创建一个workspace。Package(包)。
在window—>preferences—>java中进行Complier(编译)和Installed JREs(运行时)运行版本设置。
在window—>preferences—>General—>Keys对关键字进行设置,设置Alt+/键进行内容提示时,要注意接触Alt+/键原来的绑定关系,直接输入Alt+/就可以找到它的绑定关系,用remove binding这个按钮。
内容助理:content assist,按下之后会补全代码。通常设置为Alt+/
例如:打印快捷键syso 然后按Alt+/——>System.out.println();
其中之所以知道syso是打印,需要进行模板代码的设置
window—>preferences—>java—>Editor(编辑)—>Templates(模板),点New按钮就可以创建模板了。
line_selection原来代码
cursor光标停止位置
*java编程时命名一定要符合规则,这样可读性比较好
重命名—右键——》Refactor——》Rename
Perspective(透视图)与view(视图)
视图:是每个小窗口。透视图是由多个视图组成。
调试:左键在想要查看结果的行的左边,双击形成断点。右键点Debug as调出调试透视图,任何可以用鼠标把想调试的变量拉黑左击点watch,就可以看见此变量现在的值,然后点工具栏上面的向右下角的图标(step over),就可以看见下一步变量的值。最后调试好后可以点右上角的java,回到java透视图。
配置好java编译和运行环境时注意:
低版本的java不能运行高版本的javac编译的程序。
而高版本的java能够运行低版本的javac编译的程序。
配置模板时:line selection(原来内容) cursor(插入光标)
导入已有的工程:file——>import
在类名上面按下f2键,会出现完整的类名
2.小知识复习
静态导入:static import可以导入类中的静态方法
面试题:overload (重载)与 override (重写)的区别
可变参数的特点:
只能出现在参数列表的最后
…位于变量类型和变量名之间,前后有无空格都可以(int … x)(2,3,4,5,6)
掉用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
增强for循环
语法:
for(type 变量名 : 集合变量名){…}
注意事项:
迭代变量必须在()中定义。
集合变量可以是数组或实现了Iterable接口的集合类
举例;
public static int add(int x, int ... args){
int sum=x;
for(int arg : args){
sum+=arg;
}
return sum;
}
扩展:对于新问题新知识可以在sun公司的java语言规范上面查找
基本数据类型的自动拆箱与装箱
自动装箱:Integer num1=12; //会自动把12封装了为对象
自动拆箱:System.out.println(num1+12); //先把num1先拆箱为int数据,再进行加法
Integer i1=12;
Integer i2=12;
上面的i1和i2是同一个对象,即i1==i2为true。因为当这个数为一个字节即-128~127之间时,封装对象时会缓冲到一个池里面,再创建对象时会查看池里面是否存在,以便节约空间。
这是一个模式,享元模式(flyweight):有很多小的对象有很多相同的属性,就可以把它定义为一个对象,把不同的属性定义为方法的参数,称为对象的外部状态,相同的属性称为对象的内部状态。
3.枚举
定义枚举的原因:枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个。否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
枚举是一个特殊的类,其中的每个元素都是该类的一个实例对象.
import java.util.Date;
public class EnumTest {
public static void main(String[] args) {
WeekDay1 weekDay = WeekDay1.MON; //普通类
System.out.println(weekDay.nextDay());
WeekDay weekDay2=WeekDay.FRI;
System.out.println(weekDay2);
System.out.println(weekDay2.name());//类的名称
System.out.println(weekDay2.ordinal());//顺序排名
System.out.println(WeekDay.values().length);//枚举数组长度
System.out.println(WeekDay.valueOf("SUN").toString());//把传入字符串转成类
new Date(300){};
}
//枚举
public enum WeekDay{
//这些对象创建时调用的构造函数就是第一个
SUN,MON,TUE,WED,THI,FRI,SAT;//枚举元素列表必须放在所有成分之前
//枚举的构造函数必须是私有的
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}
//带有抽象方法的枚举
public enum TrafficLamp{
//如new Date(300){};
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 int time;
private TrafficLamp(int time){
this.time=time;
}
}
}
//普通类
public abstract class WeekDay1 {
private WeekDay1(){}
public final static WeekDay1 SUN = new WeekDay1(){
public WeekDay1 nextDay() {
return MON;
}
};
public final static WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay() {
return SUN;
}
};
public abstract WeekDay1 nextDay();
// public WeekDay nextDay(){
// if(this==SUN){
// return MON;
// }else{
// return SUN;
// }
// }
public String toString(){
return this==SUN?"SUN":"MON";
}
}
如果枚举只有一个成员,可以作为一种单例的实现方式。