基本概念
基本概念
Java基本概念,从安装Java环境到运算符的优先级,覆盖了Java程序开发中的关键内容。
1、安装 Java 环境
编写 Java 代码
编译 Java 代码,成为字节码文件 16 进制
javac 文件名(带后缀)
让 JVM 执行字节码文件,运行程序 java 文件名(不带后缀)
IDE:集成开发环境
Eclipse、IDEA
2、注释
注释就是用通俗易懂的语言对代码进行描述解释,方便自己和他人阅读。
- 单行注释:
//注释内容
- 多行注释:
/*注释内容
注释内容
注释内容
*/
- 文档注释:
/**注释内容
*注释内容
*注释内容
*/
3、关键字
Java 语言预先定义好的,有指定意义的标识符,组成程序的基本元素。
| abstract | 表示抽象 |
|---|---|
| boolean | 基本数据类型 |
| break | 跳出循环 |
| byte | 基本数据类型 |
| case | 与 switch 搭配使用 |
| catch | 与 try 搭配使用,表示捕获异常 |
| char | 基本数据类型 |
| class | 表示一个类 |
| continue | 跳出循环 |
| do | 与 while 搭配使用,表示循环 |
| double | 基本数据类型 |
| else | 与 if 搭配,流程控制 |
| enum | 枚举类型 |
| extends | 继承 |
| final | 修饰常量 |
| float | 基本数据类型 |
| if | 流程控制 |
| implements | 实现接口 |
| import | 引入某个类 |
| int | 基本数据类型 |
| interface | 表示接口 |
| long | 基本数据类型 |
| native | 表示本地方法 |
| new | 创建对象 |
| package | 表示包 |
| private | 私有 |
| public | 共有 |
| return | 返回值 |
| short | 基本数据类型 |
| static | 表示静态 |
| super | 表示父类 |
| switch | 与 case 搭配使用 |
| synchronized | 线程同步 |
| this | 表示当前实例 |
| throw | 抛出异常 |
| throws | 方法中主动抛出异常 |
| try | 与 catch 搭配使用 |
| void | 表示方法没有返回值 |
| volatile | 保证线程读取到最新值 |
| while | 表示循环 |
4、变量
- 数据类型
- 变量名
- 变量值
基本数据类型`+`引用数据类型
5、使用变量
1、声明变量的数据类型和变量名(包含数字、字母、下划线、$,不能包含空格、运算符,不能用关键字命名,不能以数字开头),大小写可以混用,首单词应该小写,后续单词的首字母大写。
userId、studentName (驼峰式命名法)
2、给内存空间赋值,该值就是变量值。
6、Java 的数据类型
- 基本数据类型
byte、int、short、long、float、double、char、boolean
数值类型(整数、小数)
byte 1 个字节 (8位)
int 4 个字节(32位)
short 2 个字节(16位)
long 8 个字节(64位)
float 4 个字节(32位) 单精度浮点型
double 8 个字节(64位)双精度浮点型
非数值类型(文本)
char 2 个字节(16位)
boolean 1 个字节(8位)、判断逻辑是否成立 true 1/false 0
- 引用数据类型
7、数据类型转换
- 自动转换
Java 可以自动对某些数据类型进行自动转换。
规则:只能由低字节向高字节进行转换,反之则不行。
byte->short->int->long->float->double
- 强制类型转换
Java 无法自动转换的数据类型,开发者可以通过强制手段进行转换。
一般来讲强制类型转换可能会造成精度损失。
double num = 10.0;
int num2 = (int)num;
8、运算符
- 赋值运算符
数据类型 变量名 = 数值/变量;
//1、创建变量用来记录张三的体重
double weight1 = 70.5;
//2、创建变量表示李四的体重
double weight2 = 60.5;
System.out.println("交换之前:张三的体重是"+weight1+",李四的体重是"+weight2);
System.out.println("进行交换");
double temp = weight1;
weight1 = weight2;
weight2 = temp;
System.out.println("交换之后:张三的体重是"+weight1+",李四的体重是"+weight2);
算术运算符
基本算术运算符
+、-、*、/、%、++、–
变量1 + 变量2
变量1 - 变量2
变量1 * 变量2
变量1 / 变量2
变量1 % 变量2
变量++、++变量
变量–、--变量
变量++:先操作,再运算。
++变量:先运算,再操作。
复合算术运算符
+=、-=、*=、/=、%=
变量1 += 变量2:先求出变量1和变量2之和,再把计算结果赋值给变量1,变量1 = 变量1 + 变量2
关系运算符
==、!=、>、<、>=、<=
逻辑运算符
逻辑运算符只能用于 boolean 类型的数据运算,判断 boolean 数据之间的逻辑关系,与、或、非。
&(与)、|(或)、!(非)、&&(短路与)、||(短路或)
参与逻辑运算符的变量都是 boolean 的。
1、变量1 & 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。 【A & B AB都会执行】
2、变量1 | 变量2:变量 1 和变量 2 只要有一个为 true,结果为 true,否则为 false。【A | B AB都会执行】
3、!变量1:若变量 1 为 true,结果为 false,若变量 1 为 false,结果为 true。
4、变量1 && 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。 【A && B 若A为false,B不执行】
5、变量1 || 变量2:变量 1 和变量 2 只要有一个为 true,结果为 true,否则为 false。【A || B 若A为true,B不执行】
int num1 = 10;
int num2 = 11;
System.out.println((++num1==num2)||(num1++==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((++num1==num2)|(num1++==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((num1++==num2)&(++num1==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((num1++==num2)&&(++num1==num2));
System.out.println(num1);
9、条件运算符
三元运算符、三目运算符、三元表达式
根据不同的条件给同一个变量赋不同的值,变量 = 条件?值1:值2.
10、位运算符
- 十进制和二进制的转换
十进制转二进制:
目标数除以2,若能除尽,该位记做0,若除不尽,该位记做1,再对商继续除以2,以此类推,直到商为0,然后把每一位的结果反序组合就是对应的二进制。
10:1010
17:10001
二进制转十进制:
从目标数的最后侧起,本位的数值乘以本位的权重,权重就是2的第几位的位数减一次方,将每一位的值进行相加,得到的结果就是对应的十进制。
位运算符:
- &(按位与)
- |(按位或)
- ^(按位异或)
- <<(左移)、>>(右移)
变量1 & 变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,若都为 1,则该位记做 1,否则记做 0。
变量1 |变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,只要有一个为 1,则该位记做 1,否则记做 0。
变量1 ^ 变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,相同记做 0,不同记做 1。
变量1 << 变量2:变量1乘以2的变量2次方
2 << 3 : 2 * 8 = 16
变量1 >> 变量2:变量1除以2的变量2次方
2 >> 3:2/8 = 0
11、运算符的优先级
!>算术运算符>关系运算符>逻辑运算符(&&>||)
