目录
1、变量
1.1 什么是变量
变量:计算机内存中的存储空间,是存储数据的基本单位
1.2 如何定义变量
声明变量的3种方式:
- 声明,再赋值
- 数据类型 变量名;
- 变量名 = 值;
- 声明,并赋值
- 数据类型 变量名 = 值;
- 多个同类型变量的声明与赋值
- 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
示例:
public class Demo01{
public static void main(String[] args){
int age1;
age1 = 18;
int age2 = 19;
int age3 , age4 , age5=18, age6,age7,age8=20;
age3=11;
age4=12;
age6=16;
age7=17;
System.out.println(age1);
System.out.println(age3);
System.out.println(age4);
System.out.println(age6);
System.out.println(age7);
System.out.println(age8);
}
}
2、数据类型
2.1 基本数据类型(整型)
类型 | 字节 | 取值范围(2进制) | 取值范围(10进制) |
---|---|---|---|
byte | 1字节 | -2^7 ~ 2^7-1 | -128 ~ 127 |
short | 2字节 | -2^15 ~ 2^15-1 | -32768 ~ 32767 |
int | 4字节 | -2^31 ~ 2^31-1 | - 2147483648~ 2147483647 |
long | 8字节 | -2^63 ~ 2^63-1 | -9223372036854775808 ~ 9223372036854775807 |
2.2 基本数据类型(浮点型)
类型 | 字节 | 取值范围(2进制) | 取值范围(10进制) |
---|---|---|---|
float | 4字节 | -3.4E+38 ~ 1.4E-45 | 1.4E-45 ~ 3.4E+38 |
double | 8字节 | -1.7E+308 ~ 4.9E-324 | 4.9E-324 ~ 1.7E+328 |
2.3 基本数据类型(布尔)
类型 | 字节 | 取值范围 | 描述 |
---|---|---|---|
boolean | 1字节 | true/false | 尽可描述“真”或者“假” |
2.4 转义字符
类型 | 描述 |
---|---|
\n | 换行符 |
\t | 制表符 |
\’ | 单引号 |
\" | 双引号 |
\\ | 反斜线 |
2.5 引用数据类型(字符串)
类型 | 取值范围 | 字符编码 |
---|---|---|
String | 任何“ ”之间的字面值 | Unicode字符序列 |
3、数据类型转换
-
自动类型转换
- 两种类型相互兼容
- 目标类型大于源类型。
-
强制类型转换
-
两种类型相互兼容。
-
目标类型小于源类型。
-
4、运算符
4.1 算术运算符
算术运算符:两个操作数进行计算
操作符 | 描述 |
---|---|
+ | 加、求和 |
- | 减、求差 |
* | 乘、求积 |
/ | 除、求商 |
% | 模、求余 |
算术运算符:一元运算符(一个操作数进行计算)
操作符 | 描述 |
---|---|
++ | 递增,变量值+1 |
– | 递减,变量值-1 |
public class Test{
public static void main(String[] args){
int num1=10;
int num2=12;
num1++;
num2--;
System.out.println(num1);
System.out.println(num2);
}
}
4.2 赋值运算符
操作符 | 描述 |
---|---|
= | 直接赋值 |
+= | 求和后赋值 |
-= | 求差后赋值 |
*= | 求积后赋值 |
/= | 求商后赋值 |
%= | 求余后赋值 |
public class Demo07{
public static void main(String[] args){
int num1, num2;
num1 = num2 = 1000;
int num3 = num1 * num2;
System.out.println(num3);
int num = 10;
num +=10;
System.out.println(num); //20
num -=10;
System.out.println(num); //10
num *=10;
System.out.println(num); //100
num /=10;
System.out.println(num); //10
num %=10;
System.out.println(num); //0
short number1 = 10;
// number1进行+1操作时,结果会自动转换成int类型,int类型(大)转换成short类型(小)报错
//number1 = number1 + 1;
number1 +=1; // 自身数值+1,不必考虑数据类型转换
System.out.println(number1);
System.out.println("------------------------------------------");
long lo1 = 100L;
lo1 = lo1**1000;
System.out.println(lo1);
}
}
4.3 关系运算符
操作符 | 描述 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
public class Demo08{
public static void main(String[] args){
int num1 = 1;
int num2 = 2;
int num3 = 1;
System.out.println(num1==num2); // false
System.out.println(num1==num3); // true
System.out.println("----------------------------"); // true
System.out.println(num1 != num2); // true
System.out.println(num1 != num3); // false
}
}
4.4 逻辑运算符
逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较。
操作符 | 语义 | 描述 |
---|---|---|
&& | 与 | 两个操作数,同时为真,结果为真 |
| | | 或 | 两个操作数,有一个为真,结果为真 |
! | 非(取反) | 非true为false,非false为true(取反) |
public class Demo11{
public static void main(String[] args){
// 逻辑运算符, -- 运算符左右两边必须是布尔类型或者布尔类型的结果
boolean f1 = false;
boolean f2 = true;
boolean f3 = true;
boolean f4 = false;
boolean f5 = false;
// & 逻辑与 两边只要有false,结果就为false
System.out.println(f1 & f2); // false
System.out.println(f2 & f3); // true
System.out.println("-------------------------");
// && 短路与 两边只要有false,结果就为false
//与逻辑与的区别:如果运算符左边为false,则直接返回结果,不会执行运算符右边的代码
System.out.println(f1 && (f3 = false)); // false
System.out.println("f3:"+f3); // f3:true
System.out.println(f2 && (f3 = false)); // false
System.out.println("f3:"+f3); // f3:false
System.out.println("-------------------------");
// | 逻辑或 运算符两边,只要有一个为true,结果则为true
System.out.println(f1 | f2); // true
System.out.println(f1 | f4); // false
System.out.println("-------------------------");
// || 短路或 运算符两边,只要有一个为true,结果则为true
//与逻辑或的区别:如果运算符左边为true,则直接返回结果,不会执行运算符右边的代码
System.out.println("--------------------短路与-------------------");
System.out.println(f1 || (f3 = false)); // false
System.out.println("f3:"+f3); // f3:false
System.out.println(f2 || (f3 = false)); // true
System.out.println("f3:"+f3); // f3:false // 在33行,f3已经被重新赋值为false;
System.out.println("-------------------------");
// ^ 异或 运算符两边,不同则为true,相同则为false;
System.out.println("--------------------异或-------------------");
System.out.println(f1 ^ f2); //true
System.out.println(f1 ^ f4); //false
// ! 非 非true为false,非false为true(取反)
System.out.println("--------------------非-------------------");
System.out.println(!f1); //true
System.out.println(!f2); //false
}
}
4.5 三元运算符
三元运算符:将判断后的结果赋值给变量。
- 关系表达式?表达式1:表达式2
- 判断关系表达式返回的结果是true还是false
- 如果返回结果是true,则执行表达式1,
- 如果返回结果是false,则执行表达式2
import java.util.Scanner;
public class Demo12{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("输入第1个数字:");
int num1 = input.nextInt();
System.out.println("输入第2个数字:");
int num2 = input.nextInt();
int max = num1>num2?num1:num2;
int min = num1>num2?num2:num1;
System.out.println("max:"+max);
System.out.println("min:"+min);
}
}