手机扫码查看
数据类型
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 | -2147483648~2147483647 |
| long | 8 | -2^63~2^63-1 | -9223372036854775808~9223372036854775807 |
注意: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 (结果: 2000.0 )
3E5 等价于 3 * 10 ^ 5 (结果: 300000.0 )
注意: double 为浮点数的默认类型,如需为 float 类型赋值,需要在值的后面追加 F
基本数据类型(布尔)
| 类型 | 字节 | 取值范围 | 描述 |
|---|---|---|---|
| boolean | 1 | true/false | 真 或 假 |
可直接赋值 true / false
也可赋值一个结果为 true / false的表达式
注意:java中的boolean不能参与算数运算
基本数据类型(字符)
| 类型 | 字节 | 取值范围(无符号数) | 字符编码 |
|---|---|---|---|
| char | 2 | 0~65535 | Unicode字符集(万国码) |
Unicode字符集支持ASCII编码(美国标准信息交换码)
Unicode中每个字符都对应一个十进制整数,从而可以使用多种方式赋值
字符赋值: char c1=’A’;通过 ‘’ 描述为字符赋值
整数赋值: char c2=65;通过十进制数65在字符集中对应的字符赋值
进制赋值: char c3=’\u0041’;通过十六进制数 41 在字符集 中所对应的字符赋值
转义字符
\n 换行符
\t 缩进(制表位)
\\ 反斜线
\’ 单引号
\” 双引号
引用数据类型(字符串)
类型 取值范围 字符编码
Strng 任何 “” 之间的字面值 Unicode字符序列
用法: String str=”str”;
类型转换
1.自动类型转换
两种类型相互兼容
目标类型大于源类型
short s=123;
int i=s; //自动转换成功,编译通过
2.强制类型转换
两种类型相互兼容
目标类型小于 源类型
short s=123;
byte b=(byte)s;//强换:(目标类型)值
强制类型转换规则
整数长度足够,数据完整
int i=100;
byte b=(byte)i;//b=100
整数长度不够,数据截断
int i=10000;
byte b=(byte)i;//b=16(符号位变化,可能变为负数)
小数强转整数,数据截断
double d=2.5;
int i=(int)d;//i=2;(小数位舍掉)
字符整数互转,数据完整
char c=65;
int i=c;//i=65;
boolean的取值为 true/false,不可与其他类型转换
表达式
使用运算符连接的变量或字面量,并可以得到一个最终结果。
例如:
int a=5;
int b=7;
b-a;
自动类型提升
进行算数运算时:
两个操作数有一个为 double ,计算结果提升为 double 。
如果操作数中没有 double ,有一个为 float ,计算结果提升为 float 。
如果操作数中没有 float ,有一个为 long ,计算结果提升为 long 。
如果操作数中没有 long ,有一个为 int ,计算结果提升为 int 。
如果操作数中没有 int ,均为 short 或 byte ,计算结果仍旧提升为 int 。
特殊:任何类型与 String 相加(+)时,实为拼接,其结果自动提升为 String
运算符
1.算数运算符:两个操作符进行计算
| 操作符 | 描述 |
|---|---|
| + | 相加 int x=5;int z=7;x+z; |
| – | 相减 int x=5;int z=7;x-z; |
| * | 相乘 int x=5;int z=7;x*z; |
| / | 除 int x=5;int z=7;x/z; |
| % | 模,取余 int x=5;int z=7;x%z; |
| ++ | 递增,变量值+1 int x=5;x++; |
| – | 递减,变量值-1 int x=5;x--; |
2.赋值运算符:等号右边赋值给等号左边
| 操作符 | 描述 |
|---|---|
| = | 赋值 int x=5; |
| += | 相加后赋值 int x+=5; |
| -= | 相减后赋值 int x-=5; |
| *= | 相乘后赋值 int x*=5; |
| /= | 除后赋值 int x/=5; |
| %= | 取余后赋值 int x%=5; |
3.关系运算符:两个操作数进行比较
| 操作符 | 描述 |
|---|---|
| > | 大于 int x=5;int z=7;x>z; |
| < | 小于 int x=5;int z=7;x<z; |
| >= | 大于等于 int x=5;int z=7;x>=z; |
| <= | 小于等于 int x=5;int z=7;x<=z; |
| == | 等于 int x=5;int z=7;x==z; |
| != | 不等于 int x=5;int z=7;x!=z; |
4.逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较
| 操作符 | 描述 | 描述 |
|---|---|---|
| && | 并且 | 两个操作数,同时为真,结果为真 |
| II | 或者 | 两个操作数,有一个为真,结果为真 |
| ! | 非,取反 | 意为“不是”,真即是假,假即是真 |
5.三元运算符:将判断后的结果赋值给变量
| 操作符 | 语义 | 描述 |
|---|---|---|
| ? : | 表达式 ? 结果1 : 结果2 | 当表达式结果为真,获得结果1 当表达式结果为假,获得结果2 |
a%b==0 ? true : false;
控制台输入
程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行
导包语法:import 包名.类名;//将外部class文件功能引入到自身文件中。
使用顺序:
导入 java.util.Scanner,或者 java.util.*;
声明 Scanner 类型的变量。
使用 Scanner 类中对应的函数(区分类型)
.nextInt();//获得整数
.nextDouble();//获得小数
.next();//获得字符串
.next().charAt(0);//获得单个字符
注:如果输入了不匹配的数据,则会产生 java.util.InputMismatchException
- 本页地址 https://www.9713job.com/?p=1643
- 上一篇 <<2020java教程:变量的概念
- 下一篇 >>2020java教程:流程控制




发表回复