1)编写java程序完成简单计算
这部分包含两部分内容:一是如何设计算法的问题,二是将算法翻译成程序代码的问题。
变量名应该尽量选择描述性的名字,而不是用x
和y
这样的名字,还要指明变量的数据类型。
Java中基本类型包括整数、浮点数、字符以及布尔类型。加号(+
)有两种意义:一种用途是做加法,另一种用途是用做字符串的连接,在源代码中,字符串常量不能跨行,否则会引起编译错误。
2)从控制台读取输入
Java使用System.in
来表示标准输入设备,使用System.out
来表示标准输出设备,Java并不直接支持控制台输入,但是可以使用Scanner
类创建它的对象,以读取来自System.in
的输入。
import java.util.Scanner; //Scanner is in the java.util package
Scanner input = new Scanner(System.in);
下表是Scanner对象的方法
方法 | 描述 |
---|---|
nextByte() | 读取一个byte类型的整数 |
nextShort() | 读取一个short类型的整数 |
nextInt() | 读取一个int类型的整数 |
nextLong() | 读取一个long类型的整数 |
nextFloat() | 读取一个float类型的数 |
nextDouble() | 读取一个double类型的数 |
next() | 读取一个字符串,该字符在一个空白符之前结束 |
nextLine() | 读取一行文本,以按下回车键为结束标志 |
3)标识符
- 标识符是由字母、数字、下划线和美元符号构成的字符序列。
- 标识符必须以字母、下划线或美元符号开头,不能以数字开头。
- 标识符不能是保留字。
- 标识符不能是
ture
、false
或null
。 - 标识符可以为任意长度。
在编程实践中,尽量不要用美元符号开头或结尾,也尽量不用下划线开头,习惯上,字符$只用在机器自动产生的源代码中。Java是区分大小写的。
4)变量
变量声明方法为:变量类型 变量名; 如int count;
、double interestRate
等
如果几个变量为同一类型,允许一起声明它们,如:int i, j, k
按照习惯,变量名使用小写字母,如果多于一个词,那除了第一个词以外,其他词的第一个字母都要大写。变量声明的同时也可以一步完成初始化,鼓励这么做,这会使程序易读,同时避免程序设计错误。
5)赋值语句和赋值表达式
赋值语句的语法为variable = expression;
赋值语句是一个语句,行尾是有分号的,本质上是一个表达式,赋值语句常常被称作赋值表达式。
6)定名常量
定名常量,简称常量,表示从不改变的永久数据,如果频繁使用,但又不想重复地输入,就需要声明一个常量,语法如下:
final datatype CONSTANTNAME = VALUE;
常量必须在同一条语句中声明和赋值,单词final
是声明常量的java关键字,按照习惯,常量用大写字母命名。
使用常量有三个好处:
- 不必重复输入同一个值;
- 只需在源代码中一个地方做改动,便处处改动;
- 给常量赋一个描述性名字会提高程序易读性。
7) 数值数据类型及其运算
类型名 | 存储大小 |
---|---|
byte | 8位带符号数 |
short | 16位带符号数 |
int | 32位带符号数 |
long | 64位带符号数 |
float | 32位,标准IEEE 754 |
double | 64位,标准IEEE 754 |
double型是float型的两倍,通常情况下应该使用double,因为它比float型更精确。上溢和下溢是一个容易混淆的概念,如果要存储的数值正的太大或负的太小,超过了数据类型的范围,则发生上溢,如果要存储的数非常接近于0,导致计算机存储会因为精度问题而丢失的情况发生是,就说发生了下溢,Java通常将它近似认为是0,所以通常情况下无须考虑下溢问题。涉及浮点数的计算都是近似的,因为这些数没有以准确的精度来存储。
8)显示当前时间
GMT(格林威治标准时间)的格式是hour:minute:second
。System类中的方法currentTimeMillis
返回从GMT1970年1月1日00:00:00开始到当前时刻的毫秒数,这一时间也称为UNIX时间戳(UNIX epoch)。
9)简捷运算符
运算符 | 名称 | 举例 | 等价于 |
---|---|---|---|
+= | 加法赋值运算符 | i += 8 | i = i + 8 |
-= | 减法赋值运算符 | i -= 8 | i = i - 8 |
*= | 乘法赋值运算符 | i *= 8 | i = i * 8 |
/= | 除法赋值运算符 | i /= 8 | i = i / 8 |
%= | 求余赋值运算符 | i %= 8 | i = i % 8 |
简捷运算符中间是没有空格的
10)数据类型转换
总是可以将一个数值赋给支持更大数值范围类型的变量,但是,如果不进行类型转换,就不能将一个值赋给范围较小类型的变量。相应地称为拓宽类型和缩窄类型,拓宽类型不需要显示转换,缩窄类型必须显式完成。类型转换的语法要求目标类型放在括号内,紧跟其后的是要转换的变量名或值,类型转换不改变被转换的变量。
11)字符数据类型及运算
字符数据类型char
表示单个字符,注意:'A'
是单个字符,而"A"
是一个字符串。统一码和ASCII码的知识点较杂,可参考相关资料。统一码包括ASCII码。
下表是Java转义字符序列:
转义序列 | 名称 |
---|---|
\b | 退格键 |
\t | Tab键 |
\n | 换行符号 |
\f | 进纸 |
\r | 回车键 |
\ \ | 反斜杠 |
\’ | 单引号 |
\” | 双引号 |
char
型数据可以转换成任意一种数值类型,反之亦然,将一个整数转换成一个char
型数据时,只用到该数据的低十六位,其余部分都被忽略。要将一个浮点值转换成char
型时,首先将浮点值转换成int
型,然后将这个整型值转换成char
型。当一个char
型数据转换成数值类型时,这个字符的统一码就被转换成某个特定的数值。
12)程序设计风格和文档
除了行注释//
和块注释/* .... */
之外,Java还支持Java文档注释,javadoc注释以/**........*/
开头和结尾,它会注释整个类或整个方法,它能被JDK的javadoc命令提取出来,放入一个HTML文件,这些注释必须放在类或者方法前面,要注释方法中的某一步骤,建议使用行注释。
应该确保程序中为变量、常量、类和方法所选择的描述性的名字是直观易懂的,保持适当的缩进和空白,尽量采用行尾风格。
13)程序设计错误
- 语法错误是在编译过程中出现的错误,由代码结构体中的错误引起,例如:拼错关键字,忽略了一些必要的标点符号,或者左花括号没有对应的右花括号。编译器会告诉错误在哪儿以及什么原因。因为一个错误常常会显示很多行的编译错误,因此推荐从最上面的行开始向下调试,这样做会有效率得多。
- 运行错误是引起程序非正常中断的错误,输入错误就是典型的运行错误,例如:输入数据类型不匹配,0作除数等
- 逻辑错误是指程序没有按预期的方式完成,是最难发现的一种错误,最好能用IDE的debug模式来进行追踪调试。
14)从输入对话框获取输入
两种方法:
- JOptionPane.showInputDialog(x);
- JOptionPane.showInputDialog(null, x, y, JOptionPane.QUESTION_MESSAGE);
输入对话框返回的输入是一个字符串。要把一个字符串转换为一个int
型值,使用Integer
类中的parseInt
方法,如:
int intValue = Integer.parseInt(intString);
要将一个字符串转换为一个double
型值,使用Double
类中的parseDouble
方法,如:
double doubleValue = Double.parseDouble(doubleString);