java学习(三)

java学习(三)

switch语句

java 7之后支持switch表达式的是java.lang.String类型的变量或表达式,但StringBufferStringBuilder这两种类型是不允许的

java标签

java标签和其他语言标签类似——一个紧跟着英文冒号的标识符

可以利用这个标签用break从内层循环一次性结束外层整个大循环,也可以用在continue后面用以跳过外层大循环的本次大循环的剩余语句

java类型

分为两大类:基本类型引用类型

基本类型都存储在栈内

引用类型存储在两部分,一部分在栈中另一部分在堆中(类似cpp的指针和其对应内存)

java数组

java数组初始化

java数组和cpp数组区别挺大的

静态初始化的时候(枚举定义),java不能在数组后面指明长度,这点和cpp是完全不同的

java

静态Type[] array_name = {a, b, c}

静态二维

Type[ ][ ] array_name = {{1,2},{2,3},{3,4,5}};

动态Type[] array_name = new Type[length]

动态二维

Type[][] array_name = new Type[length][]
array_name[n] = new Type[length];

cpp

静态Type array_name[] = {a, b, c}或者Type array_name[length] = {a, b, c}

动态Type* array_name = new Type[length]

java数组实质

java数组是一种引用类型,不论是动态初始化还是静态初始化,Type[] array_name中的array_name仅仅是引用变量,相当于cpp中的指针角色,可以任意改变他们指向的内存,只有这些引用变量存储在栈中,实质的数组都存储在堆当中,而不是像cpp那样实质的数组可以存储在栈里面

比如A[] a = new A[length],就相当于cpp的指针数组a[n]中装的是A*加上一个和n成正比的偏移量

foreach

用于遍历数组和集合,无需知道数组和集合长度

String books[];
for (String book : books)
{
    System.out.print(book);
}

类似Python的for A in B ,在需要修改数组元素的值的时候不要使用foreach循环

你可能感兴趣的:(Java)