① byte 字节型 1 byte=1字节=8bit [-27,27-1]
② short 短整型 1 short=2字节=16bit [-215,215-1]
③ int 整型(默认类型) 1 int= 4字节=32bit [-231,231-1]
④ long 长整型 1 long=8字节=64bit [-263,263-1] 后面加L或l
二进制:0 、 1
八进制:0开头 0-7
十进制:0-9
十六进制:0x开头 0-9,A-F
①二进制转八进制:三位转一位
例: 二进制 10 110 101
八进制 2 6 5
②二、八、十六进制转十进制:乘权求和
例: 二进制 00101101
十进制 0*27+0*26+1*25+0*24+1*23+1*22+0*21+1*20=45
例: 八进制 0476
十进制 4*82+7*81+6*80=318
例: 十六进制 0x12F
十进制 1*162+2*161+15*160=303
③二进制转十六进制:四位转一位
例: 二进制 0101 0111
十六进制 5 7
③十进制转二、八、十六进制:整数部分:除2、8、16取余数(逆序)
小数部分:乘2、8、16取整数(顺序)
例: 十进制 23.125
二进制 00010111.001
①float 单精度浮点 (定义时要在后面加F或者f) 1 float=4字节=32bit
②double 双精度浮点(默认类型) 1 double=8字节=64bit
小数形式: 如 :3.14159
科学计算形式: e(E) 如:0.125e3 0.125保留三位小数
Java提供了3个特殊的浮点数值:
正无穷大:一个正数除以0将得到正无穷大,正无穷大通过Double或Float的POSITIVE_INFINITY表示.
负无穷大:一个负数除以0将得到负无穷大,通过Double或Float的NEGATIVE_INFINITY表示。
非数:0.0除以0.0或对一个负数开方将得到一个非数
①char : 表示单个字符用赋值,一个汉字或者汉字符号两个字节 1 char=2字节=16bit
字符型通常用于表示单个的字符,字符常量必须使用单引号(‘ ’)括起来,Java 语 言使用16位的unicode字符集作为编码方式。
字符型常量有如下3种表示形式:
例子:
public class StringUnicodeText{
public static void main(String[] args){
String name="小明";
for(int i = 0 ; i< name.length(); i++){
char c = name.charAt(i); //获取该下标的字符
String s = Integer.toHexString(c);//将该字符转换为十六进制以String接收
System.out.println(s); //可以将\u+16进制数 输出该字符
}
}
①boolean 只有true和false(默认false) 1 boolean=1字节=8bit
布尔型中有一个boolean类型,用于表示逻辑上的“真”或“假”。在Java语言中, boolean类型的数值只能是true或false,不能用0或者非0来代表。
又叫面向对象类型,在java里面,任何事物(对象)都可以作为一个数据类型,比如定义的接口、类(class型事物)等等,String类型,Object类型是常用的系统引用类型。
char→int→long→float→double
short→int→long→float→double
表数范围小的会向表数范围大的自动转换,沿箭头方向;
基本数据类型与字符串类型运算也会自动转换,如:int a=2;String s=a+”454”;
byte←short←char←int←long←float←double
表数范围大的可以向表数范围小的按箭头方向强制转换,但是有时会溢出或者转换 到浮点类型时会忽略精度,强制类型转换格式:(targetType)value
如:double d=5.2222;int a=(int) d;(结果a=5)
String → int int a=Integer.parseInt(字符串);
int → String String s=String.valueOf(int值);
Object → double double d=Double.parseDouble(Object数据.toString())
(Object数据先toString()转换为String后再转换为double)
在通常情况下,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
例如:int-->Integer
int i=0;
Integer integer = Integer.ValueOf(i);
Integer-->int
Integer integer = new Integer(i);
Int i = integer.intValue();
Java为8种基本类型都提供了对应的包装类:boolean对应Boolean、byte对应Byte、short对应Short、int对应Integer、long对应Long、char对应Character、float对应Float、double对应Double,8个包装类都提供了一个parseXxx(String str)的静态方法用于将字符串转换成基本类型。
当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升规则:
所有的byte类型、short类型和char类型将被提升到int类型。
整个算术表达式的数据类型自动控制提升到与表达式中最高等级操作数同样的类型。
如:short a=1;
Int b =a+1; //此处就发生了转换
直接量是指在程序中通过源代码直接指定的值。能指定直接量的通常只有3种类型:基本类型、字符串类型、null类型
int类型的直接量:在程序中直接给出的整型数值,可分为二进制、十进制、八进制、十六进制4种
long类型的直接量:在整型数据后l或L
double类型的直接量:直接给出一个标准小数形式或者科学计数法形式,5.34F、3.14E5f
boolean类型的直接量:只有true和false
char类型:单引号、转义字符和Unicode的字符
String类型:一个用双引号括起来的字符序列
null类型:这个类型的直接量只有一个值,即null