摘要:
实现不同servlet之间的数据传递,这样便可实现业务逻辑和显示逻辑的分离 实例: (1) 第一个servlet,负责业务 注意: 1,这种请求转发的方式是共用一个连接的,不管你中途经过了多少个servlet,正因如此,这些servlet才能共享request中存储的数据。 2,只有最后一个serv 阅读全文
posted @ 2018-10-04 23:59
尐鱼儿
阅读(159)
评论(0)
推荐(0)
摘要:
关于Cookie,在客户端浏览器保存用户状态的一种机制。 servlet中的Cookie含有三个属性:name, value, maxAge。 maxAge = 60 表示:此cookie在客户端存在1分钟。 两个特殊值: maxAge = -1 表示:此Cookie生命周期由保存它的浏览器决定 , 阅读全文
posted @ 2018-10-04 23:59
尐鱼儿
阅读(160)
评论(0)
推荐(0)
摘要:
使用HttpServlet简单实例 配置文件web.xml片段: 阅读全文
posted @ 2018-10-04 23:57
尐鱼儿
阅读(956)
评论(0)
推荐(0)
摘要:
Servlet是最顶层的接口,其提供的方法有: 显然我们最关心的是service方法,其他的几个方法在实现的时候是千篇一律、无关痛痒的。故提供了GenericServlet类,此类实现了Servlet接口,我们在使用Servlet的时候,只需继承这个类然后覆盖其中的service方法(抛出Servl 阅读全文
posted @ 2018-10-04 23:56
尐鱼儿
阅读(517)
评论(0)
推荐(0)
摘要:
使用GenericServlet实例 配置文件web.xml如下: 阅读全文
posted @ 2018-10-04 23:56
尐鱼儿
阅读(260)
评论(0)
推荐(0)
摘要:
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。 它们不是独立的应用程序,没有main()方法。 它们不是由用户或程序员调用,而是由另外一个应 阅读全文
posted @ 2018-10-04 23:53
尐鱼儿
阅读(145)
评论(0)
推荐(0)
摘要:
为JSP写的一套核心标签, 有了这套标签, 根本不需要自定义标签了 (1) 准备 需要standard.jar,jstl.jar两个jar包,放入Tomcat 6.0/lib目录中(或者是/WEB-INF/lib)。 (2)core <%@tagliburi="http://java.sun.com 阅读全文
posted @ 2018-10-04 23:48
尐鱼儿
阅读(195)
评论(0)
推荐(0)
摘要:
MVC: M:model ( 业务逻辑与业务数据 ):javabean V:view ( 显示逻辑 ) 将数据按照用户的要求显示出来。 对同一份数据而言,可以以多种形式。 体现 ( 类表, 屏图,柱图 等等 )。 C:controller ( 控制器,负责程序的流程控制)接收用户请求,根据业务逻辑的 阅读全文
posted @ 2018-10-04 23:48
尐鱼儿
阅读(121)
评论(0)
推荐(0)
摘要:
EL表达式( ${ } ) (1) 完成一些简单运算. 数学运算: 布尔运算: 逻辑运算: 非空运算: (2) 通过EL表达式,快捷的访问作用域中的命名属性 <%= session.getAttribute( "name" )%> 用EL表达式 : ${ name } (3) 快速访问javabea 阅读全文
posted @ 2018-10-04 23:47
尐鱼儿
阅读(130)
评论(0)
推荐(0)
摘要:
(1) 构思,比如写一个对指定名字说hello的标签,应该是<前缀:hello user="zhangsan"/> (2) 写类 要实现的基础接口:javax.serlvet.jsp.tagext.SimpleTag 其中含有五个方法: 要实现五个方法,显得很繁琐,javax.servlet.jsp 阅读全文
posted @ 2018-10-04 23:46
尐鱼儿
阅读(166)
评论(0)
推荐(0)
摘要:
1) 建立连接。 2) 执行SQL。 3) 处理结果。 4) 释放资源。 Connection pool:连接池 DataSource: LDAP ( Light directory access protocal )轻量级目录访问协议。 JNDI ( java naming director in 阅读全文
posted @ 2018-10-04 23:44
尐鱼儿
阅读(544)
评论(0)
推荐(0)
摘要:
(1) 关于javabean要求: 1,具有无参的构造函数。 2,针对每一个成员变量,因改提供相应get/set。 3,implments Serializable(实现才能对象序列化)。 (2) 使用一个保存在某个作用域(pagecontext, request, session, applica 阅读全文
posted @ 2018-10-04 23:44
尐鱼儿
阅读(328)
评论(0)
推荐(0)
摘要:
页面指令:向服务器说明页面自身的特征,以便服务器。 1,<%@page contentType="text/xml;charset=utf-8" %> 客户端 >>服务端的编码。 2,<%@page import="" %> 引入名字空间。 3,<%@page pageEncoding="GBK/G 阅读全文
posted @ 2018-10-04 23:43
尐鱼儿
阅读(249)
评论(0)
推荐(0)
摘要:
jsp中的隐含9对象 以下四个用的很少,知道有这个东西即可。 相当重要的隐含对象,重点说明 pageContext --> javax.serlvet.jsp.PageContext 关于pageContext: 1,本身也是一个能存储命名属性的作用域。 pageContext作用域和声明周期。 声 阅读全文
posted @ 2018-10-04 23:42
尐鱼儿
阅读(109)
评论(0)
推荐(0)
摘要:
动态包含:包含的是对方的输出结果,分别解释为不同的servlet。 动态包含实例: (1)header.jsp: (2) body.jsp : 页面转向:连接已经换了一个。 阅读全文
posted @ 2018-10-04 23:40
尐鱼儿
阅读(171)
评论(0)
推荐(0)
摘要:
用来说明一个jsp文件自身的一些特点。以便服务器(tomcat)作出正确的处理。 页面指令: 标签库指令: 包含指令:静态包含。 用来包含其他jsp的源代码 (静态包含)。 所谓静态包含, 就是先将引入的jsp页包含入本页面中, 然后解释为同一个servlet。 <%@include file="x 阅读全文
posted @ 2018-10-04 23:39
尐鱼儿
阅读(184)
评论(0)
推荐(0)
摘要:
jsp中嵌入java代码的方式: 1) 表达式标签 <%= 1 + 1 %> a) 计算表达式的返回值。 b) 能将返回值在网页上显示出来。 不能出现 ";" “ <%= 1+1%>”'则在网页上显示2 2) 声明标签:<%! %> 用来声明变量和函数,在声明标签中声明的变量和函数,可以在本页面的其 阅读全文
posted @ 2018-10-04 23:38
尐鱼儿
阅读(104)
评论(0)
推荐(0)
摘要:
定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦 阅读全文
posted @ 2018-10-04 23:30
尐鱼儿
阅读(93)
评论(0)
推荐(0)
摘要:
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要变化时,尽量通过扩展软件实体的行 阅读全文
posted @ 2018-10-04 23:30
尐鱼儿
阅读(166)
评论(0)
推荐(0)
摘要:
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类C来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的 阅读全文
posted @ 2018-10-04 23:29
尐鱼儿
阅读(177)
评论(0)
推荐(0)
摘要:
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带 阅读全文
posted @ 2018-10-04 23:28
尐鱼儿
阅读(137)
评论(0)
推荐(0)
摘要:
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对 阅读全文
posted @ 2018-10-04 23:26
尐鱼儿
阅读(134)
评论(0)
推荐(0)
摘要:
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能 阅读全文
posted @ 2018-10-04 23:25
尐鱼儿
阅读(136)
评论(0)
推荐(0)
摘要:
概述: 运用共享技术有效地支持大量细粒度的对象。 类型:结构型模式。 类图: 适用性: 当都具备下列情况时,使用Flyweight模式: 1.一个应用程序使用了大量的对象。 2.完全由于使用大量的对象,造成很大的存储开销。 3.对象的大多数状态都可变为外部状态。 4.如果删除对象的外部状态,那么可以 阅读全文
posted @ 2018-10-04 23:24
尐鱼儿
阅读(110)
评论(0)
推荐(0)
摘要:
概述: 为其他对象提供一种代理以控制对这个对象的访问。 类型:结构型模式。 类图: 适用性: 1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。 2.虚代理(VirtualProxy)根据需要创建开销很大的对象。 3.保护代理(ProtectionProxy)控制对原始对 阅读全文
posted @ 2018-10-04 23:24
尐鱼儿
阅读(110)
评论(0)
推荐(0)
摘要:
概述: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 类型:结构型模式。 类图: 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性, 阅读全文
posted @ 2018-10-04 23:23
尐鱼儿
阅读(128)
评论(0)
推荐(0)
摘要:
概述: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 类型:结构型模式。 类图: 适用性: 1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 2.处理那些可以撤消的职责。 3.当不能采用生成子类的方法进行扩充时。 参与者: 1. 阅读全文
posted @ 2018-10-04 23:22
尐鱼儿
阅读(119)
评论(0)
推荐(0)
摘要:
概述: 将对象组合成树形结构以表示“部分-整体”的层次结构。“Composite使得用户对单个对象和组合对象的使用具有一致性。” 类型:结构型模式。 类图: 适用性: 1.你想表示对象的部分-整体层次结构。 2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 参与者: 阅读全文
posted @ 2018-10-04 23:20
尐鱼儿
阅读(144)
评论(0)
推荐(0)
摘要:
概述: 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 类型:结构型模式。 类图: 适用性: 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换。 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。 这时 阅读全文
posted @ 2018-10-04 23:19
尐鱼儿
阅读(169)
评论(0)
推荐(0)
摘要:
概述: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 类型:结构型模式。 类图: 适用性: 1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那 阅读全文
posted @ 2018-10-04 23:18
尐鱼儿
阅读(146)
评论(0)
推荐(0)
摘要:
概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 类型:行为类模式。 类图: 适用性: 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。 阅读全文
posted @ 2018-10-04 23:16
尐鱼儿
阅读(134)
评论(0)
推荐(0)
摘要:
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。 类型:行为类模式。 类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。 解释器模式的结构: 抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或 阅读全文
posted @ 2018-10-04 23:15
尐鱼儿
阅读(124)
评论(0)
推荐(0)
摘要:
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态 类型:行为类模式。 类图: 我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除 阅读全文
posted @ 2018-10-04 23:15
尐鱼儿
阅读(136)
评论(0)
推荐(0)
摘要:
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。 类型:行为类模式。 类图: 如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧: ```java view plaincopy public static 阅读全文
posted @ 2018-10-04 23:14
尐鱼儿
阅读(124)
评论(0)
推荐(0)
摘要:
定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 类型:行为类模式。 类图: 首先来看一段代码: 代码的业务逻辑是这样的,方法有两个参数:整数i和一个请求request,根据i的值来决定由谁来处理re 阅读全文
posted @ 2018-10-04 23:13
尐鱼儿
阅读(143)
评论(0)
推荐(0)
摘要:
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。 类型:行为类模式。 类图: 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式,对照类图可以看到,策略模式 阅读全文
posted @ 2018-10-04 23:13
尐鱼儿
阅读(188)
评论(0)
推荐(0)
摘要:
定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 类型:行为类模式。 类图: 访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下: 我们主要来看一下在类A中,方法meth 阅读全文
posted @ 2018-10-04 23:11
尐鱼儿
阅读(119)
评论(0)
推荐(0)
摘要:
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 类型:行为类模式。 类图: 命令模式的结构: 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构: Command类:是一个抽象类,类中对需要执行的 阅读全文
posted @ 2018-10-04 23:11
尐鱼儿
阅读(144)
评论(0)
推荐(0)
摘要:
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 类型:行为类模式。 类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点 阅读全文
posted @ 2018-10-04 23:10
尐鱼儿
阅读(145)
评论(0)
推荐(0)
摘要:
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 类型:行为类模式。 类图: 中介者模式的结构: 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之 阅读全文
posted @ 2018-10-04 23:07
尐鱼儿
阅读(136)
评论(0)
推荐(0)
摘要:
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。 工厂方法模式:用于创建复杂对象。 抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。 建造者模式:用于创建模块化的更加复 阅读全文
posted @ 2018-10-04 23:02
尐鱼儿
阅读(788)
评论(0)
推荐(0)
摘要:
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。 类型:行为类模式。 类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结 阅读全文
posted @ 2018-10-04 23:02
尐鱼儿
阅读(227)
评论(0)
推荐(0)
摘要:
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式。 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只 阅读全文
posted @ 2018-10-04 23:01
尐鱼儿
阅读(134)
评论(0)
推荐(0)
摘要:
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类型:创建类模式。 类图: 四个要素: 1,产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与 阅读全文
posted @ 2018-10-04 23:00
尐鱼儿
阅读(155)
评论(0)
推荐(0)
摘要:
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式。 类图: 抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则 阅读全文
posted @ 2018-10-04 22:59
尐鱼儿
阅读(178)
评论(0)
推荐(0)
摘要:
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 类型:创建类模式 类图: 工厂方法模式代码 工厂模式: 首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式。工厂模 阅读全文
posted @ 2018-10-04 22:58
尐鱼儿
阅读(153)
评论(0)
推荐(0)
摘要:
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 类型:创建类模式 类图: 类图知识点: 1,类图分为三部分,依次是类名、属性、方法。 2,以<<开头和以>>结尾的为注释信息。 3,修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。 阅读全文
posted @ 2018-10-04 22:57
尐鱼儿
阅读(169)
评论(0)
推荐(0)
摘要:
Java 2集合框架图: 简化图: Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类 阅读全文
posted @ 2018-10-04 01:21
尐鱼儿
阅读(291)
评论(0)
推荐(0)
摘要:
Java的HashMap非常的常用,本篇研究它的实现算法,最后希望计算出内存占用,性能的量化数据,然后得出什么时候使用HashMap,什么时候不能滥用的结论。HashMap实际上是一个数组,数组里面的每个元素都是一个链表。每个元素在通过put方法放入HashMap中的时候,要按照如下步骤进行:1.根 阅读全文
posted @ 2018-10-04 01:20
尐鱼儿
阅读(185)
评论(0)
推荐(0)
摘要:
在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack、Queue、Map类型的遍历,还是有一些讲究的。 最近看了一些代码,在便利Map时候,惨不忍睹,还有一些是遍历错误,忽略了队列、栈与普通Collection的差别导致的,这些代码就不作为反面教材 阅读全文
posted @ 2018-10-04 01:17
尐鱼儿
阅读(8052)
评论(0)
推荐(0)
摘要:
LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链 阅读全文
posted @ 2018-10-04 01:16
尐鱼儿
阅读(133)
评论(0)
推荐(0)
摘要:
HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比较简单 阅读全文
posted @ 2018-10-04 01:15
尐鱼儿
阅读(148)
评论(0)
推荐(0)
摘要:
HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的, 阅读全文
posted @ 2018-10-04 01:14
尐鱼儿
阅读(116)
评论(0)
推荐(0)
摘要:
ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随 阅读全文
posted @ 2018-10-04 01:13
尐鱼儿
阅读(216)
评论(0)
推荐(0)
摘要:
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。 但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来 阅读全文
posted @ 2018-10-04 01:01
尐鱼儿
阅读(537)
评论(0)
推荐(0)
摘要:
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的: 如果 阅读全文
posted @ 2018-10-04 01:01
尐鱼儿
阅读(313)
评论(0)
推荐(0)
摘要:
从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪。 一、通过类变量和方法返回数据 使用这种方法返回数据需要在调用start方法后才能通过类变量或方法得到数据。让我们先来看看例程2-13会得到什么结果。 阅读全文
posted @ 2018-10-04 01:00
尐鱼儿
阅读(261)
评论(0)
推荐(0)
摘要:
synchronized关键字有两种用法。第一种就是在《使用Synchronized关键字同步类方法》一文中所介绍的直接用在方法的定义中。另外一种就是synchronized块。我们不仅可以通过synchronized块来同步一个对象变量。也可以使用synchronized块来同步类中的静态方法和非 阅读全文
posted @ 2018-10-04 00:59
尐鱼儿
阅读(641)
评论(0)
推荐(0)
摘要:
要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程调用,并 阅读全文
posted @ 2018-10-04 00:58
尐鱼儿
阅读(1089)
评论(0)
推荐(0)
摘要:
我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特定的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块。下面的代码演示了如何同步特定的类方法: 运行结果如下: 看到上面的运行 阅读全文
posted @ 2018-10-04 00:57
尐鱼儿
阅读(2150)
评论(0)
推荐(0)
摘要:
在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后需要使用一个由这个线程计算得到的值,就必须使用j 阅读全文
posted @ 2018-10-04 00:56
尐鱼儿
阅读(201)
评论(0)
推荐(0)
摘要:
与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。 一、创建并运行线程 线程在建立后并不马上执行run方法中的代码,而是处于等待状态。线程处于等待状态时,可以通过Th 阅读全文
posted @ 2018-10-04 00:55
尐鱼儿
阅读(199)
评论(0)
推荐(0)
摘要:
实现Runnable接口的类必须使用Thread类的实例才能创建线程。通过Runnable接口创建线程分为两步: 1.将实现Runnable接口的类实例化。 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法。 最后通过Thread类的start方法建立线程。 阅读全文
posted @ 2018-10-04 00:54
尐鱼儿
阅读(826)
评论(0)
推荐(0)
摘要:
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下: Ru 阅读全文
posted @ 2018-10-04 00:45
尐鱼儿
阅读(249)
评论(0)
推荐(0)
摘要:
一、线程概述 线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。 进程和线程是现代 阅读全文
posted @ 2018-10-04 00:38
尐鱼儿
阅读(186)
评论(0)
推荐(0)
摘要:
AWT事件处理 事件处理机制,几类具有典型代表意义的事件: 几种常用事件处理机制 查看JDK Doc文档中的 用户图形界面的行为 1、事件类型 (1)事件类的层次结构图如下所示。许多事件类在java.awt.event包中,也有一些事件类在API的其他地方。 (2)对于每类事件,都有一个接口,这个接 阅读全文
posted @ 2018-10-04 00:09
尐鱼儿
阅读(1171)
评论(0)
推荐(0)
摘要:
1、什么是事件 1)事件 描述发生了什么的对象 [事件与异常类似,是由一个个类构成的,当一个事件产生的时候,实际上是由对应的那个事件的类来生成了一个对象,这个对象封装了与这个事件相关的信息,我们可以通过这个对象获取到事件相关的信息]。 2)事件源 事件的产生器 [比如说是一个按钮]。 3)事件处理器 阅读全文
posted @ 2018-10-04 00:07
尐鱼儿
阅读(1023)
评论(0)
推荐(0)
摘要:
布局管理器,现在我们使用的布局管理器一般是使用默认的,或者屏蔽掉自己定义一个布局管理器。 1)容器里组件的位置和大小是由布局管理器来决定的。容器对布局管理器的特定实例保持一个引用。当容器需要定位一个组件时,它将调用布局管理器来完成。当决定一个组件的大小时,也是如此。 2)在AWT中,给我们提供了五种 阅读全文
posted @ 2018-10-04 00:06
尐鱼儿
阅读(745)
评论(0)
推荐(0)
摘要:
Frames 1)是Window的子类 2)具有标题和缩放角 3)从容器继承并以add方式添加组件 4)能以字符串规定的标题来创建不可见框架对象 5)能将BorderLayout当做缺省布局管理器 6)用setLayout方式来改变缺省布局管理器 7)Frame是Window的一个子类。它是带有标题 阅读全文
posted @ 2018-10-04 00:05
尐鱼儿
阅读(312)
评论(0)
推荐(0)
摘要:
建立图形用户界面 Container:Container的两个主要类型是Window和Panel 1) Window是Java.awt.Window的对象 (1) Window是java.awt.Window的对象。Window是显示屏上独立的本机窗口,它独立于其它容器。 (2)Window有两种形 阅读全文
posted @ 2018-10-04 00:04
尐鱼儿
阅读(644)
评论(0)
推荐(0)
摘要:
1) AWT(Abstract Window Toolkit),抽象窗口工具集,第一代的Java GUI组件,是重量级的。 2) Swing,不依赖于底层细节,轻量级的组件。 GUI全称是Graphical User Interface,即图形用户界面。根据作用GUI组件可分为基本组件和容器。组件又 阅读全文
posted @ 2018-10-04 00:03
尐鱼儿
阅读(737)
评论(0)
推荐(0)

浙公网安备 33010602011771号