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

来源:互联网 发布:vb编程入门书籍 编辑:程序博客网 时间:2024/06/05 22:53

1.Java对大小写敏感。

2.Java类名必须以字母开头,后面可以是字母和数字的任意组合,不能使用Java保留字

Java关键字:

abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,

final,finally,float,for,goto,if,implements,import,instanceof,int,interface,long,native,new,null,package,private,protected,

public,return,short,static,strictfp,super,switch,synchronized,this,throw,throws,transient,try,void,volatile,while

标准命名规范:类名是以大写字母开头的名词,如果名字有多个单词组成,每个单词的第一个字母都应该大写。

main方法必须声明为public。

3.在Java中,/* */注释不能嵌套。

4.Java数据类型

4.1 整型

类型存储需求取值范围int4字节-2147483648 ~ 2147483647short2字节-32768 ~ 32767long8字节-9223372036854775808 ~ 9223372036854775807byte1字节-128 ~ 127

(1)在Java中,整型的范围与运行Java代码的机器无关。
(2)长整型后缀L,十六进制前缀0x,八进制前缀0,最好不要使用八进制,容易混淆。
(3)从Java 7开始,加上前缀0b可以写二进制数,还可以为数字下面加下划线。
(4)Java没有任何无符号类型(unsigned)。

4.2 浮点类型

类型存储需求取值范围float4字节大约±3.40282347E+38F(有效位数为6~7位)double8字节大约±1.79769313486221570E+308(有效位数为15位)
(1)float类型后缀F,没有后缀的为double类型,也可以加后缀D表示double类型
(2)JDK 5.0可以使用十六进制表示浮点数值:0.125可以表示成0x0.0p-3,使用p表示指数,尾数使用十六进制,指数使用十进制,指数的基数是2。
(3)正无穷大:Double.POSITIVE_INFINITY
负无穷大:Double.NEGATIVE_INFINITY
NaN(不是一个数字):Double.NaN
判断非数值使用Double.isNaN方法(if(x == Double.NaN) //is never true)
(4)浮点数值不适用于禁止出现摄入误差的金融计算中,主要原因是浮点数值采用二进制系统表示。不含舍入误差要使用BigDecimal类

4.3 char类型

char类型表示单个字符。
特殊字符的转义序列符转义序列名称Unicode值\b退格\u0008\t制表\u0009\n换行\u000a\r回车\u000d\"双引号\u0022\'单引号\u0027\\反斜杠\u005c

在Java中,char类型用UTF-16编码表示一个代码单元,建议不要使用char类型


4.4 boolean类型

true/false。整型和布尔值不能相互转换


5.变量

变量名必须是以字母开头的由字母或数字构成的序列,可以包含‘_’、‘$’或某种语言中代表字母的任何Unicode字符。‘$’只用在Java编译器及其他工具生成的名字中。

不能用Java保留字作为变量名。


5.1 变量的初始化

不要使用未初始化的变量。

Java中不区分变量的声明和定义。


5.2 常量

(1)利用final表示常量,常量只能赋值一次,一旦被赋值之后,就不能更改。常量名使用全大写。

(2)static final设置类常量,类常量定义位于main方法外部。

(3)Java必须使用final定义常量,const没有使用。


6.运算符

6.1 自增、自减

前缀方式先进行加一或减一运算,后缀则使用变量原来的值。


6.2 关系运算符、boolean运算符

逻辑与:e1&&e2

逻辑或:e1||e2

逻辑非:!e

三元运算符:c?e1:e2(满足条件c执行e1,否则执行e2


6.3 位运算符

&(“与”),|(“或”),^(“异或”),!(“非”),>>(“右移,符号位填充高位”),<<(“左移”),>>>(“右移,用0填充高位”)


6.4 数值类型转换

·如果两个操作数中有一个是double类型,另一个操作数就会转换成double类型(long转double会有精度损失)

·否则,如果其中一个操作数是float类型,另一个操作数就会转换成float类型(int,long转float会有精度损失)

·否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型

·否则,如果其中一个操作数是int类型,另一个操作数将会转换为int类型


6.5 强制类型转换

(1)浮点数转化为int只保留整数部分,四舍五入使用Math.round方法,round方法返回类型为long。

(2)强制转换超出目标类型表示范围,将被截断成一个完全不同的值。


6.6 运算符优先级

运算符结合性[ ].( )(方法调用)从左向右! ~ ++ -- +(一元运算) -(一元运算) ( )(强制类型转换) new从右向左* / %从左向右+ -从左向右<< >> >>>从左向右< <= > >= instanceof从左向右== !=从左向右&从左向右^从左向右|从左向右&&从左向右||从左向右?:从右向左= += -= *= /= %= &= |= ^= <<= >>= >>>=从右向左

6.7 字符串

String类

6.7.1 子串 substring方法

6.7.2 拼接 +

6.7.3 String类对象为不可变字符串,不能修改其中的任何一个字符

6.7.4 判断相等 equals方法 compareTo方法 不能用==

6.7.5 空串与Null串 空串是长度为0的字符串,null串表示没有任何变量与该变量关联

判断空串:if(str.length()==0)或if(str.equals(""))

判断null串:if(str==null)


7.输入输出

7.1 读取输入

import java.util.*;...Scanner in=new Scanner(System.in);int i=in.nextInt();double d=in.nextDouble();String str=in.nextLine();...//Java SE 6引入 输入密码时用Console类,每次只能读取一行输入Console con=System.console();char[] passwd=con.readPassword("Password:");

7.2 格式化输出

System.out.print();

System.out.println();

System.out.printf();


8.控制流程

8.1 块作用域

8.2 条件语句if else

8.3 循环 while( ){ }; do{ }while( ); for( ){ };

8.3.1 while

while循环先检测循环条件,因此循环体中的代码有可能不被执行。

do while循环先执行语句,在检测循环条件,因此循环体至少被执行一次。

8.3.2 for

for语句第一部分通常用于计数器的初始化,第二部分给出每一轮循环执行前需要检测的循环条件,第三部分指示如何更新计数器。


8.4 switch多重选择

switch(){

case c1:

...

break;

...

default://未找到对应的case将执行default

...

break;

}

case标签可以是:char、byte、short、int、枚举常量、字符串字面量(Java SE 7)。


8.5 中断控制break continue


9.大数值 BigInteger BigDecimal


9.数组

9.1 for each循环

for(variable:collection){ statement }

collection必须是一个数组或者实现了Iterable接口的类对象


9.2 多维数组


9.3 不规则数组

Java实际上没有多维数组,多维数组解释为“数组的数组”