计算机内存中的一块存储空间,是存储数据的基本单元。
赋值运算符:- 概念:为变量赋值
- 变量名=值; //将等号右边的值,赋值给等号左边的变量(存值)
声明:数据类型 变量名;
例如:int a; //开辟整数变量空间
赋值:变量名=值;
例如:a=100; //将整数值赋给变量
注意:java是强类型语言,变量的类型必须与数据的类型一致。
声明变量的3种方式:
- 先声明,再赋值:【常用】
数据类型 变量名;
变量名 = 值; - 声明并赋值:【常用】
数据类型 变量名 = 值; - 多个同类型变量的声明和赋值:【了解】
数据类型 变量1, 变量2, 变量3=值3, 变量4, 变量5=值5;
java中的变量具有严格的数据类型区分。(强类型语言)
在java语言中,任何一个值,都有其对应类型的变量。
java中的数据类型:
| 类型 | 字节 |
|---|---|
| byte | 1字节 |
| short | 2字节 |
| int | 4字节 |
| long | 8字节 |
注意:int为整数的默认类型,如需为long类型赋值较大整数时,需在值的后面追加“L”,在结尾家L,大小写都可。
例如:long l1=2155555555L; //显示告知JVM,此值为long类型
| 类型 | 字节 |
|---|---|
| float | 4字节 |
| double | 8字节 |
注意:double为浮点数的默认类型,如需为float类型赋值时,需在值的后面追加“F”
基本数据类型(布尔)| 类型 | 字节 | 取值范围 |
|---|---|---|
| boolean | 1字节 | true/false |
可以直接赋值 true/false
也可以赋值一个结果为true/false的表达式
注意:java中的boolean不能参与算数运算
| 类型 | 字节 | 取值范围 | 字符集 |
|---|---|---|---|
| char | 2字节 | 0-65535 | Unicode字符集 |
Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值
- 字符赋值:char c1='A'; 通过‘’描述为字符赋值
- 整数赋值:char c2=65; 通过十进制数65在字符集中对应的字符赋值
- 进制赋值:char c3='u0041'; 通过十六进制数41在字符集中对应的字符赋值
| 转义字符 | 描述 |
|---|---|
| n | 换行符 |
| t | 缩进(制表位) |
| 反斜线 | |
| ’ | 单引号 |
| " | 双引号 |
- 整型:byte、short、int、long
- 浮点:float、double
- 布尔:boolean
- 字符:char
| 类型 | 取值范围 | 字符编码 |
|---|---|---|
| String | 任何""之间的字符 | Unicode字符序列 |
String类型的字面取值:
String str1="你好"; String str2="Hello";运算符 算术运算符
算数运算符:两个操作数进行计算
| 操作符 | 描述 |
|---|---|
| + | 加、求和 |
| - | 减、求差 |
| * | 乘、求积 |
| / | 除、求商 |
| % | 模、求余 |
算数运算符:一元运算符(只有一个操作数)
| 操作符 | 描述 |
|---|---|
| ++ | 递增,变量值+1 |
| - - | 递减,变量值-1 |
赋值运算符:等号右边赋值给等号左边
| 操作符 | 描述 |
|---|---|
| = | 直接赋值 |
| += | 求和后赋值 |
| -= | 求差后赋值 |
| *= | 求积后赋值 |
| /= | 求商后赋值 |
| %= | 求余后赋值 |
关系运算符:两个操作数进行比较
| 操作符 | 描述 |
|---|---|
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
| 操作符 | 语义 | 描述 |
|---|---|---|
| && | 与(并且) | 两个操作数,同时为真,结果为真 |
| 两竖线 | 或(或者) | 两个操作数,有一个为真,结果为真 |
| ! | 非(取反) | 意为“不是”,真即是假,假即使真 |
| 操作符 | 语义 | 描述 |
|---|---|---|
| ? : | 布尔表达式?结果1:结果2 | 当表达式结果为真,获得结果1。当表达式结果为假,获得结果2 |
两种类型相互兼容。
目标类型大于源类型
package demo;
public class Test{
public static void main(String[] args){
short s=123;
int i=s;
}
}
boolean无法与其他类型进行转换!
强制类型转换两种类型互相兼容。
目标类型小于源类型。
package demo;
public class Test{
public static void main(String[] args){
short s=123;
byte b=s; //类型转换失败,编译错误
}
}
package demo;
public class Test{
public static void main(String[] args){
short s=123;
byte b=(byte)s;//强制转换:(目标类型)值
}
}
强制类型转换规则:
- 整数长度足够,数据完整。
- 整数长度不够,数据截断。
- 小数强转整数,数据截断。
- 字符整数互转,数据完整。
- boolean的取值为true/false,不可与其他类型转换。
使用运算符连接的变量或字面值,并可以得到一个最终结果。
类型提升 自动类型提升进行算数运算时:
- 操作数有一个为double,计算结果提升为double。
- 如果操作数中没有double,有一个为float,计算结果提升为float。
- 如果操作数中没有float,有一个为long,计算结果提升为long。
- 如果操作数中没有long,有一个为int,计算结果提升为int。
- 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
导包语法:import 包名.类名;//将外部class文件的功能引入到自身文件中。
使用顺序:
- 导入 java.util.Scanner。
- 声明Scanner类型的变量。
- 声明Scanner类中对应的方法(区分类型):
.nextInt(); //获得整数
.nextDouble(); //获得小数
.next(); //获得字符串
.next().charAt(0); //获得单个字符
如果输入了不匹配的数据,则会产生java.until.InputMismatchException
实例:
//package 必须在源文件的首行
import java.util.Scanner; //引入外部文件
public class Demo{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入内容:");
String str=input.next();
System.out.println(str);
}
}



