文章目录
Demo02-数据类型、运算符、API介绍、键盘录入
1.类型转换
1.1自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量(布尔型不能和其他数据类型进行转换)
byte->short->int->long->float->double
char->int->long->float->double
char x1 = 'a';
int x2 = x1;
System.out.println(x2);
1.2表达式的自动类型转换
在表达式中,小范围的变量会自动转换成当前较大范围的类型再运算
byte、short、char->int->long->float->double
注意事项:
- 表达式的最终结果类型由表达式中的最高类型决定(所以3/2结果仍是int类型,是1)
- 在表达式中,byte、short、char是直接转换成int类型参与运算的
int a = 2;
float x = a+2.0;//报错
double x = a+2.0;//正确
byte b1 = 10;
byte b2 = 20;
byte k1 = b1 + b2;//报错
int k2 = b1 + b2;//正确
1.3强制类型转换
可以通过强制类型转换将类型范围大的变量或数据赋值给类型范围小的变量
数据类型 变量 = (数据类型)变量或数据
强制类型转换注意事项:
- 可能出现数据丢失
- 小数强制转换成整数是直接截断小数保留整数
2.运算符
2.1基本的算术运算符
+、-、*、/、%
2.2加符号做连接符
-
加符号做连接符规则:能算则算,不能算就在一起
-
与字符串做+运算时会被当成连接符,其结果还是字符串
int a = 5 ;
System.out.println("abc" + 'a'); // abca
System.out.println("abc" + a); // abc5
System.out.println(a + 'a'); // 102
System.out.println(a + "" +'a'); // 5a
2.3自增自减运算符
自增自减运算符只能操作变量,不能操作字面量所以2++是错误的
int k = 3;
int p = 5;
// k 3 4 5 4
// p 5 4 3 4
// rs 3 + 5 - 4 + 4 - 5 + 4 + 2
int rs = k++ + ++k - --p + p-- - k-- + ++p + 2;
System.out.println(k); // 4
System.out.println(p); // 4
System.out.println(rs); // 9
2.4赋值运算符
2.4.1基本赋值运算符
=
2.4.2扩展赋值运算符
a 符号 1b 等价于 a = (a的数据类型) (a 符号2 b)
"符号1"可以是+= -= *= /= %=
对应的"符号2"就是+ - * / %
所以说这一类的赋值运算符自带强制类型转换,将结果类型强转为a的类型
byte i = 10;
byte j = 20;
i += j;//等价于i = (byte) (i + j);
System.out.println(i);
2.5关系运算符
==、!=、>、>=、<、<=
2.6逻辑运算符
2.6.1普通逻辑运算符
&逻辑与 |逻辑或 !逻辑非 ^逻辑异或
逻辑异或:必须两个不同的结果才是true(逻辑异或比较的两个对象必须是布尔类型):
System.out.println(false ^ true); // true
System.out.println(true ^ true); // false
2.6.2短路逻辑运算符
- &&(短路与):判断结果与"&"一样.过程是:左边为false则右侧不执行
- ||(短路或):判断结果与"|"一样.过程是:左边为true则右侧不执行
2.7三元运算符
int i = 10;
int j = 30;
int k = 50;
int rsMax = i > j ? i > k ? i : k : j > k ? j : k;
//等同于int rsMax = i > j ? (i > k ? i : k) : (j > k ? j : k);
System.out.println(rsMax);
2.8运算符优先级
| 优先级 | 运算符 |
|---|---|
| 1 | () |
| 2 | !、-、++、– |
| 3 | *、/、% |
| 4 | +、- |
| 5 | <<、>>、>>> |
| 6 | <、<=、>、>=、instanceof |
| 7 | ==、!= |
| 8 | & |
| 9 | ^ |
| 10 | | |
| 11 | && |
| 12 | || |
| 13 | ?: |
| 14 | =、+=、-=、*=、/=、%=、&= |
3.API——键盘录入
需求:完成java程序与用户交互,比如录入用户键盘输入的名称、年龄等等
用户键盘输入是通过硬件传到后台的,我们需要拦截到键盘输入的数据,这些技术我们自己是很难写出来的,所以就要用到java写好的核心类库(也就是API)
API和jvm共同组成了jre,API是java写好的程序(功能代码),我们可以直接调用
键盘录入功能实现的三个步骤:
1.导包:告诉程序去JDK的哪个包中找扫描器技术
2.写一行代码代表得到键盘扫描器对象
3.等待接受用户输入数据
System和String在JDK的java.lang包下,lang包是默认的包不需要我们导包
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入您的年龄:");
int age = sc.nextInt();
System.out.println("您的年龄是:" + age);
System.out.println("请您输入您的名称:");
String name = sc.next();
System.out.println(name + "欢迎进入系统!");
}
}
本文详细介绍了Java中的数据类型转换,包括自动类型转换和强制类型转换,并探讨了各种运算符的使用,如算术、赋值、逻辑和关系运算符。此外,还讲解了自增自减运算符和三元运算符的规则。重点讨论了运算符的优先级,并展示了键盘录入功能的实现,利用Scanner类从用户那里获取输入数据。

3万+

被折叠的 条评论
为什么被折叠?



