Java数据类型及转换

2019-03-20  本文已影响0人  亮_be49

1.什么是数据类型

Java对数据进行了分类,存在不同类型不同的数据类型占用的储存空间不一样,分类能更好的利用计算机的内存空间

在Java领域里 基本数据类型变量:存的是数据本身引用数据类型变量:储存的是数据的内存空间地址 Java中每个变量都有一种类型,类型限制了变量可以存放那些类型的值计算机存储数据存在在硬盘中,硬盘中都是以二进制数据方式进行储存

2.基本数据类型

整数数据类型

1. Byte:占用一个字节的储存空间(相当于8个二进制数据)范围是-128到127

2. Short(16位)

3. int(32位)

4.Long(64位):Long的赋值:因为整数默认是int类型,要转换为long类型的值,后面加上l或L

(如果值比long大Java提供了一个类:BigInteger:用于处理较大整数)

①如果值比long大Java提供了一个类:BigInteger:用于处理较大整数

②Long的赋值:因为整数默认是int类型,要转换为long类型的值,后面加上l或L

③同一个整数可以使用不同的进制表示:(System.out.println(0b101)需jdk1.7才能按照十进制输出)

④Java7 开始 支持数字之间用 _ 分割(12_34_56输出123456)

浮点型

1 float(单精度32位)

直接给变量赋值是必须在浮点类型数据后面加上f 或F

2 double (双精度64位)默认浮点类型是double

3 单双精度的区别

     ①. [endif]对于单精度浮点数,运行速度相比double更快,占内存更小,

     ②. [endif]但是当数值非常大或者非常小的时候会变得不精确。

     ③ .双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。

       浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是因为数的大小,而是因为数的精度。因此,产生的结果接近但不等于想要的结果。尤其在使用float 和 double 作精确运 算的时候要特别小心。

字符char

1. 什么是字符:单引号引起来的一个符号就是字符数据例如:’A’

2. 存储单位16 位[0-65535]  [2个字节,16位]。字符常量使用单引号 ‘’包裹起来。

3.表现形式:

(1) ‘A’最常用,最直观的方式

(2) 使用一个数字表示,对应有一个ASCII码表[ 字符编码 ]

      例如:char c = 65;//表示 ‘A’ 这个字符

(3)16进制表现形式

  ‘A’-》65(10进制)

     'A'  -》0x41(16进制)怎么表示? ‘\u0041’

(4) 特殊符号(需要使用转义符号转义)

     \’   \”   \\   \r(回车)  \n(换行) \t(制表符Tab)

  字符数据可以当成一个整数来使用。

布尔型boolean

值只有两个 true 和 false ,不能用0和1表示

引用数据类型String

(1) String是 java中已经设计好的一个类,表示的值是字符串,是字符串数据类型

[注意:Java中设计的类和我们自己设计的类的性质是一样的]

(2) 常见形式:String s = “你好”;

(3) 当String 和 + 一起使用的时候,这时候+ 是拼接字符串的功能

System.out.println(“你好”+2);//结果为    你好2

int a  = 5;

int b = 10

System.out.println(“a=”+a+”,b=”+b); //结果为a=5,b=10

3 数据类型转换

数据类型转换的核心认识

整型数据【值】 : 默认类型为int类型 :例如:12默认为int类型

小数数据 : 默认为double类型 :例如:3.14默认为double类型

①自动类型转换:小数据类型转大数据类型【存储空间的大小】

②强制类型转换:

     1 大数据类型转小数据类型[存储空间大小]

     2 相同存储空间不同类型表达值范围不一样[例如:char及short

自动类型转换:  [short和char ,因值的范围不同,不能自动转换]其他都可以自动完成转换

强制类型转换:  必须强制转换。

自动类型转换

自动类型转换:基础原则+一些细节构成

最基础的,所谓的自动转换

long c = 10;

short s = 20;

int k = s;

1.数据类型过长 和 溢出

byte b = 10;//允许:编译时检查语法【特殊情况】

//b = 128;//[-128+127]变量特点:只能装一次,_01AutoData.java:16: 错误: 不兼容的类型: 从int转换到byte可能会有损失

System.out.println(b);

//int i = 2147483648;//数据类型过长,一个超过了该值类型的,最大值,过长

2.long  float  double只要两个操作数中有一个是上面类型的,[自动类型的提升]

//另一个就会被转换成相应类型,并且结果也是该类型

3.如果2个操作数(包括byte,short,char,int),都将会转换为int类型,并且结果也是int(自动向上转型)

4.字符参与预算,会先转换成编码值,然后再参与运算

5.特例 :只看类型不看值

byte b = 10;//10  整数自动存入了

int i = 10;

b = i;//编译起看变量,只看类型不看值|{只看结构不看值}

强制类型转换

强制类型转换

大的类型,转换成小的类型[存储空空间来决定数据类型的大小]

强转语法

数据类型 变量 = (数据类型)值;  变量:值,.....[结果是你要的数据就行]

上一篇下一篇

猜你喜欢

热点阅读