数据类型转换:
首先我们来了解一下数据类型转换:对应类型的数据赋值给对应类型的变量.
对应类型的数据赋值给对应类型的变量
自动类型提升 :
小---->大 ===> 可以正常存放,但是可能会造成内存的浪费
强制类型转换 :
大---->小 ===> 不能发生,有可能会造成损失精度
小范围类型 变量名 = (小范围类型)大范围类型数据;
注意: 如果存储多种类型的数据参与运算,结果类型为参与运算的最大类型
如果结果类型为<int类型,最终会自动提升 为int类型
如果为byte,short,char赋值时候,把int类型的常量,只要范围 允许可以成功赋值
boolean不参与类型转换
byte -- >short --> int ---> long --> float ---> double
两个工具
一,Scanner
引用数据类型的使用 :
1.导包 : 指明要使用类型的位置
import 包名.类名;
定义在类的上面
2.引用数据类型 引用|变量名 = new 引用数据类型();
3.使用功能
引用.公共名字();
Scanner : 接收用户键盘输入的内容
1.导入
import java.util.Scanner;
2.创建 Scanner类型的引用
Scanner sc = new Scanner(System.in);
3.使用工能
引用.nextInt() **** 接收用户键盘输入int类型的内容
引用.nextByte()
引用.nextShort()
引用.nextLong()
引用.nextDouble() ****
引用.nextFloat()
从有效字符开始接受,遇到enter建结束功能
引用.next() 接收用户键盘输入String类型的内容
从有效字符开始接收,遇到 空格等不接受,遇到enter建结束功能
引用.nextLine() 接收用户键盘输入一整行的String类型的内容
遇到enter建结束功能
注意: 不要定义与jdk中类型同名,同包的类
如果在 nextLine上面存在系列的next工能.,需要处理遗留enter问题
二,Random
Random : 产生随机数
1.导包
import java.util.Random
2.创建Random类型的引用
Random ran = new Random();
3.使用功能
ran.nextInt() 随机产生int范围内的整数
ran.nextInt(整数n) 随机[0,n)整数
ran.nextDouble() [0.0,1.0) 随机产生double范围的小数
公式总结 :
随机整数:
[0,n) ran.nextInt(整数n)
[0,n] ran.nextInt(n+1)
[min,max) ran.nextInt(max-min)+min
ran.nextInt(max)->[0,max)
ran.nextInt(max)+min->[min,max+min)
ran.nextInt(max-min)+min->[0,max-min)+min -->[min,max)
[min,max] ran.nextInt(max-min+1)+min
注意 : 伪随机数
运算符(operator)
赋值运算符:=
算术运算符:+ - * / % ++ --
关系运算符:< > <= >= == != instanceof
1.关系运算符结果只能是一个boolean类型的变量
2.> < <= >= 基本类型中 除了boolean之外的其他数据类型不能比较引用类型
3.!= ==既可以比较基本数据类型(包含boolean类型)也可以比较引用类型
instanceof 只能用来比较引用类型 某个变量是否是某个具体类型
逻辑运算符:| & ! ^ || &&
1.逻辑运算符左右两边的操作数只能是boolean值
2.& | ^ 基本碰见就是位运算符
3.&和&& 两个操作数都为true结果为true 其他都为false
4.| 和 || 两个操作数有一个为ttrue 其结果为true,两个都为false结果才为false
5.!ture-->false !false-->true
^相同为false 相异为ture
6.&和&&的区别:运算结果一致,但是&&效率高 因为左边操作数如果为false 右边不参与运算
7.|和|| 的区别:运算结果一致,但是||效率高 因为左边操作数如果为true 右边不参与运算
扩展运算符:算数+赋值 位+赋值
优点:提升编译速度 提升开发效率 能够进行自动类型转换
缺点:不利于阅读
条件运算符:?:
表达式1?表达式2:表达式3
位运算符: & | ^ ~ >> << >>>
位运算符是通过二进制进行计算的 所以效率最高