1.Java中数据类型的溢出:
当范围内最大的值加上一,结构变成范围内最小的值;
当范围内最大的值加上二,结果变成范围内次最小的值。
2.注
a * = b++; // 等价于首先a = a * b , 再b = b + 1;
a * = ++b; // 等价于首先b = b + 1,再a = a * b。
3.三目运算符是常用运算符中运算级别最低的。
4.关于switch语句
JDK1.5之后,switch开始支持枚举类;
(1)case没有break,则会一直执行到switch语句的末尾才会离开switch语句;
(2)没有定义default语句,则什么也不执行,直接退出switch语句。
E.g.
int x = 6, y = 3;
char opr = ‘+’;
switch(opr)
{
case ‘+’:
println(“x + y =” + ( x + y ));
case ‘-’:
println(“x - y =” + ( x - y ));
default:
println(“unKnown”);
}
运行结果
x + y =9
x - y =3
unKnown
/* 由于没有break语句,所有的语句均会执行一遍 */
5.Dos下运行程序出现死循环,按Ctrl + C可以结束死循环。
6.循环终止:
Break:跳出本次循环,终止本级循环;
continue:跳出本次循环,继续经行下一次循环;
return:直接结束一个方法的执行。
E.g.
public void add(Object obj)
{
print(“step01”);
if( obj == null )
{
return;
}
print(“step02”);
}
7.Java数据类型
a.基本数据类型
|--- 类(class)
b.应用数据类型 |--- 接口(interface)
|--- 数组
8.注意
任何数据类型碰到String都会向Sring类型转化,
E.g.
int i = 1, j = 2;
println(“ i + j = ” + i + j ); // i + j = 12
println( “i + j = ” + ( i + j )); // i + j = 3
9.数据类型转化
| 3 / 2 = 1
自动转换 | 3 / 2.0 = 1.5
| 1.0 * 3 / 2 = 1.5
强制转化 : (int)(23.56f) = 23
10.数组的声明
int[] stores = null; // 声明数组
scores = new int[3]; // 内存分配
【注】
数组在声明之后,只是在栈内存中开辟了一块用于存储数组“名称”的存储空间,该存储空间实际上是用来存储数组在堆内存中的参考地址;
使用new操作,是在堆内存中为3个整数分配存储空间,并将此存储空间的参考地址赋给scores。
【注意】
函数中传递的若是基本数据类型,传递的过程是值传递,函数内部对参与值传递的形参的操作并不会影响原值。
若传递的是数组(应用数据类型),在作为参数进行传递的过程中,传入的是数组在堆内存中存储的地址,也是数组在栈内存中的存储内容,而不是堆内存中存储的内容,即不是数组元素的值,此时是将本数组的使用权交给了函数的形参,函数内部对形参的操作将会在函数生命周期结束的时候被保存下来。
E.g.
int[] temp = { 1,2,3,4 };
fun(int[] x)
{
x[1] = 6;
}
// 调用函数
print(“调用fun之前:数组temp=”);
println(temp);
fun(temp);
print(“调用fun之后:数组temp=”);
println(temp);
// 结果:
调用fun之前:数组temp= 1,2,3,4
调用fun之后:数组temp= 1,6,3,4
11.关于类的封装
public class Person
{
private int age;
private String birthday;
private String name;
....
Set-get
....
}
上面的类中,属性使用private,不对外公布,外部只能够通过public声明的set-get方法来访问和修改属性值。
这样做的好处:
可以通过控制是否包含set或get方法来控制外部是否能够修改或访问属性。E.g.
| --- setBirthday(String birthday)
birthday |
| --- getBirthday()
age : getAge() [无setAge]
上面的Person类中,可以通过birthday来获得age而非通过set方法来设置age属性的值,当调用setBirthday时,对象内部同时计算得到age的值,只能够通过修改birthday来修改age,从而保证了数据的安全性。