119.Java_基本数据类型

 

1.分类

  • Java数据类型
    • 基本数据类型
      • 数值型
        • 整数类型
        • 浮点类型
      • 字符型
      • 布尔型
    • 引用数据类型
      • 接口
      • 数组


 

2.基本数据类型

2.1 综述

java的8种基本数据类型(简单数据类型)

boolean  byte  short  char  int  long  float  double

 分为以下四大类型

1 逻辑类型:boolean
2 整数类型:byte short int long
3 字符类型:char
4 浮点类型:float double

 

 

2.2 简要介绍

逻辑类型 常量  

true、false

true 
false
 
变量

用boolean声明

使用关键字boolean来声明逻辑变量,声明时也可以赋给初值

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位

231约21亿

byte型 常量 java中不存在该表示法

可以把范围 -27~27-1 内的int型常量赋给byte变量

???要求0b或0B开头,如:0b01110011

 
变量 用byte声明
byte tom = 28;

-27~27-1   1字节 8位

-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;

 

2.2.1 浮点数

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.1、0.01、0.001这样10的负次幂。
并不是所有的小数都能可以精确的用二进制浮点数表示。

java.math包下面的两个有用的类:BigInteger和BigDecimal,
这两个类可以处理任意长度的数值。
BigInteger实现了任意精度的整数运算。
BigDecimal实现了任意精度的浮点运算。
*/

2.浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

 

2.2.2  字符型

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
     

 

 

2.3 类型转换运算

2.3.1高低类型转换

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.不能在布尔类型和任何数值类型之间做强制类型转换

 

2.3.2字符串型数据与整型数据相互转换

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

 

 

 

 

2.4 常量和变量

2.4.1 常量

1)常量通常指的是一个固定的值,

例如:1、2、3、’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

 

 

2.4.2 变量

Java是一种强类型语言,每个变量都必须声明其数据类型,可以是基本类型,也可以是引用类型

变量的分类:局部变量、实例变量、静态变量

变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

格式为:type  varName [=value][,varName[=value]...]; 
//[]中的内容为可选项,即可有可无
数据类型  变量名  [=初始值] [,变量名  [=初始值]…];
double  salary;
long  earthPopulation;
int  age;

 

 

 

 

posted @ 2019-05-17 17:03  Zander_Zhao  阅读(335)  评论(0编辑  收藏  举报