1、回顾,JVM是 Java 编程语言的核心。 Java是完全面向对象的语言,所有的实现必须放在类中。 JDK可用于开发 Java 程序。 C/S和B/S开发模式的区别 JAVA的3大体系结构,Java编程基础,Java注释和语句 Java标识符、关键字 Java基本数据类型 Java常量、变量 Java数据类型转换 Java运算符 Java流程控制,编码规范,我们应从开始就养成良好的编程风格,软件编码规范指出:“可读性第一,效率第二” 编码规范往往在求职和开发中起到关键作用,单行注释:/开头 多行注释 :/*和*/之间,Java注释,语句、程序段、空白区域,语句占一行或多行,语句之间由分号隔开一
2、个程序段是由 和 包含的语句。在类的定义当中必须用 和 。可以使用嵌套语句在Java程序中允许使用任意长度的空白区域。空白区域可以是空格、Tab制表位或者是新的一行,标识符严格区分大小写 标识符可以字母、下划线或美元符号$开头,其它由字母、数字、下划线、$组成 标识符中不能含减号和空格(示范错误的命名)正确的路有一条,错误的路千万条,何苦与自己过不去。永远以字母开头,尽量不要包含其它符号实际开发中会有命名规范手册,Java标识符,Java标识符(续),标识符应采用有意义的名字 组成标识符的每个单词首字母应大写 类名应以大写开头 方法名、变量名应以小写开头 常量应全部大写,例: class Tr
3、afficTool; String getName();int carNumber=10; final float PI=3.1415926f;,Java关键字,Java保留某些单词做特殊用途,称为关键字,自定义标识符不要和关键字相同例:class this , String void都是错误的 自定义类名不要和Java本身的类名相同。例:class System 参考System程序 Java关键字都是小写,关键字列表,基本数据类型 byte short int long float double char boolean 循环关键字 do while for break continue,
4、分支关键字 if else switch case default break 方法、变量和类修饰符 private public protected final static abstract synchronized volatile transient,关键字列表(续),异常处理 try catch finally throw throws对象相关关键字 new extends implements class instanceof this super,字面值常量falsetruenull方法相关关键字returnvoid包相关关键字packageimport,Java基本数据类型,内
5、置基本数据类型 整型 : byte, short, int, long 浮点型 : float, double 字符型 : char 布尔型 : boolean 复合类型 class interface 数组,整型,byte 8位 (-128127) short 16位 (-3276832767) int 32位 (-231231-1) long 64位 (-263263-1)byte b=129; 编译报错,因为129超过了byte类型的取值范围,其它类似,float 32位 3.4e-383.4e+38 double 64位 1.7e-3081.7e+308 声明float变量时,在数字后
6、面加“F”或”f” 声明double变量时,在数字后面加“D”或”d” 如果没有任何指定,默认为double型,浮点型(小数),char 16位 字符型为双字节码,称为unicode,包括了全世界的各种语言符号,它采用16进值编码,范围从u0000到uFFFF,而ASCII码是其子集,只有256个,范围从u0000到u00FF 可以用一个整数代表一个char变量的值,例:char ch=97;等价于char ch=a,字符型,boolean 1bit 布尔型变量的值只有两个 true false,布尔型,Java基本数据类型平台无关性,Java的各种数据类型所占内存空间与具体的硬件、软件平台无
7、关,因此Java没有sizeof运算符,常量和变量,常量:其值不变用关键字final来实现 final 数据类型 常量名=值,常量名=值; 如:final int NUM=100;变量:其值可变 数据类型 变量名=值,变量名=值; 如:int count; int i=1, j=2;char c=a;,常量,数据类型,变量,Java常量,整型常量,十进制:以数字19开头 八进制:以数字0开头 十六进制:以0x(数字0和字母x)开头 注意:Java整型默认为int长整型常量:在数字后加”L”或”l”,十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.
8、0 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数 注意: 单精度数要在数字后加F或f,否则赋给float变量时编译报错,例:float f=1.2; 双精度数在数字后加D或d或不加Java浮点型默认为double,浮点型常量,由单引号括住,例:a,1,%某些不可打印的字符,用斜杠加一个字符表示,称为转义字符,例:t水平制表, n换行,字符常量,布尔常量,只有true和false两个值,注意都是小写不能将其转换成其它类型,字符串常量,由双引号括住,注意“a”和a不相同两个字符串可直接用+连接,例如:“hello”world”等价于“hello
9、world”字符串和其它类型用+连接,其它类型自动转成字符串,然后连接,例如:“”+a+1得到“a1”,Java变量,变量举例,boolean b=true; char c=a; char c=97; char c=n ; byte by=32; short sh=100; int i=32768 long l=123456789L; float f=0.2f; double d=3.4e5; String s=“hello”;,变量赋初值,自动变量:也称局部变量,在函数中定义,必须在使用前赋初值,否则编译报错 成员变量:是类的成员,若未赋初值,java自动赋默认值整型:0 浮点型:0.0ch
10、ar: (一个空格) boolean:false引用:null,自动变量未赋初值编译报错例子,int fn(int x)int y;if(x5) y=1;return y; 参见程序AutoVar,Java数据类型转换,自动转换需要满足两个条件: 类型相容 目标数据类型比原数据类型分配的内存空间大。参考TypeChange1,强制转换发生在相容数据类型间语法形式:(目标类型)值参考TypeChange2,自动类型转换,数据转换从低级到高级低-高byte-short(char) -int-long-float-double例如: byte b; int i=b;,强制类型转换,高级数据要转换成低
11、级数据,需用到强制类型转换,否则编译报错,如: int i; byte b=(byte)i; /把int型变量i强制转换为byte型 注意:强制转换有可能造成结果不对,例int i=266;byte b=(byte)i; 结果b=10,数据类型自动提升,当两个数据运算时,类型低的数据自动提升成类型高的后再运算操作数1类型 操作数2类型 提升后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float do
12、uble double参考TypeChange3程序,数据类型自动提升可能带来错误,byte b=5; b=b-2; /报错,因为Java中整数2默认为int,b-2时,b提升为int,b-2的结果也为int,将int型赋给byte型时需强制转换,应改为 b=(byte)(b-2);参见程序DataType,Java运算符,赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算符,赋值运算符,赋值运算符 (=) 用于为变量赋值 一次可以为多个变量赋值,如: int a = 10; int p,q,r,s; p = q = r = s = a;,算术运算符,关系运算符,关系运算符用于测试两个操作
13、数之间的关系。 关系表达式将返回一个布尔型结果。,逻辑运算符,逻辑运算符与布尔型数据一起使用,注意:&和& |和| 的区别,见下页,逻辑运算的“短路”,在逻辑表达式中,若连续出现多个“&”,按从左到右的顺序计算,只要一个表达式为假,就不再计算后面的表达式 在逻辑表达式中,若连续出现多个“|”,按从左到右的顺序计算,只要一个表达式为真,就不再计算后面的表达式 在逻辑表达式中,若“&”和“|” 交替出现,只要计算到某个表达式能决定全式的结果,就不再计算后面的表达式 而“&”和“|”则必须计算所有表达式 参见程序ShortCircuit,位运算符,只能用于整型 和 字符,参见程序BitDemo,运算
14、符说明,除号/:两个整数做除法,结果也为整数,小数舍弃留言板分页问题:假设你编了一个留言板程序,总留言数为x,你想每页显示6条留言,请问共有几页?参考LiuYanBan程序 取模%:比较运算符:注意是两个,少写一个,就成了赋值语句了,移位运算符说明,右移,左边空位补符号位,相当于/2 右移,左边空位补0,不管正负参见程序Shift 小技巧:1、用左移、右移实现乘除法要快得多2、如何快速求2的n次方,Java流程控制,选择 if-else switch 循环 while do-while For 跳转 break continue,Java 支持下列控制结构: 选择、循环、跳转,流程控制示意图,
15、if(条件表达式)语句组1; else 语句组2;,if-else 语句,三目条件运算符(?:),对于简单的ifelse语句,还有一种更简洁的写法:变量布尔表达式?语句1:语句2,例如:if(x0)y=x; elsey=-x; 可写成 y=x0?x:-x;,在ifelse语句中,else部分是选择性的。经常可以看到只有if语句,而没有else语句的情况。在这种情况下,当测试条件为假时如不需做任何事,else部分可被省略。这时,其语法形式如下:if(条件表达式)语句组;其流程如图3-3所示。,if 语句,if 语句(续),else必须有相配的if,不能单独存在if,else可以嵌套else if
16、可以对else中的情况再进行细分参考Condition程序,switch 语句,switch(表达式)case 常量值 1: 语句(组);break;case 常量值 2: 语句(组);break; case 常量值 N: 语句(组);break;default: 语句(组); ,表达式必须为byte、short、int或char类型;不能是浮点类型或long类型,也不能为字符串。,常量值必须是与表达式类型兼容的特定的一个常量 不允许有重复的case值,小技巧,每个分支语句最后应有break语句,否则程序一直向下执行,直到遇到break 我们也可利用这一特点,用同一段语句来处理多个case条件
17、,例如: case 1: case 2: case 3:语句(组);break; 参考SwitchDemo程序,Java中有三种语句来实现循环结构: while 循环while(表达式) 注意:while后面没有; 循环体; do-while循环 do 循环体; while(表达式); 注意:while后面有; for 循环for(表达式1; 表达式2; 表达式3) 循环体; 它们的结构分别如下图所示。,循环结构,无限循环的写法,while(true) 语句组 for(;) 语句组 ,跳转语句用来实现循环执行过程中的流程转移。在Java语言中,有两种跳转语句:break语句和continue语
18、句。 break用于强行退出循环,不执行循环中剩余的语句。continue则停止执行当前的循环,开始新的循环。 break语句和continue语句都有两种使用的形式:一种是不带标号的break语句和continue语句;一种是带标号的break语句和continue语句。,跳转语句,break 和 continue 语句,break 语句用于立即终止当前循环 break 标号,则终止标号所指的循环 continue 语句用于立即进入下一轮循环 continue 标号,则立即进入标号所指的下一轮循环,数组,属于复杂数据类型 由类型相同的元素组成的有顺序的数据集合 数组是固定的不能扩展 可以存储
19、基本数据类型或对象 通过数组名和下标可以访问各元素,创建数组,通用的一维数组的声明格式是:type var-name; 举例:int array_int ;String str; 利用new 来为数组型变量分配内存空间array_int=new int10;str=new String10; 两步可以合并,如:int String str=new String10;,怎样获得从键盘输入的字符,参见程序GetChar,怎样获得从键盘输入的字符串,参考GetString程序,命令行参数,Java 应用程序可以从命令行中接收任意数量的参数 每个参数被视为字符串分别存储在main函数的参数数组中 可以
20、使用双引号将多个字符串作为一个整体显示,命令行参数示例,class ComndLineArg1 public static void main(String args ) for(int i=0;iargs.length;i+) System.out.println(argsi); ,输出 结果,输出 结果,方法,有无返回值:无返回值,在方法名前加void有返回值,在方法前加返回类型,如:int,方法体最后要加return 基本格式:void(int、float) funName(paramList),总结2-1,Java 具有8种基本数据类型:byte、 short、 int、 long、
21、boolean、char、float 及 double Java 中的运算符可划分为四个子集:算术运算符、位运算符、关系运算符、逻辑运算符 & 运算符适用于如下子集:逻辑和位。逻辑 & 以条件表达式为操作数,而位 & 则以数字为操作数,总结2-2,Java 支持下列控制结构: 选择( if-else、switch) 循环(while、do-while、for) 跳转(break、continue) break 语句在循环中用于立即从当前循环终止控制 continue 语句则是从其调用处跳至循环的开始处 数组可用来将同一类型的数据存储在连续的内存位置,总结2-2,String,Math类的常用方法 从键盘接受字符 命令行参数,