文章目录
类型转换、运算符
1.变量详解
1.1 变量底层执行原理
- 二进制:逢二进一
- 任何数据在计算机中存储都是二进制。
- 每个二进制位被称为bit(位)
8bit = 1byte(字节)
1024Byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
一个英文字母占1byte(字节),一个中文占2个字节
1.2 基本数据类型
Java中各种数据类型占用的空间:
基本数据类型
4类8种
整数
byte : 1字节
short :2字节
int (默认):4字节
long :8字节
浮点
float :4字节(比long大)
double(默认): 8字节(最大)
字符
char :2字节
布尔
boolean:1字节
2.数据类型转换
2.1 自动转换
- ava"基本数据类型"中除boolean外的其它7种之间都可以进行相互转换
- 转换的方式,有两种:
1. 自动转换:从小到大
1).在表达式中,如果没有大于int类型的,会将短整型(byte,short,char)自动提升为int类型,然后再运算
byte a = 10;
byte b = 20;
byte c = a + b;//编译错误—结果必须是int类型
int c = a + b;//正确
byte c = (byte)(a + b);//正确
2).在表达式中,如果有大于int类型,会将所有操作数全部提升为最高类型,结果也是这个最高类型
byte a = 10;
int b = 20;
double c = 30;
double result = a + b + c;//正确
2.2 强制转换
强制转换:从大到小
int a = 100;
byte b = a;//错误
byte b = (byte)a;//正确,强转,截掉高位,保留低位——高位截肢,有可能会丢失数据。
3.运算符
3.1 算数运算符
算术运算符
1).+:加
1).+符号左右两边如果都是数值类型,就做“加法运算”,如果有一边是“字符串”类型,就做“字符串拼接”,
拼接的结果是一个新字符串。
System.out.println(5 + 5 + "Hello");//10Hello
2). - :减
3). * :乘
4). / :除
1).如果/号左右两边都是整数,结果为整数;如果有一个是小数,结果是小数
System.out.println(10 / 3);//3
System.out.println(10 / 3.0);//3.333333
System.out.println((double)(10 / 3));//3.0
System.out.println(10 / 0);//编译通过,但运行时异常
5). % :取余
System.out.println(10 % 3);//1
**对于四则混合运算,仍然是先乘除,后加减,建议加()**
3.2 自增自减运算符
自增自减运算符
++ :将变量的值**自增**1
-- :将变量的值**自减**1
int a = 10;
a++;
++a;
System.out.println(a);//12
**注意:**
一个表达式中如果做多件事,前++/--或者后++/--将会影响最终的结果
int a = 10;
int b = a++;
System.out.println(b);//10
int a = 10;
int b = ++a;
System.out.println(b );//11
3.3 赋值运算符
赋值运算符
1).= :从右向左
int a = 3 + 2;
System.out.println(a);//5
2).+=:
3). -=
4). *=
5). /=
6). %=
以上几个运算符运算顺序都是从右向左的,另外都带“**隐式强转**”——可以直接对短整型运算
byte a = 10;
//a = a + 5;//将a的值自增5,编译错误!
a += 5;//OK的,相当于:a = (byte)(a + 5);
3.4 比较运算符(关系运算符)
比较运算符
1). >
2). <
3). >=
4). <=
5). ==
6). !=
注意:
1. 他们可以对“数值类型(byte,short,int,long,float,double,char)”进行运算
2. ==和!=可以判断boolean,可以用
3. ==和!=可以判断String,但不要用!!!
3.5 逻辑运算符
逻辑运算符
1). &&:逻辑与,左右两边都为true,结果为true
2). ||:逻辑或,左右两边有一个为true,结果为true
3). ! :逻辑非,!true = false,!false = true
作用:对两个"布尔类型的结果"进行再次判断的。所以逻辑运算符的左右两边必须是"布尔类型的值",结果也是一个布尔值。
3.6 三元运算符
三元运算符
语法:条件表达式(必须产生一个布尔值) ? 值1 : 值2;
执行流程:先执行“条件表达式”,如果结果为true,则取“值1”,否则取“值2”。
int a = 10;
int b = 20;
int max = a > b ? b : a;
System.out.println("最大值:" + max);
4. 键盘输入工具类
使用Java类库中的类Scanner,使用三步骤:
1). 导包:import java.util.Scanner;(在package语句后,public class语句前)
2).创建对象,在main()中:Scanner sc = new Scanner(System.in);
3). 在main()中接收数据:
1).接收字符串:String name = sc.next();
2).接收整数:int age = sc.nextInt();
3).接收小数:double height = sc.nextDouble();