1 程序基础
1.1 入口程序
public static void main(String[] args) Java执行只有一个main方法
公共 静态 返回为空
String[] args 参数列表 args可以改变
1.2 数据类型
1.2.1 内存存储
电子位(比特)
byte 8bit
int 32bit
short 16bit
long 64bit
float 32bit
double 64bit
1.2.2 类型分类
基本数据类型
数值型
整数型 byte
int
shrot
long 后面加L/l
浮点型
float (单精度)后面加F/f
double(双精度)后面加D/d(可不加)
字符型
boolean
布尔型
char
1.2.3 ASCII
字符与整数的直接映射,二者相互转换的标准。
见:‘a’ :97 ‘A’:65
char 范围0-65535,没有负数
unnicode编码: \u+四位十六进制数(0~f)
1.2.4 类型转换
低精度到高精度自动转
高精度到低精度强转
byte→short→int→long→float→double
float double使用科学记数法,因此比long的数据范围要大。
强转有可能导致数据的精度损失不准确
char→int→long→float→double
byte short对 char转需要强转,相反也是。
1.2.5 混合运算
布尔型boolean不参与运算
①多类型混合运算最终结果为其中的最大类型
②当其中之一byte short int char四种类型参与运算任意一种或者多种的话结果一定是int类型
1.3变量
1.3.1 常量
常量:可以复用 但是不能修改
final int i=1;final修饰
字面量:占用临时空间 使用一次 不能修改 ,默认是int
System.out.println(5);
1.3.2 变量
1.3.2.1 变量声明
①数据类型 变量名=值;
int a=10;
②数据类型 变量名a,变量名b;
int a,b;
③数据类型 变量名a=值1,变量名b=值2;
int a=1,b=2;
1.3.2.2 变量分类
局部变量:位于方法内
静态变量 类之中,方法外,使用stati修饰 static a=1;
成员变量:类之中,方法外。int a=2;
1.3.2.3 变量调用
局部变量:只能在方法中调用
静态变量:类名.静态变量名调用 考虑权限修饰符 如果是类中使用可以省去类名。
1.3.2.4 变量作用域
不超过往上开始的第一个{
1.3.2.5 默认值
局部变量没有默认值,需要复制,否则是用不了
静态变量跟成员变量有默认值
整数 0
小数0.0
boolean:false
字符型 \u0000
引用类型 null
1.3.2.6 变量优先级
局部变量可以与静态变量或成员变量同名,调用的时候就近原则
静态变量跟成员变量不能重名
使用类名区分局部变量跟静态变量 静态变量可以用类名调用
使用this区分同名的局部变量和成员变量:
1.4运算符
1.4.1 算数运算符
+ - * / %
i++ 先赋值再+1 i是加1之前的值
++i 先+1后赋值 i是加1之后的值
1.4.2关系运算符
运算结果为boolean类型
> < >= <= = !=
== 比较基本类型时,比较的是数值 如果是引用类型则是地址
1.4.3 逻辑运算符
& 非短路运算符 与 两边无论真假都运行
&&短路与 左边错 右边不会运行
| 非短路或
|| 短路或
!
^ 异或 两边不一样才是真
>>右移运算符 右移一次的话相当于除2 删除最右边的一位,在最左侧(非符号位)(正数补0 负数补1)
>>> 右移运算符 不考虑正负数,只在最左侧补0 负数可能变正数
<< <<< 类似
不需要计算 是最快*或者/ 2的方法