一:入门
1.jdk的安装以及配置
a.安装采用小白方式安装,注意不能有空格和中文
b.环境变量的配置
PATH:jdk所在的文件夹下的bin目录
推荐%JAVA_HOME%\bin
JAVA_HOME:jdk所在文件夹位置
2.标识符
标识符可以使用 _和$ 和数字字母,不能是数字开头,不能是管关键字
3.JDK,JRE,JVM关系
JDK:是JAVA的开发环境,提供开发工具包
JRE:JAVA的运行环境,包含核心类库
JVM:JAVA的虚拟机可以跨平台
二:运算符
1.基本数据类型
数据类型 | 字节 | 数据范围 | |
整形 | byte | 1 | -128-127 |
short | 2 | -32768~32767 | |
int | 4 | -2147483648~2147483647 (10位数,大概21亿多) | |
long | 8 | -9223372036854775808 ~ 9223372036854775807 (19位数) | |
浮点型 | float | 4 | 1.401298 E -45 到 3.4028235 E +38 |
double | 8 | 4.9000000 E -324 到1.797693 E +308 | |
字符型 | char | 2 | 0-65535 |
布尔类型 | bolean | 1 | true,false |
2.数据类型准换
小类型的数据自动向大类型转换
byte b=20;
int a=b;
当byte,short,char 参与运算的时候自动转换成为Int类型;
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
byte 、short、char int long float double
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte、short、char 是直接转换成int类型参与运算的。
3.强制类型转换
当范围比较大的类型转换为比较小的类型的时候,在前面加入类型
int a=20;
byte b=(int)a;
1.强制类型转换可能出现数据丢失的情况
2.浮点类型转换成整形可能出现精度的损失。解决办法可以用0.1*结果
4.运算符
基本算数运算符
+:加法,还可以作为连接运算
-:减法
*:乘法
/:除法
%:取余数
自增自减运算符
++自增 int a=10 y=++a 运算结果 a=11,y=11
int a=10 y=a++ 算结果 a=11,y=10
--自减 int b=10 y=--b 运算结果 b=9,y=9
int b=10 y=b-- 运算结果 b=9,y=10
赋值运算:包含了隐藏的转换
+= | a+=b | 加后赋值 | a = (a的类型)(a + b); |
-= | a-=b | 减后赋值 | a = (a的类型)(a - b); |
*= | a*=b | 乘后赋值 | a = (a的类型)(a * b); |
/= | a/=b | 除后赋值 | a = (a的类型)(a / b); |
%= | a%=b | 取余后赋值 | a = (a的类型)(a % b); |
关系运算符
> | a>b | 判断a是否大于b | 成立返回true、不成立返回false |
>= | a>=b | 判断a是否大于或者等于b | 成立返回true、不成立返回false |
< | a<b | 判断a是否小于b | 成立返回true、不成立返回false |
<= | a<=b | 判断a是否小于或者等于b | 成立返回true、不成立返回false |
== | a==b | 判断a是否等于b | 成立返回true、不成立返回false |
!= | a != b | 判断a是否不等于b | 成立返回true、不成立返回false |
逻辑运算符
符号 | 叫法 | 例子 | |
& | 逻辑与 | 2 > 1 & 3 > 2 | 两者都必须满足 |
| | 逻辑或 | 2 > 1 | 3 < 5 | 满足一个就可以 |
! | 逻辑非 | ! (2 > 1) | 取反 |
^ | 逻辑异或 | 2 > 1 ^ 3 > 1 | 前后结果不同返回ture |
&& | 短路与 | a=10,b=20 a>b&&b++ | 当左边为false时右边不执行 |
|| | 短路或 | a=10,b=20 b>a||b++ | 当左边为ture时右边不执行 |
三元运算符
表达式?值1:值2
int i=100;
String s = i >= 2000 ? "及格" : "不及格";
System.out.println(s);
//找出两个数的最大值并输出
int a=100;
int b=500;
int i1 = a > b ? a : b;
System.out.println(i1);
//找出三个数的最大值
int q=20;
int w=30;
int z=5;
int i2 = q > w ? q : w;
int i3 = i2 > z ? i2 : z;
System.out.println(i3);