`
bsr1983
  • 浏览: 1117481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第三章 Java基本的程序设计结构

阅读更多
3.1 一个简单的Java应用程序
Java对大小写敏感。
Java应用程序中的全部内容都必须放置在类中。
Java定义类名:名字必须以字母开头,后面可以跟字母和任意数字的组合,长度上基本上没有限制,但是不能使用Java关键字。
在Java中,每个句子必须用分号结束。
3.2 注释
在Java中有三种表示注释的方式:
//       注释内容从“//”开始到本行结束
/*  */ 注释内容从“/*”开始到“*/”结束
/**  */ 注释内容从“/**”开始到“*/”结束,可用来自动生成文档
在Java中“/*”和“*/”不能嵌套
3.3 数据类型
Java是一种强类型语言(strongly type language),这就意味着必须要为每个变量声明一种类型。Java中一共有8种基本类型(primitive type),其中有4个整数类型,2个浮点数类型,1个用于表示Unicode编码的字符单元的字符类型char和一个用于标示真值的boolean类型。
3.3.1 整型
在Java中整型的范围与运行Java的机器无关。
长整型数值有一个后缀L,十六进制数值有个前缀0x,八进制数值有个前缀0,例如010对应八进制中的8。
Java没有任何的unsigned类型。
3.3.2 浮点型
浮点类型用于表示有小数部分的数值。
float 占用4字节,double占用8字节
float类型的数值有一个后缀F,没有后缀的浮点数值默认为double类型
在JDK5.0中可以使用十六进制表示浮点数,在十六进制表示法中,使用p表示指数,而不是e。
3.3.3 char类型
代码点(code point)是指与一个编码表中的某个字符对应的代码值。
UTF-16编码采用不同长度的编码表示所有的Unicode代码点。在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元(code unit)
在Java中,char类型用UTF-16编码描述一个代码单元。
3.3.4 boolean类型
boolean类型有两个值:false和true,用来判断逻辑条件。这两个值不能与整型进行相互转换。
3.4 变量
变量名必须是一个以字母开头的字母或数字序列。
注意:如果要知道哪些Unicode字符属于Java中的“字母”,可以使用Character类的isJavaIdentifierStart和isJavaIdentifierPart进行检测。
3.4.1 初始化变量
3.4.2 常量
在Java中,利用关键字final声明常量。关键字final表示这个变量只能被赋值一次,一旦被赋值后就不能再更改了。
可以使用关键字static final设置一个类常量。
const是Java的保留的关键字,但目前并没有使用,在Java中必须使用final定义常量。
3.5 运算符
当参与/运算的两个操作数都是整数时表示整数除法,否则表示浮点数除法。
整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN。
对于使用strictfp关键字标示的方法来说,必须使用严格的浮点计算,以产生理想的结果。
3.5.1 自增运算符与自减运算符
3.5.2 关系运算符与boolean运算符
3.5.3 位运算符
在处理整型数值时,可以直接对组成整型数值的各个位进行操作。
&(“与”)、|(“或”)、^(“异或”)、~(“非”)
还有“>>”和“<<”,他们将进行二进制位右移或左移,最后“>>>”运算符将用0填充前面的位,“>>”用符号位填充左侧的位。
没有“<<<”运算符。
警告:对移位运算符右侧的参数需要进行模32位的运算(除非左边的操作数十long类型,在这种情况下需对右侧操作数模64)。例如1<<35与1<<3或8是相同的。
3.5.4 数学函数与常量
在Math类中,包含了各种各样的数学函数。
3.5.5 数值类型之间的转换
3.5.6 强制类型转换
强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,随后紧跟待转换的变量名。
警告:如果试图讲一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会被截断成一个完全不同的值,例如,(byte)300的实际值为44.
3.5.7 括号与运算符级别
因为+=是右结合运算符,所以表达式a+=b+=c等价与a+=(b+=c)
运算符 结合性
[] . () (方法调用) 从左向右
! ~ ++ -- +(一元运算)-(一元运算) ( )(强制类型转换)new 从右向左
* / % 从左向右
+ - 从左向右
<< >> <<< 从左向右
< <= > >= instenceof 从左向右
== != 从左向右
& 从左向右
^ 从左向右
| 从左向右
&& 从左向右
|| 从左向右
?: 从右向左
= += -= *=  /= &= |= ^= <<= >>= >>>= 从右向左
3.5.8 枚举类型
从JDK5.0开始,可以自定义枚举类型。枚举类型包括有限个命名的值。
例如,
Enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE}
3.6 字符串
从概念上讲,Java字符串就是Unicode字符序列。
Java没有内置的字符串类型,二十载表中的Java类库中提供了一个预定于类String。
3.6.1 代码点与代码单元
Java字符串由char值序列组成。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。
Length方法将返回采用UTF-16编码表示的给定字符所需要的代码单元数量。如果要的到实际的长度,即代码点数量,可以使用codePointCount();
codePointAt方法能够辨别一个代码单元式辅助字符的第一部分还是第二部分,并且能够返回正确的结果。
3.6.2 子串
3.6.3 字符串编辑
String类没有提供用于修改现存字符串的方法。
由于不能修改Java字符串中的字符,所以在Java文档中将String类对象称为不可变字符串。不可变字符有一个优点:编译器可以将字符串共享。
3.6.4 拼接
Java语言允许使用+号连接(拼接)两个字符串。
当将一个字符与一个非字符串的值进行拼接时,后者被转化成字符串。
3.6.5 检测字符串是否相等
可以使用equals方法检测两个字符串是否相等。
一定不能使用= =运算符检测连个字符串是否相等!这个运算符只能够确定两个字符串是否被放置在同一个位置。
只有字符串常量是共享的,+或substring等操作产生的结果都不是共享的,因此永远不要使用= =运算符曾是字符串的相等性。
3.6.6 阅读联机API文档
3.7 输入输出
3.7.1 读取输入
要想通过控制台进行输入,首先需要构造一个Scanner对象,它附属于“标准输入流”System.in。
Scanner in = new Scanner(System.in);
3.7.2 格式化输出
注意:可以使用S转换符格式化任意的对象。对于任意实现了Formattable接口的对象都将调用formatTo方法;否则将调用toString方法,这个方法可以将对象转换为字符串。
3.8 控制流程
3.8.1 块作用域
块(即复合语句)是指由一对花括号括起来的若干条简单的Java语句。块确定了变量的作用域,一个块可以嵌套在另一个块中。
不能再嵌套的两个块中声明同名的两个变量。
3.8.2 条件语句
3.8.3 循环
while  do while
3.8.4 确定循环
for
3.8.5 多重选择——switch语句
注意,case标签必须是整数或枚举常量,不能检测字符串。
3.8.6 中断控制流程语句
Java提供了一种带标签的break语句,用于跳槽多重嵌套的循环语句。标签必须放置在最外层的循环之前,并且必须紧跟一个冒号。
continue语句与break语句一样,它将中断正常的控制流程。Continue语句将控制转移到最内层循环的首部。
3.9 大数值
如果基本的证书和浮点数精度不能满足需求,就可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理任意长度的数值。
BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
3.10 数组
一旦创建了数组,就不能再改变它的大小。
3.10.1 “for each”循环
集合表达式必须是一个数组或者是一个实现了Iterable接口的类对象。
3.10.2 数组初始化器以及匿名数组
注意:在Java中,允许数组的长度为0。在编写一个结果为数字的方法时,如果碰巧结果为空,那么这种语法形式就显得非常有用。测试可以创建一个长度为0的数组:
new elementType[0]
注意,数组长度为0,与null不同。
3.10.3 数组拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量。
如果希望将一个数组的所有值拷贝到另一个数组中去,就要使用System类的arraycopy方法。调用这个方法的语法格式为:
System.arraycopy(from,fromIndex,to,toIndex,count);
数组to必须有足够的空间来存放拷贝的元素。
3.10.4 命令行参数
每一个Java应用程序都有一个带String[] args参数的main方法。这个参数表名main方法将接收一个字符串数组,也就是命令行参数。
3.10.5 数组排序
Math.random方法将返回一个0~1之间(含0、不含1)的随机浮点数。
3.10.6 多维数组
多维数组将使用多个下标访问数组元素,它适用于表示表格或更加复杂的排列形式。
3.10.7 不规则数组
Java实际上没有多维数组,只有一维数组。多维数组解释为“数组的数组”。
分享到:
评论

相关推荐

    Java语言程序设计与数据结构第三章编程题.zip

    这些文件是关于Java语言程序设计与数据结构课程的第三章编程练习题目,涵盖了多个不同的练习题目,用于帮助学习者深入理解和应用数据结构的基本概念。以下是根据文件名推测出的一些可能的编程题知识点: 1. **...

    Java程序设计与数据结构第九章习题答案

    在Java程序设计与数据结构的学习过程中,第九章通常会涵盖数据结构的重要概念和应用,包括数组、链表、栈、队列、树等基础数据结构,以及如何利用这些数据结构来解决问题。本资源提供了第九章的习题答案,旨在帮助...

    Java程序设计与数据结构第三章习题答案

    综上所述,Java程序设计与数据结构第三章的习题主要涵盖数组、链表、栈、队列等基础数据结构的使用,以及递归、排序、查找等算法的应用。通过解决这些习题,学习者可以巩固理论知识,提升编程技能,为后续的高级主题...

    Java程序设计与数据结构第六章习题答案

    在Java程序设计与数据结构的学习过程中,第六章通常会涵盖数据结构的重要概念和应用,以及如何用Java语言来实现它们。这一章的内容可能包括数组、链表、栈、队列、树、图等基础数据结构,也可能涉及排序和查找算法。...

    Java程序设计与数据结构第四章习题答案

    综上所述,"Java程序设计与数据结构第四章习题答案"提供的内容将涵盖上述多个知识点,通过解答这些习题,初学者能够加深对Java语言和数据结构的理解,提高编程能力,并为后续更复杂的编程挑战奠定坚实的基础。

    Java语言程序设计与数据结构(基础篇)第10章课后习题代码chapter10.rar

    《Java语言程序设计与数据结构(基础篇)》是一本深入浅出的教材,旨在帮助初学者掌握Java编程语言,并理解如何在编程中应用数据结构。第10章的主题很可能涉及了高级的数据组织和处理技术,如数组、链表、栈、队列、...

    jsp第三章 Java语言程序设计

    【Java语言程序设计基础】 Java语言是Web开发中不可或缺的一部分,尤其在JSP(Java Server Pages)中,Java代码用于实现动态网页的功能。本章主要介绍Java语言的基础知识,包括程序的基本构成要素、数据类型、...

    Java语言程序设计与数据结构(基础篇)第9章课后习题代码chapter9.rar

    在本压缩包“chapter9.rar”中,包含的是关于Java语言程序设计与数据结构基础篇的第9章课后习题代码。这个章节通常会深入探讨数据结构与算法,这是编程学习中的核心部分,特别是对于Java这样的面向对象编程语言而言...

    《Java语言程序设计——基础篇》第三章选择作业答案.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    Java语言程序设计第三版-习题答案.pdf

    "Java语言程序设计第三版-习题答案.pdf" Java语言程序设计第三版-习题答案.pdf是Java语言程序设计的习题答案,涵盖了Java语言的基础知识、语法机制、平台架构、特征等方面。下面是该资源的知识点摘要: Java技术...

    Java语言程序设计与数据结构(基础篇)第5章课后习题代码chapter5.rar

    《Java语言程序设计与数据结构(基础篇)》这本书深入浅出地介绍了这两方面的内容。第五章的课后习题代码提供了实践机会,帮助读者巩固理论知识,提高编程技能。 在Java中,数据结构主要包括数组、链表、栈、队列、...

    Java程序设计与数据结构第八章习题答案

    以上知识点会在Java程序设计与数据结构的第八章习题中得以体现,通过解答这些习题,学习者可以深化对Java编程和数据结构的理解,提升编程技能。在解答过程中,应注重代码的清晰性、效率和错误处理,同时理解并运用...

    《Java语言程序设计》电子课件

    第 3 章 面向对象程序设计基础 第 4 章 图形用户界面设计 第 5 章 Java swing基础 第 6 章 Java图形与数字图像处理 第7章 多线程与异常处理 第8章 输入输出流 第9章 网络通信 第10章Java数据库连接 第11章常见...

    Java语言程序设计(郑莉)第八章课后习题答案

    在"Java语言程序设计(郑莉)第八章课后习题答案"这个文档中,我们可以预见到包含以下知识点的详细解答: 1. **类与对象**:Java是一种面向对象的编程语言,类是对象的模板,对象是类的实例。习题可能涉及创建类,...

    JAVA语言程序设计--第二章JAVA基础

    在“JAVA语言程序设计--第二章JAVA基础”这个主题中,我们主要探讨的是Java编程语言的基本概念和核心特性。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它以其“一...

    JAVA语言程序设计-第十六章 网络编程

    本章将深入探讨Java中的网络编程技术,包括基本概念、API使用以及常见问题的解决。 1. Java网络编程基础 Java提供了丰富的API来支持网络编程,主要集中在`java.net`包中。基础类如`Socket`和`ServerSocket`用于建立...

    Java语言程序设计第10版基础篇 第四章答案

    《Java语言程序设计第10版基础篇》是学习Java编程的重要教材,第四章通常涵盖了Java的基本语法和核心概念。本资源提供了该章节的课后习题答案,旨在帮助学习者检验自己的理解并深化对Java知识的掌握。下面将详细阐述...

    Java语言程序设计(第二版)课后第三章习题答案

    在本资源中,我们主要关注的是“Java语言程序设计(第二版)”一书的第三章课后习题答案,特别是那些涉及编程代码的问题。Java是一种广泛应用的面向对象的编程语言,以其平台无关性、安全性和高效性而受到赞誉。在...

    Java程序设计习题集下载

     趣味性:习题基本上覆盖了程序员在编写Java程序时经常出现的问题Java程序设计知识要点,各习题也列出其测试要点,从而方便教师从中挑选或改编考题以及方便学生进行实战模拟练习或测试,同时也可以为SCJP考试作准备...

    JAVA语言程序设计与数据结构课后 编程题解析

    在“JAVA语言程序设计与数据结构课后 编程题解析”这个主题中,我们可以深入探讨Java编程语言和数据结构的基础知识,以及如何通过解决课后编程题来提高编程技能。Java是一种广泛使用的面向对象的编程语言,它以其...

Global site tag (gtag.js) - Google Analytics