- 博客(49)
- 资源 (3)
- 收藏
- 关注
原创 python基础知识
python中几个常用的函数以及方法把函数作为参数python能把函数作为参数传入到另一个函数中去,把函数名作为变量来看就好理解 这是因为python中一切数据皆是对象,而我们定义的方法名只是对其的引用。def add(x, y, f): return f(x) + f(y)如果传入abs作为参数f的值: add(-5,9,abs)根据函数的定义实际上是:...
2018-05-12 17:40:00
277
原创 ES基础
elasticSearchmatch查询,匹配查询是全文搜索的一种查询。match_phrase查询是短文匹配查询,他会把需要匹配的内容不进行修改直接当做一个term来查询。高亮搜索:在更节点上面有一个关键词hightlight,可以高亮我们的搜索结果。当执行该查询时,返回结果与之前一样,与此同时结果中还多了一个叫做 highlight 的部分。这个部分包含了 about 属性匹配的文本片段,并以
2017-07-28 16:04:45
1172
转载 Cron表达式详解
转载自:http://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html Corn表达式详解Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:Seconds Minutes Hours DayofMonth Month DayofWeek YearSeconds Min
2017-06-01 10:08:06
377
原创 java深度复制和浅度复制
在java中除了基本类型之外的一切对象皆是引用,那么就设计到了一个问题,当我们需要复制的时候就有了深度复制(deep copy)和浅度(shadow copy)复制两种了。 java中api的大部分复制都是前度的复制,例如Collections.ncopies()是只复制引用,并不复制对象。Object的clone()方法是复制对象的内存,这也存在一个问题,如果这个对象中有属性指向的是另一个对象,
2017-04-24 10:49:02
1127
原创 适配器模式
适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。这句话说明了适配器模式的主要作用,就是适配,使原本不兼容的接口可以一起工作。结构图从上图可以看出,Adaptee类并没有sampleOperation2()方法,但是客户端则期待这个方法。为使客户端能够使用Adaptee类,需要提供一个包装(Wrapper)类Adapt
2017-04-21 12:13:58
344
原创 状态模式
大话设计模式中说,面向对象设计其实就是希望做到代码的责任分割。其实状态模式就是一种状态的分割状态模式当一个对象的内在状态改变时,允许改变其行为,这个 对象看起来就像是改变了其类。 状态模式主要解决的是当控制一个对象的状态转换表达式过于复杂时的情况,把状态的判断转移到表示不同状态的一系列类当中,可以吧复杂的判断逻辑简化。状态模式结构图从图中可以看出,状态模式的好处是将与特定状态相关的行为局部化,并且
2017-04-20 12:15:29
337
原创 抽象工厂模式
抽象工厂模式前面讲了简单工厂模式,工厂模式,这里来说一下抽象工厂模式。抽象工厂模式个人认为是工厂模式的再一次抽象得到的。他们的目的都是一样的,都是解耦合。工厂模式生产的是一类产品,当你扩大这个生产的商品的种类,使之成为一个产品族,这个时候由于类中的产品构成了不同等级结构中的产品族,它就变成抽象工厂模式了。将产品族减少产品后就可能变成了工厂模式。总之,不论是工厂模式,抽象工厂模式,还是简单工厂模式。他
2017-04-11 12:16:28
364
原创 观察者模式
观察者模式观察者模式又名发布-订阅模式,我跟喜欢叫它发布订阅模式,因为这就说明了这个模式的原理。即订阅者订阅需要的相关消息,发布者在适当的时候发布这个消息给订阅者就是了。就像定牛奶,你去定了某一家的牛奶,然后每天就会有牛奶送给你。而这个牛奶就是我们的消息。结构图抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数
2017-04-07 14:49:31
414
原创 设计模式的原则
设计模式设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。软件设计的四大要求:拓展,维护,复用,灵活软件设计的几大原则1、单一职责原则就一个类而言,应该仅有一个引起它变化的原因
2017-04-01 13:42:43
362
原创 建造者模式
建造者模式当我们需要将一个复杂的对象的构建与他的表示分离,使用相同的构造过程来创建不同的表示的时候,我们就需要使用建造者模式了。结构图例子:大话设计模式中的,例子。大鸟让小菜创建一个小人,拥有头,身体,左右手,左右腿。因为人都拥有头,身体,左右手和左右腿。这样,当需要构建出不同的人,例如一个瘦子,一个胖子,一个瘸腿的,他们的过程都是一样的,但是表达方式都不一样。 于是我们就可以将构建人的过程抽象成
2017-03-31 20:07:30
322
翻译 xml之schema入门
一、什么是xmlXML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML。 它被设计的宗旨是传输数据,而非显示数据。 XML标签没有被预定义,需要用户自行定义标签。 但是现在它使用最多还是作为我们的配置文件。例如,一个java web项目当中的web.xml就是一个配置文件。在一般的coding当中,我们经常使用xml来配置相关的东
2017-03-31 17:39:04
803
原创 Java位运算
Java位运算位移操作:(只针对 int类型的数据有效,java中,一个int的长度始终是32位,也就是4个字节,它操作的都是该整数的二进制数).也可作用于以下类型,即 byte,short,char,long(它们都是整数形式)。当为这四种类型时,JVM先把它们转换成int型再进行操作。1、左移(<<)m<< n的含义:把整数m表示的二进制数左移n位,高位移出n位都舍弃,低位补0. (此时将会出
2017-03-30 15:54:37
339
转载 计算机的基础概念
计算机的基础概念计算机的基础概念主要讲机器数,真值,原码,反码,补码。1、机器数我们知道无论是代码还是数值,在计算机中最后都转换成以二进制的形式存在的,而一个数值在计算机中的二进制表示形式,就是这个数的机器数。机器数是有符号位的,在计算机中用一个二进制数的最高位存放符号,正数为0,负数为1,如下实例(按原码表示):十进制的+5,计算机字长为8位,其二进制就是00000101十进制的 -5,计算机字
2017-03-30 15:45:02
596
转载 java基本数据类型传递与引用传递区别
java基本数据类型传递与引用传递区别Java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题,首先我们必须认识到这个问题一般是相对函数而言的,也就是java中的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法(或函数)的两个专业术语:按值调用(call by value)按引用调用(call by reference)一个方法可以修改传递引用所对应的变量
2017-03-30 15:32:27
437
1
原创 模板方法模式
模板方法模式定义一个操作中的算法的股价,而将一些步骤延迟到子类中去实现。模板方法使得子类可以不改变一个算法的结构即可重定义该算法中的某些特定的步骤结构图要义模板方法模式主要是指,定义父类给出了逻辑结构的骨架,并且封装完成了一部分的逻辑操作,而有一部分的实现是可变的,需要动态的调整。将这一部分延时到子类完成。其中我们最熟悉的要算java的HttpServlet了,HttpServlet就是使用的模板方
2017-03-30 10:51:24
482
原创 原型模式
原型模式用原型实例制定创建对象的种类,并且通过拷贝这些原型创建一个新的对象。原型模式的结构图 原型模式其实是从一个对象创建另一个可定制的对象,而且不需要知道任何的细节原型模式的用法:其关键就在于clone方法。类中实现clone方法就来实现自我复制创建出一个新的对象。注意:复制有深度复制,和浅复制,做具体的操作的时候,注意对象的复制是复制的引用还是复制的对象
2017-03-29 14:34:31
672
原创 工厂方法模式
简单工厂模式简单工厂模式是是很常见的一个设计模式。在日常的学习中经常提起,也很容易实现。 一个简单的计算器,实现两个数的运算。简单工厂方法的实现如下: //运算类public abstract class Operation { public double numberA = 0; public double numberB = 0; public abstract do
2017-03-29 14:24:05
403
原创 装饰模式
装饰模式装饰模式动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加的灵活。装饰模式的结构图 Component是一个接口,可以给对象动态的添加职责,功能。ConcreteComponent是定义了一个具体的对象。也可以给对象添加一些职责。Decorator,表示装饰类,继承了Component,从外类来扩展Conmponent类的功能,但是对于Component来说,是无需
2017-03-29 10:37:51
300
翻译 MyBatis入门
MyBatis是一个与数据库打交道的框架。hibernate也是与数据库打交道的框架,只是hibernate框架比较难,使用不当会发挥不了其新能,mybatis则相对简单。Mybatis技术特点:通过直接编写SQL语句,可以直接对SQL进行性能的优化;学习门槛低,学习成本低。只要有SQL基础,就可以学习mybatis,而且很容易上手;由于直接编写SQL语句,所以灵活多变,代码维护性更好。不能
2016-12-17 13:07:12
415
转载 Sping学习一
1什么是spring框架Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2E
2016-11-11 22:58:17
453
翻译 hibernate框架学习
hibernate入门1、ORM框架:object relational mapping用于实现面向对象编程语言里不同数据类型系统的数据之间的转换。 Hibernate是一个数据持久化层的ORM框架.它是轻量级的JavaEE应用的持久层解决方案,是一个关系数据库ORM框架 ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作 Hibernate提供了对关
2016-11-07 13:32:55
651
翻译 防止表单重复提交(拦截器)一些struts2标签的使用
一、创建一个javabean如下:import java.io.Serializable;public class Customer implements Serializable{ private String name; private String password; private boolean married; private String hobby;
2016-11-04 20:20:07
504
翻译 Struts2中#,$,%等符号的使用
1、取contextMap中key时使用,例如OGNL中创建Map对象时使用,例如:2、$在JSP中使用EL表达式时使用,例如${name}在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。<!--struts.xml-->${@java.net.URLEncoder.encode(filename)}3、%在struts2中,有些标签的value属性取值就是一
2016-11-04 20:14:36
1362
翻译 Struts2对EL的改变和OGNL
在struts2中,我们应该知道,如果我们没有往值栈(根)中放入数据的话,那么我们的动作类默认是在值栈的栈顶。我们知道EL表达式是从四大域对象中依次查找属性。搜索范围是由小到大。 page Scope————>request Scope————>sessionScope————>application Scope 现在如下:public class Demo3Action extends Act
2016-11-04 19:38:38
485
翻译 contextMap
Struts2的官方文档对contextMap的说明: 说明: 动作类的生命周期明确:动作类是多例的,每次动作访问,动作类都会实例化。所以是线程安全的。与Struts1的区别是,struts1的动作类是单例的。请求动作的数据存放在每次动作执行前,核心控制器StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象。且每次动作访问
2016-11-03 22:58:54
957
翻译 OGNL入门
OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个单独的开源项目。 Struts2框架使用OGNL作为默认的表达式语言。 OGNL是struts2整合的一个开源项目,所以在struts2中,要想使用OGNL表达式,必须使用Struts2标签库支持普通方法的调用首先添加标签库:<%@ taglib uri="/struts-tags" p
2016-11-03 22:57:14
252
翻译 el表达式补充-使用静态方法
EL表达式:只能调用静态方法 首先创建一个类package com.zeroyoung.web.function;public class MyFunction { public static String toUpperCase(String str){ return str.toUpperCase(); }}在WEB-INF中添加一个myFunction.tld
2016-11-03 22:37:58
1954
翻译 struts2文件上传下载
文件上传文件上传的前提:a.表单method必须是post;b.enctype取值必须是multipart/form-data;c.提供文件选择域。引入struts2的标签<%@ taglib uri="/struts-tags" prefix="s" %> <body> <%--文件上传的必要前提: 1.请求方式必须是post 2.encty
2016-11-03 21:59:55
276
翻译 自定义拦截器实现验证登录
首先给出Struts2的内部运行图 从图中我们可以看出来,一个请求要到达Action需要经过很多的拦截器,也就是这些拦截器帮我们实现了struts当中的很多功能,例如表单登录,实例化成为一个javabean对象等等的功能。其中拦截器的实现就跟我们的servlet当中的过滤器Filter的实现是一样的。我们需要看编写一个我们自己的拦截器实现一个功能就是只有登录的用户才能访问我们的主页,以及主页里面的
2016-11-03 17:38:14
3028
原创 struts2表单错误处理和数据验证
在前两个当中我们知道了,当数据类型不符合的时候可以进行数据类型的转化,但是,我们并不能对所有的错误都进行转化解决,所有需要处理错误,当我们不进行处理的时候就需要进行表单的错误处理。当类型转换失败,如何进入input所示的视图又是一个拦截器ActionSupport做的,注意动作类必须先继承actionsupport在action当中配置错误处理:input<result name="input">/
2016-11-02 20:38:39
690
原创 stuts2中的类型转换器
在进行注册用户或者其他操作的时候,由于国家地区等的不同,我们需要填写的日期,我们的写法是yyyy-MM-dd,但是国外的是dd-MM-yyyy,这就存在差别。才存放到数据库的时候可能会出现问题。所有需要进行类型转换。类型转换的方式有两种,一种是局部的类型转换,一种是全局的类型转化,一下先编写一个时间日期的类型转的工具。package com.zeroyoung.web.convert;import
2016-11-02 19:55:35
343
原创 struts2参数封装
参数封装分类静态参数封装和动态参数封装,下面分别来讲静态参数分装:静态分装,主要是使用配置文件和注入的方式来进行封装<action name="action1" class="com.itheima.web.action.Demo1Action" method="addUser"> <!-- 当我们不写任何拦截器时,默认的拦截器栈defaultStack它来为我们工作。 但是
2016-11-02 19:37:56
297
原创 Structs2学习配置文件,package,action,结果视图result,servletapi
Struts2的配置文件当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了。 加载顺序为:1、default.properties(struts2-core-2.3.15.3.jar\org\apache\struts2)2、struts-default.xml(struts2-core-2.3.15.3.jar)3、strtuts-plugin.xml(在struts
2016-11-01 23:12:16
410
原创 struct学习--搭建开发环境
Struts2概述Struts2是Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架。搭建Struts2开发环境下载Struts2开发包:http://struts.apache.org开发包目录结构 1、拷贝必要jar包到classpath中 找到Struts2自带的例子中,struts-blank的war包,在它的\WEB-INF\lib目录下的jar包全拷贝。 2、建立S
2016-10-31 22:46:59
272
原创 Proxy代理模式
Proxy Pattern(即:代理模式),23种常用的面向对象软件的设计模式之一 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 优点:真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。代理对象可
2016-10-31 15:46:02
407
原创 Filter过滤器
Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。Filter快速入门步骤:创建一个类实现Filter接口重写接口中方法 doFilter方法是真正过滤的。在web.xml文件中配置注意:在Filter的doFilter方法内如果没有执行chain.doFilter(request,response) 那么资源是不会被访问到的。1、创建一个类实现Filter接口pack
2016-10-31 11:31:45
418
原创 Listener监听器
什么是listener?listener是Javaweb开发中的监听器,是用于监听web常见对象 HttpServletRequest ,HttpSession ,ServletContext监听它们的创建与销毁 属性变化 session绑定javaBean监听步骤:创建相应的监听器在web.xml中注册例子: 1、创建一个ServletContext的监听器: 这个对象是在服
2016-10-31 11:11:33
323
原创 DButil框架
对于数据库的增删改查等操作已经有框架实现了 DBUtils是java编程中的数据库操作实用工具,小巧简单实用。DBUtils封装了对JDBC的操作,简化了JDBC操作。可以少写代码。对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作对于数据表的写操作,也变得很简单(只需写sql语句)可以使用数据源,使用JNDI,数据库连接池等技术来优化性能–重用
2016-10-30 14:22:24
525
原创 mysql数据库事务
事务:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。Mysql中的事务mysql引擎是支持事务的 mysql默认自动提交事务。每条语句都处在单独的事务中。手动控制事务开启事务:start transaction | begin提交事务:commit回滚事务:rollback JDBC控制事务的方式public class TestC3P0 { @T
2016-10-29 19:56:12
594
原创 java数据库连接框架
通过上一节片的讲解,我们知道数据库框架连接的原理,总的来说就是使用装饰模式或者适配器模式来,实现DataSource接口来创建一个数据源,实现Connection接口修改getConnection(),Close()等等一些列的方法,来完成数据库连接池这个功能。这里说一下三种常用的数据源配置,因为在实际的开发项目当中都是使用数据源来与数据库交互的,所有需要会配置数据源DBCPDBCP:Apache推
2016-10-29 19:27:37
2017
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人