一.静态导入
import 语句可以导入一个类或者某个包中所有的类。
import static 导入一个类中的某个静态方法或所有静态方法。
举例:
import java.lang.reflect.Method;//导入Method类。
import static java.lang.Math.*;//导入Math类中的所有静态方法。
代码:
import static java.lang.Math.*;
public class StaticImport {
public static void main(String[] args) {
int x = 1;
x++;
System.out.println(x);
/*
* max()方法是Math类中的静态方法 如果在导入的时候不是静态导入,那么调用该方法的格式就会是: Math.max();
*/
System.out.println(max(3, 9));
// abs()方法也是Math类中的静态方法
System.out.println(abs(3 - 9));
}
}
二.可变参数
1.一个方法接受的参数个数不固定。
2.…代表可变参数。
例如:
System.out.println(countScore(2,3,5));
System.out.println(countScore(1,2,3,5));
3.可变参数的特点:
只能出现在参数列表的最后;
...位于变量类型和变量名之间,前后有无空格都可以;
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
代码:
//可变参数示例
public class VarableParameter {
public static void main(String[] args) {
// 调用add()方法,每次调用传入的参数个数都不相同
System.out.println(add(23,4,5,6,7));
System.out.println(add(1,2,3,4,5,6,7,8,9,0,0,1234,564));
}
//add方法接收的参数个数就是不确定的,…代表可变参数
public static int add(int x,int ... args)
{
int sum=x;
for(int i=0;i<args.length; i++)
{
sum+=args[i];
}
return sum;
}
}
三.增强for循环
1.格式:
for(type 变量名 : 集合变量名){ }
2.注意:
迭代变量必须在()中定义。
集合变量可以是数组或者实现了Iterable接口的集合类。
代码:
public static int add(int x,int …args) {
int sum = x;
for(int arg:args) {
sum += arg;
}
return sum;
}
四.基本数据类型的自动装箱与拆箱
1.自动装箱
举例: Integer num1=3; //自动装箱
2.自动拆箱
举例:System.out.println(num1 + 12); //自动拆箱
说明:
对于基本类型的整数,如果这些数字在byte范围内(-128-127),那么就会在将数字包装成为Integer对象的时候缓存到常量池中, 下次再要创建integer对
象的时候,首先在池中找,如果有,则不会在开辟新的空间,这样就节省了内存。而且方便调用。
五.享元设计模式:
1.定义:很多很小的对象,它们有很多相同的属性,这些属性称之为内部状态,那么就可以将这些对象变成一个对象,很多不同的属性,称之为外部状态,作为
方法的参数传入,这种设计模式,就是享元模式。
举例:
a.aWindows系统下,硬盘中文件夹图标,他们有很多相同的属性,只是显示的名称和位置不同。
b.Integer类中的静态方法valueOf(),将基本数据类型转换成包装类。