java学习(三)
switch语句
java 7之后支持switch表达式的是java.lang.String
类型的变量或表达式,但StringBuffer
和StringBuilder
这两种类型是不允许的
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
循环