Java基础知识回顾之一 ----- 基本数据类型
2018-03-19 00:00
676 查看
前言
在开始工作至今,学习各种各样的技术之中发现自己的很多Java的基础知识都忘了⊙﹏⊙b汗。。。 而且越是学习越是发现Java基础的重要性,所以准备单独抽一下时间进行Java基础的重新学习。在重新学习的时候,对这些又有了不同的感悟,于是准备将这些都记载下来,并整理成博客,希望能够帮助那些需要的人。基本数据类型介绍
基本数据类型主要有这几个:byte、short、int、long、float、double、char、boolean
可以分为三类:数值类型:byte、short、int、long、float、double
字符类型:char
布尔型:boolean
byte
byte是8位的数据类型,占用1个字节(8bit),默认值是0,它的取值范围是(-2^7) ~ (2^7-1),也就是 -128 ~ 127之间,所以最大存储数据量是255;byte一般在大型数组中使用,来代替整数,因为byte变量占用的空间只有int的1/4。
byte使用示例: byte a = 10,byte=-10。在使用byte数据类型的时候需要注意取值范围!!!
short
short是16位的数据类型,占用2个字节,默认值是0,它的取值范围是(-2^15) ~(2^15-1),也就是 -32768 ~ 32767之间,所以最大数据存储量是65536;short虽然是int型变量所占空间的1/2,但是在实际中却很少用到。在大型数组中也可以节省空间。
short使用示例:short a=100,short b=-200;
int
int是32位的数据类型,占用4个字节,默认值是0,它的取值范围是(-2^31) ~(2^31-1),也就是 -2147483648 ~ 2147483647之间,所以最大数据存储量是2^32-1;int是数据类型是整型,是我们在项目中用到最多的数据类型之一;
int 使用示例:int a=1000,int b=-2000;
long
long是64位的数据类型,占用8个字节,默认值是0L,它的取值范围是(-2^63) ~(2^63-1),也就是 -9223372036854775808 ~ 9223372036854775808之间,所以最大数据存储量是2^64;long是数据类型是长整型,是我们在项目中用到最多的数据类型之一。在使用long类型的数据时最好在数值末尾带上大写的L!
long 使用示例:long a=1000L,long b=-2000L;
float
float是32位的数据类型,占用4个字节,默认值是0,它的取值范围是3.4e-45 ~ 1.4e38 之间;float是数据类型是单精度,在直接赋值时必须在数字后加上f或F。
float使用示例:float a=10.25f, float b=-20.35F;
double
double是64位的数据类型,占用8个字节,默认值是0,它的取值范围是4.9e-324 ~ 1.8e308 之间;double是数据类型是双精度,在直接赋值的时候最好加上D或d。
double使用示例:double a=10.123d, double b= -10.25644D;
boolean
boolean是布尔类型,占用1个字节,只有两个值,false和true,默认值是 false。boolean只能用一种标志来记录 true或false,一般和 if 结合使用。
boolean使用示例: boolean a=true,boolean b=false;
char
char是字符类型,占用2个字节,默认值为空,取值范围 为 0~65535,也就是 \u0000 ~ \uffff。char数据类型可以储存任何字符。
char 使用示例: char a=1,char b='A';
数值类型的级别从低到高分别为:
byte,char,short(这三个平级)——>int——>float——>long——>double
其中由低级别转到高级别,是属于自动类型转换,这点是由系统自动转换的。例如将int类型的数据转为float类型的数据。
示例:
int i=10; float j=i; System.out.println("i:"+i+",j:"+j);结果:
i:10,j:10.0如果由高级别转为低级别,则需要强制转换,也就是强制类型转换。
例如将int类型的数据转换为byte类型的数据。
示例:
int i=127; int j=128; byte bye=(byte)i; byte bye2=(byte)j; System.out.println("i:"+i+",bye:"+bye); System.out.println("j:"+j+",bye2:"+bye2);结果:
i:127,bye:127 j:128,bye2:-128说明:因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。所以在进行强制类型转换的时候,要注意取值范围!在强制转换的时候需要注意数据的精确度,否则可能会出现数据精确丢失。
例如 double类型的数据转换为float类型数据。
示例:
double d=10.1111115; float f=(float) d; System.out.println("f:"+f+",d:"+d);结果:
f:10.111112,d:10.1111115了解了数据类型的级别之后,如果用不同的数据类型进行计算,那么最终的数据类型又是哪一种呢?
这里我们用这几种来测试:
1.byte 类型的数据 加 short 类型的数据;
2.short 类型的数据 加 int 类型的数据;
3.int 类型的数据 加 long 类型的数据;这里我们使用这个方法来获取最终的数据类型
public static String getType(Object o){ return o.getClass().toString(); }代码:
short a=1; byte b=2; int c = 3; long d = 4; System.out.println(getType(a)); System.out.println(getType(b)); System.out.println(getType(c)); System.out.println(getType(d)); System.out.println(getType(a+b)); System.out.println(getType(a+c)); System.out.println(getType(c+d));结果:
class java.lang.Short class java.lang.Byte class java.lang.Integer class java.lang.Long class java.lang.Integer class java.lang.Integer class java.lang.Long看到结果是不是有点吃惊呢?那么是为什么呢?
这里的不同的数值类型数据进行相加的时候,会自动转换为级别最高的那一个。
那么short 类型的数据加 byte 类型的数据为什么是int类型呢?
因为在java的世界里,如果比int类型小的类型做运算,java在编译的时候就会将它们统一强转成int类型。
如果上述不好理解的,那么这里我们来做个实验测试下,通过结果来进行验证。
示例:
short a=1,b=2; byte c=3,d=4; System.out.println(getType(a+b)); System.out.println(getType(c+d));结果:
class java.lang.Integer class java.lang.Integer那么这里可以得出结论,在数值类型中,若级别小于int,进行计算的时候,最终的数据类型会自动转换为int,如果高于int,最终数据结果会取其中最高的一个!http://www.kfq4961.cn/news/ http://www.fsi2703.cn/news/ http://www.ybc8953.cn/news/ http://www.myy9223.cn/news/ http://www.paf5803.cn/news/ http://www.njb8631.cn/news/ http://www.kzo4326.cn/news/ http://www.tso8557.cn/news/ http://www.nwm1536.cn/news/ http://www.tae4138.cn/news/ http://www.dxc3579.cn/news/ http://www.ffp5727.cn/news/ http://www.lhb4836.cn/news/ http://www.xdi0113.cn/news/ http://www.bpa2365.cn/news/ http://www.fks8445.cn/news/ http://www.aht8537.cn/news/ http://www.cun5054.cn/news/ http://www.gdk7028.cn/news/ http://www.ypk8666.cn/news/ http://www.wan2959.cn/news/ http://www.sit9945.cn/news/ http://www.zmj4226.cn/news/ http://www.ccn6233.cn/news/ http://www.jck8045.cn/news/ http://www.ckk6213.cn/news/ http://www.mak1390.cn/news/ http://www.vii0197.cn/news/ http://www.pwj5001.cn/news/ http://www.wvh4263.cn/news/ http://www.mvg0339.cn/news/ http://www.yif9712.cn/news/ http://www.jta0960.cn/news/ http://www.omx8816.cn/news/ http://www.nlc4773.cn/news/ http://www.dep9137.cn/news/ http://www.vlq7732.cn/news/ http://www.umg2515.cn/news/ http://www.kog1435.cn/news/ http://www.nxf9936.cn/news/ http://www.hqh7518.cn/news/ http://www.hij5984.cn/news/ http://www.vui9639.cn/news/ http://www.fzl7156.cn/news/ http://www.wue0833.cn/news/ http://www.dye6768.cn/news/ http://www.ryh7899.cn/news/ http://www.lij0467.cn/news/ http://www.epv8502.cn/news/ http://www.lru8400.cn/news/ http://www.mtr5072.cn/news/ http://www.kbs9896.cn/news/ http://www.qfk7654.cn/news/ http://www.myb6827.cn/news/
相关文章推荐
- JAVA基础知识回顾(基本数据类型,switch参数,equals与==的区别,Object有哪些公用方法)-1
- Java基础知识回顾之一 ----- 基本数据类型
- Java基础知识之基本数据类型
- java基础回顾----java基本数据类型及变量
- 黑马程序员-Java基础知识预备之Java基本数据类型的包装类
- Java基础知识-基本数据类型相互转型
- Java基础回顾--基本数据类型包装类1【Integer与int解惑】
- Java基础知识---基本数据类型及类型转化
- JAVA第二章基础知识:注释,标识符,数据类型常量变量,基本数据类型转换。--------------(Make A little EvProgresseryday )
- Java基础知识01-基本数据类型
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(3)-- 基本数据类型的默认值
- JAVA基础知识回顾一 基本类型、类型转化
- 【Java学习笔记】基础知识学习1【基本输出,数据类型,基础运算符号】
- Java基础知识强化之IO流笔记57:数据输入输出流(操作基本数据类型)
- Java 基础知识 8种基本数据类型 equal 与==区别 Switch 使用
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- java基础回顾2(关键字、基本数据类型)
- Java基础回顾--基本数据类型包装类 2
- Java基础知识-基本数据类型相互转型
- 基础知识--Java基本数据类型