1.Java数据类型的介绍:

数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。

1.1Java中的基本类型和引用类型:

基本类型:基本数据类型是不能简化的、是java内置的数据类型、由编程语言本身定义。

基本数据类型包括{byte、short、int、long、float、double、char、boolean}

引用数据类型:引用类型是事先声明好的,被别处引用的(例子: String str = ""; str = ”xiaoming”;),这就是引用类型,事先在内存中开辟一个空间,由str代表内存地址,可拿str去引用该数据类型,所以叫做引用数据类型。

引用数据类型包括{类、接口类型、数组类型、枚举类型、注解类型,字符串型}

java实型数据有哪两种 java实型是啥_数据类型

1.2命名规则:

1.字母、数字、“$”或“_”符组成

2.不能以纯数字开头、首字母小写其他字母大写开头、严格区分大小写

3.不能使用Java保留字

2.八大类型详介:

整型:byte short int long 都是表示整数的

数据类型

大小/位

封装类

默认值

可表示数据范围

byte(位)
8
Byte
0
-128~127
short(短整数)
16
Short
0
-32768~32767
int(整数)
32
Integer
0
-2147483648~2147483647
long(长整数)
64
Long
0
-9223372036854775808~92233720368547758

07

byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,

而且int也是使用的最多的整型类型了。在通常情况下,如果Java中出现了一个整数数字比如35,那么这个数字就是int型的,

如果我们希望它是byte型的,可以在数据后加上大写的B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,

表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。浮点型:float double 表示浮点类型,差别是在于精度不同

数据类型

字符数

封装类

默认值

可表示数据范围

float(单精度)

32
Float
0.0
1.4E-45~3.4028235E38
double(双精度)
64
Double
0.0
4.9E-324~1.7976931348623157E308

double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,

如果要表示一个数据是float型的,可以在数据后“F”面加上。浮点型的数据是不能完全精确的,

所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

字符类型:char

数据类型

字符数

封装类

默认值

可表示数据范围

char(字符)

16

Character

0~65535

用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容

字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1,

char c = ' 1 ';

我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢System.out.println(c+0);

结果却变成了49。

如果我们这样定义c看看

char c = ' \u0031 ';输出的结果仍然是1,这是因为字符'1'对应着unicode编码就是\u0031

布尔类型:boolean

数据类型

字符数

封装类

默认值

可表示数据范围

boolean

8

Boolean

false

true或者false

这个类型只有两个值,true和false(真和非真).

3.数据类型转换

//其实很多基础类型都可以转换,但是可能的话尽量避免转换问题,因为很不安全
public static void main(String[] args) {
String str = "21";
int itg = Integer.parseInt(str);//String 转int。
System.out.println(itg);
int rt = 21;
String b = String.valueOf(rt);//int转String。
System.out.println(b);
}

3.2.自动转换

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下[java提供自动拆装箱机制,基础类型都有封装类,在需要转换的时候会自动进行转换,详情的话可百度java拆装箱机制]:

低--------------------------------------------->高

byte,short,char-> int -> long -> float -> double

3.3强制数据类型转换

强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确,下面的例子可以说明这个问题。

public static void main(String[] args){
int x;
double y;
x = (int)34.56 + (int)11.2; // 丢失精度
y = (double)x + (double)10 + 1; // 提高精度
System.out.println("x=" + x);
System.out.println("y=" + y);
}

运行结果:

x=45
y=56.0

仔细分析上面程序段:由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的结果就是 45。在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成 double 类型,所以也变成 10.0,所以最后 y 的值变为 56。