一、类型转换
1、自动类型转换,范围小的可以直接赋值给大的类型变量
底层原理(面试):举例,byte(1字节,8位)赋值给int(4字节,32位)
char类型可以直接赋值给int类型数值
char ch='a';//ASCII码a=97,00000000 01100001
int x=ch;//00000000 00000000 00000000 01100001
System.out.println(x);//输出结果97
因为存在不同类型之间的相互赋值,因此需要类型转换
2、表达式的自动类型转换,范围小的会先转换成表达式中范围大的类型再参与运算
byte、short、char会当成int参与运算,最终运算结果类型是表达式中范围最大的那个类型
面试:
byte i=50,j=30;
//byte sum=i+j;//报错,原因:byte会当成int参与运算
int sum=i+j;
3、强制类型转换:大范围赋值给小范围
int a=20;
// byte b= a;//报错:大范围赋值给小范围,需要强制转换,快捷键,alt+enter
byte b= (byte) a;
System.out.println(b);//20
// 注意:强转可能造成数据丢失或者溢出;小数转化为整数,直接丢掉小数部分,保留整数部分
二、运算符
1、算数运算符
注意:/和%,整数相除时,结果还是整数
/相当于取整,不四舍五入;%取余
如果想要获得小数结果,分母*1.0
System.out.println(5*1.0/2);
练习:拆分数值
int data=256;
int ge,shi,bai;
ge=data%10;
shi=data%100/10;//或者data/10%10
bai=data/100;
System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
2、连接符“+”
// 注意:能算则算,不算就放一起
int a=1;
System.out.println("我是"+a+"号");
System.out.println(a+'a');//1+97=98
3、自增运算符,对变量进行操作,不是字面量;单独使用前后无区别
若在表达式中:
i++:先参与运算,再自增
++i:先自增,再参与运算
--同理
面试:学习来源B站黑马课程
// 自增运算符
int a=3,b=4;
//a 3 4 5 4
//b 4 5 6 5
//k 3 + 4 + 5 + 6 + 4 + 5 + 6 + 5 + 5
int k=a++ + b++ + b + ++b + a + ++a + b + a-- + --b;
System.out.println(a);//4
System.out.println(b);//5
System.out.println(k);//43
4、赋值运算符
+=,-=,/=,%=,*=
//赋值运算符
int a=3,b=4;
a+=b;//a=a+b
b-=a;//b=b-a
System.out.println(a);//7
System.out.println(b);//-3
byte m=5,n=6;
m+=n;//m=(byte)(m+n)
System.out.println(m);//11
5、关系运算符
比较结果是布尔值
注意:==,=
6、逻辑运算符,结果也是布尔值
&与,只有true&true为true,两侧都判断
|或,只有false|false为false,两侧都判断
!非,
^异或,两者不同才为true
&&,若左侧不满足,后边就不继续判断了
||,若左侧不满足,后边就不继续判断了
常用&&,||,!
7、三元运算符
条件表达式?值1:值2
表达式true则值1,否则值2
练习:找3个数中最大值,嵌套的写法
public class HelloWorld {
public static void main(String[] args) {
int a=5,b=8,c=1;
int max=a>b?(a>c?a:c):(b>c?b:c);
System.out.println(max);
}
}
8、运算符优先级
三、调用Java提供的方法
案例:键盘录入技术
1、导包(不需要自己写)
2、键盘扫描对象
3、调用对象的功能
package com.laogao.practice;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入年龄");
int age= scanner.nextInt();
System.out.println("请输入姓名");
String name=scanner.next();
System.out.println("年龄:"+age);
System.out.println("姓名:"+name);
}
}
运行结果
API:应用程序编程接口,就是Java写好的,直接调用