Java语言入门课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx
-
资源ID:77372806
资源大小:3.94MB
全文页数:108页
- 资源格式: PPTX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Java语言入门课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx
Java语言入门第1章嵌入式Internet甲骨文Java 1.820世纪90年代199520092015全球使用最广泛的语言Java语言编写的程序运行在全球很多设备上。Java发展及前景 010203互联网互联网和传统行业应用。大数据、云计算移动互联网领域、大数据领域。人工智能人工智能,自动化场景。Java语言的应用及前景Java虚拟机 01020304050607简单跨平台安全性动态性面向对象健壮性多线程Java语言特点 下载并安装JDK,设置环境变量12下载并安装IDEA开发工具3在IDEA中创建Java项目4编写代码,调试程序Java程序开发谢谢聆听Java语言基础第2章大小写敏感字母、数字、下划线和$不能以数字开头不能用关键字和保留字标识符规范1、见名识意2、驼峰命名3、常量全部大写标识符010203常量程序在运行过程中,其值不会发生改变的量。变量程序在运行过程中,其值会发生改变的量。常量与变量的定义数据类型 标识符=初始值;常量与变量321整数类型表示整数,按其数值范围,可以分为:byte、short、int和long四种。逻辑类型字符类型浮点数类型boolean,取值只有true或false。可以分为单字符和多字符两种:char和String。String严格来说不属于基础数据类型,String是引用类型。表示包含小数点的数字,按其精度,可以分成float和double两种。4基本数据类型数据类型转换占用存储空间较小的数据类型占用存储空间较大的数据类型自动转换强制转换01020304050607算术运算符关系运算符位运算符特殊运算符赋值运算符及扩展逻辑运算符字符串连接符运算符强烈推荐使用括号嵌套方式书写,以便清楚的表明运算符运算先后的关系01关键字一些系统预先定义好的并且是有特殊意义的标识符,关键字不能用于变量名、类名、方法名和参数名02注释单行注释:/多行注释:/*/文档注释:/*/关键字及注释谢谢聆听Java程序控制第3章ifswitch很常用的判断 只能做等值判断分支是依据判断结果进行执行if是比较常用的判断,if有很多扩展:if、if-else、if-elseif-else等switch只能用于等值判断,应用范围没用if广泛分支语句可以相互嵌套分支语句whiledo-while先判断再执行 先执行再判断循环就是反复执行while循环要必do-while循环少执行一次循环语句一定要注意循环结束的条件循环语句可以相互嵌套循环语句for简化版的whilebreakcontinue退出整个循环提前结束本次循环跳转就是不再按设定的流程执行break和continue一般用于控制流程之中return则是在整个方法中,表示方法的调用结果跳转语句return直接返回调用结果方法一般在类的定义中,表示类能够完成的功能。方法在调用时,实际参数会传入形式参数,并执行方法 public 方法返回值 方法名(参数数据类型 参数名,)/方法体 return 返回值;方法名(参数数据类型 参数名);100实际参数形式参数值传递与引用传递 public int fn(int a)int b=10;fn(b);10ba10实参形参public void fn(Student s)Student stu;fn(stu);Student对象stus实参形参值传递引用传递参数个数不同public int f(int a,int b);public int f(int a,int b,int c);参数类型不同public int f(String a);public int f(int a);参数次序不同public int f(int a,String b);public int f(String a,int b);方法重载 方法重载:一个类中,方法名相同,但参数列表不同谢谢聆听Java面向对象编程基础第4章类与对象的对比对象类一个虚拟的概念,是一些具有相同特性的对象的抽象类是引用类型的数据类是对象的模板属性对象具体的事物通过类进行创建方法类与对象0102String是引用类型String是引用类型,符合引用类型数据的特点。String是特殊的引用类型String的不变性,字符串常量池。Java在设计之初,就考虑到String是一个很常用的数据类型,而且为了提高效率,专门为String创建了字符串常量池,其运行机制与一般的引用类型也略有区别。String类属性成员属性表示了类的特性、特性方法成员方法表示了类的行为、功能类的成员 构造方法专门创建对象的方法this 与 static this表示当前对象static表示当前类对象的属性对象的方法类的属性类的方法单向访问toStringequalshashCode推荐重新类的equals方法和hashCode方法,以便提供对象比较的依据类的字符串描述比较对象是否相等与对象的存储相关经验之谈equals与hashCode一般重写equals(),必定要重写hashCode()方法。二者重写后,当equals()相同时,hashCode()必定相同,equals()不同时,hashCode()必定不同。Object类 谢谢聆听Java面向对象编程进阶第5章单击此处添加文本43单击此处添加文本,单击此处添加文本类的继承父类子类子类继承的特点:1、“子承父业”2、“青出于蓝而胜于蓝”3、单根继承4、创建子类对象时,必然会先调用父类是构造方法父类方法子类方法父类中的方法子类重写父类的方法子类可以重写父类原来已有的方法,以便有更好是实现,这就是“青出于蓝而胜于蓝”,为后继的多态打下了基础。方法重写注意:方法重写是在两个类中发生的,而且要求方法签名完全相同访问权限 访问权限本类本包的类子类非子类的外包类public是是是是protected是是是否default是是否否private是否否否通过封装,类的外界只能借助于类提供的方法访问类,从而加强了类对数据的保护。封装类结构属性方法gettersetter外界先将子类对象赋值给父类对象,然后调用父类对象被重写的方法时,实际上调用的是子类对象重写后的方法,而非父类对象原来的方法。多态父类子类方法方法重写父类 父类对象=new 子类();父类对象.方法();抽象类抽象类结构属性方法gettersetter抽象方法抽象方法仅仅是一个方法的签名,并没用任何方法的实现,其目的就是需要子类去重写方法的实现。进而实现多态的效果。接口接口结构抽象方法接口是对抽象类进一步的抽象,其中仅有抽象方法。实现接口的类必须全部实现其定义的抽象方法。接口中的抽象方法越少越好,越紧密相关越好。内部类类中再嵌套定义另一个类。内部类作用:利用内部类提供的、可以继承多个具体的或者抽象的类的能力来解决Java中多重继承的问题类结构属性方法gettersetter内部类结构谢谢聆听Java数组与包第6章数组常用的线性存储结构,使用下标进行访问。数组中存放数据类型相同的数据数组是一种静态存储结构,一旦定义就不能再修改数组012345数据类型 数组名=new 数据类型数组大小;数组元素数组下标数组名下标=数据;010203遍历使用for循环,对数组元素进行遍历。迭代查询使用for-each以只读的方式访问数组。使用工具类Arrays工具类Arrays提供了大量操作数据的方法,便于直接使用。数组常用操作多维数组数组元素是一个数组,也就是数组中“嵌套”数组多维数组012345数组元素数组名外层内层下标=数据;包是组织和管理代码的机制。是模块化管理的结果Java包名与目录名是一一对应的25%30%50%包的概念谢谢聆听Java常用类第7章StringBufferStringBuilderString线程安全,执行较慢非线程安全,执行较快字符串类,提供了大量的字符串操作方法字符串常用类String是不可变字符序列,在拼接字符串时,效率极低,建议使用StringBuffer或StringBuilder取代。字符串相关 MathMath类,提供了大量数学运算的方法Math类Math类提供了2个常量和大量的数学运算函数。在需要计算的场景中是很常用的。数学运算 包装类 基本数据类型包装类booleanBooleanbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharChatacter基本数据类型与引用数据类型的对应装箱与拆箱 基本数据类型基本数据类型对应的包装类装箱Integer i=10;基本数据类型基本数据类型对应的包装类拆箱int a=i;装过箱的,才能拆箱!DateCalendarDateFormatSimpleDateFormat常用的日期类 常用的日历类日期格式接口 简单日期格式类日期时间Date中大量方法都过期了,推荐使用Calendar,该类提供了大量的常量,很方便的获取日期或时间的各组成部分,使用SimpleDateFormat可以实现自定义格式的日期或时间。日期时间相关 010203List常用的子类有ArrayList、LinkedList和Vector等。Map常用的子类有HashMap。Set常用的子类有HashSet。集合是管理很多对象的容器,依据管理需要,可以分成有序的List、无须但不重复的Set,以及以键值对方式存储的Map三种。将对象存入集合时,强烈推荐重写对象所属类的equals()和hashCode(),以便在集合中查找比较。常用的集合 谢谢聆听Java异常处理机制第8章E r r o r Exception错误程序崩溃,不可恢复。异常程序报错,可使用异常处理程序恢复。发生错误,程序会停止执行。发生异常,程序会调用异常处理程序进行处理,处理后程序继续运行。异常异常分类ThrowableErrorExceptionRuntimeExceptionXxxException非检查异常检查异常异常处理主要处理检查异常try /可能发生异常的代码 catch(异常类 异常对象)/处理捕获的异常(自己处理或者抛给调用者)finally /无论是否发生异常,都会执行的收尾代码 异常处理很像踢足球:1、射门(自己处理)2、传球(抛给其他人)声明异常主要针对检查异常public void fn(int a,String b)throws 异常类列表 /方法体 /抛出异常的代码 方法中无法处理异常或不能完全处理异常,需要将异常抛给调用者,让调用者去处理异常。自定义异常按实际生成的需要来定义异常,都是定义已有异常类的子类RuntimeExceptionException非检查异常检查异常父类子类谢谢聆听Java输入输出第9章Java I/O体系字节流:8 bit作为一个数据单元,数据单元是字节字符流:16 bit作为一个数据单元,数据单元是字符01020304050607existslistRootsmkdirrenameToisFilelistFilesdelete文件和目录操作 File对象常用的方法ReaderBufferedReaderWriterBufferedWriter读取字符流的对象 写入字符流的对象 字符流常用于读写文本文件。读写时,需要指定编码。一般使用trycatchfinally结构字符流处理InputStreamBufferedInputStreamOutputStreamBufferedOutputStream读取字节流的对象 写入字节流的对象 字节流可以读取任何文件。一般使用trycatchfinally结构字节流处理流的转换谢谢聆听Java图形用户界面第10章GUI概述 核心包:java.awtjava.swingjava.awt.eventGUI布局器 BorderGridFlowAbsoluteMix混合布局是很常见的,复杂的界面往往由多个布局器嵌套组成。GridBagLayout 布局器 GridBagLayout是十分重要的布局器,高手必须精通。GridBagLayout可以做出复杂的界面,而无需布局器嵌套。这是一个实现了ActionListener接口的内部匿名类对象,在该类中,重写了ActionListener接口中的actionPerformed方法观察者模式的理解当计算器按钮(被观察者)按下,观察者(实现了ActionListener接口的内部匿名类对象)收到按钮按下的事件,然后执行相应的操作。GUI的事件监听 组件对象.addActionListener(new ActionListener()Override public void actionPerformed(ActionEvent e)/事件发生后需要执行的代码 );谢谢聆听Java多线程技术第11章程序进程线程以文件形式保存在硬盘中,等待被系统加载到内存中运行。被操作系统加载到内存中的一次运行。一个程序可以被加载多次,就会有多个进程。是CPU的最小执行单元,同一个进程内可以有多个不同的线程,这些线程共享进程的资源。一个进程内的线程数量大于1个,则该程序就是多线程程序。多个线程会共享操作系统给进程分配的资源(CPU、内存空间、其他资源等)程序、进程和线程 线程的实现线程有2种实现方式。1、继承Thread类,重写run方法2、实现Runnable接口注意:线程启动时,必须调用Thread类的start方法,而非run方法。线程的实现 线程的生命周期及状态 常见的线程三态:就绪:处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行运行:当CPU开始调度处于就绪状态的线程时,此时线程才得以真正执行,即进入到运行状态阻塞:处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权,停止执行,此时进入阻塞状态线程同步线程同步是指线程按照一定的次序先后执行由于多个线程共享进程的资源,所以通过“锁”机制(对共享资源加锁)来同步多个线程同步的实现:1、同步方法:使用synchronized关键字修饰方法。2、同步块:使用synchronized代码块同步关键代码即可。3、使用Lock接口:ReentrantLock类是Lock接口的实现类,使用ReentrantLock也可以实现线程同步。ReentrantLock需要先锁定,然后使用,最后要解锁,否则会导致死锁。谢谢聆听Java数据库编程第12章JDBC访问数据库使用JDBC访问数据库的步骤:1、加载对应的数据库驱动2、获取数据库连接对象3、创建数据库访问对象4、使用数据库访问对象访问数据库5、关闭数据库连接对象Class.forName(数据库驱动)stmt=conn.createStatement();conn=DriverManager.getConnection();conn.close();result=stmt.executeUpdate(sql);rs=stmt.executeQuery(sql);ConnectionStatementResultSet连接字符串数据库连接SQL语句,常使用PreparedStatement查询结果用于连接不同的数据库JDBC接口JDBC是对各种数据库的封装,只提供了访问数据库的接口,各数据库厂商需要进一步实现。不同的数据库,连接字符串不一样,可以在网络上找到。访问不同的数据库要加载相应的数据库jar包JDBC各接口JDBC的进一步封装 封装的必要性:1、数据库访问是一个固定的步骤,通过封装,可以简化操作2、由于数据库连接频繁的打开和关闭,严重影响性能,可以考虑使用连接池技术JDBC工具类执行增删改的方法执行查询的方法传入SQL及参数,返回执行结果(整数)传入SQL及参数,返回执行结果(集合)谢谢聆听Java网络编程第13章网络分层以前,ISO-OSI的7层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层现在,TCP/IP的4层模型:网络接口层、网络层、传输层、应用层网络分层网络协议网络协议就是网络上各层交互数据的通讯规则。IP协议:IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址和MAC地址。TCP协议:TCP(传输控制协议)是面向连接的传输层协议,其主要作用的把数据准确的传给对方,并确保对方一定能收到。UDP协议:用户数据报协议,它是TCP/IP协议簇中无连接的运输层协议,其主要作用的传递数据到对方。网络协议SocketSocket=协议+IP地址+端口号Socket代表了通讯的一端(发送或接收)SocketSocket网络TCP协议编程模型网络通讯中使用网络流对象网络通讯一般由2个独立的程序组成,一个是服务器,一个是客户端服务器的输出流连接到客户端的输入流,客户端的输出流连接到服务器的输入流。谢谢聆听Java高级技术第14章反射 反射是指在程序运行中动态的加载类,并创建该类的对象调用其方法。深刻理解:1、程序运行中:也就是说程序已经编译成字节码在内存中执行了2、动态加载类:能依据需要加载程序之外的任何类3、创建该类的对象并调用其方法:创建加载的类的对象,调用其方法扩展:很多框架(比如Struts、Spring等),其底层就是依赖反射技术实现的。精通反射,你也可以写自己的框架。反射常用方法 反射所需要的类主要在java.lang包和java.lang.reflect包中,主要有Constructor、Field、Method、Parameter类等。反射的基础类是Class类,Class类的对象表示正在运行的Java程序中的类或接口/加载指定的类(com.benben.MyWork)Class clazz=Class.forName(com.benben.MyWork);/获取加载类中定义的属性Field fields=clazz.getDeclaredFields();/获取加载类中定义的方法Method methods=clazz.getDeclaredMethods();/调用加载类的无参构造方法创建加载类的对象Object instance=clazz.newInstance();/调用加载类的方法Object result=methods1.invoke(instance,10,20);反射虽然很强大,但反射破坏了封装,并且会影响程序的性能,同时会引起安全访问的隐患。除非在底层框架中,平时的代码中尽量不要使用反射。反射的代码一般使用trycatch结构进行编写,要注意catch的先后次序。泛型泛型是JDK1.5引入的,其本质是参数化数据类型。常用于集合中。/不使用泛型时List list=new ArrayList();/list可以存放任何类型的数据list.add(10);list.add(12.5);/从list取出数据时需要转换int a=(int)list.get(0);double b=(double)list.get(1);/使用泛型时List list=new ArrayList();/list只能存放Integer类型的数据list.add(10);/从list取出数据时不需要转换int a=list.get(0);集合存放的数据类型被参数化,在创建集合的时候才能确定,而且存取都比较方便,没有性能上的损失序列化与反序列化对象流序列化反序列化序列化技术可以把对象变成流,以便存储或在网络中传输,反序列化可以把流恢复成对象。序列化实现:1、实现Serializable接口2、实现Externalizable接口基本数据类型和String类型都实现了Serializable接口。序列化时,如果对象的属性中包含了其他对象,那么,其他对象也必须是可序列化的。谢谢聆听Java GUI实战第15章项目总览项目介绍该项目取自一个真实项目的片段,蕴含了主流公司的开发思想和流程。项目显示了一个学生信息管理系统,结合MySql数据库,完成基本的CRUD,后台封装了JDBC,采用流程的分层设计思想,并融合的部分测试技术和自定义组件开发技术。项目中定义了严密的业务逻辑与数据验证机制界面部分使用MDI主窗体和MDI子窗体技术,同时使用了GridBagLayout布局器是一个经典的学习案例UIServiceDAODBEntity项目搭建common包该包中有2个类:DbUtils(JDBC的封装)和ServiceInvokeResult(服务层调用结果的封装)DbUtilsexecutequerycountServiceInvokeResultsuccessmessagedataentity包该包中有1个类:Student(与数据库字段一一对应)StudentidnonamegenderbirthdayphoneNumberaddressdao包该包中有1个类:StudentDao(执行SQL语句,与数据库交互)StudentDaoinsertStudentupdateStudentdeleteStudentByIdpagingStudentcountXXXgetByIdservice包该包中有1个类:StudentService(核心业务逻辑)StudentServiceaddStudentmodifyStudentremoveStudentByIdpagingStudentsgetStudentByIdtest包该包中有1个类:StudentTest(测试业务逻辑)StudentServicetestAddStudenttestModifyStudenttestDeleteStudenttestPagingStudentsfillTestDataui包该包中有5个类:DateChooser(自定义日期控件)、MainForm(MDI主窗口)、MenuBar(菜单栏)、StudentInternalFrame(MDI子窗口)和StudentEditDialog(编辑对话框)MainFormDateChooserStudentEditDialogStudentInternalFrameMenuBar谢谢聆听