- 博客(43)
- 资源 (6)
- 收藏
- 关注
原创 文件结构树的├、└、─ 符号
尽管现代的图形用户界面已经取代了许多字符界面的应用场景,但这些符号仍然在编程中保持着重要的地位,也因此成为了编程中的一种惯例。希望通过本篇博客,你对这些符号的历史和应用有了更清晰的认识。在编程过程中,熟练地使用这些符号将会为你的代码和界面设计提供便利。
2023-09-08 09:01:59
2492
原创 类加载机制
类加载机制类的加载、连接和初始化JVM和类类的加载类的连接类的初始化类的初始化时机类加载器类加载器介绍类加载器机制自定义类加载器类的加载、连接和初始化当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来对该类进行初始化。正常情况下,JVM将会连续完成这三个步骤,所以一般将这三个步骤统称为类加载或类初始化。JVM和类当调用java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都处于该J
2020-09-05 16:32:33
317
翻译 Jackrabbit配置
Jackrabbit配置Apache Jackrabbit需要两条信息来设置运行时内容存储库实例:主目录存储库:目录的文件系统路径,其中包含由Jackrabbit的运行时实例访问的内容存储库。该目录通常包含所有存储库内容,搜索索引,内部配置以及内容存储库内管理的其他持久性信息。请注意,这不是绝对必需的,某些持久性管理器和其他Jackrabbit组件很可能被配置为访问存储库主目录之外的文件甚至其他资源(例如远程数据库)。然而,即使某些组件选择不使用该目录,也始终需要指定的存储库主目录。当首次实例化存储
2020-09-01 16:23:10
1107
翻译 Jackrabbit部署模型
部署模型JSR-170明确允许使用多种不同的部署模型,这意味着完全由存储库实施来建议某些模型。Jackrabbit被构建为支持各种不同的部署模型,此处将概述有关如何部署Jackrabbit的一些可能性。另请参阅以下HOWTO文档,以设置和使用不同的部署模型:JCR client application HOWTO (JCR客户端应用程序)模型1: Application Bundle HOWTO (应用捆绑操作)模型2: Shared J2EE Resource HOWTO (共享J2EE资源
2020-09-01 14:50:30
340
翻译 Jackrabbit 体系结构
Jackrabbit 体系结构How Jackrabbit works Jackrabbit如何运作Repository lifecycle 储存库生命周期Search implementation 搜索实现Index readers 索引阅读器Concurrency control 并发控制Jackrabbit的一般体系结构可以描述为三层:内容应用层,API层和内容存储库实现层。内容应用内容应用程序通过JSR-170 API与Content Repository(内容存储库)实现进行
2020-09-01 14:49:36
315
翻译 Jackrabbit 组件
Apache Jackrabbit 项目由若干相关组件组成。主要组成部分:Jackrabbit APIJackrabbit JCR CommonsJackrabbit JCR TestsJackrabbit CoreJackrabbit Text Extractors (replaced by Tika in Jackrabbit 2.x)Jackrabbit JCR-RMIJackrabbit WebDAV LibraryJackrabbit JCR ClientJackrabbit
2020-09-01 14:48:18
123
原创 Java语言简介
Java语言发展史语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言Java之父:詹姆斯·高斯林(James Gosling)Java语言发展时间线1995年5月,5月23日,Sun公司在Sun world会议上正式发布Java,Java语言诞生1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0)1997年2月,J
2020-08-31 01:56:30
379
翻译 Apache Jackrabbit入门
Apache Jackrabbit入门开始使用Apache JackrabbitJava技术API内容库(JCR)Jackrabbit体系结构和部署模型节点类型原文链接:http://jackrabbit.apache.org/jcr/getting-started-with-apache-jackrabbit.html开始使用Apache Jackrabbit要开始使用Jackrabbit,您首先应该熟悉JCRAPI。下载JSR 170规范,浏览API文档,查看我们对JCR级别的介绍,或者阅读一些J
2020-08-30 09:47:37
507
原创 Java23种设计模式(GOF)——备忘录模式
备忘录模式(memento)场景核心结构案例场景word文档编辑,电脑断电或死机,再打开,提示恢复到以前的文档微信消息或邮件系统中,消息、邮件撤回棋类游戏中的悔棋软件中的回退操作数据库管理中,事务管理的回滚操作核心保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。结构源发器类Originator备忘录类Memento负责人类CareTake案例/** * 源发器类 * @author huangyzh * @create 2020-05-20 1:
2020-08-27 10:35:55
88
原创 Java23种设计模式(GOF)——命令模式
命令模式(command)结构案例开发常见场景将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作Action模式、事务transaction模式结构Command抽象命令类ConcreteCommand具体命令类Invoker调用者/请求者请求的发送者,它通过命令对象来执行请求。一个调用者并不需要在设计时确定其接收者,因此它只与抽象命令类之间存在关联。在程序运行时,将调用命令对象的execute(),间接调用接收
2020-08-27 10:35:46
156
原创 Java23种设计模式(GOF)——中介者模式
中介者模式(Mediator)核心案例本质开发常见场景核心如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系极其复杂,这些对象称为“同事对象”。此时可以引入一个中介者对象,使各个同事对象只跟中介者对象打交道,将复杂的网状结构化为星状结构(一对多)。案例/** * 抽象中介者,定义了同事对象到中介者对象的接口 * @author huangyzh * @create 2020-05-19 0:57 */public interface Mediator {
2020-08-27 10:35:35
109
原创 Java23种设计模式(GOF)——代理模式
代理模式 Proxy pattern核心作用核心角色应用场景分类静态代理案例动态代理优点JDK自带的动态代理核心作用通过代理,控制对对象的访问。可以详细控制访问 某个(某类) 对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理,从而实现将统一流程代码放到代理类中进行处理。(即AOP的微观实现)核心角色抽象角色定义代理角色和真实角色的公共对外方法真实角色实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用,关注的是真正的业务逻辑代理角色实现抽象角色,是真实角色的
2020-08-27 10:35:22
88
原创 Java23种设计模式(GOF)——装饰模式
装饰模式(decorator)职责实现细节案例使用场景总结和桥接模式区别职责动态的为一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。实现细节Component抽象构建角色:真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实对象相同的方式同装饰对象交互。IO流中的InputStream、OutputStream、Reader、WriterConcret
2020-08-27 10:35:08
98
原创 Java23种设计模式(GOF)——策略模式
策略模式(strategy)场景案例本质开发常见场景策略模式对应于解决某一个问题的算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便的更换算法或者增加新的算法。并且由客户端决定调用哪个算法。场景某个市场人员接到单后的报价策略(CRM系统中常见问题)。报价策略很复杂,简单做如下分类:普通客户小批量报价普通客户大批量报价老客户小批量报价老客户大批量报价具体选用哪个报价策略,这需要根据实际情况来确定。我们可以先用 条件语句(if) 处理,实现起来比较容易,符合一般开发
2020-08-27 10:34:52
76
原创 Java23种设计模式(GOF)——模板方法模式
模板方法模式(template method)场景核心案例开发常见场景模板方法模式是编程中经常用到的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。场景客户到银行办理业务取号排队办理具体现金/转账/企业/个人/理财业务给银行工作人员评分核心处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码实现转移给子类完成。即:处理步骤父类中定义好
2020-08-27 10:34:41
155
原创 Java23种设计模式(GOF)——责任链模式
责任链模式(chain of responsibility)定义场景案例定义方式开发中常见场景定义将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,佛祖传递给链上的下一个对象。场景打牌时,轮流出牌接力赛跑大学中,奖学金审批公司中,公文审批案例请假条审批流程/** * 封装请假的基本信息 * @author huangyzh * @create 2020-05-18 23:50 */public class L
2020-08-27 10:34:08
165
原创 Java23种设计模式(GOF)——迭代器模式
迭代器模式(iterator)结构案例开发中常见场景提供一种可以遍历聚合对象的方式。又称为:游标cursor模式结构聚合对象:存储数据迭代器:遍历数据案例/** * 自定义迭代器接口 * @author huangyzh * @create 2020-05-19 0:28 */public interface MyIterator { void first();//将游标指向第一个 void next();//将游标指向下一个 boolean hasNext
2020-05-23 00:34:03
161
原创 Java23种设计模式(GOF)——访问者模式
访问者模式(Visitor)模式动机定义开发常见场景模式动机对于存储在一个集合中的对象,它们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其访问方式也有所不同。定义表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变个元素的前提下定义作用于这些元素的新操作。开发常见场景XML文档解析器设计编译器的设计复杂集合对象的处理...
2020-05-21 00:19:17
134
原创 Java23种设计模式(GOF)——解释器模式
解释器模式(Interpreter)介绍案例开发常见场景介绍是一种不常用的设计模式用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计。当我们需要开发一种新的语言时,可以考虑使用解释器模式尽量不要使用解释器模式,后期维护会有很大麻烦。在项目中,可以使用Jruby,Groovy,Java的js引擎来替代解释器的作用,弥补Java语言的不足。案例略开发常见场景EL表达式的处理正则表达式解释器SQL语法的解释器数学表达式解析器如现成的工具包:Ma
2020-05-21 00:18:36
140
原创 Java23种设计模式(GOF)——享元模式
享元模式(FlyWeight)场景核心实现案例应用场景总结场景内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以通过享元模式,节省内存。核心享元模式以共享的方式高效地支持大量细粒度对象的重用。享元模式能做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变外部状态,不可以共享,会随环境变化而改变实现FlyweightFactory享元工厂类创建并管理享元对象,享元池一般设计成键值对FlyWeight抽象享元类通常是一个接
2020-05-19 23:10:07
261
原创 Java23种设计模式(GOF)——外观模式
外观模式(门面模式)核心案例使用场景核心为了子系统提供统一的入口。封装子系统的复杂性,便于客户端调用。案例注册公司流程不使用外观模式/** * 工商局 * @author huangyzh * @create 2020-05-18 22:22 */public interface GongShangJu { void checkName();//核名}public class FuzhouGongShangJu implements GongShangJu { @
2020-05-18 22:40:49
131
翻译 Jackrabbit独立服务器
以下内容来自jackrabbit官方文档官方跳转链接:独立服务器.独立服务器每个Jackrabbit版本都附带一个预构建的且可运行的独立服务器jar。这是开始使用Jackrabbit的最简单方法,只需下载并启动jar,即可获得功能齐全的JCR内容存储库。该页面的其余部分介绍了独立服务器可以执行的其他操作。运行独立服务器您需要Java版本5或更高版本才能运行Jackrabbit独立服务器。要启动服务器,请双击独立的jar文件,或在命令行上调用它。$ java -jar jackrabbit-
2020-05-18 16:25:22
958
原创 Java23种设计模式(GOF)——组合模式
组合模式(composite)场景核心组件关系工作流程分析案例应用场景场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象核心抽象构件(Component)角色:定义了叶子和容器构建的共同点叶子(Leaf)构件角色:无字节点容器(Composite)构件角色:有容器特征,可以包含子节点组件关系/** * 抽象组件 * @author huangyzh * @create 2020-05-17 16:45 */public interf
2020-05-18 00:22:19
162
原创 Java23种设计模式(GOF)——桥接模式
桥接模式(bridge)场景核心要点案例应用场景总结场景商城系统中常见的商品分类,以电脑为类,如何良好的处理商品分类销售的问题?如图:可以使用多层继承结构实现上图的关系,但存在以下问题:扩展性问题(类个数膨胀问题):如果要增加一个新的电脑类型:智能手机,则要增加各个品牌下面的类如果要增加一个新的品牌,也要增加各种电脑类型的类违反单一职责原则:一个类:联想笔记本,有两个引起这个类变化的原因在这个场景下有两个变化的维度:电脑类型、电脑品牌此时,可以将这个两个维度分开,根据
2020-05-17 16:37:25
288
翻译 Jackrabbit入门教程
以下内容来自jackrabbit官方文档官方跳转链接:Jackrabbit First HopsFirst HopsFirst HopsHop 0: 入门Hop 1: 登录到JackrabbitHop 2: 处理内容Hop 3: 导入内容First Hops欢迎来到您进入Jackrabbit世界的第一站!本简介为您提供了使用Jackrabbit和JCR API的动手经验。一旦完成了本文档的跳转,就应该准备继续使用官方的JCR规范和该站点上的文档。Hop 0: 入门开始使用Jackrabbit
2020-05-16 16:19:39
4600
原创 Java23种设计模式(GOF)——适配器模式
适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee)...
2020-05-16 10:37:04
248
原创 Java23种设计模式(GOF)——原型模式
原型模式实现方式案例使用场景:通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。实质:该模式实质是使用java中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型对象的特点。优势:效率高(直接克隆,避免了重新执行构造过程步骤)。与new的区别:克隆类似于new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象的属性值完全和原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后,再修改克隆对象的值。实现方式Cloneable接口
2020-05-16 10:35:43
203
原创 Java23种设计模式(GOF)——建造者模式
建造者模式场景本质案例开发场景场景我们需要建造一个复杂的产品。比如:潜水艇、手机,在建造这个产品的过程中需要处理一个问题:装配这些子组件是不是有一个步骤问题?实际开发中,我们所需要的对象构建时,也非常复杂,有很多步骤需要处理。本质分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序
2020-05-15 01:29:05
349
原创 Java23种设计模式(GOF)——工厂模式
工厂模式:实现了创建者和调用者的分离。详细分类:简单工厂模式、工厂方法模式、抽象工厂模式。核心本质实例化对象,用工厂方法代替new操作。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。...
2020-05-14 00:57:23
169
原创 Java23种设计模式(GOF)——单例模式
核心作用保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。常见应用场景1、windows系统的任务管理器和回收站就是很典型的单例模式;2、项目中读取配置文件的类,一般也只有一个对象,没必要每次使用配置文件数据,每次new一个对象去读取;3、网站的计数器,一般也是采用单例模式实现,否则难以同步;4、应用程序的日志应用,一般都采用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加;5、数据库连接池的设计一般也是采用单例模式,因为数据
2020-05-13 22:57:28
469
原创 Java23种设计模式(GOF)
设计模式的三大分类1、创建型模式五种:单列模式、工厂模式、抽象工厂模式、建造者模式、原型模式。2、结构型模式七种:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式3、行为型模式十一种:模板方法模式、命令模式、迭代器模式、观察者模式、终结者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。设计模式的六大原则1、单一职责原则2、里氏替换原则3、依赖倒转原则4、接口隔离原则5、迪米特法则6、开闭原则学习设计模式的初衷是为了学习设
2020-05-13 22:56:34
145
原创 Linux Shell脚本入门
Shell脚本命令的工作方式有两种:交互式和批处理交互式(Interactive):用户每输入一条命令就立即执行。批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。#!/bin/bash #For Example BY linuxprobe.com pwd ls -alShell脚本文件的名称可以任意,但为了避免被误以为是普...
2020-05-10 15:31:34
275
原创 Oracle入门(学习整理)
Oracle和MYSQL的差别Oracle是多用户的, MYSQL是多数据库的遵循SQL标准不同厂商,不同的数据库产品,但是有自己的方言使用自己的方言,也能够完成相同的功能Oracle安全级别要高,MYSQL开源免费新建一个项目:MYSQL : 创建一个数据库,创建相应的表Oracle: 创建一个表空间,创建用户,用户去创建表通常情况下,ORacle数据库只会有一个实例O...
2020-05-10 15:31:12
1215
原创 Oracle PLSQL基本语法
PLSQL编程: 过程语言,编写一些复杂业务逻辑条件判断--条件判断 if then elsif then else end if; --根据不同年纪,输出相关内容declare age number := &aaa;begin if age < 18 then dbms_o...
2020-05-10 15:29:10
1000
原创 MySQL数据库入门
数据库概述数据库是存储电子文件的处所,本质是一个文件系统,我们可以使用命令(SQL)对文件中的数据进行新增、查询、更新、删除等操作。作用是存储数据,带有访问权限限制不同的用户使用不同的操作。常见数据库mysql:mariadb:oracle:db2:IBM公司,sqlserver:windows里面,政府网站asp.net,并且大学教学通常都是采用SQLServer,图形化工...
2019-07-29 19:43:54
125
原创 Linux基础命令总结
常用系统工作命令1.echo命令echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。把指定字符串“yunyu.com”输出到终端屏幕:echo yunyu.com终端屏幕上显示如下信息:yunyu.com使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上:echo $SHELL终端屏幕上显示如下信息:/bin/bash...
2019-06-11 19:53:25
707
原创 RedHat server 7.0 安装在VMware步骤
1.安装准备: 先安装好VMware并下载RedHat 7.0 本文使用的镜像为:RHEL-server-7.0-x86_64.iso2.点击“创建新的虚拟机”进入“新建虚拟机向导”3.选择“典型”方式进行配置 ,点击下一步4.选择稍后安装操作系统 ,点击下一步5.选择客户机操作系统的类型为Linux,版本为“Red Hat Enterprise L...
2019-06-10 16:39:12
5130
原创 linux 概述
linux相对于Windows的优势(安全性、高可用性与高性能): 1.稳定且有效率 2.免费或少许费用 3.漏洞少且快速修补 ----开源 4.多任务多用户 5.更加安全的用户以及文件权限策略 6.相对不耗资源Linux的应用 服务器系统:Web应用服务器、数据库服务器、接口服务器、DNS、FTP等 嵌入式系统:路由器、防火墙、手机、PDA、IP分享器、交换器、家电用品的微...
2019-06-10 14:08:24
125
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人