Java运算符

Java运算符中一些特殊的运算符

  • >> : 右移符号,用最高位的补充。正数补0,负数补1。实现初以2的功能。
  • >>> : 无符号右移,用0补充。
  • ^ : 按位异或操作
  • instanceof: 类型比较运算符,a instanceof b, 如果a属于b类则为真,反之为假。

Java字符的编码

Java中字符的编码是unicode编码,一个字符占两个字节。

Java数组

数组是Java里面内置的一个类,需要创建类的对象。创建对象时先创建对象的一个引用,但是并不分配具体的内存给对象,而是通过动态内存分配的方式生成这个对象的内存空间。对象名就是对象的引用,但是只申明对象名是不能使用对象的。

数组的定义方式
Type[] arrayName;
 Type arrayName[];

数组的类型可以是基本数值类型,也可以是引用。如果是基本数值类型,数组里面存放的就是基本数值类型的值,如果是引用类型就存放对象的引用。

可以使用形如

int[] a = new int[4], b = new int[5];
 int c[] = new int[6], d[] = new int[7];

类似的连续初始化

创建数组的时候如果没有立即初始化,此时数组里面的值不是随机的脏数据。Java会将数值型的数组初始化值为0,将字符型的数组初始化值为空字符,将布尔类型的数组初始化为false,将引用类型的数组初始化为空引用。

字符串和字符数组是不同的,可以用一个字符数组来初始化字符串

char[] a = {'a', 'p', 'p', 'l', 'e'};
String b = new String(a);

使用System.arraycopy方法可以实现字符数组之间的复制。

char[] a = {'a', 'p', 'p', 'l', 'e'};
char[] b = new char[2];
System.arraycopy(a, 2, b, 0, 2);//srcArray, srcStartPos, desArray, desStartPos, copyLength
String c = new String(b); // c="pl"

Java语言中二维数组的长度是其中一维数组的个数,其中一维数组的长度可以不同。或者说,二维数组的元素是一维数组的引用,所以可以包括不同长度的一维数组。

int[][] a = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
System.out.println(a.length);//3, 二维数组是一维数组的数组,仅仅是一维数组引用的数组
System.out.println(a[0].length);//3, 二维数组每一行的元素个数可以不同
System.out.println(a[1].length);//2
System.out.println(a[2].length);//4

流程编码

Java支持增强的for循环
for(Type name: 数组或者集合类对象){}
其中Type是数组或者集合内对象的类型,用于遍历整个数组或者集合。