java数据类型

来源:互联网 发布:联胜软件 编辑:程序博客网 时间:2024/05/18 01:08

java是强类型语言,强类型有两个意思:变量是先声明后使用,指定类型的变量只能接受类型与之匹配的值.


java数据类型分为两类:基本类型和引用类型.基本类型包括boolean类型和数值类型.数值类型分为浮点类型和整数类型.浮点类型包括float和double.数值类型包括byte,short,int,long,char.char代表字符型,实际上也是一种整数类型,相当于无符号整数.引用类型包括class,interface,数组.


java中整数值有四种表示方法,二进制:0B0011 八进制:013   十进制:15   十六进制:0xAF


char用于表示范围在Unicode值'\u0000'~'\uFFFF' 之间的字符.Java规定了字符的内码要用UTF-16编码。UTF-16在Java设计之初还是定长编码,后来Unicode涵盖的字符变多了之后UTF-16变成了变长编码(一个完整的“字符”是一个code point;一个code point可以对应1到2个code unit;一个code unit是16位),Java也只好跟进。
为了实现UTF-16的变长编码语义,Java规定char仍然只能是一个16位的code point,也就是说Java的char类型不一定能表示一个UTF-16的“字符”——只有只需1个code unit的code point才可以完整的存在char里。但String作为char的序列,可以包含由两个code unit组成的“surrogate pair”来表示需要2个code unit表示的UTF-16 code point。为此Java的标准库新加了一套用于访问code point的API,而这套API就表现出了UTF-16的变长特性。


基本类型的类型转换分两种:自动类型转换和强制类型转换.自动类型转换是指把一种基本类型的值直接赋给另一种基本类型的变量.表数范围小的的可以直接向表数范围大的进行自动类型转换,转换链路是:byte->short->int->long->short->double和char->int->long->short->double .而byte不能自动转换成char,short也不能直接转换成char,char也不能直接转换成short.强制类型转换是指把一种表数范围大的基本类型的值赋给另一种表数范围小的基本类型的变量.强制转换需要用圆括号(),如short s = (short)123;










0 0
原创粉丝点击