------- android培训、java培训、java学习型技术博客 期待与您交流! ----------
javaEE
IDE integrity development environment(集成开发环境)
JMS java mail service
JMX
JNDI
如何自定义java模板:java-editor-templates
静态导入:
//静态导入 JDK1.5之后才出现
//如果不想再调用静态方法时写类名可以使用静态导入
importstatic java.lang.Math.*;
publicclass template {
publicstaticvoid main(String[] args) {
//选中要输出内容按下ALT加/可以选择输出或其他操作
System.out.println(max(3, 5));;
}
}
可变参数与overLoad面试题
/**
* @title main
* @description可变数组 JDK1.5之后新特性
* @author Alex Shaw
* @create_date 2013-3-15
* @param args
*/
publicstaticvoid main(String[] args) {
System.out.println(getSum(3, 4, 5, 7));
System.out.println(getSum(3, 4, 5));
}
//调用可变参数时,会将可变参数变成一个数组,然后访问
publicstaticint getSum(int a,int ... other)
{
int sum = 0;
for(int i = 0 ; i < other.length; i++)
{
sum = sum + other[i] ;
}
sum += a;
return sum;
}
关于增强for循环
int[] intArray = newint[]{3,5,66,2};
//for((修饰符)type 变量:变量类型的集合)
//集合必须是实现了iterator接口的才行
for(int i : intArray)
{
//…
}
自动装箱拆箱(1.5之后出现)
装箱:自动将基本类型包装成包装类
拆箱:
对于基本类型的整数,要装箱成Integer,如果整数在-128-127之间,产生之后会被缓存起来以便多次调用(享元模式)
关于享元模式:如果很多小的对象它们有很多相同的东西,那就可以把它们变成一个对象,那些不同的属性变成方法的参数,称之为外部状态,相同的属性称之为内部状态。
Integer i = 13;//自动装箱
System.out.println(i+11);//自动拆箱
Integer i1 = 13;
Integer i2 = 13;
System.out.println(i1 == i2);
枚举:定义一个新的类型,以后使用这个类型的值只能是规定好的那些值,在编译时就可以发现赋予的值不合法
将普通的java类定义成枚举
/**
*
* @title Day
* @description自定义ENUM
* @author Alex Shaw
* @version
* @create_date 2013-3-15
* @copyright (c) CVIC SE
*
*/
publicabstractclass Day {
private Day() {
}
/**
* 采用抽象类将大量的ifelse转换成一个个的独立的类
*/
publicstaticfinal Day monday = new Day(){
@Override
public Day nextDay() {
returnthusday;
}
};
publicstaticfinal Day thusday = new Day(){
@Override
public Day nextDay() {
returnnull;
}
}
public Day getDay()
{
if(this == monday)
{
returnmonday;
}else
{
returnthusday;
}
}
public String toString()
{
returnnull;
}
publicabstract Day nextDay();
}
枚举相当于一个类,枚举中的元素相当于这个类的一个对象
package com;
publicclass Day1 {
/**
* @title main
* @descriptionTODO
* @author Alex Shaw
* @create_date 2013-3-15
* @param args
*/
publicstaticvoid main(String[] args) {
//通过传过来的字符串,转换成一个对象
System.out.println(WeekDay1.valueOf("SUN"));
System.out.println(WeekDay1.SUN.name());
//返回这个对象是第几个元素
System.out.println(WeekDay1.SUN.ordinal());
//返回这个枚举的一个数组
System.out.println(WeekDay1.values().length);
}
publicenum WeekDay1 {
SUN,MON,TUS,WED,THIR,FRI,SAT
}
}
枚举加强,枚举的元素列表必须在前面
枚举的构造方法只能是私有的,其次可以再构造方法之后假如参数
publicenum WeekDay1 {
SUN,MON,TUS,WED,THIR,FRI,SAT;
private WeekDay1()
{
System.out.println("first");
}
private WeekDay1(int a)
{
System.out.println(a);
}
}
有抽象方法的枚举
/**
*
* @title TrafficLamp
* @description交通灯
* @author Alex Shaw
* @version
* @create_date 2013-3-15
* @copyright (c) CVIC SE
*
*/
publicenum TrafficLamp {
//如果一个枚举定义一个实例,那就是个单例
RED(30){
@Override
public TrafficLamp nextLamp() {
returnGREEN;
}
},GREEN(0){
@Override
public TrafficLamp nextLamp() {
returnYELLOW;
}
},YELLOW(33){
@Override
public TrafficLamp nextLamp() {
returnRED;
}
};
//这个方法的返回值还是这个类的一个实例
publicabstract TrafficLamp nextLamp();
privateinttime;
private TrafficLamp(int time)
{
this.time = time;
}
}