在各个语言中,数据都有自己的类型。Java中数据类型分为两大类,基础数据类型和引用数据类型。
基础数据类型又分为三类:数值型、字符型和布尔型(八大基础数据类型)。
1.数值型又分为整型和浮点类型。
整型中有字节型(byte)、短整型(short)、int(整型)、long(长整型)。
它们都用于存放整数型数据如-10,153,其区别是存放空间不一致。
byte型占1个字节的存储空间,8位二进制数,可表示数的范围是-128-127。
short型占2个字节的存储空间,16位二进制数,可表示数的范围是-32 768~32 767
。
int型占4个字节的存储空间,32为二进制数,可表示输的范围是–2 147 483 648~2 147 483 647
。
long型占8个字节的存储空间,64位二进制数,可表示的范围是-2^63-2^63-1。
整型默认的数据类型为int型。
浮点类型用于存放小数,如3.25,-1.234类数据。
浮点型分为两种float(单精度浮点型)和double(双精度浮点型),都用于存放小数,只是其精度不一样,double类型精度更高,当需要存放精度较高的数据时,应设数据类型为double型。
以下是两种类型的存储空间:
float型占4个字节的存储空间,32为二进制数。
double型占8个字节的存储空间,64位二进制数。
2.字符型
在Java中,如果要存放字符,如“A”,和C语言一样,char类型,可存放字符。但其存储空间仅为2个字节,只能存放单个字符(单个英文字母/单个汉字),放在‘ ’单引号中。
Java中的字符编码采用ASCII编码,在投入计算时会转换为ASCII码值。
如:char word=’ b’;
System.out.println(word+1);
此时输出的结果为99;
由于word是字符型,在计算时会转化成对应的ASCII码,b的值在ASCII码表中为98,所以输出结果为99.
ASCII表如下:
3.布尔型
布尔型的数据类型名为boolean,其值只有true和false,即真和假。没有具体设置存储空间。常用来表达逻辑判断和循环语句、选择结构中。描述一种非真即假的状态。
字段长度和表数范围受操作系统的影响,保证了Java的可移植性。
引用数据类型
String(字符串)型
上文说到char类型只能存放单个字符,而生活中所有的名称都不可能是单个字符。
于是在Java中我们可以用引用数据类型String来存放字符串型的数据。比如:
String user_Name=”张三”
这里就是定义了一个user_Name的变量,用于存放用户姓名。
字符串是以“ ”双引号括起来,与char型有区别。
当我们再加上字符串时,一般用拼接的方式“+”连接
如:user_Name=user_Name+”丰”
此时的user_Name=”张三丰”
StringBuffer型
该类型的仍然用于存放字符串型的数据,只是在实现拼接时加上一个append即可,StringBuffer的特点是线程同步。线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,目前实现线程同步的方法有很多,临界区对象就是其中一种。
StringBuilder型
类型的仍然用于存放字符串型的数据,只是在实现拼接时加上一个append即可,StringBuffer的特点是线程异步。线程异步在访问资源时空闲等待时同时访问其他资源,实现多线程机制。
引用类型主要是接口、数组及自定义类方法组成。
引用数据类型初始值为null.
数据类型的转换
数据类型的转换分为两种自动转换和强制转换。
例1:
System.out.print(180+1223456);
180为short型,1223456为int型。
此时180+1223456自动转换为int型。
自动转型原则为就高不就低,short为2个字节,int4个字节。
当字节数一致时,观察谁的精度更高,便作为数据类型。
例2:
int num=(int)1+2.5;
此时num的值为3,丢掉小数部分,由于强制转换成了int型。
故强制转换时,可能造成精度降低。
小编分类整理了许多java进阶学习材料和BAT面试题,需要资料的请转发此文章后再私聊小编回复【java】就能领取2019年java进阶学习资料和BAT面试题以及《Effective Java》(第3版)电子版书籍。
加群免费获得资料,713226374.