1 / 177

Java 语言基础

Java 语言基础. 2003.3.12. 参考书 I. 《Java 与面向对象程序设计教程 》 《Java 与面向对象程序设计实验指导 与习题集 》 印旻 《Java 技术及其应用 》 王克宏等 高等教育出版社 《Java 与面向对象程序设计 》 印旻 清华大学出版社 《 Java 2 高级开发指南 》 Philip Heller 著 电子工业出版社. 参考书 II. 《 Java 语言规范 》

Download Presentation

Java 语言基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java语言基础 2003.3.12

  2. 参考书I • 《Java与面向对象程序设计教程》 • 《Java与面向对象程序设计实验指导 与习题集》 印旻 • 《Java技术及其应用》 王克宏等高等教育出版社 • 《Java与面向对象程序设计》 印旻 清华大学出版社 • 《Java 2高级开发指南》 Philip Heller著 电子工业出版社

  3. 参考书II • 《Java语言规范》 • (美)James Gosling Bill Joy Guy Steele • 《Java程序设计语言》 • (美)Ken Arnold,James Gosling • 《Java 2 轻松进阶》 • (美)Steven Holzner • 《 Java 2从入门到精通》 • (美)John Zukowski

  4. www.javasoft.com www.javaworld.com www.Sun.com www.GameLan.com www.EarthWeb.com www.ibm.com www.inprise.com www.oracle.com 中文Java新闻 www.sun.com.cn www.chinabyte.com www.ccw.com.cn Java FTP网站 ftp.java.sun.com 网上资源

  5. 第一部分 Java环境

  6. . java源码 编译器 CLIENT机 . class字节码 字节码下载 Web SERVER机 解释器 Java程序的开发、部署和执行 采用典型的C/S方式

  7. 程序结构与应用模式 • JAVA运行系统 和 JVM (Java Virtual Machine) • CLIENT端执行字节码的的系统 • 代码装入、代码验证、代码执行 • JAVA虚拟机:运行字节码的逻辑机,规则 • JAVA程序的结构:类,方法,语句组…… • APPLICATION 和 APPLET • 用JAVA编写的两类程序 • 程序组成结构、运行机制不同

  8. APPLICATION • 原理 • 由JAVA解释器独立运行字节码 • 由专门的命令行启动程序执行 • 程序中必须含有定义了main()主方法的主类 • 举例 //Filename: HelloWorld.java class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } }

  9. 包含一个main方法 -- 程序入口 交由Java解释器来使用 程序启动时,main中的代码首先执行 class ExampleProgram { public static void main(String[] args){ System.out.println("I'm a Simple Program"); } } public static void 关键字表示JVM解释器调用main启动程序而不产生类的实例,程序结束时不向JVM解释器返回数据 而对类的非static字段和方法存取时,必须产生实例

  10. 类的(必须)实例化举例 class JavaText { String text = "I'm a Simple Program"; static String text2 = "I'm static text"; String getText(){ return text; } String getStaticText(){ return text2; } public static void main(String[] args){ JavaText progInstance = new JavaText(); String retrievedText = progInstance.getText(); String retrievedStaticText = progInstance.getStaticText(); System.out.println(retrievedText); System.out.println(retrievedStaticText); } }

  11. JAVA开发工具 • J2SDK 1.3.0 (Sun)命令行 • Forte for Java (Sun) • JBuilder 3.5\4.0(Inprise) IDE • Visual J++ 6.0(MicroSoft) • Visual Cafe 4.0(Symantec) • Visual Age for Java 3.5(IBM) • …...

  12. Javac 编译器 用法: javac [options] filename.java 其中,[option]主要包括: -g 生成调试信息 -O 优化 -nowarn 不生成告警信息 -verbose 输出长格式的编译信息 -deprecation 过期方法的提示信息 -classpath <路径> 定义 .class文件的路径 -sourcepath <路径> 定义 .java文件的路径 -d <目录>定义 .class文件的目录

  13. Java Application 运行程序 用法: Java [option] classname[args...] 其中,[option]主要包括: -cp -classpath <目录和zip/jar文件;> 设置应用类和资源的搜索路径 -D<名称>=<值> 重定义某一特征值 -verbose[:class|gc|jni] 允许显示长输出信息 -version 显示java产品的版本 -? -help 显示帮助信息

  14. 编译和执行Java程序 以前边的 HelloWorld.java程序为例 在命令符编译程序方式下: javac HelloWorld.java 完成后生成一名为 HelloWorld.class 的文件,该文件中存放编译后的字节码。 执行程序: java HelloWorld

  15. 其它一些工具 • Javadoc 生成Java文档 • Jdb 进入调试环境 • Javah 编译生成字节码文件和本地C/C++头文件 • rmc • …...

  16. 第二部分 Java语言特点

  17. Java语言的特点 概括讲Java有以下10个主要特点: • 简单性:易学、易用 • 面向对象 • 完全基于类、对象:OOA,OOD,OOP • 以类的形式组织代码,数据类型 • 封装、继承、多态 • 与机器无关的字节码编译: • 体系结构中立 • 支持语言级多线程:(multi-thread)

  18. 无需用户进行内存管理 • 稳固性 • 检查数据类型的匹配,数组下标越界 • 不支持指针,保护内存数据、程序 • 自动内存管理,碎片收集 • 异常控制机制,正确处理运行时错误 • 安全性 • 字节码加密传输,客户端校验 • 解释器在client端临时分配、布置内存. • 动态性:动态联编 • 高性能:安全、稳定、移植的代价 • 高效字节码 • JIT(Just-In-Time)及时编译 • 嵌入C代码

  19. Java与C++的比较 • 对同一个项目进行开发,据估计用Java语言比用C++语言可节省1/3到1/2的时间。 • Java与C、C++风格相同。 • Java摒弃了C、C++中的存储管理及与其相关联的Pointer操作,代之以GC(自动存储管理系统)。

  20. Java的显著缺点: • 运行速度慢, 特别是在桌面系统上太慢 • 运行时所带的类库太庞大。 • Java标准缺少一家开放标准组织的管理(目前,SUN公司是Java规范的和标准的仲裁者) • Java的可伸缩性,即Java应用程序能否与企业的发展保持同步 • Java应用跨平台的迁移问题,即对操作系统和浏览器进行定制 令人担心的是,这些缺点成为MS C#的制胜之的。

  21. 第三部分 Java基础语法

  22. 主要内容 • 标识符及其在声明中的限定 • 文字 • 转义序列 • 关键字 • 代码块 • 表达式 • 运算符 • 数据类型(与C++有区别) • 循环结构 • 分支语句

  23. 一、JAVA语法

  24. 程序语言的八大要素 任何语言都有语法规则和限定,以定义如何写 程序,特别是语言的要素及其使用方法。 • 标识符 Identifier • 常量 Literal • 关键字 Keyword • 语句 Statement • 代码块 Code block • 注释 Comment • 表达式 Expression • 运算符 Operator

  25. 1、标识符 用于唯一标识一个变量、方法或类的名称。 限定如下 • 区分大小写 • 字母、数字、_、$组成,字母、_、$开头 • 不能包含不可见的空格(Tab、Space、换行或回车) • 不能是关键字 • 尽量避免以_、$开头,原因是使用本地方法的一些C库名这样使用。

  26. 并有以下约定 • 类名 每个词首字母大写(Mammal,SeaMammal) • 函数名 第二个词开始首字母大写(getAge,setHeight) • 变量名 同上 (age,brainSize) • 常量名 每个字母均大写,且用_分隔每个词 (MAX_HEIGHT,MAX_AGE)

  27. 2、常量 用于表示永远不变的值 例: 35 • 算术数值(整数或浮点数), • 布尔值, • 字符或字符串

  28. 3、整数常量 三种格式 • 十进制 • 十六进制 以0x或0X开头 • 八进制 以0开头 例:10=0xA或0xA=012 四种存储类型: byte、short 、int(缺省32位)或long 常量后加l或L可存贮64位 例: int x=12345; int y =x*4;

  29. 4、浮点常量 两种存贮类型 • 64位double类型(缺省) • 32位float类型(常量后加f或F)

  30. 5、布尔常量 表示两种状态 true或false(关键字) boolean类型 C/C++中可用0-false, 非0-true

  31. 6、字符常量 表示单个Unicode字符, 并以‘括起来 char类型 例:‘A’、‘9’ 注: Unicode字符集为16位(0~65535), ASCII码字符集为8位

  32. 7、转义符 与C/C++类似 后斜线 \\ 退格 \b 回车 \r 续行 \ 双引号 \” 换页 \f 水平Tab \t 换行 \n 八进制字符\DDD (三位八进制数), 例: \071=57 单引号 \’ Unicode \uHHHH (四位十六进制数), 例: \0039=57 举例:String escapeDemo=new String(“Name\t\tID\n\“Joe\ Smith \”\t\t\“999\””);

  33. 8、字符串常量 表示字符序列 (“”) 以类String和类StringBuffer的对象方式存贮 C/C++中使用字符数组存贮

  34. 9、关键字 预定义的一些标识符 分类: • 数值声明(boolean,float,int) • 循环 (continue,while,for) • 条件 (if,else,switch) • 例外 (try,throws,catch) • 结构 (class,extends,implements) • 修饰符和存取(private,public,transient) • 杂项 (true,null,super) • ......

  35. 10、语句 编译器可以识别的单个命令或代码行 物理上的代码行和语句有区别(非一一对应) 用;分隔语句 编译器只认; 而不关心语句的长度 举例 • x=(y+z)/q; • x= (y+z )/q; 在字符串中通过\连接多行的字符串

  36. 11、代码块 一组语句按功能划分为一个单元(以{}界定) 代码块可以嵌套 举例 public frmResolver() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } }

  37. 12、注释 行注释 // (单行) 块注释 /* */ (多行) 文本注释 /** */ (由Javadoc生成文档)

  38. 13、表达式 标识符、 关键字、符号和运算符的有意义的组合体。 出现在赋值符号的右边, 类型分为: • 变量赋值 • 运算符表达式 • 方法调用 • 对象分配 举例: s=“Hello World!”; x=1234; y=(x*5)/2; value=getValue(); Mammal m=new Mammal();

  39. 14. 运算符 对操作数完成特定功能的特殊符号 • 算术运算符(整数、浮点数) • 双目运算符 +,-,*,/,%(取余) +号:可连接字符串 “He”+“llo” • 单目运算符(自运算符) ++,- -,运算符的位置决定自运算的顺序 a=3,b=5; c=(a++)*b; a=?,c=? • 移位:<<,>>,>>>不带符号右移;A>>>B

  40. 逻辑运算符 • 表示两个布尔量的逻辑关系,结果仍为布尔量 • 双目:(与、或) • 非简洁运算符:&,|,^ nA> nB | fn(nA) • 简洁运算符:&&,|| nA> nB || fn(nA) (短路) • 单目:!(否) 举例 if(!isHighPressure&&(Temperature1> Temperature2)){} boolean1=(x>y)||(a>b); boolean2=(10>5)&(5>1);

  41. 关系运算符 • 对两运算量大小关系的比较,结果是布尔量 • >,<,>=,<=,!=,==(与=不同) 举例 m1=new mammal(); m2=new mammal(); boolean b1=m1==m2; //b1 is false m1=m2; boolean b2=m1==m2; //b2 is true 更多情况下,使用equals()来比较对象

  42. 三目条件运算符(?:) • D=表达式A?表达式B:表达式C • A为真,返回表达式B • A为假,返回表达式C • 总是返回B,C中的长类型 举例 int x=3,y=4,max; max=(x>y)?x:y;

  43. 赋值运算符 • =,+=,-=,*=,/=,%=,&=,|=,^= 举例: a+=b => a = a + b; a -= b => a = a - b; int y=2; y*=2; boolean b1=true; b1&=b2;

  44. 位运算符 两种:移位和布尔 Java中整数是有符号的,移位保护符号位(>>>除外) C/C++中整数缺省是有符号的,移位改变符号位 ~ ~op1 按位取反 << op1<<op2 op1左移op2位 >> op1>>op2 >>> op1>>>op2 op1带0填充右移op2位 & op1&op2 与 | op1|op2 或 ^ op1^op2 异或 <<= op1<<=op2 op1=op1<<op2 >>= op1>>=op2 op1=op1>>op2 >>>= op1>>>=op2 举例:short i=13; i=i<<7; i>>=3;

  45. 运算符的优先级 • 算术运算符 > 关系运算符和 大部分逻辑运算符(除了!号)> 赋值运算符 • 括号最优先

  46. 二、数据类型

  47. 为实体,用于表示可以存储在内存中的特殊类型的值,并由编译器以一种特殊的方式翻译。 分为 • 基本:数值型、布尔型和字符型 (无需特殊库,编译器就可以理解) • 复合:数组和字符串 (需要特殊库的支持)

  48. 1. 变量 声明格式 数据类型 标识符 [=缺省值]; 举例:int p; float x,y=4.1,z=2.2; boolean endOfFile=false; char char1=‘T’; Java为强类型语言,变量先声明,后使用 声明位置任意

  49. 2.基本数据类型 • 数值型 类型 大小(位) 范围 byte 8 小符号整数(-128~127) short 16 短符号整数(-32768~32767) int 32 符号整数(-2.14e+9~2.14e+9) long 64 长符号整数(-9.22e+18~9.22e+18) float 32 浮点数(1.402e-45~3.402e+38) double 64 双精度浮点数(4.94e-324~1.79e+308) 缺省值为0, C/C++中为随机数

More Related