`

java原生类型

    博客分类:
  • java
阅读更多

Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。

Java中的原生数据类型(Primitive DataType)共有8种:
1)整型:     使用int表示(32位)。
2)字节型: 使用byte表示(从-128到127之间的256个整数)。
3)短整型: 使用short表示(16位)。
4)长整型: 使用long表示(64位)。
5)单精度浮点型:使用float表示。所谓浮点型,指的是小数,也叫实数,例如:1.2。
6)双精度浮点型:使用double表示。双精度浮点型表示的数据范围比单精度数据类型大很多。
7)字符型:          使用char表示。所谓字符,就是单个的字符表示,例如字母a,或者中文张,外面用单引号包围,比如 char a = 'B'; char b = '王';
8)布尔类型: 使用boolean表示,布尔类型只有两种可能,分别为true或false。

Java不是纯的面向对象的语言,不纯的地方就是这些基本数据类型不是对象。当然初期Java的运行速度很慢,基本数据类型能在一定程度上改善性能。如果你想编写纯的面向对象的程序,用包装器类是取代基本数据类型就可以了。

1、基本类型的存储空间。byte--8位,short--16位,int--32位,long--64位,float--32位,double--64位。这六种数字类型都是有符号的。固定的存储空间正是Java可移植性、跨平台的原因之一!
2、基本类型的存在导致了Java OOP的不纯粹性。因为基本类型不是对象,一切皆对象是个小小的谎言。这是出于执行效率的权衡。
3、使用公式-2的(位数-1)次幂到2的(位数-1)次幂-1确定整数类型的范围(byte、short、int、long)。
4、char是16位Unicode字符或者说是16位无符号整数,范围从0到65535。即便如此,可以强制转换非法的数据,如:char c1 = (char) 10000;  char c2 = (char) -200;。可以从二进制存储的角度理解这点。
5、整数有八进制(以0开头的整数)、十进制、十六进制(以0x或0X开头的整数)表示。
6、char可以用单引号表示单个字符,如:'良'。也可以用unicode值'"ucafe'(四位十六进制数)。
7、布尔型boolean。布尔型只能是true或者false,并且测试它为真还是假。它不能进行任何其他的运算,或者转化为其他类型。
正例:boolean b1 = 1 > 2;    反例:int seen = button.isVisible();
实践:简洁是美德,请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。
对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的==fasle 和 ==true。
8、默认的浮点类型是双精度(double),要想要一个float必须在浮点数后面加F或者f。如:float pi = 3.14;是错误的。
9、默认的整数类型是int型,要想使用长整型可在后面加“l”或“L”,如:1000L。(小写l容易被误认为1,不推荐用)
10、float可以精确到7位有效数字,第8位的数字是第9位数字四舍五入上取得的;double可以精确到16位有效数字,第17位的数字是第18位数字四舍五入上取得的。盖茨到底有多少钱?要用double表示,用float是装不下的……
11、如果要求精确的答案,请不要使用float和double,因为它们是为了在广域数值范围上提供较为精确的快速近似运算而精心设计的。然而,它们没有提供完全精确的结果。尤其是对货币计算尤为不适合,因为要让一个float或double精确地表达0.1(或者10的任何)
12、BigInteger支持任意精度的整数。BigDecimal支持任意精度的定点数。
13、初始化无论怎么强调都不过分!Java为所有的成员变量提供了默认初始化:byte、short、 int、long--0  float--0.0f double--0.0  boolean--false  char--'"u0000',特别地对象类型的引用全被初始化为null。(注意!除了数组之外的局部变量是得不到这种优待的,需要你自己初始化。另外,默认初始化的值是你想要的吗?所以最好明确地对变量进行初始化,一般是在构造函数中。)
14、基本类型之间的转化。Java的类型检查很严格,从低精度转换到高精度是无须显式转换的,double d = 123;。但是反过来,进行窄化转换,由高精度向低精度,或者一种类型到另一种类型,则必须使用强制类型转化。Java提供了安全转化机制,但是结果是否是期望的,你自己保证吧。
double d = 12.5;
float f = (int) d; //结果不是13,而是12!
浮点型转化为整型时,不进行四舍五入,直接截断小数点后面的数。
15、提升。各种基本数据类型进行混合运算,结果会是表达能力最强的那种。如:int和long运算,结果是long,整型和浮点型运算结果是浮点型。特殊的一点是:只要类型比int小(如char、byte、short),那么在运算之前,这些值会自动地转换成int。例子:
byte b1 = 12;
byte b2 = b1 + 1; //在编译时出错了!因为b1+1已经是int型了!切记!
16、浮点类型的科学表示法。在数学中e代表自然对数(Math.E给出了double值),而在Java中e代表10的幂次。浮点型的数可以这样表示float f = 1e-27f; 代表1乘以10的负27次幂。
1
0
分享到:
评论

相关推荐

    Java原生数据类型 学习.doc

    Java原生数据类型 学习

    java实现短信发送功能(java原生API实现)

    Java 实现短信发送功能主要涉及网络通信和协议处理,这里我们主要探讨如何使用Java原生API来完成这一任务。在Linux环境下,通过构建可执行的jar包,我们可以将这个功能集成到任何系统中,无需依赖特定的开发环境。 ...

    java json原生解析.zip

    总的来说,Java原生的JSON解析虽然不如第三方库功能全面,但对于简单的需求,它提供了一种简洁的解决方案。了解和掌握这部分知识,有助于理解JSON数据的处理流程,并能在没有引入额外依赖的情况下进行基本的JSON操作...

    Java 原生生成表格图片

    总的来说,Java原生生成表格图片是一种实用的技术,虽然相比使用专门的库可能需要更多的编码工作,但它提供了更大的灵活性和自定义空间。通过熟练掌握Java图形2D API,开发者能够创建出满足特定需求的高质量表格图片...

    Java原生接口.pdf

    Java原生接口(JNI,Java Native Interface)是Java平台提供的一种技术,允许Java代码和其他语言写的代码进行交互。JNI在1996年被引入,主要用于解决Java在某些特定场景下性能不足的问题,例如需要调用高效能的本地...

    java系列之原生数据类型

    java系列之原生数据类型 解压密码 www.jiangyea.com

    使用Java原生jdk实现的协同过滤推荐系统

    在这个“使用Java原生jdk实现的协同过滤推荐系统”中,我们将深入探讨该系统的实现细节以及相关技术。 一、协同过滤原理 协同过滤的核心思想是通过分析用户的历史行为(如购买记录、评分、浏览历史等),找出具有...

    Java开发的发邮件

    JAF使得Java应用程序能够识别和操作任何数据类型,而不仅仅是Java原生类型。 3. **commons-email.jar**: Apache Commons Email库简化了使用JavaMail API发送电子邮件的过程。它提供了高级功能,如HTML邮件、多部分...

    详解使用Java原生代理实现AOP实例共4页.pdf.zi

    Java原生代理(Java Native Interface, JNI)与AOP(面向切面编程,Aspect-Oriented Programming)是两种不同的编程概念。在这个实例中,我们主要关注的是如何使用Java的动态代理来实现AOP,而非JNI。Java的动态代理...

    2022年计算机考试二级上机真题.doc

    DataInputStream类是实现了DataInput接口的类,通常用于从字节流中读取Java原生类型的数据。 2022年计算机考试二级上机真题中涵盖了Java编程语言的基础知识,包括: 1. **垃圾回收机制**:Java的垃圾回收机制是其...

    dwr.xml文件的配置和入门使用

    这些类型包括 Java 原生类型和它们各自的封装类表示,还有 String、Date、数组和集合类型。DWR 也能把 JavaBean 转换成 JavaScript 表示,但是出于安全性的原因,要求显式的配置, `<convert>` 标签就是完成此功能的...

    Zookeeper的java原生API

    Zookeeper的Java原生API是开发人员在Java环境中与Zookeeper进行交互的主要工具。Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行...

    java SE(入门知识4)原生数据类型使用陷阱.docx

    在Java编程语言中,原生数据类型(primitive data type)是程序设计的基础,包括了byte、short、int、long、float、double、char以及boolean这八种。它们各自有不同的存储大小和取值范围,每种类型都有其特定的用途...

    Java API原生文档

    Java API原生文档是Java开发的核心参考资料,它包含了Java平台标准版(Java SE)的所有类库和接口的详细信息。这份文档是每一个Java开发者必备的学习和查询资源,它提供了全面的API规范、类库功能解释以及方法签名等...

    NDK编译 JAVA JNI 原生调用

    - `jclass`, `jobject`, `jmethodID`等类型:用于标识Java类、对象和方法ID,是JNI进行Java对象操作的关键。 5. JNI调用示例: 在Java中: ```java public class MyJNI { static { System.loadLibrary("myJNI...

    Java SE(入门知识3)-原生数据类型.doc

    Java编程语言中有两种基本的数据类型:原生数据类型(Primitive Data Types)和引用类型(Reference Types)。原生数据类型是Java语言预定义的,它们直接由编译器理解和处理,而不涉及任何对象或类的概念。在Java SE...

    网上交易系统,使用java原生jdbc和swing

    在这个项目中,我们使用了Java原生的JDBC(Java Database Connectivity)和Swing库来构建这样一个系统,选择PostgreSQL作为后端数据库。以下是这个系统中涉及的关键技术点和知识体系的详细解释。 **Java JDBC** ...

    GAVA基础教学.pdf

    - **概述**:`primitives`模块专注于提供对Java原生类型(如`int`、`long`、`double`等)的操作支持。 - **示例**:通过提供一系列工具方法来方便地进行数值计算、转换等操作。 ##### collect - 集合工具 - **概述...

    guava-19.0-src

    Guava提供了对Java原生类型的泛型支持,如`Ints`、`Longs`、`Booleans`等,提供了许多便捷的操作方法,如转换、比较、格式化等。这使得我们在处理原始类型时,不必再依赖于装箱和拆箱,提高了性能。 六、I/O操作 ...

Global site tag (gtag.js) - Google Analytics