JAVA培训(一)ppt.ppt

上传人:啊飒飒 文档编号:11946718 上传时间:2021-11-13 格式:PPT 页数:114 大小:2.16MB
返回 下载 相关 举报
JAVA培训(一)ppt.ppt_第1页
第1页 / 共114页
JAVA培训(一)ppt.ppt_第2页
第2页 / 共114页
JAVA培训(一)ppt.ppt_第3页
第3页 / 共114页
JAVA培训(一)ppt.ppt_第4页
第4页 / 共114页
JAVA培训(一)ppt.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

《JAVA培训(一)ppt.ppt》由会员分享,可在线阅读,更多相关《JAVA培训(一)ppt.ppt(114页珍藏版)》请在三一文库上搜索。

1、Java 科园-颜诗超 自我介绍 架构师、产品经理 东软、Tieto、平安科技 现在创业中(小豹科技) 课程整体内容 1. 基础java(面向对象、语法、java基础类库 、内存管理)2课时 2. 高级java(多线程、socket、NIO、编程规范)2课时 3. javaWEB开发(servlet、spring、springmvc、mybatis、事务、quartz、前后端验证、poi、 maven、jenkins等)6课时 4. java调优与问题诊 断(调试、问题定位、性能调优)2课时 5. centos和tomcat服务器与高可用等(javaweb应用的部署环境centos、tomca

2、t等服务器及高可用环 境haproxy、keepalived的使用)2课时 6. 基于java的架构设计(针对示例项目的架构设计-基于功能性需求、非功能需求做出适合此项目的 架构设计)2课时 1.语言基础 2.面向对象 3.基础类库 4.java的内存管理 1 语言基础 1 语言基础 本章是讲述java语言的基础语法。 课程内容: 1.1Java语言入门 1.2标识符、关键字和数据类型 1.3运算符,表达式和语句 1.4数组 1.5方法的封装 1.1.1 Java特点 简单 面向对象 与平台无关 健壮性(Java的强类型机制、异常处理、内 存的自动收集等) 1.1.2 Java程序开发基本过程

3、 Java编程基础 Java的基本语法格式: 所有的java程序都应该写在类中 class 类的修饰符:public和默认修饰符 public class MyFirstJavaApp public static void main(String args) System.out.println(“This is My First Java Application!”); 1.1.3 Java程序开发基本过程 编译Java程序 JavacMyFirstJavaApp.java 运行Java程序 JavaMyFirstJavaApp 1.1.4 Java程序开发基本过程 Java注释 单行注释

4、/ 多行注释 /*/ 文档注释 /*/ 1.1.5 开发工具 Eclipse IntellijIDEA 1.2 标识符、关键字和数据类型 1.2.1标识符 1.2.2关键字 1.2.3数据类型 1.2.4常量 1.2.5变量 1.2.6类型转换 1.2.1 标识符 标识符命名规则 定义:Java对各种变量,方法和类等要素命名时使用的字符 序列称为标识符 规则: 标识符应以字母,下划线,美元符号开头 标识符应以字母,下划线,美元符号或数字组成 标识符对大小写敏感,长度无限止 合法的标识符: Indentifier、username、user_name、_userName、$username 非法

5、的标识符: class、98.3、HelloWorld 1.2.2 关键字 abstractdoimplementprivatethis booleandoubleimportprotectedthrow breakelseinstanceofpublicthrows byteextendintreturntransient casefalseinterfaceshorttrue catchfinallongstatictry charfianllynativestrictfpvoid classfloatnewsupervolatile continuefornullswitchwhile

6、defaultifpackagesynchronized 注:java 无sizeof ,goto, const 关键字,但不能用goto const作为变量名 1.2.3 数据类型 数据类型 基本数据类型 引用数据类型 类 接口 数组 数值型 字符型(char) 布尔型(boolean) 整数型(byteshort Intlong) 浮点型(float, double) 1.2.4 常量 常量:就是持续不变的值 常量类型: 整型常量: 十进制(12) ,十六进制 (0 x12),八进制 (012) 长整型常量: 13L 浮点数常量: (1)单精度浮点数 5.1f,.4f,2e3f,0f (2

7、)双精度浮点数 5.1,.4,2e-3,0d 布尔常量: true和false 1.2.4 常量 字符常量 : a, 8, u0027 r表示接受键盘输入,相当于按下了回车键; n是换行; t是制表符,相当于table键; b是退格键,相当于BackSpace; 是单引号,而“是双引号; 是一个斜杠“”。 字符串常量 : “HelloWorld“,”123”, WelcomenXXX“ null常量 : null常量只有一个值,用null表示,表示对象的引用为空 1.2.5 变量 变量概念 变量就是系统为程序分配的一块内存单元,用来存储各种 类型的数据。先声明,再使用 变量的元素 变量名,变量

8、值,变量的作用范围 变量定义 intx=0,y; y=x+3; x和y就是变量 1.2.5 变量 变量字节大小及有效取值范围 byte占用一个字节,数字大小为-2727-1 short占用两个字节,数字大小为-215215-1 int占用四个字节,数字大小为-231231-1 long占用八个字节,数字大小为-263263-1 float占用四个字节,数字大小为1.4E-453.4E+38,-1.4E-45-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:101*22,101*2-3 double占用八个字节,数字大小为4.9E-3241.7E+308,-4.9E-324- 1.

9、7E+308。 char占两个字节,数字大小为0216-1,是unicode编码。字符的本来面 目,我们为什么可以直接将一个数字赋给字符变量。 Boolean占一个字节,有两种取值,true和false。 1.2.5 变量 变量作用域 变量要先定义,后使用,但不是在变量定义后的语句中一 直都能使用前面定义的变量。比如:可以用大括号将多个 语句包起来形成一个复合语句,则复合语句中定义的变量 只能在定义它的复合语句中使用。 局部变量 在方法或方法中的代码块中定义的变量称为局部变量 成员变量 在方法外,在类内部定义的变量 1.2.5 变量 局部变量的定义 在方法或方法中的代码块中定义的变量称为局部变

10、量,局 部变量在方法或代码块被执行时创建,在方法或代码块结 束时被销毁。 局部变量的初始化 局部变量在进行取值操作前必须被初始化,否则会出现编 译错误 1.2.6 类型转换 自动类型转换(也叫隐式类型转换) byteb=3; intx=b;/b被自动转换为int型 强制类型转换(也叫显式类型转换) bytea; intb; a=(byte)b;/b被强制转换为byte型 1.3 运算符,表达式和语句 1.3.1运算符 1.3.2表达式 1.3.3控制语句 1.3.1 运算符 何为运算符 运算符是一种特殊符号,用以表示数据的运算、赋值和 比较,一般由一至三个字符组成 。 运算符类型 算术运算符

11、赋值运算符 比较运算符 逻辑运算符 位运算符 移位运算符 1.3.1 运算符 1.3.1 运算符 算术运算符的注意问题 “+”除字符串相加功能外,还能把非字符串转换成字符串 ,如: “x”+123;的结果是“x123”。 如果对负数取模,可以把模数负号忽略不记,如:5%- 2=1。但被模数是负数就另当别论了。 对于除号“/”,它的整数除和小数除是有区别的:整数之间 做除法时,只保留整数部分而舍弃小数部分。 int x=3510;x=x/1000*1000;实际运行结果是3000,想想为什 么? 1.3.1 运算符 赋值运算符 1.3.1 运算符 赋值运算符注意: 注1:在JAVA里可以把赋值语

12、句连在一起,如: x=y=z=5; 在这个语句中,所有三个变量都得到同样的值5。 注2:x+=3等效于x=x+3,等于*=,-=,/=依此类 推。 1.3.1 运算符 比较运算符 1.3.1 运算符 比较运算符注意: 注1:比较运算符的结果都是boolean型,也就是要么是 true,要么是false。 注2:比较运算符“=”不能误写成“=” 1.3.1 运算符 逻辑运算符 1.3.1 运算符 逻辑运算符注意点 注1:逻辑运算符用于对boolean型结果的表达式进行运 算,运算的结果都是boolean型 。 注2:“ case常量2: 语句 break; default: 语句 break;

13、1.3.3控制语句 switch选择语句: switch(x)/x只能为int、byte、char、short case1:System.out.println(“Monday”); break; case2:System.out.println(“Tuesday”); break; case3:System.out.println(“Wednesday”);break; default:System.out.println(“Idontknow”); 思考:无break的情况 1.3.3控制语句 for循环语句 for(初始化表达式;布尔值测试表达式;更改表达式) 语句或语句块; 例:for

14、(inti=0;i= 0) size = newSize; public int getSize() return size; Spot对象实例 private Spot spot = null; . spot = new Spot(); spot.setSite(1); 示例中的继承和接口 public class ClickMe extends JComponent implements MouseListener . public class ClickMe extends JComponent implements MouseListener . /Methods required b

15、y the MouseListener interface. public void mousePressed(MouseEvent event) if (spot = null) spot = new Spot(); spot.setSize(RADIUS); spot.x = event.getX(); spot.y = event.getY(); repaint(); public void mouseClicked(MouseEvent event) public void mouseReleased(MouseEvent event) public void mouseEntered

16、(MouseEvent event) public void mouseExited(MouseEvent event) 多态 TestPolymoph/Te st.java 多态是指在执行 期间(而非编译期) 判断所引用对象的 实际类 型,根据其 实际的类型调用其 相应的方法。 上面例子中,根据 Lady对象的成员变 量Pet所引用的不同 的实际类 型而调用 相应的enjoy方法。 classBirdextendsAnimal privateStringfeatherColor; Bird(Stringn,Stringf) super(n); this.featherColor=f; pub

17、licvoidenjoy() System.out.println(鸟叫声.); publicclassTest publicstaticvoidmain(Stringargs) Birdb=newBird(“birdname”,”green”); Ladyl3=newLady(l3,b); l3.myPetEnjoy(); 1.要有继承 2.要有重写 3.父类引用指向子类对象 3 重点类库 为什么java很流行? 丰富的类库是很重要的因素。 java常用的包介绍 java.langjava的核心类基本类,如 :String,Integer,System,Runtime等。 java.io输入

18、输出的类 网络连接相关的类 java.niojdk1.4后出现的新的io包,更高的效 率。 java.util 一些工具类类,如数据结结构相关的类类。 java.lang.reflect反射相关的类。 java.security 安全相关的类类。 更多请参考jdk 文档。 字符和字符串 Java API提供了四个处理字符数据的类: Character:这个类的实例可以容纳单一的 字符数值。该类还定义了一些简洁的方法 来操作或者检查单一字符数据。 String:这个类用于处理由多个字符组成 的不可变数据。 StringBuffer:这个类用于存储和操作由 多个字符组成的可变数据。线程安全。 St

19、ringBuilder 非线程安全的 StringBuffer,效率更高 异常类 在Java中,将异常情况分为Exception(异常)和Error(错误)两大类。Error类 对象由Java虚拟机生成并抛出;Exception类对象由应用程序处理或抛出。 Object Throwable ExceptionError 异常类的继承结构 checked异常与unchecked异常 RuntimeException类及其子类被称为“运行 时异常” 一般发生在JRE内部 也称“非必检异常” 如NullPointerException 其他异常被成为“非运行时异常” 一般发生在JRE外部 也称“必检

20、异常” 如IOException 异常处理的一般步骤 异常抛出 异常捕获 异常处理 try 抛出异常的代码 catch (某Exception类型 e) 处理该异常类型的代码 catch (某Exception类型 e) 处理该异常类型的代码 finally Io包 Reader与Writer类 Reader类的相关方法: void close() void mark(int readAheadLimit) boolean markSupported() int read() int read(char cbuf) int read(char cbuf, int off, int len) b

21、oolean ready() void reset() long skip(long n) Writer类的相关方法: void close() void flush() void write(char cbuf) void write(char cbuf, int off, int len) void write(int c) void write(String str) void write(String str, int off, int len) 流的使用(1) I/O类型流作用 内存 CharArrayReader CharArrayWriter ByteArrayInputStre

22、am ByteArrayOutputStream 用来从内存读取数据或向内存写入数据 StringReader StringWriter StringBufferInputStream 从内存里的某个String或StringBuffer读 字符或字节 管道 PipedReader PipedWriter PipedInputStream PipedOutputStream 实现一个输入、输出管道。管道可用于 一个线程的输出连接到另一个线程的输入 流的使用(2) 文件 FileReader FileWriter FileInputStream FileOutputStream 用于对本机文件系

23、统上的一个 件行读写 对象串行化 ObjectInputStream ObjectOutputStream 将对象串行化 打印 PrintWriter PrintStream 包含便捷的打印方法的流。 流的使用(3) 缓冲 BufferedReader BufferedWriter BufferedInputStream BufferedOutputStream 缓冲流,用于在读写时进行数据缓冲 过滤 FilterReader FilterWriter FilterInputStream FilterOutputStream 过滤流的抽象类接口。数据读写时对 数据进行过滤 在字节和 字符之间

24、转换 InputStreamReader OutputStreamWriter 字节流和字符类间的转换桥梁 Serializable接口 并非所有对象都是可串行化的,如果要对某 对象进行串行化,该对象的类必须实现 Serializable接口 Serializable接口是一个空接口,也就是说 ,它不包含任何方法的声明,该接口的作用 只是表明这个类的对象可以被串行化 数据结构类 集合框架中的接口 Collection:集合层次中的根接口,JDK没 有提供这个接口直接的实现类 。 Set:不能包含重复的元素。SortedSet是一 个按照升序排列元素的Set。 List:是一个有序的集合,可以包

25、含重复的 元素。提供了按索引访问 的方式。 Map:包含了key-value对。Map不能包含 重复的key。SortedMap是一个按照升序排 列key的Map。 集合框架中的实现类 SortedSet Set List Map HashSet LinkedHashSet TreeSet ArrayList LinkedList SortedMap HashMap TreeMap ArrayList ArrayList:我们可以将其看作是能够自动 增长容量的数组。 ArrayList 向ArrayList对象中添加任何对象 使用size()方法打印所有对象 直接输出一个ArrayList对象

26、 自定义类应该 重写toString()方法以便输出时被自动调用 使用toArray()方法转换为对 象数组 使用Arrays.asList(Objecto)返回一个列表 返回的列表的大小固定,不能添加元素,可以使用set()方 法修改节点的元素,否则会抛出不支持的操作异常 (UnsupportedOperationException)。 ArrayList 迭代器(Iterator)给我们提供了一种通用的方式来 访问集合中的元素。 remove()方法是一个可选的操作,实现Iterator接口可以 选择实现该 方法,或做空实现并抛出不支持的操作异常 (UnsupportedOperation

27、Exception),类库采用这种 方式避免产生太多的接口,否则会增加学习的难度。 迭代器的工作原理 返回的元素删除的元素 next() remo ve() next() Collections类 排序:Collections.sort() (1)自然排序(natural ordering); (2)实现 比较器(Comparator)接口。 取最大和最小的元素:Collections.max()、 Collections.min()。 在已排序的List中搜索指定的元素: Collectons.binarySearch()。 LinkedList LinkedList是采用双向循环链 表实现

28、 的。 利用LinkedList实现栈 (stack)、队列 (queue)、双向队列(double-endedqueue) 。 数据结构 一般将数据结构分为两大类:线线性数据结结 构和非线线性数据结结构。线性数据结构有线 性表、栈、队列、串、数组和文件;非线 性数据结构有树和图。 栈 栈(Stack)也是一种特殊的线性表 ,是一种后进先出(LIFO)的结 构。 栈是限定仅在表尾进行插入和删 除运算的线性表,表尾称为栈顶 (top),表头称为栈底(bottom)。 栈的物理存储可以用顺序存储结 构,也可以用链式存储结构。 a1a1 a2a2 anan 栈 底 栈 顶 出 栈 进 栈 队列 队列

29、(Queue)是限定所有的插入只能在表的一端进行,而 所有的删除都在表的另一端进行的线性表。 表中允许插入的一端称为队尾(Rear),允许删除的一端称 为队头 (Front)。 队列的操作是按先进先出(FIFO)的原则进行的。 队列的物理存储可以用顺序存储结构,也可以用链式存 储结构。 a1a2a3a1a2a3 anan 队 头 队 尾 出 队 入 队 ArrayList和LinkedList的比较 ArrayList底层采用数组完成,而LinkedList 则是以一般的双向链表(double-linkedlist) 完成,其内每个对象除了数据本身外,还 有两个引用,分别指向前一个元素和后一

30、个元素。 如果我们经 常在List的开始处增加元素,或 者在List中进行插入和删除操作,我们应该 使用LinkedList,否则的话,使用ArrayList 将更加快速。 HashSet 实现 Set接口的hashtable(哈希表),依靠 HashMap来实现 的。 我们应该为 要存放到散列表的各个对象定 义hashCode()和equals()。 TreeSet TreeSet是依靠TreeMap来实现 的。 TreeSet是一个有序集合,TreeSet中元素将 按照升序排列,缺省是按照自然顺序进行 排列,意味着TreeSet中元素要实现 Comparable接口。 我们可以在构造Tre

31、eSet对象时,传递实 现了Comparator接口的比较器对象。 HashSet和TreeSet的比较 HashSet是基于Hash算法实现 的,其性能 通常都优于TreeSet。我们通常都应该 使用 HashSet,在我们需要排序的功能时,我们 才使用TreeSet。 HashMap HashMap对key进行散列。 keySet()、values()、entrySet()。 TreeMap TreeMap按照key进行排序。 HashMap和TreeMap的比较 和Set类似,HashMap的速度通常都比 TreeMap快,只有在需要排序的功能的时候 ,才使用TreeMap。 4 java内存管理 如何回收内存 System.gc() finallize() 垃圾回收机制 字符串的内存管理 Stringa=“aaa”; Stringb=“aaa”; 内存中”aaa”有多少份呢? 看看下面的代码 内存使用建议 课后练习 往一个文件中写入100万个随机整数,用逗 号分隔,并存储到硬盘中。 将这100万个整数进行排序后再写入到另外 一个文件中。 请大家注意程序的效率。效率?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1