------- android培训、java培训、期待与您交流! ----------
静态导入:
import语句可以导入一个类或某个包中的所有类
import static语句导入一个类中的某个静态方法或所有静态方法
例如: import static java.lang.string.*;//导入String类中所有的静态方法.
Import static java.lang.string.valueOf//导入String类中的静态方法valueOf();
可变参数:
一个方法接受的参数个数不固定
特点:
A:只能出现在参数列表的最后;
B:...位于变量类型和变量名之间,前后有无空格都可以;
C:调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组 的形式访问可变参数
例:
public static void main(String[] args) {
System.out.println(add(1,2,3,5));
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;
}
增强for循环
语法:
for ( type(元素类型) 变量名:集合变量名 ) { … }
注意事项:
迭代变量必须在( )中定义!
集合变量可以是数组或实现了Iterable接口的集合类
举例:
public static int add(int x,int ...args) {
int sum = x;
for(int arg:args) {
sum += arg;
}
return sum;
}
基本数据类型的自动装箱与拆箱
基本数据类型:byte short int long char float double boolean
对应的包装类:Byte Short Integer Long Character Float Double Boolean
装箱:把基本数据类型转换成对应的包装类。
拆箱:把包装类转成对应的基本数据类型
在自动装箱过程中会有对象缓存,例:
Integer num1 = 12;
Integer num2 = 12;
System.out.println(num1 == num2);//结果为true
Integer num3 = 128;
Integer num4 = 128;
System.out.println(num3 == num4);//结果为false
当Integer封装的数据没有超过一个字节,则用只建立一个对象,
当Integer封装的数据超过了一个字节,则每个新建一个对象
这就用到了一种设计模式,享元模式:
如果有很多很小的对象,它们有很多属性相同,那就可以把他们变成一个对象,把不同的东西 变成外部属性,作为方法的参数传入,称之为外部状态,把相同的属性称为内部状态。
比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还有一些特性是取决于应用(context),是不可共享的,这也是Flyweight中两个重要概念--内部状态intrinsic和外部状态extrinsic之分.
基本数据类型对象包装类最常见的作用:用于基本数据类型和字符串类型直接做转换。
基本数据类型转成字符串:
方法一:基本数据类型+“”
方法二:基本数据类型包装类.toString(基本数据类型) ,如Integer.toString(25),把整数25转化成字符串“25”
字符串转成基本数据类型:
格式:xxx a = Xxx.parseXxx(String)
如:String num = “12345”
int a = Integer.parseInt();
十进制转成其他进制:
toBinaryString()
toHexString()
toOctalString()
其他进制转成十进制
parseXxx(string s,int radix)