java入门到精通第8章

合集下载

精品课件-Java程序案例教程(田智)-第8章

精品课件-Java程序案例教程(田智)-第8章

javac -d . TestPackage1.java
第8章 包及访问权限
其中,“-d”表示生成目录; “.”表示在当前目录下生成。 这样就会在当前目录下生成一个名为 demo 的文件夹,在
demo 文件夹下又会生成一个 Java 文件夹,在此文件夹下会有编 译好的 Person.class 和 TestPackage1.class,编译好之后用下面的 语法来执行它:
【例 8-6】 Student.java。
01 package demo.java.b ;
02 import demo.java.a.* ;
03 public class Student extends Person
04 {
05
public Student(String name)
06
{
07
= name ;
08 }
09 }
第8章 包及访问权限
8.1.3 JDK中常见的包 Sun公司在JDK中为程序开发者提供了各种实用类,这些
类按功能不同分别被放入了不同的包中,供开发者使用。下面 简要介绍其中最常用的几个包:
(1) ng:包含一些Java语言的核心类,如 String、Math、Integer、System和Thread,提供常用功能。 在ng包中还有一个子包ng.reflect,用于实 现Java类的反射机制。
04 {
05
public static void main(String[] args)
06
{
07
System.out.println(new Person().talk()) ;
08
}
09 }
输出结果:
Person ->> talk()

《Java程序设计》第8章 抽象类、接口、包和常用API

《Java程序设计》第8章 抽象类、接口、包和常用API

parseShort(String s); parseLong(String s); parseDouble(String s);
创建一个包装类对象
Integer.valueOf(int); Long.valueOf(long);Short.valueOf(short)
Byte.valueOf(byte); Float.valueOf(float);Double.valueOf(double);
public static void main(String args[]){ Test t = new Test(); //Test类在p1包中定义 t.display();
} }
19
Inspur Education
包装类
基本数据类型只是纯粹的数据,除了自身数据信息之外 ,没有其他信息。包装类使他们可以以对象的形式存在 ,携带更多的信息并提供相对应的操作方法。
18
Inspur Education
包(package)
导入包
为使用定义在不同包中的Java类,需用import语句来引入所需要 的类。
语法格式: import package1[.package2…]. (classname |*);
应用举例:
import p1.Test; //import p1.*; public class TestPackage{
步骤一:定义Animal接口,包含方法eat(Food food); 步骤二:定义类Dog和Cat让其实现接口Animal; 步骤三:定义抽象类Food,包含属性name及setName()、getName ()方法 步骤四:定义实现类Fish及Boner实现Food类 步骤五:定义Feeder类,包含方法feed(Animal animal, Food food) 步骤六:定义TestFeeder类(该类测试饲养员给动物喂食物)

精品课件-Java程序设计教程-第8章-类和对象

精品课件-Java程序设计教程-第8章-类和对象

public static void main(String[] args) {
System.out.println(add());
System.out.println(random() ); 案例:使用} 静态导入
}
本章小结
面向过程和面向对象是两种不同的编程思想 面向过程:从微观上处理细节 面向对象:从宏观上找参与者
为对象的属性赋值的p语er法.n格am式e="张三"; 对象名.属性=值; per.age=20;
调用对象的方法语法p格er式.sex="男"; 对象名.方法名(参数列表); per.introduce(); }
案例:对象的注创:建图和中} 使n用ame的值是“张三”,并不是“张三”存储在这
类和对象的进阶
面向过程与面向对象
面向过程和面向对象是两种不同的编程思想 面向过程
注重实现的操作步骤和顺序 举例:开车从石家庄来北京,(踩离合,挂挡,给油,
走……),你闭个眼睛试试… 可以存储基本数据类型和引用数据类型
面向对象 注重实现的参与者 举例:开车从石家庄到北京,(滴滴,选持出发地,目的 地,下单 )司机带车就来接你了,你睡一觉就到了
int age;
构造方示法例8-7
String sex;
构案造示例方 没 系方例:法有 统创法8-的任 默建的8 名何认对特称的提象点与返供pu类回一示b名值 个lp例icu相, 无8cb-l同也 参la6ip}pcs}tPpPp不 构uushees12bbitT能 造rr..saiillsse.nniintoocc写 方sp}ittatcnnrruPP4法voom22eebvodd{orrle,ppiissuuPdic=12oodcce用==nsnneermtas22((于nna))om((aee;;t)S创niiww{cetnrp;建(viPPSn=oeet该girnrrdissen类noomwgann的m[a22]Pi对((eean)")r;(谢象{gsSots大r)nin{(脚)g; "[)];arg

Java程序设计教程 第2版 第8章 异常处理

Java程序设计教程 第2版 第8章 异常处理

8.1.2 异常的类型
不可查异常是指在运行中可能出现的异常,这种异常无法在编译时检查 出来,在运行过程中有可能出现也有可能不出现,所以这类异常在程序 中可以选择捕获处理,也可以不处理。
这类异常通常是由程序逻辑错误引起的,所以程序应该从逻辑角度尽可 能避免这类异常的发生。
不可查异常都是RuntimeException类及其子类异常。 可查异常是指在编译时被强制检查的异常,这种异常是可以预见的,所
8.1.3 程序中的常见异常
07
OPTION
NoSuchMethodException异常 方法不存在异常。当无法找到某一特定方法时,就会抛出该异常。
DataFormatException异常
08
OPTION
数据格式错误异常。当数据格式发生错误时,就会抛出该异常。
NoClassDefFoundError错误
MemoryError、 StackOverflowError等。这些错误都需交由系统进行处理。
2. Exception类 ng.Exception类是程序本身可以处理的异常。 分为可查(checked)异常和不可查(unchecked)异常。
09
OPTION
未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类, 而找不到该类的定义时,就会抛出该错误。
8.1.3 程序中的常见异常
OutOfMemoryError错误
10
OPTION
内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时, 就会抛出该错误。
StackOverflowError错误
AWTError IOError
ThreadDeath LinkageError
ClassNotFoundException RuntimeException

Java程序设计:第八章 Swing图形界面程序设计

Java程序设计:第八章 Swing图形界面程序设计

原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小

工学第8章Java异常处理及输入输出流简介

工学第8章Java异常处理及输入输出流简介

例8.3 捕获两种不同类型的异常。
public class ExceptionExam3 { public static void main(String args[]) { try { int i = args.length; System.out.println("i ="+i); int j=5/i; int k[]={ 1,2,3 }; k[5]=0; } catch(ArithmeticException e) { System.out.println("被零除: " + e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Array index out of bound exception: " + e); } System.out.println("执行catch块后的语句块"); }}
例8.3运行结果如图所示
4.finally关键字的使用
try/catch/finally的基本形式如下所示: try { 可能发生异常的代码块; } catch(异常类型 异常对象名) { 异常处理代码块; } … finally { 无论是否抛出异常都要执行的代码; } 无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代 码块。即无论try是否正常结束,都会执行finally定义的最后的代码。
public void troublesome() throws Exception 其中,关键字throws之后是所有异常的列表,方法 可以将它们抛回到它的调用程序中。
8.2.1 try/catch/finally

第8章 Java高级编程

81系统定义的运行异常系统定义的运行异常异常对应的系统运行错误classnotfoundexception未找到欲装载使用的类arrayindexoutofboundsexception数组越界使用filenotfoundexception未找到指定的文件或目录ioexception输入输出错误nullpointerexception引用空的尚无内存空间的对象arithmeticexception算术错误如除数为0interruptedexception线程在睡眠等待或因其他原因暂停时被其他线程打断unknownhostexception无法确定主机的ip地址securityexception安全性错误如applet欲读写文件malformedurlexceptionurl格式错误用户自定义的异常系统定义的异常主要用来处理系统可以预见的较常见的运行错误对于某个应用所特有的运行错误则需要编程人员根据程序的特殊逻辑在用户程序里自己创建用户自定义的异常类和异常对象
在这个方法里, 如果队列已经为空, 则 “ 出队” 方 在这个方法里 , 如果队列已经为空 , 出队 ” 法将给出一个数据“ 表示 出队” 的操作失败。 表示“ 法将给出一个数据 “ -1”表示 “ 出队 ” 的操作失败 。 这样处理有一个很大的不便, 这样处理有一个很大的不便,就是队列中不能保存 这个数据, “-1”这个数据,同时还要求其他调用 这个数据 同时还要求其他调用dequeue( )的 的 方法能够了解这个出错的约定, 方法能够了解这个出错的约定,显然对于程序的调 试和运行都很不方便。为了解决这个问题,可以定 试和运行都很不方便。为了解决这个问题, 义一个用户程序异常EmptyQueueException,专门 义一个用户程序异常 , 处理上述“从空队列中出队”的逻辑错误: 处理上述“从空队列中出队”的逻辑错误:

Java并发编程实践-电子书-08章

第八章原子变量与非阻塞算法第八章原子变量与非阻塞算法 (1)8.1.锁的劣势 (2)8.2.原子变量类 (2)8.3.非阻塞算法 (5)参考文献 (8)本章首先分析锁的劣势,然后分析原子变量类和非阻塞算法的优势。

本章内容与第3章和第4章内容,紧密相关。

相关内容情况参考前述章节。

8.1. 锁的劣势从前面的章节可以看到,使用一致的加锁协议来协调对共享状态的访问,确保当线程持有守护变量的锁时,线程都能独占地访问这些变量,并且保证随后获得同一锁的线程都能看见该线程对变量所作的修改。

Java虚拟机能够对非竞争锁的获取和释放进行优化,让它们非常高效,但是如果有多个线程同时请求锁,Java虚拟机就需要向操作系统寻求帮助。

倘若了出现这种情况,一些线程将可能被挂起,并稍后恢复运行。

从线程开始恢复,到它真正被调度前,可能必须等待其他线程完成它们的调度限额规定的时问。

挂起和恢复线程会带来很大的开销,并通常伴有冗长的中断。

对于基于锁,并且其操作过度细分的类(比如同步容器类,大多数方法只包含很少的操作),当频繁地发生锁的竞争时,调度与真正用于工作的开销间的比值会很可观。

加锁还有其他的缺点。

当一个线程正在等待锁时,它不能做任何其他事情。

如果一个线程在持有锁的情况下发生了延迟(原因包括页错误、调度延迟,或者类似情况),那么其他所有需要该锁的线程都不能前进了。

如果阻塞的线程是优先级很高的线程,持有锁的线程优先级较低,那么会造成性能风险,被称为优先级倒置(priority inversion)。

即虽然更高的优先级占先,但它仍然需要等待锁被释放,这导致它的优先级会降至与优先级较低的线程相同的水平。

如果持有锁的线程发生了永久性的阻塞(因为无限循环、死锁、活锁和其他活跃度失败),所有等待该锁的线程都不会前进了。

即使忽略上述的风险,加锁对于小的操作而言,仍然是重量级(heavy weight)的机制,比如自增操作。

需要有更好的技术用来管理线程之问的竞争。

《Java程序设计基础》第8章:Java基本类库介绍


8.1.1 构建包
程序中定义包用package这个关键词,它的格式如下: package 包名; 例如: package MyJavaProgram; package panyname.myname 这个语句必须放在一个源文件的第一句,并且语句前面无空格。 这个语句必须放在一个源文件的第一句,并且语句前面无空格。 包名一般全部用小写。 包名一般全部用小写。 上面这个语句的意思是,这个源文件中的类,经编译产生的.class 上面这个语句的意思是,这个源文件中的类,经编译产生的.class 文件属于一个包,包名为MyJavaProgram。 文件属于一个包,包名为MyJavaProgram。 MyJavaProgram
8.3.1 Object类 类
Object类是Java程序中所有类的直接或间接父类, Object类是Java程序中所有类的直接或间接父类,也 类是Java程序中所有类的直接或间接父类 是类库中所有类的父类,任何一个类都是由Object Object类派 是类库中所有类的父类,任何一个类都是由Object类派 生出来的,它是继承树上的根节点。 生出来的,它是继承树上的根节点。所以它含有的属性 和方法将被所有的类继承
-g -g:none -g:{lines,vars,source} -O -nowarn -verbose -deprecation -classpath <path> -sourcepath <path> -bootclasspath <path> -extdirs <dirs> -d <directory> -encoding <encoding> -target <release>
生成所有debug信息 生成所有debug信息 debug 不生成任何debug信息 不生成任何debug信息 debug 只生成部分debug debug信息 只生成部分debug信息 优化 不生成警告 输出编译器的工作记录 输出所有过期API的位置 输出所有过期API的位置 API 声明查找用户类库的路径 声明查找源文件的路径 覆盖引导类文件路径 覆盖安装扩展路径 声明将生成的.class文件放在何处 声明将生成的.class文件放在何处 .class 声明源文件的编码方式 为指定版本的虚拟机生成类文件

《Java Web应用开发项目教程》第8章 使用监听器实现在线人数统计

Java Web应用开发
计算机与软件学院
第8章 使用监听器实现在线人数统计
■本章要点:
Servlet监听器开发技术 在线人数统计功能模块设计与实现 Servlet监听器技术特性分析 Servlet监听器的典型应用
计算机与软件学院
8.1 使用Servlet监听器实现在线人数统计
■在线人数统计功能分析 在系统运行过程中,了解当前使用系统的用户,有多少人 在使用系统?具体又是哪些人在使用系统?
public void contextDestroyed(ServletContextEvent sce){ //应用程序卸载时启动}
public void sessionCreated(HttpSessionEvent se){ //当有用户访问时启动}
public void sessionDestroyed(HttpSessionEvent se){ //当有用户退出时启动}
计算机与软件学院
■Servlet监听器
8.2 servlet监听器知识总结
计算机与软件学院
8.2 servlet监听器知识总结
■Servlet上下文监听
1、ServletContextListener编程接口:“Web应用程序 的生命周期方法”。
• contextInitialized(ServletContextEvent event) 应用程序被加载及初始化时激发
计算机与软件学院
8.1.3 Servlet监听器技术特性分析
■监听域对象的创建、属性和改变和销毁
3.在ServletRequestListener接口: • public void requestInitialized(ServletRequestEvent
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档