1.入口程序必须按固定格式写
public static void main(String[] arges){}
其中arges可以修改成符合命名规则的任何东西
2.写代码时要注意单词的拼写和符号使用英文,养成写一行保存一次的习惯
3.位的第一位是符号位1表示正数 0表示负数
原码 原码负数形式(符号位1表示负数) 反码(将原码中0变1,1变0) 补码(反码加1)
4.数据类型
5.类型转换
布尔型不参与类型转换
byte→short→int→long→float→double 自由转换,反之强制类型转换可能导致损失精度
(float采用科学技术法进行储存故float的32位远大于long的64位)
强制转换
char c='王';
int d=(int)c;
(其中(int)将c强制转化int类型)
6.多类型混合运算时,结果为运算的最大类型.
(只出现byte,short,int,long四种类型中一种或多种,结果一定是int型)
7.常量值不能修改但可以复用
字面量默认为int,不能复用且只能使用一次
8.java中没有全局变量与函数
9.变量
10.运算符号
+加 -减 *乘 /除 %取余
11.++i和i++的区别
单独出现都为本身加1
同时出现
++i 先加1 后赋值(i的值是加1后的值)
i++ 先赋值 后加1(i的值是加1前的值)
++优先级大于加减乘除和取余
12.关系运算符
结果一定是布尔型true/false
>大于 >=大于等于 <小于 <=小于等于 ==等于 !=不等于
13.逻辑运算符
&与 同真为真
可以用于运算:将两个数变为二进制做对比,只有都是1时取1,其他情况全取0
|或 有一个真为真
!非 取反(真为假,假为真)
其中&& ||为短路运算
&&第一个为假 将不运行第二个(&第一个为假也运行第二个)
^异或 两边不一样才为真,反之为假
可以用于运算:将两个数变为二进制做对比,数字不同取1,相同取0
>>右移运算 右移一次,就相当于该数 除2 (符号位不变)
转换二进制,进行移位,右移一次,则删除最右边一个,并在最左边(非符号位)添加一位 (如果是整数则补0,负数则补1)
>>>右移运算 不考虑符号位,并且不考虑正负数,只在最左边补0 , 所以负数 有可能变正数
<<左移运算 向左移动一位,相当于该数乘2
转换二进制,进行移位,左移一次,则删除最左边一个,并在最右边(非符号位)补0
一、变量
1. 常量
// 常量:生命周期中,值不能修改,但是可以复用
final int i = 2;
// i = 3;
// 字面量,占用临时空间存储,数字 默认是int
// 并且不能复用,只能临时使用一次,由于没有找到的路径,所以压根也不能修改
System.out.println(123);
2.变量
可以修改的数据
2.1全局变量
Java中没有全局变量,全局变量一般是指可以直接调用,不需要二次引用的变量
是否使用 . 操作符 , xxx.xxxx
3. 变量声明
* 变量声明 : 数据类型 变量名 = 值;
* 数据类型 变量,变量,....;
* 数据类型 变量=值,变量=值,....;
* 使用数据类型划分内存空间 给空间取名字 并赋值
4.变量分类
Java中变量分为三类
局部变量 : 在方法中写的变量,是局部变量(参数列表也是)
静态变量 : 在类体中,使用static修饰的变量是静态变量
成员变量 : 在类体中,没有使用static修饰的变量是成员变量
5. 变量调用
变量必须先声明后使用
// 局部变量
int i = 2;
// 局部变量调用,在方法中,直接写变量名调用,方法外 调用不了
System.out.println(i);
// 静态变量调用,使用类名.静态变量名,需要考虑权限修饰符
System.out.println(_06_Var_02.a);
// 如果在类中调用当前类的静态变量,类名也可以省略
System.out.println(a);
// 创建对象
_06_Var_02 obj = new _06_Var_02();
System.out.println(obj.b);
6. 变量作用域(作用范围)
变量的范围不会超过往上开始碰到的第一个大括号
7.默认值
局部变量没有默认值,不赋值不能使用
静态变量和成员变量,有默认值,不赋值也能使用
整数 : 0
小数 : 0.0
布尔型 : false
字符型 : \u0000
引用类型 : null
8.变量优先级
局部变量可以和静态变量/成员变量同名吗? 可以
静态变量和成员变量 可以同名吗? 不可以
// 同名后,优先使用局部变量
System.out.println(a);
// 如何区分同名的局部变量和静态变量呢? 类名
System.out.println(_08_Var_04.a);
使用类名 区分同名的局部变量和静态变量
使用this 区分同名的局部变量和成员变量