黑马程序员【android】Java的数据类型的学习笔记二

来源:互联网 发布:淘宝掌柜宝 编辑:程序博客网 时间:2024/04/28 06:48

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

-------学习了毕老师java的几大数据类型,基本数据第二天就都学完了,接下来的引用数据类型都是分章节,先学习了数组,然后是类的引用对象,接下来是接口引用,特作此总结:java数据类型图: java数据类型图:
java数据类型图:java数据类型图:


       Java的数据其实呢 有四种类别的类型,共有八种类型,也就是我们常常在书中或者视频中听到的java有四类八种基础数据类型。除了这四类八种基础类型,剩下的java 一切类型都是引用类型。

       第一类:整型 byte short int long第二类:浮点型 float double第三类:逻辑型 boolean(它只有两个值可取true false)第四类:字符型 char这四类八种基础数据类型 都在栈中直接分配内存空间,这些都是基础数据流类型,剩下的一切引用类型都存储在堆中,引用存储在栈中,数据存储在堆中 引用指向堆中的数据,我说的这些可能大家 比较绕,做个比喻吧,把客厅比喻java的栈内存块,把卧室比如堆内存块,然后呢 电视机的遥控器也就是也就是电视机的引用放在客厅里,然后 遥控器指向客厅(堆)里的电视机(对象或叫数据),

    然后,我们就可以从客厅里操作卧室里的电视机啦.java中默认的整数类型是int类型,如果要定义为float型,则要在数值后加上l或L;默认的浮点型也是双精度浮点,如果要定义为float型,则要在数值后加上f或F。 .int型值可以赋给所有数值类型的变量;long型值可以赋给long、float、double类型的变量;float型值可以赋给float、double类型的变量;double型值只能赋给double类型变量。把一个能表示更大范围或者更高精度的类型,转换为一个范围更小或者精度更低的类型时,就需要使用强制类型转换。例如:把一个double型值赋值给一个long类型变量,编译时会报错,即使这个值没有超出long类型的取值范围long l = 1.0D;除非使用强制类型转换long l=(long) 1.0D;注意:未带有字符后缀标识的整数默认为int类型;未带有字符后缀标识的浮点数默认为double类型。String 是引用类型 不属于四类八种基础数据类型中的一个,切记切记 往往面试的时候 面试官会问道这个问题而且频率很高。在Java中的int类型只适用于数值计算, 而Integer是类,可以应用于任何需要类的地方。Integer的应用场景包括:•int类型因为默认值为0,而Integer默认值为NULL,所以如果没有赋值的话,Integer是可以看出来的,而int类型无法区分int=0和未赋值两种情况,应用场景为JSP中表单数据的表示和Hibernate中对数据库中数据的表示。

•Integer是对象,比如我可以在List, Map中存储Integer。这会比较方便。因为List,Map的基本类型都为object。•Integer中还包括Integer.MAX_VALUE, Integer.MIN_VALUE等数据和class类型的object类型的类型转换的类。比如: static int parseInt(String s), long longValue()2 double,float类型操作double类型(8字节)和float类型(4字节)都是进行浮点数操作,1.234默认是double类型,1.234F才是float类型。但是在进行金融计算时候不适合出现舍入误差,而float类型在操作的时候会经常出现误差,比如0.9 - 0.1 != 0.8。而是0.79999995。所以这个时候应该使用BigDecimal。

BigDecimal的用法的好处:

import java.math.*;

 public class Libai

 { public static void main(String args[]){ BigDecimal volumn = new BigDecimal("0");

for (int i=0; i<5; i++){ volumn = volumn.add(new BigDecimal("1"));

 volumn = volumn.divide(new BigDecimal("2")); } System.out.print(volumn); } }

//最后结果为:0.96875

0 0
原创粉丝点击