java
文章平均质量分 57
IT袍哥
袍哥人家,绝不拉稀摆带
展开
-
java调exe
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class test2 { public static void main(String args[]){ try { Process pro = R原创 2017-05-24 18:11:29 · 188 阅读 · 0 评论 -
JarsLink入门
简介当我们用传统模式动态加载一个jar包时,可能会带来以下麻烦:如所加载的jar包其依赖包与应用产生冲突,或者所加载的jar包运行出现故障时,可能会导致整个应用瘫痪。而JarsLink作为阿里的一款开源框架,正好帮我们解决了这一烦恼,其主要特性如下: 1.模块之间进程隔离,互不影响,避免了依赖包的冲突,当某个模块发生故障时,也不会导致整个系统瘫痪。 2.应用可对各个模块实现热部署,如要升级...原创 2018-08-02 13:16:08 · 4613 阅读 · 0 评论 -
java设计模式一(单例模式)
java设计模式——单例模式一.概述单例模式是指一个类在内部创建一个静态实例供外部调用,并且在整个程序运行过程中,也只会存在这一个实例。二.应用场景在我们开发程序时,涉及到数据库连接,三方支付接口,线程池、缓存、计数器、进度条、打印机等情况时候,常常都会用到单例模式。三.代码演示:1.最简单的单例模式(饿汉式):public class Single...原创 2018-08-02 13:16:26 · 159 阅读 · 0 评论 -
java设计模式二(原型模式)
java设计模式——原型模式一.概述原型模式是指克隆一个已有的对象实现创建一个新对象。二.应用场景1.初始化成本较高,比如需要在网络或硬盘上获取较多资源。 2.当一个对象需要做修改,但同时也需要保留原始值时,可用原型模式。三.代码演示:public class PrototypeDemo implements Cloneable{ private ...原创 2018-08-02 13:16:38 · 136 阅读 · 0 评论 -
java设计模式三(享元模式)
java设计模式—享元模式一.概述享元模式是指创建一个实例后,将其存放在map里,当在其他地方需要创建相同实例时,直接在map里面取出相应的实例,不必多次创建,从而达到减少创建实例数量,内存开销,并提高性能的目的。这一点跟单例模式颇有相似之处。二.应用场景1、系统存在较多相实例。三.代码演示:public class PrototypeDemo implem...原创 2018-08-02 13:17:27 · 88 阅读 · 0 评论 -
JAVA多线程一(线程的实现)
多线程的实现一.简介java 可在单个程序中同时运行多个线程,并内置了对并发编程的支持。线程也称为轻量级进程,拥有自己的堆栈,寄存器和程序计数器,各个线程内运行的代码仅在该线程上下文中起作用。合理应用多线程,可以通过优化系统资源的使用来提高程序的性能和响应的速度。二.多线程的实现实现多线程的方式有两种,一种是创建Thread的子类并覆盖该run()方法。第二种方法是Runnab...原创 2018-08-05 19:06:19 · 108 阅读 · 0 评论 -
Servlet八(RequestDispatcher)
Servlet八—RequestDispatcher RequestDispatcher主要用于URL的重定向,使用RequestDispatcher可以作为Servlet的一个转发器,当服务器收到客户端浏览器发送的访问请求时,可以交给RequestDispatcher去判断该转向哪个Servlet。RequestDispatcher有forward()和include()两个方法...原创 2018-08-14 10:10:00 · 131 阅读 · 0 评论 -
Servlet九(过滤器)
Servlet九—过滤器 Servlet过滤器是一个可以拦截针对Web应用程序的HTTP请求的对象。servlet过滤器可以拦截servlet,JSP,HTML文件或其他静态内容的请求。要创建servlet过滤器,需要实现该javax.servlet.Filter接口。当第一次加载servlet过滤器时,会调用init()方法,这与servlet一样,当HTTP请求到达过滤器拦截的...原创 2018-08-14 10:10:29 · 129 阅读 · 0 评论 -
Servlet十(并发)
Servlet十—并发 servlet容器或Web服务器通常是多线程的,而Servlet类是单例的。由于多个浏览器或客户端可以同时对同一servlet发起请求。因此,在实现servlet时需要考虑并发性。 为了确保servlet线程安全,我们必须遵循一些基本的规则: 1.servlet service()方法不应访问任何成员变量,除非这些成员变量本身是线程安全的。 2.ser...原创 2018-08-14 10:10:55 · 314 阅读 · 0 评论 -
java设计模式四(外观模式)
java设计模式—外观模式一.概述外观模式是指将各模块的访问接口集成到一个外观类中,外观类隐藏了各模块的逻辑业务,使访问更加简单,也使得各模块更加独立。二.应用场景1、将复杂的业务分解为多个子模块, 降低开发难度。 2、使模块自己更加独立,耦合更低。三.模式示例:假设我们系统需要调用京东和淘宝开放平台的API获取卖家销量。可按以下步骤实现: 1.设计获取淘宝...原创 2018-08-02 13:18:10 · 116 阅读 · 0 评论 -
java设计模式五(工厂模式)
java设计模式—工厂模式一.概述工厂模式是将一些具有相同属性或功能的类通过一个工厂类进行管理,当需要创建一个实例时,只需在工厂里去获取即可,无需了解每一个类的具体逻辑。二.应用场景1.对数据库的操作,如果我们有一个完善的数据库工厂,则在编写代码时,就无需关心连接的什么数据库。 2.我们编写代码连接打印机时,其实就是工厂模式。 3.图片加载,可加载本地图片或网络图片时,...原创 2018-08-02 13:19:08 · 130 阅读 · 0 评论 -
java设计模式六(抽象工厂模式)
java设计模式—抽象工厂模式一.概述抽象工厂模式是在工厂模式的基础上,加上了一个管理工厂的超级工厂。也就是说,工厂的作用是管理各种有相似功能的类,而超级工厂的作用是管理这些工厂。二.模式示例:在上一节里,我们以调用打印机为例,讲解了工厂模式的具体实现过程,但是,如果除了调用打印机,还有扫描仪或者复印机,这种情况下单纯的工厂模式就难以对付,下面我们就用抽象工厂模式来实现系统...原创 2018-08-02 13:19:40 · 204 阅读 · 0 评论 -
java设计模式七(桥接模式)
java设计模式—桥接模式一.概述将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.二.应用场景(1)如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。(2)抽象化角色和实现化角色可...原创 2018-08-02 13:20:12 · 135 阅读 · 0 评论 -
java设计模式八(建造者模式)
java设计模式—建造者模式一.概述建造模式是指将多个简单的子模块一步一步构建成一个复杂的对象。在构建这个复杂对象时,可以根据不同的业务,选择不同的子模块,并且在构建的过程中,隐藏了子模块的内部逻辑。二.模式示例:我们以购物流程中的选择商品,填写收货人信息,在线支付为例,具体讲解模式的实现 1.创建订单抽象类 public abstract class Order...原创 2018-08-02 13:21:27 · 184 阅读 · 0 评论 -
java设计模式九(代理模式)
java设计模式—代理模式一.概述代理模式分为静态代理和动态代理,这里我们只讨论静态代理,静态代理模式是指当我们要访问一个对象时,需要通过访问代理对象去实现,而不是直接访问目标对象。二.应用场景1.Windows 的快捷方式 2.某个类需要对不同的调用者提供不同的调用权限时,可在代理类中实现权限判断。 3.当某个类不能满足业务需求而又不能修改其代码时,可在代理类中实...原创 2018-08-02 13:22:12 · 117 阅读 · 0 评论 -
java设计模式十(模版模式)
java设计模式—模版模式一.概述模版模式是指在一个抽象类中固定一个逻辑框架,逻辑框架中的每一步具体实现放在子类中。二.应用场景1.对数据库操作的步骤:1.连接数据库,2.打开数据库,3.关闭数据库。这三个步骤可以作为一个逻辑框架放在抽象类中,针对不同的数据库具体实现这三个步骤。 2.对文件操作步骤:1.打开文件,2.读写文件,3.关闭文件。这三个步骤也可放在一个抽象类中...原创 2018-08-02 13:22:38 · 190 阅读 · 0 评论 -
java设计模式十一(组合模式)
java设计模式—组合模式一.概述组合模式又叫部分整体模式,把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。二.应用场景1.多级树形菜单。 2.文件和文件夹目录三.模式示例:我们以文件和文件夹目录为例,看看组合模式具体实现: 1.创建节点类public abstract class Node { ...原创 2018-08-02 13:23:12 · 122 阅读 · 0 评论 -
java设计模式十二(适配器模式)
java设计模式—适配器模式一.概述适配模式是指将一个已有类的接口转换成我们希望的另一个接口,让那些接口不兼容的类可以一起工作。二.应用场景1.想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法。三.模式示例:我们以操作扫描仪为例,需要编写一个扫描仪操作类,实现加载驱动(loadDriver...原创 2018-08-02 13:23:35 · 126 阅读 · 0 评论 -
java设计模式十三(装饰模式)
java设计模式—装饰模式一.概述装饰模式是指在以一个已有类作为基础,创建一个更多功能的装饰类,这个装饰类是作为现有类的一个包装。这点有点像一个子类继承一个父类,但比继承更灵活。二.模式示例:假设我们有个学生类(Student),学生的职责是学习,而值日生除了学习还有一些值日的工作(如檫黑板)。在这种情况下,学生可以作为一个基类,而值日生就是一个装饰类,具体代码实现如下:...原创 2018-08-02 13:23:59 · 139 阅读 · 0 评论 -
java设计模式十四(过滤器模式)
java设计模式—过滤器模式一.概述过滤模式又叫责任链模式,可以通过不同的过滤规则过滤一组对象。二.模式示例:我们以过滤学生成绩60以下的为例,说明过滤器模式具体实现过程:1.创建学生类public class Student { private String name; private float score; public Stu...原创 2018-08-03 08:44:04 · 398 阅读 · 0 评论 -
java设计模式十五(观察者模式)
java设计模式—观察者模式一.概述在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。这有点像我们的maven,比如maven的pom.xml删除某个依赖包时,eclipse里的代码就会做出相应的错误提示。二.应用场景1.微信公众号服务,发布消息时,关注公众号就可以收到推送消息 2.微博的订阅,当我们订阅了某个人的微博账号,当这...原创 2018-08-03 08:44:41 · 146 阅读 · 0 评论 -
java设计模式十六(命令模式)
java设计模式—命令模式一.概述命令模式是指将请求(命令)封装为一个对象,对不同的请求进行参数化,在接收到命令后,根据不同的参数调用不同的命令执行对象。二.模式示例:我们以通过命令方式来操作图片左转右转的方式来讲解命令模式的具体实现过程,代码如下:1.创建命令类public class Command { private ImageRotate ima...原创 2018-08-03 08:45:31 · 125 阅读 · 0 评论 -
java设计模式十七(迭代模式)
java设计模式—迭代模式一.概述迭代模式是指顺序地访问某个集合内的元素,如Java中的Iterator,List中的listIterator 迭代模式比较容易理解,在平时工作中也常用到,这里就不再举例。...原创 2018-08-03 08:45:53 · 117 阅读 · 0 评论 -
java设计模式十八(中介者模式)
java设计模式—中介者模式一.概述中介者模式是指将多个对象之间的相互通信,转化为由中介者接收信息并将信息转发给对应的对象,以达到降低耦合的目的。二.应用场景1.MVC框架 2.微服务的注册中心就是中介者模式 3.QQ群或者聊天室三.模式示例:我们买房时,通常会找房产中介,以此为例来具体实现中介者模式,代码如下:1.创建中介抽象类public a...原创 2018-08-03 08:46:35 · 231 阅读 · 0 评论 -
java设计模式十九(备忘录模式)
java设计模式—备忘录模式一.概述备忘录模式是指将对象的某个状态作为历史记录保存起来以便于在某些情况下可以恢复,如文本编辑的撤销,数据库的回滚等。二.应用场景1.文本编辑的撤销 2.数据库的回滚 3.浏览器的后退 4.代码管理器svn三.模式示例:我们以SVN代码版本管理为例,具体讲解备忘录模式实现过程,代码如下:1.创建版本信息类publi...原创 2018-08-03 08:46:59 · 135 阅读 · 0 评论 -
java设计模式二十(状态模式)
java设计模式—状态模式一.概述状态模式是指对象的行为根据某个状态的改变而改变。二.应用场景1.替代if-else或switch-case三.模式示例:1.创建状态接口public interface State { public void doAction(Context context); public void print();...原创 2018-08-03 08:47:23 · 163 阅读 · 0 评论 -
java设计模式二十一(解释器模式)
java设计模式—解释器模式一.概述解释器模式就好比我们的数学运算符和sql语句等的解析,由于理解比较容易,平时也不会去自己构建解释器,所以这里就不做过多介绍。...原创 2018-08-03 08:47:46 · 119 阅读 · 0 评论 -
java设计模式二十二(策略模式)
java设计模式—策略模式一.概述策略模式跟状态模式非常相似,唯一不同的是,策略模式中的Context要感知状态的变化,并且调用State的功能方法,而状态模式对具体的功能需要自己去执行,下面我们将状态模式略做修改就是策略模式。二.应用场景1.替代if-else或switch-case三.模式示例:1.创建状态接口public interface Sta...原创 2018-08-03 08:48:08 · 172 阅读 · 0 评论 -
java设计模式二十三(访问者模式)
java设计模式—访问者模式一.概述访问者模式是指不同的访问者调用同一个对象,根据访问者的身份返回不同的信息。二.应用场景1.权限控制 2.拦截器三.模式示例:我们以买家和卖家在访问同一个订单时,返回不同的信息为例具体讲解访问者模式的实现1.创建订单访问接口public interface IOrderViewer { public voi...原创 2018-08-03 08:48:31 · 154 阅读 · 0 评论 -
java设计模式二十四(设计模式六大原则)
java设计模式—设计模式六大原则一.单一职责原则单一原则是指在设计一个类或者一个模块甚至一个函数时,不要包含太多功能,尽量做到功能单一。如果一个类中承载了太多功能,不但复用性会降低,开发维护和扩展性也会大大降低。二.开放封闭原则开放封闭指的是扩展开放,修改封闭。即:如果一个类需要扩展,尽量在不需要修改原有代码的情况下进行扩展。这样才能包装其原有的稳定性。在设计时可以为...原创 2018-08-04 07:36:23 · 519 阅读 · 0 评论 -
JAVA多线程二(synchronized关键字)
java多线程—synchronized关键字一.临界区在讲解synchronized关键字之前,需要了解什么是临界区。临界区是指访问共用资源的程序片段,如:相同的内存(变量,数组或对象),系统(数据库,Web服务等)或文件,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或进程必须等待,有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资...原创 2018-08-07 20:00:27 · 130 阅读 · 0 评论 -
JAVA多线程三(wait,notify,notifyAll关键字)
java多线程—wait,notify,notifyAll关键字wait,notify和notifyAll主要用于线程之间的通信。任何实例调用wait()后都会变为非活动状态,直到另一个线程在该实例上调用notify()。代码如下:public class ThreadTest { public static void main(String[] args){ ...原创 2018-08-07 22:01:30 · 229 阅读 · 0 评论 -
Servlet一(生命周期)
Servlet一—生命周期一.概述一个完整的Servlet生命周期如下:加载Servlet类创建Servlet实例调用init()方法调用service()方法调用destroy()方法二.生命周期详解:1. 加载Servlet类:当Servlet容器启动时,容器就会加载所有Servlet类和相关配置文件。当容器启动完成后,才能接受用户访问请求。...原创 2018-08-12 21:47:41 · 99 阅读 · 0 评论 -
Servlet二(示例)
Servlet—示例一.Servlet运行环境在编写Servlet程序之前,需要安装JDK,开发工具(eclise),Servlet容器(如tomcat)。具体配置方法可以百度,这里不做具体讲解。二.示例编写:编写一个Servlet就是对javax.servlet.http.HttpServlet的扩展,下面我们实现一个最简单的Servlet。public class ...原创 2018-08-12 21:48:25 · 226 阅读 · 0 评论 -
Servlet三(web.xml配置)
Servlet三—web.xml配置一.概述如果要成功访问一个Servlet,除了编写Servlet类之外,还必须配置web.xml,这个文件的作用是告诉servlet容器要部署哪些servlet,以及servlet与URL的映射关系。下面我们将详细讲解web.xml的配置。 二.web.xml详解###1.Servlet与URL映射配置:<web-app&g...原创 2018-08-12 21:48:56 · 1058 阅读 · 0 评论 -
JAVA多线程四(Lock关键字)
java多线—Lock关键字一.简介Lock就像synchronized块一样也是线程同步机制,但Lock比synchronized更复杂。Lock以及其他更高级的同步机制都是synchronized块的扩展,因此我们讲Lock的时候不能完全摆脱synchronized关键字。二.Lock的使用在讲synchronized关键字时,我们用了下面的代码作为同步的例子:...原创 2018-08-08 12:36:19 · 907 阅读 · 0 评论 -
JAVA多线程五(ThreadLocal)
java多线—ThreadLocal一.简介ThreadLocal是线程内独有的局部变量,用于存储任何类型的变量对象。即使两个线程正在执行相同的代码,并且代码具有对ThreadLocal变量的引用,这两个线程也看不到彼此的ThreadLocal变量。每个线程都有自己的ThreadLocal变量,并且可以使用get()和set()方法来取值和赋值。二.ThreadLocal的使用...原创 2018-08-08 15:16:29 · 133 阅读 · 0 评论 -
Servlet四(HttpRequest)
Servlet四—HttpRequest一.概述浏览器发起http请求时,会传入HttpServletRequest和HttpServletResponse两个参数,HttpServletRequest负责接收浏览器发送的数据,而HttpServletResponse则负责向浏览器返回数据。浏览器的任何数据都可以通过HttpRequest对象发送到Servlet。其数据结构包含参数(P...原创 2018-08-13 16:22:24 · 178 阅读 · 0 评论 -
Spring基础一(依赖注入概述)
Spring基础—依赖注入(DI)一.概述依赖是指一个类(classA)在业务上需要调用另一个类的(classB)的某个函数或属性。而注入是指一个类(classA)在调用另一个类(classB)的时候,不是在classA中显式的new一个classB的实例,而是通过造函数或Setter函数传入classB的一个实例,这就是依赖注入。使用依赖注入可以使代码更清晰,解耦更有效。二....原创 2018-08-18 09:40:18 · 211 阅读 · 0 评论 -
JAVA多线程六(线程池)
java多线程—线程池一.概述线程池是管理Runnable线程的一个集合。当我们需要启动线程执行多个任务时,可将任务传递给线程池,不必每次执行任务是都创建一个新线程,只要池中有空闲线程,任务就会随机分配给其中一个线程执行。在线程池内部,任务被插入到阻塞队列中,池中的线程从该阻塞队列中出列。当一个新任务插入队列时,其中一个空闲线程就会启动执行。二.线程池使用:java.uti...原创 2018-08-08 19:04:37 · 141 阅读 · 0 评论