Java基本数据类型
一)整数型
二)浮点型
三)布尔型
四)字符型
五)数据类型转换
数据类型介绍
Java 的两大数据类型:内置数据类型,引用数据类型
内置数据类型包含八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
Java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。正数补码为其本身;负数补码为其绝对值各位取反加1;
一)整数型 byte
byte 数据类型是8位、有符号的,以二进制补码表示的整数。( ^ 表示次方)
最小值是 -128(-2^7)
最大值是 127(2^7-1)
默认值是 0
例子:byte a = 100,byte b = -50
扩展知识
kB就是kBytes Bytes就是“字节”的意思!K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024,1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特)。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”
一)整数型 short
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15)
最大值是 32767(2^15 - 1)
默认值是 0
例子:short s = 1000,short r = -20000
一)整数型 int
int 数据类型是32位、有符号的以二进制补码表示的整数
最小值是 -2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31 - 1)
一般地整型变量默认为 int 类型
默认值是 0
例子:
十进制:int a = 100000, int b = -200000
二进制:int a = 0b10
八进制:int a = 012
十六进制:int a = 0x12A
一)整数型 long
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807(2^63 -1)
默认值是 0L
例子: long a = 100000L,Long b = -200000L
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写
二)浮点型 float
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数
float 在储存大型浮点数组的时候可节省内存空间
默认值是 0.0f
例子:float f1 = 234.5f
二)浮点型 double
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数
浮点数的默认类型为double类型
默认值是 0.0d
例子:double d1 = 123.4
三)布尔型 boolean
boolean数据类型表示一位的信息
只有两个取值:true 和 false
这种类型只作为一种标志来记录 true/false 情况
默认值是 false
例子:boolean one = true
四)字符型 char
char类型是一个单一的 16 位 Unicode 字符
最小值是 \u0000(即为0)
最大值是 \uffff(即为65,535)
char 数据类型可以储存任何字符
例子:char letter = ‘A’
ASCll码:https://baike.baidu.com/item/ASCII/309296?fr=aladdin
五)数据类型转换
整型、浮点型、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
- 不能对boolean类型进行类型转换。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
- 转换过程中可能导致溢出或损失精度。
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
五)数据类型转换 自动转换
自动转换必须满足转换前的数据类型的位数要低于转换后的数据类型,
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,
同样float数据类型的位数为32,可以自动转换为64位的double类型。
char类型转换成int 类型是根据ASCII 码表来获取char字符得值然后再转换。
ASCll码:https://baike.baidu.com/item/ASCII/309296?fr=aladdin
五)数据类型转换 强制转换
- 转换的数据类型必须是兼容的。
- 格式:(type)value type是要强制类型转换后的数据类型
实例:
int d = 123;
byte b = (byte) d;//强制类型转换为byte
代码案例
package com.dcs;
/**
* ===========================
* Author:多测师_何sir
* Time:2020-07-24 20:23
* Wechat:18665861277
* website:www.duoceshi.cn
* ===========================
**/
public class Test {
// byte的默认值
static byte aByte;
// short的默认值
static short aShort;
// int的默认值
static int anInt;
// long的默认值
static long aLong;
// float的默认值
static float aFloat;
// double的默认值
static double aDouble;
// boolean的默认值
static boolean aBoolean;
// char的默认值
static char aChar;
public static void main(String[] args) {
// byte最大值
byte bMax = Byte.MAX_VALUE;
// byte最小值
byte bMin = Byte.MIN_VALUE;
// Java中的局部变量在使用时,必须先赋值
// byte b;
System.out.println("byte中能存放的最大值:" + bMax + ",byte中能存放的最小值:" + bMin + ",默认值:" + aByte);
// short中能存放的最大值
short sMax = Short.MAX_VALUE;
// short中能存放的最小值
short sMin = Short.MIN_VALUE;
System.out.println("short中能存放的最大值:" + sMax + ",short中能存放的最小值:" + sMin + ",默认值:" + aShort);
// int中能存放的最大值
int iMax = Integer.MAX_VALUE;
// int中能存放的最小值
int iMin = Integer.MIN_VALUE;
System.out.println("int中能存放的最大值:" + iMax + ",int中能存放的最小值:" + iMin + ",默认值:" + anInt);
// 二进制
int a = 0b11111111;
// 8进制
int b = 011;
// 16进制 A,B,C,D,E,F
int c = 0xFFFF;
System.out.println("2进制:" + a + ",8进制" + b + ",16进制" + c);
// long中能存放的最大值
long lMax = Long.MAX_VALUE;
// long中能存放的最小值
long lMin = Long.MIN_VALUE;
System.out.println("long中能存放的最大值:" + lMax + ",long中能存放的最小值:" + lMin + ",默认值:" + aLong);
long lg = 2147483648L;
// float中能存放的最大值
float fMax = Float.MAX_VALUE;
// float中能存放的最小值
float fMin = Float.MIN_VALUE;
System.out.println("float中能存放的最大值:" + fMax + ",float中能存放的最小值:" + fMin + ",默认值:" + aFloat);
float f = 3.4028235E38f;
// double中能存放的最大值
double dMax = Double.MAX_VALUE;
// double中能存放的最小值
double dMin = Double.MIN_VALUE;
System.out.println("double中能存放的最大值:" + dMax + ",double中能存放的最小值:" + dMin + ",默认值:" + aDouble);
double d = 1.7976931348623157E308;
// boolean中只有两个取值:true 和 false
boolean bTrue = true;
boolean bFalse = false;
System.out.println("boolean中的true:" + bTrue + ",boolean中的false:" + bFalse + ",默认值:" + aBoolean);
// char中能存放的最大值
char cMax = Character.MAX_VALUE;
// char中能存放的最小值
char cMin = Character.MIN_VALUE;
System.out.println("char中能存放的最大值:" + cMax + ",char中能存放的最小值:" + cMin + ",默认值:" + aChar);
char ch = 'A';
// char类型转换成int 类型是根据ASCII 码表来获取char字符得值然后再转换
int A = 'A';
System.out.println(ch);
System.out.println(A);
// 低 ------------------------------------> 高
// byte,short,char—> int —> long—> float —> double
// 数据类型的转换 ---》 自动转换 --->从小到大
byte bb = 127;
short cc = bb;
int dd = cc;
long ee = dd;
float ff = ee;
double gg = ff;
// 数据类型的转换 ---》 强制转换 ---> 从大到小
long eee = 127;
int ddd = (int) eee;
short ccc = (short) ddd;
byte bbb = (byte) ccc;
char hh = (char) ddd;
}
}