带标签的break、continue
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer: // Can't have statements here
for(; true ;) { // infinite loop
inner: // Can't have statements here
for(; i < 10; i++) {
System.out.println("i = " + i);
if(i == 2) {
System.out.println("continue");
continue;
}
if(i == 3) {
System.out.println("break");
i++; // Otherwise i never
// gets incremented.
//执行i++语句,break中断了当前的循环体,导致for中的i++没有被执行
break;
}
if(i == 7) {
System.out.println("continue outer");
i++; // Otherwise i never
// gets incremented.
//也会执行i++语句,continue outer 中断了所有的循环体,并返回到outer标签处,但是
//中,会再次进入循环体
continue outer;
}
if(i == 8) {
System.out.println("break outer");
//break outer 中断了所有的循环体,并返回到outer标签处,但是不会再进入循环体中
break outer;
}
for(int k = 0; k < 5; k++) {
if(k == 3) {
System.out.println("continue inner");
continue inner;
}
}
}
}
// Can't break or continue to labels here
}
}
/* Output:
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
*///:~
带标签的continue:将跳到与标签匹配的循环首部。
大数值(java.math包中)
BigInteger:实现任意精度的整数运算
BigDecimal:实现任意精度的浮点数运算
valueOf方法将普通数值转换为大数值
运算方法:add,multiply
BigInteger a=BigInteger.valnue(100);
BigInteger b=BigInteger.valnue(10);
BigInteger c=a.add(b);
块作用域
注意:在java中不能在嵌套的块中重定义变量。
For each循环
for(类型 变量名:集合){
语句块;
}
// 声明并初始化int数组
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
System.out.println("----for each----");
// for-each语句
for (int item : numbers) {
System.out.println("Count is:" + item);
}
在java中允许数组长度为0.
数组拷贝
用System类中的arraycopy的方法。
int[] a={2,3,5,7,11,13};
int[] b={1001,1002,1003,1004,1005,1006,1007};
System.arraycopy(a,2,b,3,4);
for(int i=0;i<b.lenght;i++){
System.out.println(i+":"+b[i]);
}
结果:
0:1001
1:1002
2:1003
3:5
4:7
5:11
6:13
命令行参数(String args[])
每一个java程序都有一个带String args[]参数的main方法,这个参数表明mian方法将接收一个字符串数组,即命令行参数。
表达类关系的UML符号
-
依赖
-
关联
-
聚合
-
组合
-
泛化
-
实现
对象变量和对象
Date s;//s为对象变量
new Date();//构造了一个新的对象
一个对象变量并没有实际包含一个对象,仅仅引用一个对象。
java中可以对对象变量进行空引用,将其值赋为null,但不能将方法用于一个值为null的对象上.
所有的java对象都是在堆中构造的。
静态方法
使用静态方法的情况:
- 一个方法不需要访问对象状态,其所需参数是通过显示参数提供(例:Math.pow)
- 一个方法只需要访问类的静态域