`
tangqs
  • 浏览: 18567 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

第二章 Java基础语法(3)

阅读更多

2.4 数据类型和常量

Java的数据类型和C语言的比起来,可算的上是简单了许多,而且更为重要的一点是Java的基本数据类型不论在什么平台上,都具有统一的长度——这一点是Java实现跨平台性的一个必要的技术准备。

在Java中,数据类型分了两大类:基本数据类型以及引用类型。引用类型放在以后讲,这一节的主角是基本数据类型。

Java中的基本数据类型一共有八个:boolean、byte、short、int、long、float、double、char。这八个基本数据类型从特征上又分为4大类:布尔型、整型、浮点型以及字符型。下面我们分类开始给大家介绍。

2.4.1 布尔型

Java中的布尔型其实指的就是boolean类型,为什么取了个这么怪的名字?原来100多年前,英国数学家布尔发表论文,利用代数研究逻辑问题,并奠定了数理逻辑的基础。由此,我们一般将用于数理逻辑运算的数据对象称为“布尔型”数据。数理逻辑是个非常复杂的东西,我在大学时学的那是晕头转向,不过很讽刺的是,布尔型数据只有区区两个值:“真”和“假”。与之对应,Java中的boolean类型只包含两个常量:true、false。

这里顺带介绍几句关于常量的知识。常量分了两大类,一类是字面常量(英文是literal),一类是符号常量。符号常量我们放在和final关键字一起讲。而所谓的字面常量指的是相应类型的字面表达形式。例如,我们用“true”表示boolean类型中的“真”的含义,一目了然,不需要拐几个弯才能想到。

2.4.2 整型

Java的整型数据类型一共有四个:分别是byte、short、int、long。整型数据就是我们通常说的“整数”。如果还有人想接着问“什么是整数”,那我的回答是“面壁三年,复习小学数学,争取达到小学毕业水平”,J。

那既然表示整数,为什么会出现4种类型的整型?这主要是因为这四种类型的所占字节数以及取值范围有差异。其中byte类型只占1个字节,取值是clip_image002[3];short类型占2个字节,取值范围clip_image004[3];int类型占4个字节,取值范围clip_image006[3];而long类型占8个字节,取值范围clip_image008[3]。取值范围只给出了指数形式,具体的数值就有劳各位自己去算了。每种数据类型都有自己的用途,例如byte型数据经常应用于底层的数据传输;long型经常用于数据库编程中;而int型则是开发中最为常用的整数类型。

接下来我们再看看整型的字面常量如何表示。大多数情况下,我们用十进制表示一个整数,比如85、51、2等;有时候也会使用十六进制表示整数,十六进制以0X(或0x)作为前缀,后面跟着数字或者字母A~F(或a~f),例如0x1、0X25、0xabcd、以及0XCE1F都是十六进制的字面常量;用的最少的是八进制,至少我几乎没有在开发中使用过八进制的字面常量,当你看见一个数字以0开头、而后面跟着几个0到7之间的数字时,说明你看到的是一个八进制的字面常量,如07、017、025都是八进制字面常量。

不过,我们需要注意,上段中所有字面常量,我们都可以认为是int型的常量,如果我们想表示一个long型的常量的话,那么则必须在其后加上大写(或小写)字母L,例如0xABL表示long型的十六进制数0xAB,还有像1193827L,07L等都表示long型的整数,虽然我们也可以使用L的小写形式,不过建议大家最好不好使用,因为很容易和数字1混淆。

可能有些喜欢思考的会问我,如何表示byte和short型的常量呢?这个嘛……,你会在后面看到的。

2.4.3 浮点型

浮点型数据是用来表示小数的。计算机使用的是二进制数进行运算,二进制表示整数没有太大的问题,可是在表示小数时,问题就出现了,很多在十进制中的有限小数在二进制体系中却是无限不循环的。由于两种进制之间的差异,因此十进制的小数使用二进制存储时往往只能存储其近似的数值。而且,为了在有限的字节中尽量多的表示更大范围的数值,在计算机内部通常都采用了浮点形式存储小数,这也就是我们将小数类型称为浮点型数据的缘故。浮点型数据有两种类型:float和double,表示了存储小数的两种不同算法,它们的差异主要表现在精度上。

在Java中,float类型的数据占用了4个字节;而double类型的数据占用了8个字节。从它们所占用的字节数中我们也可以看出,double型的数据精度更高。那么浮点型的字面常量如何表示?

先看一下最常用的表示方法,3.1415926、125.8应该都是我们熟悉的形式,不过在Java中,还可以使用指数形式表示一个小数,例如31.4e25表示clip_image010[3]。上面这几个例子都是表示double型数据,而如果我们还需要强调这些数是double型数据的话,那么可以在数值之后加上字母D(大小写都可以),例如3.14d,31.4e5D。如果需要表示float型的常量,则必须在数值之后加上大写或者小写的F,例如3.14f、125.8F。

2.4.4 字符型

字符型只包含了char类型,char类型是用来表示字符数据的。C程序员要注意了,在C语言中,也包含了表示字符的char类型。不过Java中的char型与C语言相比,有比较大的区别。在Java中,一个char类型的数值需要占用两个字节,这是因为在Java中使用了Unicode编码表示字符,所以,Java中的字符不仅仅能表示英文字母,还能表示世界上大多数的语言,例如,一个Java字符就可以表示一个汉字,而在C语言中,表示一个汉字需要使用两个字符。同样,对于C语言来说,字符型数据从本质上其实是可以看成一个无符号的整数类型,这一点java也延续了这个做法,在语法上可以把字符型数据看成是整数类型,并且和可以和int,long等整型数据进行转换。

在Java中如果想表示一个字符字面常量,则必须将这个字符常量使用一对单引号将这个字符围起来,例如‘a’和‘世’都是合法的字符。和C语言一样,Java也有转义字符,如‘\”’表示一个双引号,‘\t’表示制表符,‘\n’表示换行符,‘\r’表示回车符,‘\\’表示斜杠等,上面这五个都是比较常用的转义字符,希望大家记住它们,以后肯定还能用得上。

除了上面的形式之外,在Java中还可以用字符的Unicode码来表示它。例如字符‘a’可以用‘\u0061’表示,字符‘张’可以用‘\u5f20’表示。使用Unicode码表示字符要注意下列几个规则:

1、必须使用\u作为前缀;

2、必须使用四位十六进制数表示,如果Unicode编码比较小,则前面用0补足四位(看到前面‘a’的例子了?);

3、当然,别忘记用单引号(’)将字符围起来。

2.4.5 字符串

什么是字符串?所谓的字符串,就是由多个字符组成的一个字符组,程序将把这个字符组作为一个整体。字符串有两个很特殊的性质:一方面,字符串不可能作为一个基本数据类型单独存在;另一方面,字符串在一个应用程序中往往比其他类型使用的更为频繁。由于这两个原因,决定了字符串在任何程序设计语言中都具有特殊地位。在本节中,我们只是简单的介绍字符串的基本知识,在以后的章节中,还将陆续涉及到字符串的其他内容。

首先看看如何表示一个字符串,在Java中,我们使用一对双引号(“)将字符串围起来。例如:“Hello,world”、“你好,Java”都是字符串。正如我们前面所说——字符串由一组字符组成,所以在字符串中,同样也可以使用转义字符,可以直接内嵌字符的Unicode编码等等。而需要声明一个能指向字符串对象的变量则必须使用String。例如:

String str = "\u0061\u0062\\\'\""; //表示字符串 ab\’”

在上面这个例子中,String str表示定义了一个变量可以指向一个字符串,而"\u0061\u0062\\\'\""; 则表示定义了一个字符串对象。最后请大家在注意一下:字符串并不是Java中的基本数据类型。好了,字符串就简单介绍到这。

2
1
分享到:
评论

相关推荐

    第二章java基础语法.docx

    第二章java基础语法.docx 第二章java基础语法.docx第二章java基础语法.docx 第二章java基础语法.docx

    Java语言程序设计:第二章 Java语言语法基础.ppt

    Java语言程序设计:第二章 Java语言语法基础.ppt

    计算机后端-Java-Java核心基础-第06章 Java基本语法4 16. 质数输出的实现方式二.avi

    计算机后端-Java-Java核心基础-第06章 Java基本语法4 16. 质数输出的实现方式二.avi

    计算机后端-Java-Java核心基础-第06章 Java基本语法4 22. 项目二登记收入功能的实现.avi

    计算机后端-Java-Java核心基础-第06章 Java基本语法4 22. 项目二登记收入功能的实现.avi

    java基础语法.doc

    想要入门java童鞋的可以看这篇文档,可以快速的入门java

    Java 基础学习PPt---适合准备学习Java的初学者

    第一章 Java 概述 第二章 Java 基础语法【上】 第三章 java 基础语法【下】 第四章 面向对象 【上】 第五章 面向对象 【下】

    Java课件最全

    Java基础教程,最全版本 第1章 Java环境及配置 第2章 Java基本语法 第3章 类和接口 第4章 Java Applet 第5章 Java图形处理 第6章 Java用户界面技术 第7章 异常、事件和多线程机制 第8章 输入输出技术 第9章 ...

    零基础学Java Web开发

     第2章 Java基础语法  第3章 Java面向对象编程  第二篇 JSP基本知识  第4章 JSP基本语法  第5章 JSP内置对象  第6章 JSP与JavaBean  第7章 JSP与JDBC  第8章 Servlet编程  第9章 Servlet编程  第...

    java基础教学-java初级资料.zip

    第二章 java 语言语法1 第三章 java 语言语法2 第四章 java 数组 第五章 面向对象1 第六章 面向对象2 第七章 面向对象3 第八章 java常用类库1 第九章 java常用类库2 第十章 异常处理 第十一章 java集合 第十二章 ...

    java学习课件第二章

    第二章、java语法基础 第三章、面向对象特征 第四章、applet及其应用 第五章、图形用户界面设计 第六章、异常处理 第七章、线程 第八章、集合操作 第九章、文件输入输出 第十章、网络编程

    java自学教程

    第2章 Java基本语法 第3章 类和接口 第4章 Java Applet 第5章 Java图形处理 第6章 Java用户界面技术 第7章 异常、事件和多线程机制 第8章 输入输出技术 第9章 Java数据库技术 第10章 Java安全技术 第11章 ...

    JAVA自学教程(史上最全).ppt

    第2章 Java基本语法 第3章 类和接口 第4章 Java Applet 第5章 Java图形处理 第6章 Java用户界面技术 第7章 异常、事件和多线程机制 第8章 输入输出技术 第9章 Java数据库技术 第10章 Java安全技术 第11章 ...

    JAVA语言入门(chm)

    第二章 Java程序开发与运行环境 第三章 Java程序设计基础 第四章 Java应用程序的基本框架 第五章 Java的类 第六章 Java图形用户接口 第七章 多线程 第八章 Java的"异常" 第九章 Java输入输出操作

    java学习课件第三章

    第二章、java语法基础 第三章、面向对象特征 第四章、applet及其应用 第五章、图形用户界面设计 第六章、异常处理 第七章、线程 第八章、集合操作 第九章、文件输入输出 第十章、网络编程

    java基础教程.pdf

    本书共 208 页,带课后作业,分八章: 第一章 Java 入门 第二章 基础语法 第三章 Java 类和对象 第四章 Java 高级类特性 第五章 数组和枚举 第六章 常见类的使用 第七章 抽象类和接口 第八章 异常和断言

    java学习课件 第四章

    第二章、java语法基础 第三章、面向对象特征 第四章、applet及其应用 第五章、图形用户界面设计 第六章、异常处理 第七章、线程 第八章、集合操作 第九章、文件输入输出 第十章、网络编程

    编程实践:Java进阶100例

    第二章:MyEclipse的基本使用; 第三章:Java基础语法; 第四章:数组的应用; 第五章:面向对象的Java编辑; 第六章:接口与内部类; 第七章:集合的应用; 第八章:异常和反射; 第九章:初识AWT和Swing; 第十章...

    《Java EE应用开发基础》第二章课件(PDF版)

    济南大学《Java EE应用开发基础》课程课件(PDF版),第二章JSP应用基础 2.1 Servlet应用 2.2 JSP语法 2.3 JSP内置对象 2.4 JSP综合应用实例

    《Java语言程序设计——基础篇》第二章基本程序设计示例.zip

    中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常处理、二进制I/O和递归等内容。进阶篇主要介绍数据结构...

Global site tag (gtag.js) - Google Analytics