`
zcw_java
  • 浏览: 297195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表

随笔记录

    博客分类:
  • Java
Timer计时 new Timer().schedule(new LuceneTask(),10000,60*60000); 问题:用 计时器Timer 的时候   每隔 30分钟执行一次 直接改系统时间调整到下个30分钟 咋不执行 jvm在启动的时候读取下系统时间,然后自己维护。在jvm不中断过程中,你改系统时间,不会影响到jvm内部时间 //给当前时间加4个小时 SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); Calenda ...
接口需求是Android/iPhone需要通过接口上传一些文件,例如图片,jar包,rar压缩包,视频,音乐...等!困扰我这个菜鸟很久,整理一下!!分享给同我一样的菜鸟 后台需要处理这些数据,之前没有接触过!但类似的FileUpLoad的插件用过,其实原理差不多,因为计算机原始数据都是01代码,所以只要将这些文件保存成二进制就可以,数据库(mysql),最大4G!! 问题1,如果实现!联调之后共享代码. 问题2,为什么要转为2进制,不直接把上传的文件放在服务器上! 我也请教了别人,首先放在服务器上会很乱,不方便维护!管理不方便,优点当然是不占用数据库资源了(很多时候软件的瓶颈就是数据库的优化 ...

spring的MultipartFile

利用MultipartFile实现文件上传          在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下. 一.主要有两个java类,和一般的servlet放在一起即可.     1.FileUploadBean.java     package chb.demo.web;     import org.springframework.web.multipart.MultipartFile;     /** ...

Lucene基础知识

Lucene包结构 1、org.apache.lucene.analysis 对需要建立索引的文本进行分词、过滤等操作, 语言分析器, 主要用于的切词Analyzer 是一个抽象类,管理对文本内容的切分词规则。 2、org.apache.lucene.analysis.standard 是标准分析器 3、org.apache.lucene.document 提供对Document 和Field 的各种操作的支持。索引存储时的 文档结构管理,类似于关系型数据库的表结构。Document 相对于关系型数据库的记录对象, Field 主要负责字段的管理。 4、org.apache.luce ...
愁人!第一弄这个.网上找到不少算法,但实用的没几个,而且说的有些抽象,整理了一下分享! public class LatLonUtil { private static final double PI = 3.14159265; //老祖真理 private static final double EARTH_RADIUS = 6378137; //赤道半径 private static final double RAD = Math.PI / 180.0; //@see http://snipperize.todayclose. ...

WebXML文件整理

web.xml中有各种各样的标签,了解一下具体标签的具体用途. 1,站点的名称和说明. 2,针对环境参数初始化 3,Servlet的名称和映射 4,Session生命周期的设定 5,Tag library的对映 6,Jsp的设定 7,Mime Type处理 8,错误处理 9,利用JDNI取得站台资源...等等; <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i ...
数据解析,保存遗产!强大内涵 一些看不懂的数据首先要确定他的编码格式,其次才能准确作出解析,可以拿一些数据,我博客里有一个小方法来判断是什么可是!! BufferedReader是继承于Reader对象,从字符输入流中读取文本,缓冲各个字符,从而提供字符,数组和行的高效读取. private String getRequestBody(HttpServletRequest request) throws IOException{ StringBuilder stringBuilder = new StringBuilder(); BufferedR ...
原型模式(Protoype) 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 之所以需要重写Cloneable的clone方法,因为方法访问修饰符是protected,外界没办法调用,这里用到浅克隆 //原型 public class Prototype implements Cloneable{ private String name; private String sex; private String age; private String timeArea; private String company; public Strin ...
简单工厂和工厂方法! 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。 简单讲,简单工厂(计算器)如果需要扩展计算器的功能添加类,然后在工厂中加上else if()这样的判断,工厂方法模式相当与把工厂也替换成抽象的了,具体的算法来对应具体的工厂.这样不会违背开闭原则,想想看!简单工厂对扩展开放,但对修改工厂也是开放的,ok!你懂了 工厂方法模式实现,客户端需要决定实例化一个什么工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行,你想要加功能,本来是 ...

7、代理模式

代理,顾名思义! 日常生活中的代理商等,都是对代理的诠释! 为其它对象提供一种代理以控制对这个对象的访问. 1,远程代理--也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实. 2,虚拟代理--是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象. 3,安全代理--用来控制真实对象访问时的权限,一般用于对象应该有不同的访问权限的时候. 4,智能指引--是指当调用真实对象时,代理处理另外一些事. 现在一个例子来分析!! 漂亮女孩实体 public class BeautifulGirl { private String n ...

6、装饰模式

不是我不小心,只是真情难以寻觅,不是我存心故意,只因无法找到良机,哈哈!!!精辟 Decorator(装饰模式) 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 什么时候使用? 也就是说是为已有的功能动态地添加更多功能的一种方式,当系统需要新功能的时候,是向旧的类中添加新的代码,这些新加的代码通常装饰了原有类的核心职责或主要行为. 但问题是,它们在主类中加入了新的字段,新的方法和逻辑,从而增加了主类的复杂度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要,装饰模式却提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中, ...
电脑主板上的显卡,内存,硬盘,风扇...等!如果说和主板的关系是易插拔关系. 那么软件中就应该是高内聚,低耦合了. 依赖倒置原则,抽象不应该依赖细节,解析应该依赖抽象,说白了就是针对接口编程,不要对实现编程. 原则一:高层模块不应该依赖低层模块.两个都应该依赖抽象. 原则二:抽象不应该依赖细节,细节应该依赖抽象. 高层模块依赖低层模块,低层数据库封装的DataBases,高层所有业务模块对数据库操作都会调用低层的方法进行对数据库操作.这时高层模块依赖低层模块了 问题:这样代码量减少了没错,如果更换了数据库,但是高层模块是一样的,现在高低曾是依赖的,这样不容易得到复用,(比如之前是sqlse ...
软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则,它就是开-闭原则(The Open-Closeed Principle简称OCP) 也就是说软件实体(类,模块,函数等等)应该可以扩展,但是不可修改. 该原则最重要两个特征 1,对于扩展是开放的(Open for extension) 2,对于更改是封闭的(Closed for modification) 这样可以确保我们设计后,面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本. 在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后发生的同类变化. 在设计U ...

3、单一职责

SPR(单一职责原则) 一个类而言,应该仅有一个引起它变化的原因. 例(俄罗斯方块) 下落,旋转,碰撞判断,移动,堆积这些游戏逻辑. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 其实一个二位数组控制一个左边,x/y!软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离,其实要去判断是否应该分离出类来,也不难,那就是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责. 不过大家经常听到高内聚低耦合,有时候两者会有冲突,在软件设计 ...

2、策略模式

Strategy,首先简单介绍 他是算法集合,封装了大量算法,让他们之间可以互相替换!此模式让算法的变化,不影响到使用算法的客户. 刚开始,我总觉得代理和策略很相似,后来发现,策略模式,肯定有个容器,包容所有的策略,然后根据条件使用不同的策略,代理就不是了,代理就是代理某个行为或对象 策略模式同时还简化了单元测试,因为每个接口都有自己的实现!可以通过接口单独测试. 1,抽象算法类 public abstract class Strategy { //算法方法 public abstract void AlgorithmInterface(); } 2,具体算法(继承抽象算法) ...
Global site tag (gtag.js) - Google Analytics