java常识:
Java ee的全称是Java2 Platform, Enterprise Edition
IDE(Integrated Development Environment,集成开发环境) 也代指“电子集成驱动器”。
集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。
JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简单化企业应用开发,翻译Java消息服务。
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统植入管理功能的框架。
JNDI(Java Naming and Directory Interface )一组帮助做多个命名和目录服务接口的API。
overLoad 与 override 区别:
overload重载:参数、列表、类型不一样,返回的值就不一样的俩个或多个相同方法名方法的代码模块
override重写:父类的方法在子类中在写一次 (父类中的静态方法在子类中再写一次相当于新建一个方法)
eclipse及myeclipse关系:
eclipse及myeclipse都是使用java语言编写,启动是相当于启动java.exe程序,可以在任务管理器结束进程关闭程序。
myeclipse是eclipse功能的补充和完善,相对于补丁。
Eclipse、Myeclipse配置快捷键:
菜单栏Window-Preferences-General-Keys。
Eclipse、Myeclipse设置快捷键模板、加载模板:
菜单栏Window-Preferences-Java-Editor-Templates
选中要加载模板的代码,右键Surround with
Eclipse、Myeclipse调试程序:
增加断点,右键Debug As 进入透视图界面,选中要查看代码右键watch,可以查看效果。
Eclipse、Myeclipse调试程序:
工作间工程的调试和运行时,java版本不能低于javac版本
Eclipse、Myeclipse导入工程:
拷贝工程文件到工作空间目录,import导入之后,选中工程右键Build Path-configure Build Path-Libraries删除原来jar库,新增自己的jar包或库
JDK1.5新特性:
1、可以静态导入,例:import static java.long.Math.*;
2、可变参数,例如:
Package cn.itcast.day1;
public class varableParameter {
public static void main(String[] args) {
System.out.println(add(1,2,3,4,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;
}
}
3、for循环加强,for(type 变量名: 集合变量名){……} 例如:
将2、中varableParameter类中的for循环替换为
for(int arg:args){
sum+=arg;
}
注:集合变量可以是数组或是实现了Iterable接口的集合类
4、自动装箱与拆箱
Package cn.itcast.day1;
public class AutoBox {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer iobject=13;//自动装箱:自动将iobject封装为Integer对象并赋值;1.5以前版本必须Integer iobject = new Integer("13");
System.out.println(iobject+10);//自动拆箱:自动将指向数据的对象拆箱为数据进行运算;1.5以前版本必须System.out.println((int)iobject+10);
Integer i1=20; //享元模式:把很多很小并且有很多相同元素的对象,定义为一个对象,不同的元素当作外部属性作为方法的参数传入
Integer i2=20; //-128-127之间的数值,默认定义为一个对象,可以在内存中多次调用
System.out.println(i1==i2);
Integer i3=137;
Integer i4=137;
System.out.println(i3==i4); //137没有定义为一个对象
}
}
享元模式:很多很小的对象有很多相同的元素那么可以定义为一个对象,不同的元素当做外部属性做为方法的参数传入
枚举:定义变量时,变量不能取规定范围以外的值
package cn.itcast.day1;
//枚举测试
public class EnumTest {
public static void main(String[] args) {
WeekDay weekDay=WeekDay.MON;
System.out.println(weekDay.nextDay());
}
}
abstract class WeekDay {
private WeekDay(){}
public final static WeekDay SUN=new WeekDay(){
public WeekDay nextDay() {
return MON;
}};
public final static WeekDay MON=new WeekDay(){
public WeekDay nextDay() {
return SUN;
}};
public abstract WeekDay nextDay();
/*public WeekDay nextDay(){ //以上代码用使用抽象方法定义nextDay将大量的if…else语句转移成一个个独立的类
if(this==SUN){
return MON;
}
else{
return SUN;
}
}*/
public String toString(){
return this==SUN?"SUN":"MON";
}
}
枚举的基本应用:
package cn.itcast.day1;
public class EnumTest1 {
public static void main(String[] args) {
WeekDay weekDay=WeekDay.FRI;
System.out.println(weekDay);
System.out.println(weekDay.name());
System.out.println(weekDay.ordinal());
System.out.println(weekDay.valueOf("SUN").toString());
System.out.println(weekDay.values().length);//weekDay.values()是一个数组
}
public enum WeekDay{
SUN,MON,TUE,WEN,THI,FRI,SAT
}
}
带构造方法的枚举:
public enum WeekDay{
SUN(1),MON,TUE,WEN,THI,FRI,SAT;//所有代码都必须放在列表之后
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}
带抽象类的复杂枚举:
public enum TrafficLamp{
RED(30){
public cn.itcast.day1.EnumTest1.TrafficLamp TrafficLamp() {
return GREEN;
}
},GREEN(45){
public cn.itcast.day1.EnumTest1.TrafficLamp TrafficLamp() {
return YELLOW;
}
},YELLOW(5){
public cn.itcast.day1.EnumTest1.TrafficLamp TrafficLamp() {
return RED;
}
};
public abstract TrafficLamp TrafficLamp();
private int time;
private TrafficLamp(int time){this.time=time;};
}