1.Java数组:声明有俩种方式---"int[] a;"---"int a[];",在实际开发中Java常用第一种,表示一个int类型的数组a。如果创建了一个非基本类型的数组则称此数组为引用数组,在数组中需要注意以下几个方面:
{ int[] a={1,2,3,4,5};//第一种初始化方式,只能紧随定义的数组之后 //------------------------------------ int[] b=new int[5];//第二种初始化方式,可以在定义后的任意位置进行操作 for(int i=0;i<5;i++){ b[i]=i+1; } //------------------------------------ Random rand=new Random(30); int[] c=new int[rand.nextInt(20)];//为数组c申请20以内的随机数的内存空间 //------------------------------------ c=b;//及将b引用指向的数组也让c指向,此时c和b中数组的数字实际为同一份 }
2.可变参数的使用:Java中的可变参数是依靠Java的一个特征,即所有的对象都继承Object类,所以只要参数类型为Object就可以接收任意类型的参数,可变参数有俩种书写方式,如下:
class Test{ public void f(Object[] o){}//方法一 public void d(Object... s){}//方法二,注意这里必须是"..."结构 }
在书写为第二中方式后,实际经过编译器编译后的结果仍为第一种的数组格式,当然参数列表中的Object可以换成任意类型,可以是基本类型也可以是引用类型,只是此时只能传递指定类型的任意个数的参数,效果如下:
class Test{ public static void f(Object... o){ System.out.println("Object--"); for(Object ob:o){ System.out.print(" "+ob); } } public static void d(int... i){ System.out.println("int--"); for(int in:i){ System.out.print(" "+in); } } public static void main(String[] args) { f(1,2,3,4,5); f("abc","java","j2ee"); d(1,2,3); } } out: Object-- 1 2 3 4 5 Object-- abc java j2ee int-- 1 2 3对于在 重载方法中使用可变参数,由于编译器较难识别,如若处理不当往往会报错【CompileTimeError】,所以可以尽量选择不用, 但是如果要用,最好在参数列表中都添加其他非可变参数来区分:
class Test{ public static void f(Object... o){ } public static void f(int... i){ } public static void main(String[] args) { f(1,2,3,4,5); f("abc","java","j2ee"); } } //以上代码会报错,因为不能确定该调用哪个重载方法,此时产生歧义性 //------------------------------------ //通过添加非可变参数进行重载方法的区别 class Test{ public static void f(int i,Object... o){ System.out.println("first"); } public static void f(String st,int... i){ System.out.println("second"); } public static void main(String[] args) { f(5,1,2,3,4,5); f(4,"abc","java","j2ee"); f("java",1,2,3); } } out: first first second
3.Java中的枚举-enum:首先,要清楚枚举类型并不是Java所特有的,C和C++中都有枚举类型。其次,枚举类型其实不算一种新的数据类型,其与其他的普通类的区别是在编译时会产生一些其他的行为。还要知道的是,枚举类型的实例是常量,因此其命名一般采用全大写字母表示(如果有多个单词需用下划线’_‘隔开)。
public enum EnumTest{ //创建枚举类型 JAVA,J2EE,JAVASE,ANDROID } public class TestEnum{ public static void main(String[] args) { EnumTest e=EnumTest.JAVA; System.out.print(e); } } out: JAVA
Java中在创建枚举引用时会自动添加一些方法,如下:
- toString()——方便像上边例子一样显示枚举实例的名字。
- ordinal()——可通过此方法查看枚举常量声明的顺序。
- static values()——用来按照枚举常量的声明顺序产生由这些常量构成的数组。
public class TestEnum{ public static void main(String[] args) { for(EnumTest e=EnumTest.values()) { System.out.println(e+"——"+e.ordinal); } } } out: JAVA——0 J2EE——1 JAVASE——2 ANDROID——3
此外,enum最常使用场景为与switch的结合:
{ //EnumTest en; switch(en){ case JAVA: case J2EE: ... } }
到此为之,根据阅读《Java编程思想》的顺序(第四版p1-p108),Java中的一些易被忽视或者易被遗忘的重点、关键点就全部总结完成,由于Java语言博大精深,这些知识点还是比较浅的,接下来随着对此书的学习会更加深入的整理总结Java内容,希望我的记录可以对我和读者们有一些帮助。