一 数据类型的转换
基本类型按照取值范围排序:byte,short,char->int->long->float->double
1 自动类型转换
指的是小的数据类型往大的数据类型转换
public class DataType01 {
public static void main(String[] args) {
/*
100是整数,整数默认类型是int型
下面的代码属于将int型的100赋值给了long型的num1
小类型赋值给了大类型,发生了自动类型转换
*/
long num1 = 100;
/*
100是整数,整数默认类型是int型
下面的代码属于将int型的100赋值给了double型的b
小类型赋值给了大类型,发生了自动类型转换
*/
double b = 100;
System.out.println(b);
}
}
2 强制类型转换
指的是大的数据类型往小的数据类型转换
public class DataType02 {
public static void main(String[] args) {
/*
等号右边是小数,小数默认类型是double
下面的代码是将double给了int
属于将大的类型赋值给了小的类型
需要强转
*/
//int i = 2.5;
int i = (int)2.9;
System.out.println(i);
/*
等号右边是long型
下面的代码是将long给了int
属于将大的类型赋值给了小的类型
需要强转
*/
int j = (int) 100L;
}
}
强转的注意事项
①不要随意使用强转,会出现数据丢失的现象;
②byte,short,char直接赋值整数,如果不超范围,不会报错,jvm为其做了一个优化
byte,short如果定义的时候等号右边出现了变量,需要强转
如果char类型变成了int,那么会去码表中查询字符对应的int值->ASCII码表
ascii码表只适用于说英文的人来看
如果是中文,去unicode码表(万国码)
二 运算符
1 算数运算符
/*
+:相加
如果和字符串之间用+,此时+不再运算了,直接拼接(任何类型和字符串之间用+,都会变成字符串)
-
*
/:如果是两个整数相除,取的商(整数部分);如果是整数和小数相除,会带小数点的
%:模(取余数部分)
算数运算符可以用在,变量和变量之间,常量和常量之间,变量和常量之间
*/
public class Demo01SuanShu {
public static void main(String[] args) {
int i = 10;
int j = 3;
System.out.println(i%j);
int x = 100;
String s = x+"1";
System.out.println(s);
System.out.println("===================");
int y = 100;
int z = 200;
System.out.println(y+z+"1");//3001
System.out.println(y+"1"+z);//1001200
System.out.println("1"+y+z);//1100200
System.out.println("1"+(y+z));//1300
System.out.println("y与z的和为:"+(y+z));
}
}
2 赋值运算符
/*
= :赋值 int a = 10
+= :int i = 10 ; i+=20 -> i = i+20
-=
*=
/= 如果是两个整数相除,取的商(整数部分);如果是整数和小数相除,会带小数点的
%= 取余数部分
*/
public class Demo02FuZhi {
public static void main(String[] args) {
int i = 10;
i+=20;//i = i+20
i-=10;//i = i-10
System.out.println(i);
System.out.println("==============");
int x = 100;
//x/=30;
x%=30;
System.out.println(x);
}
}
3 自增自减运算符
/*
++ -> 加1
-- -> 减1
注意:++ -- 必须要和变量一起使用 i++ ++i
(最常用)单独使用:自己独立成为一句 i++; ++i;
符号在前在后无所谓,都是先运算
(简单看一下)混合使用:跟赋值语句,输入语句混合使用
符号在前:先运算,再使用
符号在后:先使用原来的值,使用完毕,再计算
*/
public class Demo03ZiZengZiJian {
public static void main(String[] args) {
int i = 10;
//i++;
//++i;
int sum = i++;
System.out.println(sum);
System.out.println(i);
int x = 10;
int y = 20;
/*
10 - 19 + 19
*/
int sum1 = x++ - --y + y++;
System.out.println(sum1);
System.out.println(x);//11
System.out.println(y);//20
}
}
4 关系运算符(比较运算符)
/*
作用:专门用于判断的,结果一定是一个boolean型
== :判断两个数是否相等,如果相等,返回true,否则false
> :判断符号前面的是否大于符号后面的,如果大于,返回true,否则false
< :判断符号前面的是否小于符号后面的,如果小于,返回true,否则false
>= :判断符号前面的是否大于或者等于符号后面的,如果大于或者等于,返回true,否则false
<= :判断符号前面的是否小于或者等于符号后面的,如果小于或者等于,返回true,否则false
!= :判断两个数是否不等,如果不等返回true,否则相等返回false
*/
public class Demo04BiJiao {
public static void main(String[] args) {
int i = 100;
int j = 200;
//先看等号右边的比较,有一个boolean的结果,我们定义一个boolean变量去接收比较的结果
boolean result01 = i<j;
System.out.println(result01);
System.out.println(i==j);
System.out.println(i<=j);
System.out.println(i!=j);
}
}
5 逻辑运算符
/*
1.作用:为了连接boolean型结果的 逻辑运算符前后都要是boolean型的结果
2.结果:boolean型
3.有哪些呢?
&& :双与 有假则假 符号前后只要有一个是false的,整体结果就是false
|| :双或 有真则真 符号前后只要有一个是true的,整体结果就是true
^ :异或 符号前面结果一样,整体为false 符号前后结果不一样,整体为true
! :取反(非) 不是true就是false 不是false就是true
*/
public class Demo05LuoJi {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = 20;
boolean result01 = (i > j) && (i < k);
System.out.println(result01);
boolean result02 = (i > j) || (i < k);
System.out.println(result02);
boolean result03 = (i < j) ^ (i < k);
System.out.println(result03);
boolean result04 = !(j==k);
System.out.println(result04);
/*
需求 :定义一个变量x,初始化为10 判断此变量是否在1-100之间
数学写法:1<=x<=100
java写法:x>=1 && x<=100
*/
int x = 10;
boolean result05 = (x>=1) && (x<=100);
System.out.println(result05);
}
}
/*
> 注:
>
> &:单与->有假则假
>
> |:单或->有真则真
>
> 和双的有什么区别:
>
> &&:有假则假 如果符号前面的比较一旦是false,符号后面的不看了
>
> ||:有真则真 如果符号前面的比较一旦是true,符号后面的不看了
>
> &:有假则假 即使符号起那么是false,符号后面的依然会判断一下
>
> |:有真则真 即使符号前面的比较是true,符号后面的依然会判断一下
6 三元运算符
/*
1.格式: boolean表达式?表达式1:表达式2
2.执行流程:
先走boolean表达式,如果是true,走?后面的表达式1;否则走:后面的表达式2
3.作用:可以根据boolean表达式的结果,去决定执行哪一句代码
*/
public class Demo06SanYuan {
public static void main(String[] args) {
int i = 10;
int j = 20;
int result01 = i>j?i:j;
System.out.println(result01);
}
}
三 键盘录入
1.Scanner
2.作用:通过键盘输入的方式将输入的数据放到代码中参与运行
3.怎么使用:
a.导包:import java.util.Scanner ->不用我们手动导包,因为我们有alt+回车
b.创建对象:
Scanner 变量名 = new Scanner(System.in);
c.调用方法,实现键盘录入
变量名.nextInt()->输入一个整数
public class Demo01Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一个整数:");
//键盘输入一个整数
int i = sc.nextInt();
System.out.println(i);
}
}