java的8种基本数据类型(简单数据类型)java
boolean byte short char int long float double
分为如下四大类型node
1 逻辑类型:boolean 2 整数类型:byte short int long 3 字符类型:char 4 浮点类型:float double
逻辑类型 | 常量 | true、false数组 |
true |
||
变量 | 用boolean声明app 使用关键字boolean来声明逻辑变量,声明时也能够赋给初值ide |
boolean man, male=true; boolean x,ok=true,关闭=false; //T |
有说1位,有说存储范围视内存而定 | ||
整数类型 | int型 | 常量 |
123//十进制 077//八进制 零开通 0x3ABC//十六进制 零小xyz的x |
||
变量 | 用int声明,声明时也能够赋给初值 |
int x = 12;
: int x= 12,平均=9898,jiafei; //T
|
-231~231-1 4字节 32位post 231约21亿编码 |
||
byte型 | 常量 | java中不存在该表示法 | 能够把范围 -27~27-1 内的int型常量赋给byte变量spa ???要求0b或0B开头,如:0b01110011设计 |
||
变量 | 用byte声明 |
byte tom = 28;
|
-27~27-1 1字节 8位3d -128~127 |
||
short型 | 常量 | java中不存在改表示法 |
能够把范围 -215~215-1 内的int型常量赋给short变量 | ||
变量 | 用short声明 |
short x = 12;
|
-215~215-1 2字节 16位 -32768~32767 |
||
long型 | 常量 |
108L//十进制 07123L//八进制 0x3ABCL//十六进制 |
|||
变量 | 用long声明 |
long width = 12L;
|
-263~263-1 8字节 64位 | ||
字符类型 | char类型常量 | 英文单引号括起Unicode 表中的一个字符 |
‘a’ ‘好’ ‘&’ |
||
转意字符常量 | 有些字符(如回车符)不能经过键盘输入到字符串或程序中,就须要使用转意字符常量 |
例如:\n(换行), \b(退格),\t(水平制表),\‘(单引号),
\“(双引号),\\(反斜线)等
|
|||
char类型变量 | 用char声明 |
char x = ‘a’;//等价于char x = 97 |
0~65535 216-1 2字节16位 最高位不是符号位,无负char |
||
浮点类型 | float型 | 常量 |
32.1f 32.1F -23.1f//必有f 2e40f//2×10^40 2乘10的40次方 |
又被称做单精度类型, 能够精确到8位有效数字 |
|
变量 | 用float声明 |
float x = 22.76f;
|
-3.403E38~3.403E38 4字节 |
||
double型 | 常量 |
21.3d 21.3 21.3D//D或d可省略 1e-90//1*10^-90 |
数值精度约是float类型的两倍,16位有效数字 又被称做双精度类型 |
||
变量 | 用double声明 |
double width = 32.56D
|
-1.798E308~1.798E308 8字节 |
||
java中没有无符号的 byte short int long 错误声明:unsigned int m; |
1.不要使用浮点数进行比较,须要比较使用BigDecimal类
float f = 0.1f; double d = 1.0/10; System.out.println(f==d);//结果为false float d1 = 423432423f; float d2 = d1+1; if(d1==d2){ System.out.println("d1==d2");//输出结果为d1==d2 }else{ System.out.println("d1!=d2"); } /*由于因为字长有限,浮点数可以精确表示的数是有限的,于是也是离散的。 浮点数通常都存在舍入偏差,不少数字没法精确表示(例如0.1),其结果只能是接近, 但不等于。 二进制浮点数不能精确的表示0.一、0.0一、0.001这样10的负次幂。 并非全部的小数都能能够精确的用二进制浮点数表示。 java.math包下面的两个有用的类:BigInteger和BigDecimal, 这两个类能够处理任意长度的数值。 BigInteger实现了任意精度的整数运算。 BigDecimal实现了任意精度的浮点运算。 */
2.浮点类型float,double的数据不适合在不允许舍入偏差的金融计算领域。
若是须要进行不产生舍入偏差的精确数字计算,须要使用BigDecimal类。
1.char 类型用来表示在Unicode编码表中的字符。
Unicode编码被设计用来处理各类语言的文字,它占2个字节,可容许有65536个字符
’A’是一个字符,它与”A”是不一样的,”A”表示含有一个字符的字符串。
String类,实际上是字符序列(char sequence)
2.字符型的十六进制值表示方法
Unicode具备从0到65535之间的编码,
一般用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
char c = '\u0061';
3. Java 语言中还容许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义
转义符 | 含义 | Unicode值 |
\b | 退格backspace | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符tab | \u0009 |
\“ | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
1.基本类型从低到高
byte short char int long float double
2.低 ——> 高
系统自动完成数据类型转换 float x = 100;//输出x为100.0
3.高 ——> 低
必须用类型转换运算 格式:(类型名)要转换的值; int x = (int)34.89;//输出为34
4.当将一种类型强制转换成另外一种类型,而又超出了目标类型的表数范围,就会被截断成为一个彻底不一样的值
int x = 300; byte bx = (byte)x; //值为44 取低的范围内的数
5.不能在布尔类型和任何数值类型之间作强制类型转换
1.字符串转换成数值型数据
数字字符串型数据转换成byte、short、int、float、double、long等数据类型,能够分别使用表3.7所提供的Byte、Short、Integer、Float、Double、Long类的parseXXX方法。
表 字符串转换成数值型数据的方法
例如: String MyNumber="1234.567"; //定义字符串型变量MyNumber float MyFloat=Float.parseFloat(MyNumber);
//1234.567
例如: String MyNumber="1234a.567"; //定义字符串型变量MyNumber float MyFloat=Float.parseFloat(MyNumber); //1234
1)常量一般指的是一个固定的值,
例如:一、二、三、’a’、’b’、true、false、”helloWorld”等,
通常将称为字面常量;
2)在Java语言中,主要是利用关键字final来定义一个常量,
常量一旦被初始化后不能再更改其值,
使用final修饰的PI等称为符号常量
常量:大写字母和下划线:MAX_VALUE
声明格式为: final type varName = value;
常量的声明及使用: public class TestConstants { public static void main(String[] args) { final double PI = 3.14; // PI = 3.15; //编译错误,不能再被赋值! double r = 4; double area = PI * r * r; double circle = 2 * PI * r; System.out.println("area = " + area); System.out.println("circle = " + circle); } }
为了使用上的方便Java提供了数值型数据的最大值与最小值的标识符及常量值。如表3.4所示。
表3.4 数值型常量的特殊值代码
强制转换前判断是否在范围内防止失真,如double到float
Java是一种强类型语言,每一个变量都必须声明其数据类型,能够是基本类型,也能够是引用类型
变量的分类:局部变量、实例变量、静态变量
变量做为程序中最基本的存储单元,其要素包括变量名,变量类型和做用域。
变量在使用前必须对其声明, 只有在变量声明之后,才能为其分配相应长度的存储空间。
格式为:type varName [=value][,varName[=value]...]; //[]中的内容为可选项,便可有可无 数据类型 变量名 [=初始值] [,变量名 [=初始值]…]; double salary; long earthPopulation; int age;