JAVA培训一ppt.pptx
- 文档编号:18728107
- 上传时间:2023-10-21
- 格式:PPTX
- 页数:114
- 大小:2.14MB
JAVA培训一ppt.pptx
《JAVA培训一ppt.pptx》由会员分享,可在线阅读,更多相关《JAVA培训一ppt.pptx(114页珍藏版)》请在冰点文库上搜索。
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、tomcat等服务器及高可用环境haproxy、keepalived的使用)2课时6.基于java的架构设计(针对示例项目的架构设计-基于功能性需求、非功能需求做出适合此项目的架构设计)2课时,语言基础面向对象基础类库java的内存管理,1语言基础,1语言基础,本章是讲述java语言的基础语法。
课程内容:
1.1Java语言入门1.2标识符、关键字和数据类型1.3运算符,表达式和语句1.4数组1.5方法的封装,1.1.1Java特点,简单面向对象与平台无关健壮性(Java的强类型机制、异常处理、内存的自动收集等),1.1.2Java程序开发基本过程,Java编程基础Java的基本语法格式:
所有的java程序都应该写在类中class类的修饰符:
public和默认修饰符,publicclassMyFirstJavaApppublicstaticvoidmain(Stringargs)System.out.println(“ThisisMyFirstJavaApplication!
”);,1.1.3Java程序开发基本过程,编译Java程序JavacMyFirstJavaApp.java运行Java程序JavaMyFirstJavaApp,1.1.4Java程序开发基本过程,Java注释单行注释/多行注释/*/文档注释/*/,1.1.5开发工具,EclipseIntellijIDEA,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非法的标识符:
class、98.3、HelloWorld,1.2.2关键字,注:
java无sizeof,goto,const关键字,但不能用gotoconst作为变量名,1.2.3数据类型,1.2.4常量,常量:
就是持续不变的值常量类型:
整型常量:
十进制(12),十六进制(0x12),八进制(012)长整型常量:
13L浮点数常量:
(1)单精度浮点数5.1f,.4f,2e3f,0f
(2)双精度浮点数5.1,.4,2e-3,0d布尔常量:
true和false,1.2.4常量,字符常量:
a,8,u0027r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于BackSpace;是单引号,而“是双引号;是一个斜杠“”。
字符串常量:
“HelloWorld“,”123”,WelcomenXXX“null常量:
null常量只有一个值,用null表示,表示对象的引用为空,1.2.5变量,变量概念变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。
先声明,再使用变量的元素变量名,变量值,变量的作用范围变量定义intx=0,y;y=x+3;x和y就是变量,1.2.5变量,变量字节大小及有效取值范围byte占用一个字节,数字大小为-2727-1short占用两个字节,数字大小为-215215-1int占用四个字节,数字大小为-231231-1long占用八个字节,数字大小为-263263-1float占用四个字节,数字大小为1.4E-453.4E+38,-1.4E-45-3.4E+38。
用二进制的指数形式表示一个浮点数的格式,如:
101*22,101*2-3double占用八个字节,数字大小为4.9E-3241.7E+308,-4.9E-324-1.7E+308。
char占两个字节,数字大小为0216-1,是unicode编码。
字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。
Boolean占一个字节,有两种取值,true和false。
1.2.5变量,变量作用域变量要先定义,后使用,但不是在变量定义后的语句中一直都能使用前面定义的变量。
比如:
可以用大括号将多个语句包起来形成一个复合语句,则复合语句中定义的变量只能在定义它的复合语句中使用。
局部变量在方法或方法中的代码块中定义的变量称为局部变量成员变量在方法外,在类内部定义的变量,1.2.5变量,局部变量的定义在方法或方法中的代码块中定义的变量称为局部变量,局部变量在方法或代码块被执行时创建,在方法或代码块结束时被销毁。
局部变量的初始化局部变量在进行取值操作前必须被初始化,否则会出现编译错误,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运算符,何为运算符运算符是一种特殊符号,用以表示数据的运算、赋值和比较,一般由一至三个字符组成。
运算符类型算术运算符赋值运算符比较运算符逻辑运算符位运算符移位运算符,1.3.1运算符,1.3.1运算符,算术运算符的注意问题“+”除字符串相加功能外,还能把非字符串转换成字符串,如:
“x”+123;的结果是“x123”。
如果对负数取模,可以把模数负号忽略不记,如:
5%-2=1。
但被模数是负数就另当别论了。
对于除号“/”,它的整数除和小数除是有区别的:
整数之间做除法时,只保留整数部分而舍弃小数部分。
intx=3510;x=x/1000*1000;实际运行结果是3000,想想为什么?
1.3.1运算符,赋值运算符,1.3.1运算符,赋值运算符注意:
注1:
在JAVA里可以把赋值语句连在一起,如:
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:
“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。
如果使用后者连接,当“&”的左边为false,则将不会计算其右边的表达式。
“|”和“|”的区别与“&”和“&”的区别一样。
1.3.1运算符,位运算符任何信息在计算机中都是以二进制的形式保存的,&,|,除了可以作为逻辑运算符,也可以做为位算符,它们对两个操作数中的每一个二进制位都进行运算。
只有参加运算的两位都为1,&运算的结果才为1,否则就为0。
只有参加运算的两位都为0,|运算的结果才为0,否则就为1。
只有参加运算的两位不同,运算的结果才为1,否则就为0。
1.3.1运算符,移位运算符右移无符号右移,1.3.1运算符,移位运算的注意事项及小技巧移位运算符适用类型有byte、short、char、int、long对低于int型的操作数将先自动转换为int型再移位。
对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数。
例如:
a33和a1结果是一样的,a32的结果还是a原来的数字。
对于long型整数移位时ab,则是先将移位位数b对64取模。
移位不会改变变量本身的值。
如a1;在一行语句中单独存在,毫无意义。
x1的结果和x/2的结果是一样的,x2和x*4的结果也是一样的。
总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方。
请思考:
如何用程序实现求2的x次方。
答案:
y=1x;,1.3.1运算符,高低,运算符的优先级,1.3.1运算符,编程技巧运算符的优先级顺序不用刻意去记,使用括号控制优先级不但能降低编程的难度,而且能增加程序的可读性,1.3.2表达式,表达式语句:
符合一定语法规则的操作数和运算符的序列例:
b;b+5;a10&b10表达式的运算顺序先按照运算符的优先级优先级相同的,按照约定的结合方向表达值的值和类型,1.3.3控制语句,条件控制语句循环控制语句特殊的循环流程控制,1.3.3控制语句,条件控制语句Ifelse语句的语法:
If(布尔表达式)语句或语句块If(布尔表达式)语句或语句块elseif(布尔表达式)语句或语句块else语句或语句块,1.3.3控制语句,switch语句的语法switch(表达式1)case常量1:
语句break;case常量2:
语句break;default:
语句break;,1.3.3控制语句,switch选择语句:
switch(x)/x只能为int、byte、char、shortcase1:
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(inti=0;i=10;i+)System.out.println(“i=”+i);,1.3.3控制语句,while循环while(布尔值)语句或语句块;注意:
while表达式的括号后不能加“;”,否则会造成不易察觉的无限循环,1.3.3控制语句,dowhile循环do语句或语句块;while(布尔测试)注意:
while表达式的括号后要加“;”,1.3.3控制语句,思考:
while循环和dowhile循环的不同之处while循环先判断循环条件,再执行循环体dowhile循环先执行循环体,再判断循环条件,1.3.3控制语句,break与continue语句break:
终止循环体中的执行语句和switch语句,跳转到当前循环的下一条语句continue:
只能用于while、dowhile、for语句中,终止当前这次循环,执行下一次循环,1.3.3控制语句,特殊的循环流程控制break语句do语句;If(条件为真)break;语句while(布尔表达式);,1.3.3控制语句,特殊的循环流程控制continue语句do语句;If(条件为真)continue;语句while(布尔表达式);,1.4数组,1.4.1声明数组1.4.2创建数组1.4.3数组初始化1.4.4数组中注意的问题1.4.5多维数组,1.4.1声明数组,声明数组:
数组类型数组名IntaaIntaa,1.4.2创建数组,创建数组:
数组名=new类型名数组大小aa=newint10;数组元素:
aa0、aa1、aa2aa9,1.4.3数组初始化,intia=1,2,3,4;intia=newint3,4,5;inta5;/声明数组时,不能指定其长度,编译时将出错,1.4.4数组中注意的问题,空指针异常(数组未初始化就使用数组中的元素)数组越界异常如何得到数组长度所有的数组的索引均从0开始,1.4.4数组中注意的问题,不能改变数组大小可以使用相同的引用变量去引用另一个全新的数组,1.4.5多维数组,多维数组,类似棋盘。
Java中的多维数组,也就是数组的数组,,1.4.5多维数组,定义多维数组intxx;xx=newint3;xx0=newint3;xx1=newint2;,1.4.5多维数组,多维数组中元素的引用方式,如:
x12。
规则矩阵数组可以在一条语句中产生,如:
intxx=newint23;多维数组的静态初始化,如:
intxx=3,2,7,1,5,6;,1.5方法的封装(功能的封装),1.5.1方法的封装格式1.5.2方法调用的过程分析1.5.3方法的调用1.5.4方法的参数传递,1.5.1方法的封装格式,返回值类型函数名(参数类型形式参数1,参数类型形式参数2,.)程序代码return返回值;形式参数:
在方法被调用时用于接收外部传入的数据的变量。
参数类型:
就是该形式参数的数据类型。
返回值:
方法在执行完毕后返还给调用它的程序的数据。
返回值类型:
函数要返回的结果的数据类型。
实参:
调用函数时实际传给函数形式参数的数据。
如何理解函数返回值类型为void的情况,1.5.2方法调用的过程分析,1.5.3方法的参数传递,方法的形式参数相当于方法中定义的局部变量方法的形式参数在方法调用结束时被释放,不会影响到主程序中同名的局部变量,1.5.4方法的参数传递,classPassRefintx;publicstaticvoidmain(Stringargs)PassRefobj=newPassRef();obj.x=5;change(obj);System.out.println(obj.x);publicstaticvoidchange(PassRefobj)obj.x=3;,小结,1.1Java语言入门1.2标识符、关键字和数据类型1.3运算符,表达式和语句1.4数组1.5方法的封装,2面向对象,面向对象vs.面向过程,面向对象(OOP)Object-OrientedProgramming用类class封装数据以及与数据相关的操作用类的继承性来实现类的重用性多态性面向“对象”,由对象提供服务面向过程(POP)Procedure-OrientedProgramming以功能为组织单元通过数据结构来描述具体的问题数据在功能(函数)之间以参数的形式被传送,现实世界中的对象,现实世界是由对象构成的现实世界中任何实体都可以看作是对象现实世界中的对象有两个共同特征:
状态行为,封装(Encapsulation),封装性体现了面向对象程序设计的一个特性,将方法和数据组织在一起,隐藏其具体实现而对外体现出公共的接口模块化隐藏信息,继承(Inheritance),广义地说,继承是指能够直接获得已有的性质和特性,而不必重复定义它们。
在面向对象的软件技术中,继承是子类自动地共享父类中定义的数据和方法的机制。
单重继承与多重继承,单重继承:
一个子类只有一个唯一确定的父类单重继承所构成的类的关系结构是一棵树多重继承:
一个子类可以有多个不同的父类多重继承所构成的类的关系结构是一个格Java语言仅支持单重继承,接口(Interface),接口和类一样也是一种类型,也同样包含一些方法的定义。
但与类不同的是:
接口中所定义的所有方法都是抽象方法(即没有实现的方法)。
接口中所定义的方法由实现(implement)该接口的类来实现,一个类可以同时实现多个接口接口机制使Java的面向对象编程变得更加灵活。
解决了单重继承带来的问题接口定义了对象的行为模型,相当于一个协议。
实现接口的各个类负责实现接口所定义的行为。
虽然实现细节各不相同,但对用户来说是一样的行为。
面向对象的示例,本例中包含很多对象:
点、窗口、颜色、点击事件,Spot类,publicclassSpot/instancevariablesprivateintsize;publicintx,y;/constructorpublicSpot()x=-1;y=-1;size=1;/methodsforaccesstothesizeinstancevariablepublicvoidsetSize(intnewSize)if(newSize=0)size=newSize;publicintgetSize()returnsize;,Spot对象实例,privateSpotspot=null;.spot=newSpot();spot.setSite
(1);,示例中的继承和接口,publicclassClickMeextendsJComponentimplementsMouseListener.,publicclassClickMeextendsJComponentimplementsMouseListener./MethodsrequiredbytheMouseListenerinterface.publicvoidmousePressed(MouseEventevent)if(spot=null)spot=newSpot();spot.setSize(RADIUS);spot.x=event.getX();spot.y=event.getY();repaint();publicvoidmouseClicked(MouseEventevent)publicvoidmouseReleased(MouseEventevent)publicvoidmouseEntered(MouseEventevent)publicvoidmouseExited(MouseEventevent),多态,TestPolymoph/Test.java多态是指在执行期间(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
上面例子中,根据Lady对象的成员变量Pet所引用的不同的实际类型而调用相应的enjoy方法。
classBirdextendsAnimalprivateStringfeatherColor;Bird(Stringn,Stringf)super(n);this.featherColor=f;publicvoidenjoy()System.out.println(鸟叫声.);publicclassTestpublicstaticvoidmain(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输入输出的类网络连接相关的类java.niojdk1.4后出现的新的io包,更高的效率。
java.util一些工具类,如数据结构相关的类。
java.lang.reflect反射相关的类。
java.security安全相关的类。
更多请参考jdk文档。
字符和字符串,JavaAPI提供了四个处理字符数据的类:
Character:
这个类的实例可以容纳单一的字符数值。
该类还定义了一些简洁的方法来操作或者检查单一字符数据。
String:
这个类用于处理由多个字符组成的不可变数据。
StringBuffer:
这个类用于存储和操作由多个字符组成的可变数据。
线程安全。
StringBuilder非线程安全的StringBuffer,效率更高,异常类,在Java中,将异常情况分为Exception(异常)和Error(错误)两大类。
Error类对象由Java虚拟机生成并抛出;Exception类对象由应用程序处理或抛出。
异常类的继承结构,checked异常与unchecked异常,RuntimeException类及其子类被称为“运行时异常”一般发生在JRE内部也称“非必检异常”如NullPointerException其他异常被成为“非运行时异常”一般发生在JRE外部也称“必检异常”如IOException,异常处理的一般步骤,异常抛出异常捕获异常处理,try抛出异常的代码catch(某Exception类型e)处理该异常类型的代码catch(某Exception类型e)处理该异常类型的代码finally,Io包,Reader与Writer类,Reader类的相关方法:
voidclose()voidmark(intreadAheadLimit)booleanmarkSupported()intread()intread(charcbuf)intread(charcbuf,intoff,intlen)booleanready()voidreset()longskip(longn)Writer类的相关方法:
voidclose()voidflush()voidwrite(charcbuf)voidwrite(charcbuf,intoff,intlen)voidwrite(intc)voidwrite(Stringstr)voidwrite(Stringstr,intoff,intlen),流的使用
(1),流的使用
(2),流的使用(3),Serializable接口,并非所有对象都是可串行化的,如果要对某对象进行串行化,该对象的类必须实现Serializable接口Serializable接口是一个空接口,也就是说,它不包含任何方法的声明,该接口的作用只是表明这个类的对象可以被串行化,数据结构类,集合框架中的接口,Collection:
集合层次中的根接口,JDK没有提供这个接口直接的实现类。
Set:
不能包含重复的元素。
SortedSet是一个按照升序排列元素的Set。
List:
是一个有序的集合,可以包含重复的元素。
提供了按索引访问的方式。
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对象自定义类应该重写toString()方法以便输出时被自动调用使用toArray()方法转换为对象数组使用Arrays.asList(Objecto)返回一个列表返回的列表的大小固定,不能添加元素,可以使用set()方法修改节点的元素,否则会抛出不支持的操作异常(UnsupportedOperationException)。
ArrayList,迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素。
remove()方法是一个可选的操作,实现Iterator接口可以选择实现该方法,或做空实现并抛出不支持的操作异常(UnsupportedOp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 培训 ppt
![提示](https://static.bingdoc.com/images/bang_tan.gif)