25天掌握java基础(二)——数据类型、API介绍、键盘录入

本文详细介绍了Java中的数据类型转换,包括自动类型转换和强制类型转换,并探讨了各种运算符的使用,如算术、赋值、逻辑和关系运算符。此外,还讲解了自增自减运算符和三元运算符的规则。重点讨论了运算符的优先级,并展示了键盘录入功能的实现,利用Scanner类从用户那里获取输入数据。

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 + "欢迎进入系统!");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

认真生活的灰太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值