数据类型
基本数据类型:
基本数据类型 : 内存空间中保存了数据本身(itself)
Java 数值类型有固定的数值范围和字段长度
说明: 1 字节 = 8 位 1byte = 8bit
bit 是二进制(Binary digIT)的缩写,代表一个二进制位。用来表示一个二进制值:0 或 1
bit 为计算机的最小存储单位。byte为计算机基本存储单元。
整数类型
1)byte 字节 【1字节】范围:-128~127
2)short 短整型【2字节】范围:-32768~32767
3)int 整型 【4字节】范围:-214783648~2147483647
4)long 长整型 【8字节】范围:-9223372036854775808~9223372036854775807
说明:
byte型最大值 0111 1111 => 0x7F => 16*7+15 = 127
(二进制下一文章讲解)
浮点数类型
1)float 单精度 【4字节】
2)double 双精度 【8字节】
说明
1)声明long型常量须后面加“L”
2)声明float型常量须后面加“F”
举例
1)long phoneNum = 123456789L;
2)float distance = 100.6f ;
字符
char 字符型 【2字节】范围:0~65535 或 0x0000 ~ 0xFFFF
说明:
1)只能表示单个字符 单个英文、单个中文、单个数字、单个符号
2)用单引号 ‘ ’ 括起来的单个字符
3)字符型可以转换成数值型
实例
public class TestClass {
public static void main(String[] args) {
char word = 'A'; // 声明字符类型 word 并赋值'A'
int a = word; // 声明整数类型 a
System.out.println(word); // 打印结果 A
System.out.println(a); // 打印结果 65
}
// byte int short long float double 都是数值类型
boolean isTrue = true; // boolean 类型
char ch = '我'; // char只能是单个字符 英文/中文/数字/符号
}
布尔
1)boolean 【1字节】true 或 false
说明:
1)布尔类型不可以与其他类型转换
2)常用于条件判断、循环结构中使用
实例(基本数据类型)
byte a = 127 // 范围: -128 ~ 127
short b = 32767 // 范围: -32768~32767
int c = 10000 // 范围: -214783648~2147483647
long d = 12345 // 范围:-9223372036854775808~9223372036854775807
float e = 123.45 // 范围:大约 ±1.4E-45 到 ±3.4E38 精度:大约7位小数
double f = 1234.56789 // 范围:大约 ±4.9E-324 到 ±1.8E308 精度:大约15-16位小数
boolean g = true // 值: true false
char h = '65535' // 范围: 0~65535
引用数据类型:
引用数据类型:内存空间中保存了对象地址(address)
类 class:(字符串类 String) String类型须使用一对 “ “
接口 interfac
枚举 enum
注解 annotation
数组 array: [ ]
类型转换
基本数据类型变量间的转换
自动类型转换:
容量小的类型自动转换为容量大的类型。
byte>>short>>int>>long>>float>>double
说明
1)byte、short与char之间不会相互转换,会先转换为int类型。
2)boolean类型不能与其他数据类型运算。
强制类型转换:
容量大的类型转换为容量小的类型。
说明
1)使用时要加上强制转换符:( 数据类型 )
2)可能会有精度损失。
示例
int number;
long phoneNum = 10000;
number = (int)phoneNum;
基本数据类型与String间的转换
1)基本数据类型 -> String类型
运算符”+“,基本数据类型的值都将转化为字符串String类型。
2)String类型 -> 基本数据类型
通过对应的包装类可以实现字符串转换成基本类型。
示例(1)
int number = 100;
String text = "number: " + 100;
示例(2)
String number = "43";
int i = Integer.parseInt (number);
了解内容
1)‘A’字符的值为65,‘a’字符的值为97。
2)java 所有字符都使用Unicode编码,\uXXXX,其中XXXX表示十六进制数,
例如: \u000a 表示 \n 换行符。
3)转义字符:
特殊字符型常量,使用转义字符 ‘ \ ’ 将后面的字符转变为特殊含义的字符。
例如:
‘ \n ’ 表示换行符
‘\\n’ 表示输出\n
UTF-8是Unicode的一种实现方式:
单字节编码:该字节最高位为0,其余7位用来对字符进行编码。
多字节编码:若包含n字节,第一个字节的前n位为1、n+1位为0、剩余位进行编码,之后的所有字节,都是最高位为10,其余6位用来对字符进行编码。(最多使用6字节表示一个符号)