2.Java数据类型、运算符、API介绍、键盘录入

1.Java基础知识

1.类型转换知识(如何实现程序中不同类型的变量或者数据互相传输,不同类型的数据运算的结果数据的类型如何确定)
2.运算符的使用(程序中怎么进行数据的基本算数运算、以及一些逻辑运算、Java提供了具体哪些运算方式)
3.怎么调用Java提供的程序(程序员需要调用Java写好的一些程序,这些程序如何去调用)

2.自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量
底层原理

byte a = 12; // a 0000 1100 (8位)
int b = a; // b 00000000 00000000 00000000 00001100 (32位)

自动类型转换的其他形式
byte —》 short —》 int —》 long —》 float ----》 double
char —》 int

 int age = 23;
double db = age;
System.out.println(db); // 23.0

char ch = 'a';
int code = ch;
System.out.println(code); // 97

表达式的自动类型转换
在表达式中,小范围类型的变量会自动转换成昂前较大范围的类型再运算
byte、short、char —》 int ----》 long —》 float —》 double
注意:表达式的最终结果类型由表达式中的最高类型决定
在表达式中,byte、short、char是直接转换成int类型参与运算的

// 面试题
 byte i =10;
 byte j = 20;
 int k = i+j;
 System.out.println(k);

3.强制类型转换

类型范围大的数据或者变量,不能直接赋值个类型范围小的变量,会报错

强制类型转换
可以强行将类型范围的变量、数据赋值给类型范围小的变量

类型 变量 = (类型)变量

int a = 20;
byte b = (byte)a;
System.out.println(b);
System.out.println(a);

int i = 1500;
byte j = (byte)i;
System.out.println(j); // -36

注意:强制类型转换可能造成数据(丢失)溢出
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

double score = 99.5;
int i1 = (int) score;
System.out.println(i1); // 99

4.运算符

对字面量或者变量进行操作的符号

1.+ - * / %
int a = 10;
int b = 3;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); // 3.3333 ==> 3
System.out.println(a * 1.0 / b); // 3.333333333
System.out.println(3 * 1.0 / 2); // 1.5
System.out.println(3 / 2 * 1.0); // 1.0
System.out.println(a % b);

若两个整数做除法,其结果一定是整数,若需要小数,可将被除数*1.0

2.+ 做连接符

+符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串

int a = 5;
System.out.println("abc" + 5); // abc5
System.out.println(a+'a'); // 102
System.out.println("a"+a+'a'); // a5a

能算则算,不能算就拼接

3.自增自减运算符
符号作用说明
++自增变量自身的值加1
自减变量自身的值减1

注意:++和–既可以放在变量的后边,也可以放在变量的前边
++、–只能操作变量,不能操作字面量
++ – 如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后会存在明显区别
放在变量的前面,先对变量及进行+1、-1,再拿变量的值进行计算
放在变量的后面,先拿变量的值进行计算、再对变量及进行+1、-1

int i = 10;
int j = ++i;
System.out.println(i);  // 11
System.out.println(j); // 10

int m = 10;
int n = m++;
System.out.println(m); // 11
System.out.println(n); // 10
4.赋值运算符

基本赋值运算符
’=‘
扩展赋值运算符

符号作用说明
+=加后赋值a+=b等价于(a的数据类型)(a+b);将a+b的值给a
-=减后赋值a-=b等价于(a的数据类型)(a-b);将a-b的值给a
*=乘后赋值a*=b等价于(a的数据类型)(ab);将ab的值给a
/=除后赋值a/=b等价于(a的数据类型)(a/b);将a/b的值给a
%=取余后赋值a%=b等价于a=(a的数据类型)(a%b); 将a%b的值给a

注意:扩展运算符隐含了强制类型转换

// 赋值运算符 += -= *= /= %=
int a = 10;
int b = 200;
a += b; // a = (int)(a+b)
System.out.println(a);  // 210
byte i =10;
byte j = 20;
i = (byte)(i+j); // i+=j
System.out.println(i); // 30

int m = 10;
int n = 5;
m -= n;  // 5
// m *= n;  // 50
// m /= n; // 2
// m %= n; // 0
5.关系运算符

是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)

符号说明
==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

注:在做相等判断时,不要把 == 误写成 =

// 关系运算符
int a = 10;
int b = 10;
boolean rs = a == b;
System.out.println(rs);  // true
System.out.println(a == b); // true
System.out.println(a != b); // false
System.out.println(a > b); // false
System.out.println(a >= b); // true
System.out.println(a < b); // false
System.out.println(a <= b); // true
6.逻辑运算符

可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果

符号介绍说明
&逻辑与必须都是true,只要有一个是false,记过一定是false
|逻辑或只要有一个为true、结果就是true
!逻辑非假为真 真为假
^逻辑异或如果两个条件都是false或者都是true结果是false。两个条件不同结果是true
// 逻辑运算符,并能选择合适的逻辑运算符解决问题
double height = 175.8;
double weight = 155.5;
// 需求:身高大于175,体重小于 130
System.out.println(height > 175 & weight < 130); // false
// 需求:身高大于175或者体重小于130
System.out.println(height > 175 | weight < 130); // true
System.out.println(!(height > 175)); // false

短路逻辑运算符

符号介绍说明
&&短路与判断结果与"&"一样。过程是左边false,右边不执行
||短路或判断结果与 "|"一样。过程是左边为true,右边则不执行

注意:逻辑与"&"、逻辑或"|":无论左边是false还是true,右边都要执行

int a = 10;
 int b = 20;
 System.out.println(a > 100 && ++ b > 10); // false
 System.out.println(b); // 20
 System.out.println(a > 100 & ++ b > 10); // false
 System.out.println(b); // 21

 int i = 10;
 int j = 20;
 System.out.println(i > 2 || ++j > 10); // true
 System.out.println(j);  // 20
 System.out.println(i > 2 | ++j > 10); // true
 System.out.println(j); // 21
7.三元运算符

格式: 条件表达式 ? 值1 : 值2
执行流程: 首先计算关系表达式的值,如果值为true,则返回值1,若为false,则返回值2

// 三元运算符
double score = 98;
String rs = score >= 60 ? "及格" : "挂科";
System.out.println(rs); // 及格

// 需求:需要从两个整数中找出最大值
int a = 10;
int b =200;
int max = a > b ? a : b;
System.out.println(max); // 200
8.运算符优先级
优先级运算符
1()
2!、++、–
3*、/、%
4+、-
5<<、>>、>>>
6<、<=、>、>=、instanceof
7==
8&
9^
10|
11&&
12||
13?
14=、+=、-=、*=、/=、%=、&=
// 优先级
System.out.println(10>3 || 10 > 3 && 10<3); //ture
System.out.println((10>3 || 10 > 3) && 10<3); // false

5.案例 数值拆分

需求:一个三位数,将个位数、十位数、百位数打印

int data = 589;
int ge = data % 10;
System.out.println(ge);

int shi = data / 10 % 10;
System.out.println(shi);

int bai = data / 100;
System.out.println(bai);

6.案例:自增、自减扩展案例

 int k = 3;
 int p = 5;
 int rs = k++ + ++k - --p + p-- - k-- + ++p;
 // 3(k=4) + 5(k=5) - 4(p=4) + 4(p=3) - 5(k=4) + 4(p=4)
 System.out.println(k); // 4
 System.out.println(p); // 4
 System.out.println(rs); // 7

7.案例:求三个整数的最大值

分析:1.用三元运算符获取前两个整数的最大值,并用临时变量存储起来
2.用三语运算符,让临时最大值,和第三个整数,进行比较,并记录结果
3.输出结果
第一种方式

int i = 10;
 int j = 20;
 int k = 15;
 int temp = i > j ? i : j;
 int maxNum = temp > k ? temp : k;
 System.out.println(maxNum);

第二种方式: 三元表达式嵌套

int i = 10;
int j = 20;
int k = 15;
int maxNum =( i > j ? i : j) > k ? j : k;
System.out.println(maxNum);

8.案例:键盘录入技术

需求:完成Java程序用户交互,如录入用户输入的名称、年龄
API(应用程序编程接口)
Java写好的程序(功能代码),可以直接调用
Oracle也为Java写好的程序提供了相应的API文档(技术使用说明书)

键盘录入功能实现的三个步骤
1.导包:告诉程序去JDK的哪个包中找扫描器技术
2.写一行代码代表得到键盘扫描器对象
3.等待接收用户输入数据

// 1.导包

import  java.util.Scanner;

public class ScannerDemo {
   public static void main(String[] args) {
       // 学会使用键盘录入技术
       // 2.得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);
       // 3. 调用对象的功能 等待接收用输入的数据
       // 这个代码会等待用户输入数据,知道用户输入数据并按下回车键就会把数据拿到
       System.out.println("请输入您的姓名");
       String name = sc.next();
       System.out.println("请输入您的年龄");
       int age = sc.nextInt();
       System.out.println("您的姓名是:"+name+",您的年龄是:"+age);
   }
}

注意:System、String在JDK中的Java.lang包下
lang包是不用导入的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值