细谈java中的数据类型

     2022-03-15     622

关键词:

Java数据类型简介:

Java是一种强类型的语言,数值类型主要分为基本数据类型和引用数据类型,其中基本的数据类型分为8种,具体细节点及一些注意点如下。


java中的基本数据类型:

字符类型:

关键字:char  所占字节:2字节
细节点:1、java中的字符类型采用Unicode编码,加之2字节,因此java中的数据类型可以直接存储一个汉字,例如:char sex = ‘男‘;
注意点:1、声明字符类型时用的是单引号‘ ‘,而不是双引号"";

             2、其实在正常开发中,绝大多数汉字所占的字节不止2个字节,所以在这里要特别注意

布尔类型:

关键字:boolean 所占字节:1字节
细节点:1、只有两个值:true 或者 false
注意点:在条件语句中java是不允许像C/C++语言将数值类型0或非0充当true或者false的,而是仅仅允许true或false。

数值类型:

java中的数值类型又分为整数型浮点型,其中整数型可以理解为整数,浮点类型可以通俗的理解为小数。

整数型:

关键字:byte   所占字节:1字节 中文简称:字节型
关键字:short  所占字节:2字节 中文简称:短整型
注意点:使用short类型时应注意其数值类型范围,避免越界溢出


关键字:int      所占字节:4字节 中文简称:整型
细节点:1、java中对于整型如没有特定的类型指定,则默认被声明为int型 

            2、通常把整数声明为int型

    所以在平时开发中,int类型是用的最多的;

例 声明:

        int i;

        int num = 1;

在这里多说明一个知识点,自动拆装箱

有时需要将int这样的基本数据类型转换为引用类型对象,

例如:

    Integer i = 10;

    相当于:Integer i = new Integer(10);

    这样的话,这里的i,就已经是一个引用类型了;

还有一种方法,耍点小聪明:

    int i = 10;

     String str = i+"";

    这里的 str 值同样是10,但是它已经是引用数据类型了;

同理:引用数据类型转换为基本数据类型;

    String str = "10";

    int i = new Integer(str);

    这里的i就已经变量一个基本数据类型了,可以进行正常的数值计算了;


关键字:long    所占字节:8字节  中文简称:长整型
注意点:由于java默认将整型定义为int型,所以当使用long类型时应该加上后缀L或小写的l,但是小写的l通常和1容易混淆,通常用大写的L作为其后缀

浮点类型:
Java中的浮点类型又分为两种,单精度浮点型和双精度浮点型,其中双经度浮点型的精确度要比单经度浮点型的精确度要高。

单精度浮点型:

关键字:float   所占字节:4字节  中文简称:单精度浮点型
细节点:由于在Java中默认对于浮点型数值使用Double类型存储,当使用float类型时应在声明其后加上大写的F或小写的f作为其后缀。
注意点:short a = 1.35; short b = a + 12.56;注意这里由于12.56没有为其执行数值类型,所以默认为double类型,+会对前面的a自动进行精度提升为double类型的,那么其整个计算结果就是double类型的,而与short类型的结果声明的不符。

双精度浮点型:

关键字:double 所占字节:8字节  中文简称:双精度浮点型
注意点:Java中对于小数默认定义的数值类型为double类型,当使用double类型时可在其后加上大写的D或小写的d作为其后缀。

java中的自动类型提升:

当进行计算时,java会对类型自动进行数值类型提升,具体来说就是提升表示范围小的数值类型到整个表达式中数据类型表示范围最大的,常常发生在以下两个方面:
1、表达式中作为操作数或运算子整型提升:12.3f + 12.5 其中12.5没有显式的为其指定数据类型,则对于浮点型数值java默认为其指定为double类型,再参与运算式的运算,但前面是float类型,java为了不让整体精度丢失会默认把float类型的运算子自动提升为精度更高的double类型并让其继续参与运算。
2、表达式中为结果进行的自动类型提升:例如 double a = 12.5f + 12.3f;虽然整个表达式中的运算部分均为float类型但是所要赋予的结果是double类型的,则java会对其进行精度提升为double类型的。

java的强制类型转换:

java中的自动类型转换某些方面说是发生在 低精度 → 高精度 的情况的,而java中的强制类型转换某些方面说是发生在 高精度 → 低精度 的情况。
java中的自动类型转换是系统自动的,而java中的高精度类型转换则是手动的由程序编制人员手工强制的,因为显然提升精度并不会造成什么伤害而降低精度则常常会产生伤害,例如银行中所存定的钱数或者利息等。所以一个Java自动一个要程序员手动强制。
java中的强制类型转换的语法为:(要转换到的数据类型)要转换的参数或值 例如:(int)12.5 + 12.3 其中12.5会自动转换为12,对于正数java无论四舍五入,都将其转换为向下最靠近的正整数,负数则将其向上转换为最靠近的负整数例如:(int)-12.5会被转换为-12,注意这里仅仅转换距离(int)最近的一个参数,此例子中仅仅对12.5发生强制转换而不会连12.3也转换。

其他:

不恰当的转换会造成数值的溢出,关于溢出的具体情况大家可以参考博客园的其他园友的文章。另外Java中的数值类型的长度无论在什么机器上都是固定的,而非像C/C++语言一样在16位机器上int是多少位而到32位的机器上int又变成了多少位的适应性固定。


如果工作涉及到数据分析方面的时候,一般我们的这些基本数据类型并不能满足正常的开发需求的,总会有一些小的bug,例如有些计算会让我们的数值失去精度,关于这点,下次我们再详细讲解!

谢谢!

    


本文出自 “18639831250” 博客,请务必保留此出处http://18639831250.blog.51cto.com/12652635/1903379

细谈go变量的内存分布(代码片段)

我们程序中的变量大多被分配在内存的两个区域:statck和heap。stack和heap首先让我们一起来回顾一下进程的内存分配:我们写的程序代码跑起来后,会是一个进程;OS会给我们的进程分配内存;内存结构大致如下:OS给一个进程分... 查看详情

细谈字符串及其格式化表达式

  字符串是python中一个极为重要的数据类型,他的功能十分强大,应用也十分广泛,它可以表示符号和词语、载入到文本文件中作为内容、Internet网址和python程序,它是python中极为重要的处理工具集。字符串常量  字符串常... 查看详情

jvm细谈java内存模型jmm(代码片段)

JMM是Java内存模型,与JVM内存模型是两回事。JMM的主要目标是定义程序中变量的访问规则(Happens-Before)。在底层处理器内存模型的基础之上,定义自己的多线程。JMM规定:要想保证B操作能够看到A操作的结果(无论它们是否在... 查看详情

数据库中的数据类型与java语言中的数据类型

数据库中的数据类型很多,有date,number等,在java语言中只有之中数据类型如int,float等,在java语言中如何处理数据库中的这些数据类型?你所说的java的数据类型只是java的简单数据类型,一共有八种,但是java还有另外两种数据类... 查看详情

细谈rdd的弹性

     细谈RDD的弹性    弹性之一:自动的进行内存和磁盘数据存储的切换    弹性之二:基于Lineage(血缘)的高效容错   弹性之三:Task如果失败会自动进行特定次数的重试   弹性之四:Stage... 查看详情

java中的引用数据类型

java数据类型图:┏数值型━┳━整数型:byteshortintlong┏基本数据类型━━┫┗━浮点型:floatdouble┃┣字符型:char数据类型╋┗布尔型:boolean┃┏类(class)┗引用数据类型━━╋接口(interface)┗数组(array)java的数据类型... 查看详情

java中的数据类型——西科软件实训中心

...的数据类型分为8种,具体细节点及一些注意点如下。java中的基本数据类型:字符类型:关键字:char 所占字节:2字节细节点:1、java中的字符类型采用Unicode编码,加之2字节,因此java中的数据类型可以直接存储一个汉字,例... 查看详情

java中的数据类型

Java中的数据类型一、基本数据类型1.基本数据类型即int、char、float、double、byte、short、long、boolean这样的数值类型,共8种。数据类型位数取值范围说明byte8-128~127数据存储在内存中的最原始形态Short16-32768~32767 int32-2^31~2^31-1 ... 查看详情

java中的基本数据类型和引用数据类型的区别

一、数据类型Java中的数据类型分为两大类,基本数据类型和引用数据类型。1、基本数据类型基本数据类型只有8种,可按照如下分类①整数类型:long、int、short、byte②浮点类型:float、double③字符类型:char④布尔类型:booleanNo.... 查看详情

java中的基本类型转换,数据溢出原理

java中的数据类型  java是一种强类型语言,在java中,数据类型主要有两大类,基本数据类型和引用数据类型,不同的数据类型有不同的数据存储方式和分配的内存大小。  基本数据类型中,各数据类型所表示的范围也是不一... 查看详情

java中的数据类型

数据类型的作用程序中有很多的数据,每一个数据都有类型,不同数据类型占用的空间不一样 基本数据类型  1、基本数据类型包括四类八种,    1.1整数型       byteshortintlong    1.2 浮点型 &nbs... 查看详情

java中的数据类型案例

查看详情

java中的数据类型

1.Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性;2.char类型是可以进行运算的。因为它都对应有Unicode编码,可以用来存储汉字,如charch="中";3.自动类型转换:容量小的类型自动转换... 查看详情

Java中的等价数据类型

】Java中的等价数据类型【英文标题】:EquivalentDataTypesinJava【发布时间】:2014-01-0916:11:58【问题描述】:我正在开发一个Android应用程序,它正在处理BigML大数据服务器。我需要解析以下格式的数据。int16int8Java/Android中与上述类型... 查看详情

java中的基本数据类型

什么是变量?变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可... 查看详情

java中的数据类型

java中数据类型分为2大类:引用数据类型(接口、类、数组)、基本数据类型(四大类,共八种)650)this.width=650;"src="https://img.baidu.com/hi/jx2/j_0015.gif"alt="j_0015.gif"/>首先简单的分析下这两类到底有什么区别呢?基本数据类型在声明是就... 查看详情

解密java中的类型转换问题

众所周知Java中的数据类型是强数据类型,基本数据类型之间的转换尤其固定的规则,当数据宽度比较窄的数据类型(如int)转换成数据类型比较宽的数据类型时(如double),则窄的数据类型会加宽,可以完成自动类型转换,这... 查看详情

java中的基本数据类型和引用数据类型

java中基本数据类型有8种:byte,short,int,long,char,float,double,boolean整型有四种:byteshort,int,longbyte: 1字节 -128--127short: 2字节 -32768--32767int: 4个字节 -2147483648 --2147483647(超过2 查看详情