一. 基本数据类型
1. 基本数据类型有哪些
数值型:整数型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
2. 内存存储
占位,位-->bit,1字节等于8位;
byte-->8位;short-->16位;int-->32位;long-->64位;float-->32位;double-->64位;boolean-->8位;char-->占16位
3. 类型转换
低精度向高精度可以自动转换
byte-->short-->int-->long-->float-->double
char-->int-->long-->float-->double
高精度向低精度转换需要强制转换,强制转换可能会损失精度
byte和short不能自动转换成char,char无符号
4.混合运算
byte,short,char,int这四个类型任意一种或多种混合运算的结果都为int类型
多种数据类型混合运算,则结果是运算中最大的数据类型
二. 变量
1.含义,可变的,可以修改的数据
2.命名,数据类型 变量名=值;
3.分类,局部变量(定义在方法里的),成员变量(类里方法外得非static变量),静态变量(类里方法外的static修饰的变量)
4.调用,局部变量,只能在方法里面用名字调用,方法外不能调用;成员变量,在类里直接名字调用,类外面用对象调用;静态变量,用类型.变量名调用;
5.作用域,包含变量且离变量最近的大括号
6.优先级,局部变量与静态变量同名,则调用局部变量
7.默认值,局部变量无默认值,整数:0,
小数 : 0.0,
布尔型 : false,
字符型 : \u0000,
引用类型 : null,
三. 运算符
1.算数运算符
+,-,*,/,%(取余),++,--
++如果在左边,则先加减再运算,如果再右边,则先运算再加减;
int a=2,b=1;
b=a++ + ++a + a + a++;
System.out.println(a);
System.out.println(b);
结果为a=5,b=14;
--同上
2.关系运算符
>,>=,<,<=,==,!=
3.逻辑运算符
&,|,!,与或非
&,与,不短路,只有两边都为true时才为true,否则为false
|,或,只要两边有一边为true,则结果为true;
!,非,!true为false,!false为true
&&,短路与,要是运算符左边表达式为false则右边表达式不执行,结果直接为false
||,短路或,与短路与差不都
>>,右移,相当于数除以2;右移一个数,砍掉这个数的二进制的最右的那个字,然后左补0,如果位负数则左补1;比如0000 0011(3)右移一位-->0000 0001(1)
>>>,右移,但是不考虑符号位,只在最左边补0
<<,左移,与右移相反,乘以2
^ ,异或,两边表达式一样则为false,不同则为true;两个相同的数异或结果为0;与0异或的任何数的结果为这个数。
4. 赋值运算符
+=,-=,*=,/+,%=
赋值运算符会自动强制类型转换,不需要我们手动强制转换
赋值运算 --- 右结合,同优先级从右到左计算
5. 三目运算符
boolean类型表达式?结果为true执行的语句:结果为false执行的语句;比如
//非嵌套
int x=31,y=33;
String string=x>y?"大于":"不大于";
System.out.println(string);
//嵌套
string=x>y?"大于": x==y?"等于":"小于";
System.out.println(string);
6. 字符串拼接符
+ 如果两边是int类型的则相加,如果两边有一方有字符串,则将两边数据拼接起来
转义字符--> \ ,会将有意义的字符串转义成无意义的字符串
System.out.println("\"林妹妹倒拔鲁智深\",还有它\\哦");
-->输出结果
四. 注意
boolean不参与类型转换
ASCⅡ码,a-->97,A-->65,0-->48
常量一旦被定义,不能被改变,final修饰的变量为常量
变量命名只能是大小写字母,下划线,$,数字,且数字不能开头,不能是关键字,保留字,命名最好要忘其知意,驼峰命名
引用数据类型:数组,类,接口
main方法为程序的入口,注意检查中英文符号,中文符号会报错