Day02_变量、数据类型、运算符、类型转换、控制台输入
一. 变量
变量组成:
数据类型, 变量名, 值
变量定义流程:
声明: //开辟整数变量空间
数据类型 变量名;
int money;
赋值: //将整数值赋给变量
变量名 = 值;
money = 100;
应用: //
System.out.print(money);
【注】: Java是强类型语言,变量的类型必须与数据的类型一致。
定义变量的三种方式:
- 先声明,再赋值
int money;
money = 100;
- 声明并赋值
int money = 100;
- 多个同类型变量声明与赋值
int a, b, c = 1, d = 2, e;
二. 数据类型
Java 中的变量具有严格的数据类型区分。
Java 语言中,任何一个值,都有其对应类型的变量
Java 中的数据类型:
基本数据类型:
整型,浮点型,布尔型,字符
引用数据类型:
字符串,数组,对象
基本数据类型:
整型:
类型 | 字节 | 取值范围 | 取值范围
byte |1字节 |- 2^ 7 ~2^ 7-1 | -128 ~127
short |2字节 |- 2^15 ~2^15-1 | -32768 ~32767
int |4字节 |- 2^31~ 2^31-1 | -21亿 ~21亿
long |8字节 |- 2^63 ~2^63-1 | -922亿亿 ~922亿亿
【注】: 整数默认为int 整型, 如需要为long型,需在值得后面追加 “L”。
浮点型:
类型 | 字节 | 负数范围 | 正数范围
float |4字节 |-3.4E+38 ~-1.4E-45 |1.4E-45 ~3.4E+38
double |8字节 |-1.7E+308 ~-4.9E-324 |4.9E-324 ~1.7E+308
【注】: 如:2E3 等价于2*10^3
【注】: 浮点数默认为double型, 如需要为float型,需在值得后面追加 “F”。
类型 | 字节 | 取值范围
boolean |1字节 | true/ false
【注】: Java 中的boolean 不能参与算数运算
字符:
前置知识:
ASCII:
美国信息交换标准码 (American Standard Code for Information Interchange)
0 ~9: 30 H ~39 H
A ~Z: 41 H ~5A H
a ~z: 61 H ~7A H
Unicode:
Unicode(统一码、万国码、单一码)是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。
Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
类型 | 字节 | 取值范围 | 字符编码
char |2字节 | 0~65535 | Unicode编码
字符赋值:
char c1 = 'a';
整数赋值:
char c2 = 65;
进制赋值:
char c3 = '\u0041';
转义字符
\n 换行
\t 缩进(制表位Tab)
\\ 反斜杠
\'单引号
\" 双引号
引用数据类型:
字符串:
类型 | 取值范围 | 字符编码
String | " " 之间的值 | Unicode字符集
String str1 = "Hello";
String str2 = "你好";
类型转换:
自动类型转换:
- 两种类型相互兼容
- 目标类型大于源类型
byte b = 100;
int i = b;
System.out.println(i);
强制类型转换:
- 两种类型相互兼容
- 目标类型小于源类型,
int i = 100;
byte b = (byte) i;
System.out.println(b);
规则:
- boolean的取值不可与其他类型转换
三. 运算符
算术运算符:
+, -, *, /, %
【单目】++, –
【注】: 自增/自减运算时应注意是前缀还是后缀。
前缀:先自增/减,再运算
后缀:先运算,再自增/减
int j = 1;
System.out.println(j++ + ++j + j++);
// 1 + 3 + 3
// 结果为 7
System.out.println(j);
// j == 4
赋值运算符:
=
+=, -=, *=, /=, %=
关系运算符:
!=, ==, >, >=, <, <=
【注】: 返回布尔量
int a = 10;
int b = 4;
System.out.println(a > b); // true
System.out.println(a < b);
System.out.println(a != b);
System.out.println(a == b);
System.out.println(a == b == false); // true
System.out.println(false == false); // true
逻辑运算符:
&&, || , !
与: 全真为真
或: 全假为假
非: 取反
【注】:对两个布尔量运算,返回布尔量
【注】:有短路求值的特点
a && b,表达式a 为假时,不会对表达式b进行运算(表达式b中有非法操作也可)
a || b,表达式a为真时,不会对表达式b进行运算
boolean a = true;
int b = 4;
System.out.println(a == false && b / 0 == 1); // false
System.out.println(a == true || b / 0 == 1); // true
三目运算符:
? :
格式:
布尔表达式 ? 值1 : 值2
语义:
布尔表达式为true, 返回值1;否则返回值2 。
【注】: 常用来传递参数
int a = 1;
String result1 = a == 2 ? "等于2" : "不等于2";
System.out.println(result1); // 不等于2
a++;
String result2 = a == 2 ? "等于2" : "不等于2";
System.out.println(result2); // 等于2
int a = 1;
int b = 1;
int c;
c = a == 2 ? 2 : b == 1 ? 1 : 3;
System.out.println(b); // 1
【注】: 右结合性,也具备短路求值特点
int a = 1, b = 2;
int c = 3, d = 4;
int m = 8 > 7 ? a : b == 2 ? ++c : d;
System.out.println(c); // 3
System.out.println(m); // 1
int a = 1, b = 2;
int c = 3, d = 4;
int m = 8 < 7 ? a : b == 2 ? ++c : d;
System.out.println(c); // 4
System.out.println(m); // 4
四. 类型提升
进行算术运算时:
- 两个操作数有一个为double,计算结果提升为double
- 如果操作数中没有double,有一个为float,计算结果提升为float
- 如果操作数中没有float, 有一个为long,计算结果提升为long
- 如果操作数中没有long,有一个为int,计算结果提升为int
- 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int
特殊:
- 任何类型与 String 拼接(+),其结果自动提升为String
五. 控制台输入
程序运行中,可在控制台手动录入数据,再让程序继续运行。
导包语法:
import 包名.类名;
使用顺序:
导入 java.util.Scanner
import java.util.Scanner;
声明 Scanner 类型的变量
Scanner input = new Scanner(System.in);
使用 Scanner类中对应的方法
.nextInt(); // 获得整数
.nextDouble(); // 获得小数
.next(); // 获得字符串
.next().charAt(0); // 获得单个字符
【注】: 如果输入流不匹配的数据,则会抛出异常
java.util.InputMismatchException
本文地址:https://blog.csdn.net/qq_41612797/article/details/107674422
上一篇: 建造者模式