[学习笔记]-Java的基本数据类型

Java是一种强类型语言,每个变量只能声明为一种类型。但是,Java和C/C++一样提供了“自动类型提升”和“强制类型转换”来适应一些不同数据类型的“混合运算”。在Java中,共有8种基本数据类型和4种引用数据类型。其中,基本数据类型是由原始数据类型进行“装箱”和“开箱”得到的。

一、8种基本数据类型

1.1 整型

1.1.1 long长整型

        long长整形是用于表示比较大的数量使用的类型。比方说,人类的数量,64亿,是一个整数且在计算机中需要8个字节才能存放下。这个在普通的场合下基本很少用到。

1.1.2 int整型

        相比long长整型,int类型就常用多了。在以后的编程中,遇到最多的类型就是int类型。Java中的int类型有一个非常好的特性,就是其长度与平台无关,就是4个字节,这给程序的移植带来了极大的方便。

1.1.3 short短整型

        short型,相比较int型数据要节约一倍的内存开销。但是,即使short类型能够表达的数据,我们仍然使用int型来表示。这是因为,short类型在“自动类型提升”时往往会导致编译报错:可能会丢失精度。还有一点很重要的原因是,常数,比方说5,在Java中如果直接出现在表达式中,系统会认为它是一个int型的数据。

1.1.4 byte字节型

        byte字节型数据,适用范围很小。

1.1.5 4种整型的取值范围


类型


存储空间(字节)


取值范围


long


8


-2^64~+2^64-1(-922亿亿-+922亿亿)


int


4


-2^32~+2^32-1(-21亿-+21亿)


short


2


-32768~+32767


byte


1


-128~+127

PS:注意,所有的Java的数据类型都是有符号型,不存在无符号型数据类型

1.2 浮点型

  1.2.1 双精度double

         double类型,用于表示小数,其小数点后的有效数字达到15位,能基本满足现实中大部分对数据精度的要求。Java中如果使用小数,如3.14,则默认是double类型,如果你想区分float和double,你应该在声明的小数后面加上后缀F(float)、D(double)。

  1.2.2 单精度float

         float类型,同样用于表示小数,但是小数后的有效数字仅为7位,类似int和long一样,在实际开发过程中很少用到float,而选择使用double类型,这样虽然牺牲了一点内存开销,但是会避免很多编译错误。

1.2.3 Java中十六进制表示的浮点型数据的格式

        在Java中除了使用10进制来表示3.14,同样可以使用16进制表示。

        10进制 0.125D

        16进制 0x1.0p-3(尾数采用16进制,指数采用10进制,指数的基数是2)

PS:在C/C++中浮点数可以采用也指数来表示,如314.15D==3.1415E2/3.1415e2(尾数使用10进制表示,是该小数的有效数字部分,E/e表示以10为底的指数)。另外,有一点很重要,那就是所有的浮点型数据都比整型数据大,这里的“大”不是指所占用的内存空间大小,而是自动类型提升时的方向问题。比方说,运算式中出现float类型数据和long长整型数据,则系统会自动把long类型转变为float类型再进行运算。

1.3 字符型

  1.3.1 Unicode编码字符型char

         Java的char类型和C/C++的char类型不同之处在于,俩者对应的编码方式不同。C/C++对应的是ASCII码,Java对应的是Unicode码。ASCII码只占用1个字节,而Unicode码却占用2个字节。Java中的char可以是汉字和其它地区使用ASCII码不能表示的字符,很显然Java中的char类型功能要更强大。

1.4 二值型

  1.4.1 布尔型boolean

         布尔值很简单,只有二个值:false和true,用于判断逻辑条件。这里,尤其注意在Java中整型值不能和布尔值进行互换。

1.5 取值范围

类型

内存空间

取值范围


默认初始化值


double


8个字节


无需记住


0.0D


float


4个字节


无需记住


0.0F


char


2个字节


\u0000~\uFFFF


\u0000


boolean


1个字节


true/false


false

1.6 自动类型提升示意图

图中,6个实心箭头表示该种转换不会导致数据信息的丢失,而3个虚心的箭头表示可能有精度损失的转换。

计算机在进行算术运算前,都要先把操作数变成同一种数据类型,然后进行计算,对应混合数据类型运算,Java的运算规则是:

  • 如果两个操作数中有一个是double类型,另一个操作数就会自动转换为double类型;
  • 否则,如果其中一个是float类型,另一个操作数就会自动转换为float类型;
  • 否则,如果其中一个是long类型,另一个操作数就会自动转换为long类型;
  • 否则,两个操作数都将会被转换为int类型。

二、4种引用类型

2.1 字符串String

   Java没有内建的字符串类型。字符串是通过Java在基础类库中提供一个预定义的String类来实现的。

2.2 数组Array

   数组,是同一种数据类型数据的一个集合。

2.3 类Class

   类class,是对象的共性的抽象的描述。

2.4 接口Interface

   接口Interface是对功能进行拓展的接口。

三、数据类型总结

每种语言都有自己的数据类型,数据类型是对现实的数据进行分析而抽象出的各类数据的共性。在计算机中,每一个数据必须对应一种数据类型,才可以被计算机处理。这些数据类型被称为“内建数据类型”。

时间: 2024-10-17 11:46:45

[学习笔记]-Java的基本数据类型的相关文章

[Java学习笔记]-Java的基本数据类型

Java是一种强类型语言,每个变量只能声明为一种类型.但是,Java和C/C++一样提供了“自动类型提升”和“强制类型转换”来适应一些不同数据类型的“混合运算”.在Java中,共有8种基本数据类型和4种引用数据类型. 一.8种基本数据类型 1.1 整型 1.1.1 long长整型 long长整形是用于表示比较大的数量使用的类型.比方说,人类的数量,64亿,是一个整数且在计算机中需要8个字节才能存放下.这个在普通的场合下基本很少用到. 1.1.2 int整型 相比long长整型,int类型就常用多

Mysql学习笔记(二)数据类型 补充

原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与varchar char与varchar的类型相似,但是他们的保存方式和检索方式不同... char的存储结构是固定长度的存储...即指定了几个字节,那么就占用几个字节,如char(4),那么无论存入的是什么字串,那么都占用四个字节...char的 可表示长度范围为0-255的任何值,当保存的字节不

嵌入式开发学习笔记 ( java - c/c++ :从入门到入门 )

发现放到Blog之后排版全乱套了.. 已经把PDF上传到资源页了  http://download.csdn.net/detail/lyy289065406/8934637 那边排版好看一点...看官们随意吧 >...< · 目 录 导 航 1. 引言 1.1. 编写目的 1.2. 阅读范围 1.3. 声明 1.4. 缩写词/名词解释 1.5. 参考资料 2. 嵌入式开发学习笔记 2.1. 开发环境/测试环境 2.2. 开坑:提要 2.3. 入坑:JNI 2.3.1. navicate 接口定

[java学习笔记]java语言基础概述之函数的定义和使用&amp;函数传值问题

1.函数 1.什么是函数? 定义在类中的具有特定功能的一段独立小程序. 函数也叫做方法 2.函数的格式 修饰符   返回值类型    函数名(参数类型  形式参数1, 参数类型  形式参数2-) {           执行语句(函数体);           return 返回值;       } 返回值类型:函数运行完成后输出的数据类型. 参数类型:是形式参数的数据类型. 形式参数:是一个变量,用于储存调用函数时传递给函数的实际参数. 实际参数:传递给形参的实际数据. return:结束函数

Mysql学习笔记(一)数据类型

学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m) 一个字节 范围(-128~127)     smallint(m) 两个字节 范围(-32768~32767)     mediumint(m) 三个字节 范围(-8388608~8388607)     int(m) 四个字节 范围(-2147483648~2147483647)     bigint(m) 八个字节 范围(+-9.

学习笔记——Java类和对象

今天学习了Java的类和对象的相关知识,由于Java面向对象的编程的思想和C++几乎一样,所以需要更多的关注Java的一些不同之处. 1.类 1.1 在类这一块,除了基本的成员变量,成员方法,构造函数等外,需要掌握三种权限修饰符的区别,并会合理使用(private限制了权限只在本类,protected限定了权限只在包内). 1.2 静态常量.变量.方法:static修饰.我们可以使用“类名.静态类成员”来调用,如: public class StaticTest{ static double P

Java私人学习笔记——第2章 数据类型和运算符

2.2 数据类型 2.2.1 Java数据类型 2.3 常用运算符 Java提供了一组运算符丰富的操纵变量.我们可以把所有的Java操作符为以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其它运算符 算术运算符: 算术运算符用于在数学表达式中,他们是在代数中使用的方法相同.下表列出了算术运算符: 假设整型变量A=10和变量B=20,则: 算术运算实例 运算符 描述 实例 + Addition - Adds values on either side of the opera

[Java学习笔记]-Java对象和类

Java是完全面向对象的高级语言,其基本的操作基本都是针对相应的对象和类.面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分.对应面向对象的语言,还有一种面向过程的语言,如C语言.面向对象的语言是在面向过程语言的基础上发展而来的.面向对象(OOP,全称为Object-Oriented-Programer,下文简称为OOP)相对于面向过程的语言而言,其优势在于很多问题的解决方法被封装在对象里,有时只需要创建这样的对象就可以解决我们的问题,而不必关心其具体实现细节,这

学习笔记之06-基本数据类型

C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2.Oracle都是C语言写的. C语言的数据类型大致可以分为下图中的几类: 一.变量 跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用.为什么一定要先定义呢?因为变量的类型决定了变量占用的存储空间,所以定义变量类型,就是为了给该变量分配适当的存储空间,以便存放数据.比如你是char类型,我就只给你分配1个字节就够了,没必要分配2个字节.3个字节乃至更多的存储空间. 下面的表格描述了在16位编译器环境下