Java 数据类型-基本数据类型
整数类型
类型 | 占用存储空间 | 表数范围 |
byte | 1字节 | -128~127 |
short | 2字节 | -2^15~2^15-1 |
int | 4字节 | -2^31~2^31-1 |
long | 8字节 | -2^63~2^63-1 |
Java
语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ .
浮点类型
●
十进制数形式,例如
: 3.14 314.0
●
科学记数法形式,如
3.14e2 3.14E2
类型 | 占用存储空间 | 表数范围 |
float | 4字节 |
-3.403E38~3.403E38
|
double | 8字节 |
-1.798E308~1.798E308
|
● float:单精度,尾数可以精确到
7
位有效数字。很多情况下,精度很难满足需求。
定义
float类型的变量,赋值时需要以f或F作为后缀
● double:双精度,精度是
float
的两倍。通常采用此类型。
Java 的浮点型常量默认为double型。
逻辑型boolean(布尔)
● boolean
类型适于逻辑运算,一般用于程序流程控制 。
● java
语言中boolean 类型数据只允许取值 true 或 false 。
字符型char char 型数据用来表示一个单个字符
char
占
2
字节
.
用单引号括起来
例如:
char c1 = 'a';
char c2 ='
中
';
char
运算
char
类型是可以运算的因为
char
在字符编码表中有对应的数值。
在
Java
中,对
char
类型字符运行时,直接当做对应编码表的整数来对待。
char c=
‘a’
+1;
先将’
a
’提升为
int
,计算结果
98
String不是基本数据类型,属于引用数据类型
●
使用一对
""
来表示一个字符串,内部可以包含
0
个、
1
个或多个字符。
●
声明方式
:
例如:
String str =
“abcd”
;
String name =
“张三”
;
String
是
java
类库中提供的一个类
,
用类来当做字符串变量类型
.
运算规则
1.
任意八种基本数据类型的数据与
String
类型只能进行连接
“+”
运算,且结果一定
也是
String
类型
2.String
类型不能转为其他的基本类型
基本数据类型转换
基本数据类型之间转换
8种基本数据类型除了布尔类型,其他类型之间可以相互转换
转换规则:
byte char short 会自动默认转换为int
long 8字节
float 4字节
double 8字节
注意:4字节的float类型表示范围大于8字节long类型
原因为浮点数在存储时结构与整数计算方式不同
默认转换
将取值范围小的(或 容量小的)类型自动提升为取值范围大的(或 容量大的)类型
强制转换
容量大的转换为容量小的,可能会出现溢出,可能会精度丢失
运算符
分类 | 运算符 |
算术运算符 | +、-、*、/、%、++、-- |
赋值运算符 | =、+=、-+、*=、/=、%= |
关系运算符 | >、<、>=、<=、==、!= |
逻辑运算符 | &、|、^、!、&&、|| |
位运算符 | &、|、^、~、<<、>>、>>> |
条件运算符 | (条件表达式)?表达式1:表达式 2 |
注意:
+ 数值+数值 数值+字符 字符串+数值 字符串+字符串
== 数值==数值 布尔==布尔 引用类型==引用类型 += -= 进行隐式数据类型转换
逻辑运算符:逻辑值与逻辑值进行运算 & : 逻辑与 所有表达式结果为true,最终结果为true,否则为false 当第一个表达式结果为false,还会继续执行后面的其他表达式 &&: 逻辑与/短路与 所有表达式结果为true,最终结果为true,否则为false 当第一个表达式结果为false,不会执行后面的其他表达式 | : 逻辑或 当表达式中有一个是true,结果为true 当第一个表达式结果为true时,还会执行后面表达式 ||: 逻辑或/短路或 当表达式中有一个是true,结果为true 当第一个表达式结果为true时不会执行后面表达式 !: 逻辑非 ^ : 逻辑异或 相同为false 不同为true
条件表达式结果为true 执行表达式1 否 则执行表达式2
控制台输入
具体步骤
1.
导包:
import java.util.Scanner; (
使用系统其它类时
,
先需要导入
,java.lang
包除外
)
2.
创建
Scanner
类型的对象:
Scanner scanner = new Scanner(System.in);
3.
调用
Scanner
类的相关方法(`next() / nextXxx()`),来获取指定类型的变量
next()
方法用以 取得用户输入的字符串;
nextInt()
将取得的输入字符串转换为整数类型;
nextFloat()
转换成浮点型;
nextBoolean()
转 换成布尔型。
例:Scanner scanner = new Scanner(System.in);
输入字符串:
System.out.print("
请输入姓名
");
String name= scanner.next ();
System.out.println("
姓名:
"+name);
输入整型数据:
System.out.println("请输入年纪:");
int age = scanner.nextInt();
输入浮点型数据:
float f=scanner.nextFloat();
double d=scanner.nextDouble();
if条件结构
if (条件1){
语句1;
} else if (条件2){
语句2;
}……
}else if (条件N){
语句N;
}else{
语句
}
switch语句
表达式可以为 byte short int char 枚举类型 String类型 switch(表达式){ case value1: 语句块 break; case value2: 语句块 break; case value3: 语句块 break; case valueN: 语句块 break; value 只能是字面量而且不能重复 某个case分支如果没有提供break语句,则继续执行下一个case后的语句; 当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句; 如果没有default子句,则程序直接跳出switch语句。
循环语句分类
while 循环
do/while 循环
for 循环
如何选择 遍历有明显的循环次数(范围)的需求,选择for循环 遍历没有明显的循环次数(范围)的需求,选择while循环 如果循环体语句块至少执行一次,可以考虑使用do-while循环 本质上:三种循环之间完全可以互相转换,都能实现循环的功能 while 语句为如下形式: while(逻辑表达式){ 循环体 迭代部分 } ● 执行过程 先判断逻辑表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行, 直到条件不成立为止
● do while 语句为如下形式:
do { 语句; … ; } while(逻辑表达式);
● 执行过程
先执行语句,再判断逻辑表达式的值,若
为true,再执行语句,否则结束循环。
for 语句为如下形式:
for(表达式1; 表达式2; 表达式3){ 语句; … ; }
•执行过程
首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句,
接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false.