如下定义了a类型a1,a2,a2=a1;
并不只是把a1的值赋给a2,而是引用,其中的任何一个变化另一个都会随之变化
public class test01 {
public static void main(String[] args) {
a a1 = new a();
a a2 = new a();
a2 = a1; // 注意这一步
a1.b = 20;
System.out.println(a1.b + "" + a2.b);
// 结果 20 20
}
}
class a {
public int b = 10;
}
2. 转义字符’u???’
char类型
表示一个具体Unicode字符,类似ASCII码,只不过Unicode更多,有四位十六进制
- java中不像cpp,变量未被赋值,其中的数据是乱的,比如char a,cpp中a可能是任一字符,或者乱码。但是java中不会,所有类,变量,都会有默认初始值。
- 即使如此,在使用的时候还是不能直接使用,除非你定义的是static的,否则还是得初始化一下
public class test01 {
static int b;
public static void main(String[] args) {
System.out.println(b);
}
}
- 变量作用域,和cpp一样,同一个代码块内不允许重复,如下
int a =120;还存在于main方法的作用域中,导致二义性
public class test01 {
public static void main(String[] args) {
int a = 10;
{
int a = 120;
}
}
}
这样就正确了
public class test01 {
public static void main(String[] args) {
{
int a = 120;
}
int a = 10;
}
}
- 数值强制转换,数位运算符
float a=10.0f;
int b=(int)(a);
float c=b;
~:按位取反 !:布尔取反 <<:左移 >>>:0填充右移 >>:符号位填充,右移 ^:异或 以上加上"="赋值符号意味着运算后再赋值 instanceof:类型比较,判断实例类是不是属于该类型
-
控制流,分支,选择,循环
所有语言都几乎统一,略 -
scanner,java.util包中
scanner scanf=new scanner(system.in);
scanner:输入类
system.in:输入流,默认是指键盘
使用空白键作为间隔,.next(),方法作为读取下一个对象(字符)
nextLine()方法则是读取整行
读取不同的数据
nextInt()方法
nextDouble()方法



