输出语句
System.out.println( "abc" );//先打印abc,再进行换行
System. out.print( "abc" );//只打印abc,不换行
System.out.println();//不打印任何数据,只做换行处理。
变量
变量的定义格式
数据类型 变量名 = 数据值;
demo
public class VariableDemo1{
//主入口
public static void main(String[] args){
//定义变量
//数据类型 变量名 = 数据值;
//数据类型:限定了变量能存储的数据类型
//int(整数) double(小数)
//数据值:真正存在变量中的数据
//等号:赋值.
int a = 10;
System.out.println(a);//10
}
}
变量的使用方式
- 输入打印
int a = 10;
System.out.println(a);//10
- 参与计算
int a = 10;
int b = 20;
System.out.println(a+b);//30
- 一条语句中定义多个变量
int d = 100, e = 200, f = 300;
System.out.println(d);
System.out.println(e);
System.out.println(f);
变量的注意事项
- 只能储存一个值
- 变量名不允许重复定义
- 一条语句可以定义多个变量
- 变量在使用之前一定要进行赋值
变量的使用场景
- 重复使用某个值
- 某个数据经常发生改变
基本数据类型
数据类型 | 关键字 |
---|---|
整数 | byte、short、int、long |
字符 | char |
浮点数 | float、double |
布尔 | boolean |
相关demo
public class VariableDemo3{
//主入口
public static void main(String[] args){
//byte
byte b = 10;
System.out.println(b);
//short
short s = 20;
System.out.println(s);
//int
int i = 30;
System.out.println(i);
//long
//如果要定义long类型的变量
//在数据值后面需要加一个L作为后缀
//L可以是大写的,也可以是小写的
//建议:使用大写。原因小写l与数字1长相相似
long l = 999999999999L;
System.out.println(l);
//float
//float类型的数据后面要需要加一个F
//F可以是大写也可以是小写
float f = 10.1F;
System.out.println(f);
//double
double d = 20.2;
System.out.println(d);
//char
char c ='中';
System.out.println(c);
//boolean
//只有true 和 false
boolean o = true;
System.out.println(o);
}
}
键盘录入
- 导包
import java.util.Scanner; //导包的动作必须出现在类定义的上边
- 创建对象
Scanner sc = new Scanner(System.in);
上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变
- 接收数据
int i = sc.nextInt(); // 只有i是变量名,可以变,其他的都不允许变
相关demo
//1.导包,找到Scanner这个类在哪
//书写要注意:要写在类定义的上面
import java.util.Scanner;
public class ScannerDemo1{
//程序主入口
public static void main(String[] args){
//2.创建对象,表示我现在准备要用Scanner这个类
Scanner sc = new Scanner(System.in);
//3.接收数据
//变量i记录了键盘录入的数据
System.out.println("请输入整数");
int i = sc.nextInt();
System.out.println(i);
}
}
运算符和表达式
运算符
- 对字面量或者变量进行操作的符号
表达式
-
用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式
-
不同运算符连接的表达式体现的是不同类型的表达式
类型转换
隐式转换(自动类型提升)
- 把一个取值范围小的数据,转成取值范围大的数据
- byte < short < int < long < float < double
- byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后在进行运算
强制转换
- 如果把一个取值范围大的数值,赋给取值范围小的变量。
- 是不允许直接赋值的。如果一定要这么做就需要加入强制转换
格式:
目标数据类型 变量名 = (目标数据类型)被强制转换的数据
运算符
自增/自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 加 | 变量的值加一 |
– | 减 | 变量的值减一 |
赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | int a = 10,将10赋值给变量a |
+= | 加后赋值 | a += b,将a+b的值给a |
-= | 减后赋值 | a -= b,将a -b 的值给a |
*= | 乘后赋值 | a *=b,将a * b的值给a |
/= | 除后赋值 | a /= b,将a / b的值给a |
%= | 取余后赋值 | a %= b, 将a / b 的余数给a |
关系运算符
符号 | 说明 |
---|---|
== | 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 |
- 关系运算法的结果都是boolean类型,要么是true,要么是false.
逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与(且) | 并且,两边都为真,结果才是真 |
| | 逻辑或 | 或者,两边都为假,结果才是假 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
demo
package logicoperator;
public class LogicoperatorDemo1 {
public static void main(String[] args) {
//1.& 并且
//两边都为真,结果才是真
System.out.println(true & true);
System.out.println(false & false);
System.out.println(true & false);
System.out.println(false & true);
//2. | 或者
//两边都为假结果才是假
System.out.println(true | true);
System.out.println(false | false);
System.out.println(true | false);
System.out.println(false | true);
//3. ^ 异或
//相同为false,不同为true
System.out.println(true ^ true);
System.out.println(false ^ false);
System.out.println(true ^ false);
System.out.println(false ^ true);
//4. 非,取反
System.out.println(!false);//true
System.out.println(!true);//false
}
}
短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 结果和&相同,但是有短路效果结果和 |
|| | 短路或 | 结果和|相同,但是有短路效果结果和 |
demo
package logicoperator;
public class LogicoperatorDemo2 {
public static void main(String[] args) {
//1.&&
//运行结果与单个&是一样的
//表示两边都为真结果才是真
System.out.println(true && true);
System.out.println(false && false);
System.out.println(false && true);
System.out.println(true && false);
//2. ||
//运行结果与单个|是一样的
//表示两边都为假,结果才是假
System.out.println(true || true);
System.out.println(false || false);
System.out.println(false || true);
System.out.println(true || false);
//3.短路逻辑运算符具有短路的效果
//简单理解:当左边的表达式能确定最终的结果,那么右边的就不会参与运行了
int a = 10;
int b = 10;
boolean result = ++a < 5 && ++b < 5;
System.out.println(result);
System.out.println(a);
System.out.println(b);
}
}
三元运算符/三元表达式
格式:关系表达式?表达式1:表达式2
计算规则
- 首先计算关系表达式的值
- 如果值为true,表达式1的值就是运算结果
- 如果值为false,表达式2的值就是运算结果
demo
public class TernaryoperatorDemo1 {
public static void main(String[] args) {
//需求:使用三元运算符.获取两个数的较大值;
//分析:
//1.定义两个变量记录两个整数
int number1 = 10;
int number2 = 20;
//2.使用三元运算符获取两个整数的较大值
//格式: 关系表达式?表达式1:表达式2;
//整个三元运算符的结果必须要被使用
int max = number1 >number2 ? number1 : number2;
System.out.println(max);
}
}
优先级 | 运算符 |
---|---|
1 | . () {} |
2 | !、++、– |
3 | *、/、% |
4 | +、- |
5 | <<、>>、>>>、 |
6 | <、<=、>、>=、instanceof |
7 | ==、!= |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ?: |
14 | =、+=、-=、*=、/=、%=、&= |