JDK:Java的开发工具包,内置JRE
JRE:
javac命令(编译):*.java(源文件)===>*.class
java命令(运行):*.class(二进制编译文件)===>JVM (笔试可能会考)
1.变量和类型
1.1 整型变量(int)
int型变量占4个字节,表示的数据范围是-2^31---2^31-1,默认值为0;
long型变量占8个字节,表示的数据范围是-2^63---2^63-1,默认值为0;
局部变量必须赋值后再使用
int a = 10;
long b = 10L(l);
查看整型最大值和最小值:
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
1.2 浮点型变量
float型变量占4个字节,double型变量占8个字节,默认值为0.0;
float c = 1.0f(F);
double d = 1.0;
1.3 字符型变量
char型变量占两个字节,可以与int型通过ASCII码进行转换,默认值为\u0000(空格)
char ch = ' 任意一个字符 ';
1.4 字符串类型变量(引用数据类型)
String name = "zhangsan";
字符串的+操作,表示字符串拼接,也可以进行字符串与整数的拼接;
用于双引号中的常见转义字符:
转义字符 | 解释 |
\n | 换行 |
\t | 水平制表符 |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
1.5 变量的命名规则
常量:单词全部大写,多个单词用_隔开。
1.6 常量
10 // int 字面值常量 ( 十进制 )010 // int 字面值常量 ( 八进制 ) 由数字 0 开头 . 010 也就是十进制的 80x10 // int 字面值常量 ( 十六进制 ) 由数字 0x 开头 . 0x10 也就是十进制的 1610L // long 字面值常量 . 也可以写作 10l ( 小写的 L)1.0 // double 字面值常量 . 也可以写作 1.0d 或者 1.0D1.5e2 // double 字面值常量 . 科学计数法表示 . 相当于 1.5 * 10^21.0f // float 字面值常量 , 也可以写作 1.0Ftrue // boolen 字面值常量 , 同样的还有 false'a' // char 字面值常量 , 单引号中只能有一个字符"abc" // String 字面值常量 , 双引号中可以有多个字符 .
final关键字修饰的常量,不能在程序运行过程中发生修改。
final int a = 10;
a = 20; //编译错误
1.7 类型转换
Java作为一个强类型编程语言,不同类型之间的变量相互赋值时,有严格的校验
int 和 long/double 相互赋值:
小类型转化为大类型,涉及运算会自动提升类型,即小类型可以隐式转化为大类型
大类型转化为小类型,强制转换,可能会丢失精度,进行强制转换后下面的值从10.5为10;
int a = 0;
double b = 10.5;
a = (int)b; //强制转换
int 和 boolean (默认值为false)不能相互赋值!!
int 字面值常量给 byte 赋值:
byte 字节类型占一个字节,进行IO编程时会用到:文件输入输出、网络传输等等
int 字面值常量给 byte 赋值,若该值在byte保存范围内(-128---127)可以直接赋值,否则编译出错;当进行byte之间的运算时,JVM内部会将byte提升为int进行运算
byte a = 10;
byte b = 20;
byte c = (byte)(a+b); //强转
int 和 char 类型转换:根据默认Unicode编码,16进制
int 和 String 之间的相互转换(!!)
int 转成 String
int num =10;
//方法一
String str1 = num + "";
//方法二
String str2 = String.valueOf(num);
String 转成 int
String str = "100";
//非纯数字组成的字符串转Int会报异常
int num = Integer.parseInt(str);
二. 运算符
2.1 算术运算符
2.2 关系运算符
2.3 逻辑运算符(重点)
短路求值:&& 和 || 遵守短路求值的规则