摘要: 一、享元模式(FlyWeight,轻量级) 【共享类与非共享类】 【享元工厂】 【客户端】 【UML类图】 二、7种结构模式总结 阅读全文
posted @ 2019-04-26 23:58 ID长安忆 阅读(114) 评论(0) 推荐(0)
摘要: 一、装饰模式(decorator) 职责:动态的为一个对象增加新的功能。 是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,避免类体系的膨胀。 实现细节: – Component抽象构件角色:真实对象和装饰对象有相同的接口。这样,客户端对象 阅读全文
posted @ 2019-04-26 01:13 ID长安忆 阅读(226) 评论(0) 推荐(0)
摘要: 一、桥接模式(bridge) 场景:商城系统中常见的商品分类,以电脑为例,首先想到使用多层继承结构。 —— 台式机(联想台式机、戴尔台式机、神舟台式机) 电脑 ——笔记本(联想笔记本、戴尔笔记本、神舟笔记本) ——平板电脑(联想pad、戴尔pad、神舟pad) 问题:(1)如果要增加一个新的电脑类型 阅读全文
posted @ 2019-04-23 17:23 ID长安忆 阅读(226) 评论(0) 推荐(0)
摘要: 一、引言 结构模式:核心作用就是从程序的结构上实现松耦合,从而扩大整体的类结构,用来解决更大的问题。 二、适配器模式(adapter) 生活中假设笔记本是标准的USB接口但是外置键盘是圆形接口,这时候就需要一个适配器,如下图所示。一端连接笔记本,一端连接键盘。 用途:一个如下的适配器价格低于一个新的 阅读全文
posted @ 2019-04-22 22:45 ID长安忆 阅读(297) 评论(0) 推荐(0)
摘要: 一、建造者模式 本质:分离了对象子组件的单独构造(由Builder负责)和装配的分离(由Director负责),从而可以构建出复杂的对象,这个模式适用于:某个对象的构建过程十分复杂 好处:由于构建和装配的解耦,不同的构建器和相同的装配可以做出不同的对象,相同的构建器和不同装配顺序也可以组成不同的对象 阅读全文
posted @ 2019-04-22 13:42 ID长安忆 阅读(268) 评论(0) 推荐(0)
摘要: 一、工厂模式(分为:简单工厂模式、工厂方法模式、抽象工厂模式) 实现了创建者和调用者的分离 核心本质:1、实例化对象,用工厂方法代替new操作;2、将选择实现类、创建对象统一管理和控制,从而将调用者跟实现类解耦。 简单工厂模式:用来生产同一等级结构中的任意产品(对于增加的新的产品,需要修改已有代码) 阅读全文
posted @ 2019-04-21 22:51 ID长安忆 阅读(172) 评论(0) 推荐(0)
摘要: 一、概念 《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addiso 阅读全文
posted @ 2019-04-21 01:13 ID长安忆 阅读(178) 评论(0) 推荐(0)
摘要: 一、概念 【基本】 【示例】 【API】 阅读全文
posted @ 2019-04-18 21:42 ID长安忆 阅读(557) 评论(2) 推荐(0)
摘要: 一、概念 Java脚本引擎是jdk 6.0之后的新功能。 使得Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的。 Java脚本API是连接Java平台和脚本语言的桥梁。 可以把一些复杂的业务逻辑交给脚本语言处理,从而大大提高了开发效率。 【代码 阅读全文
posted @ 2019-04-18 01:26 ID长安忆 阅读(443) 评论(0) 推荐(0)
摘要: 一、概念 应用场景:如在线评测系统,客户端编写代码,上传到服务器端编译运行;服务器动态加载某些类文件进行编译 阅读全文
posted @ 2019-04-17 22:52 ID长安忆 阅读(169) 评论(0) 推荐(0)
摘要: 一、前言 动态语言:程序运行时,可以改变程序结构或变量类型。典型的代表:Python,ruby,JavaScript 如JavaScript代码: function test(){ var s="var a=3;var b=5;alert(a+b)" eval(s) } 但是 C、C++、Java不 阅读全文
posted @ 2019-04-17 13:37 ID长安忆 阅读(250) 评论(0) 推荐(0)
摘要: 一、概念 作用: ——不是程序本身,可以对程序作出解释。(这一点和注释没什么区别) ——可以被其它程序(比如编译器)读取,这是区别于注释的最重要的一点。 格式: ——"@注释名" ,还可以添加一些参数,例如@SuppressWarnings(Value="unchecked") 用在哪里? ——可以 阅读全文
posted @ 2019-04-15 20:16 ID长安忆 阅读(535) 评论(0) 推荐(0)
摘要: 一、TCP 在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序, 简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。 “请求-响应”模式: 1. Socket类:发送TCP消息。 2 阅读全文
posted @ 2019-04-11 20:55 ID长安忆 阅读(304) 评论(0) 推荐(0)
摘要: 一、概念 Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能。Java虚拟机负责提供与操作系统的实际连接。 InetAddress 作用:封装计算机的IP地址和DNS(没有端口信息)。 注:DNS是Domain Name System,域名系统。 特点:这个类没有构 阅读全文
posted @ 2019-04-10 23:41 ID长安忆 阅读(747) 评论(0) 推荐(0)
摘要: 一、概念 ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统, 网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 从其中我们可以提取到以下内容: 1. 计算机网络的作用:资源共享和信息传递。 阅读全文
posted @ 2019-04-10 20:52 ID长安忆 阅读(285) 评论(0) 推荐(0)
摘要: 一、Timer和Timetask 通过Timer和Timetask,我们可以实现定时启动某个线程。 java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线程。其实,Timer类本身实现的就是一个线程, 只是这个线程是用来实现调用其它线 阅读全文
posted @ 2019-04-10 00:20 ID长安忆 阅读(461) 评论(0) 推荐(0)
摘要: 一、概念 多线程环境下,我们经常需要多个线程的并发和协作。这个时候,就需要了解一个重要的多线程并发协作模型“生产者/消费者模式”。 Ø 什么是生产者? 生产者指的是负责生产数据的模块(这里模块可能是:方法、对象、线程、进程)。 Ø 什么是消费者? 消费者指的是负责处理数据的模块(这里模块可能是:方法 阅读全文
posted @ 2019-04-09 21:37 ID长安忆 阅读(467) 评论(0) 推荐(0)
摘要: 一、概念 “死锁”指的是: 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致两个或者多个线 程都在等待对方释放资源,都停止执行的情形。 因此, 某一个同步块需要同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 下面案例中,“化妆线程”需要同时拥有“镜子对象”、 阅读全文
posted @ 2019-04-09 20:08 ID长安忆 阅读(232) 评论(0) 推荐(0)
摘要: 一、概念 现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题。 比如:教室里,只有一台电脑,多个人都想使用。 天然的解决办法就是,在电脑旁边,大家排队。前一人使用完后,后一人再使用。 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。 这时候,我们就需要用到“线程同步” 阅读全文
posted @ 2019-04-09 01:17 ID长安忆 阅读(139) 评论(0) 推荐(0)
摘要: 一、概念 1. 处于就绪状态的线程,会进入“就绪队列”等待JVM来挑选。 2. 线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5。 3. 使用下列方法获得或设置线程对象的优先级。 int getPriority(); void setPriority(int newPriority) 阅读全文
posted @ 2019-04-08 20:27 ID长安忆 阅读(355) 评论(0) 推荐(0)