- 博客(54)
- 收藏
- 关注
转载 SpringMVC和Struts2的区别
https://www.zhihu.com/question/31565442Struts2处理请求是为每个请求都创建一个单独的Action类,Action类当中的Field属性参数作为输入和输出参数用IOC来依赖注入的方式,是基于类的。而SpringMVC则采用输入Request和Reponse作为参数,返回ModelAndView的方式,是单例的模式,且是基于方
2017-08-25 22:43:10 316
原创 Redis为什么是单线程
转自:https://www.zhihu.com/question/23162208 https://www.zhihu.com/question/55818031Redis为什么是单线程的?因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。(以上主要来自官方FAQ)既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。关于redis的
2017-08-24 19:03:55 16108 2
转载 正则表达式中的贪婪匹配和懒惰匹配
1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc 非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc
2017-08-24 16:35:50 739
原创 java Pattern和Matcher——用于匹配和查找字符串中的内容
总结:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input):一种最基础最简单的匹配。Java正则表达式通过Java.util.regex包下的Pattern类与Matcher类实现(建议在
2017-08-24 15:54:57 1006
原创 编程题——识别有效的IP地址和掩码并进行分类统计
网址:https://www.nowcoder.com/practice/de538edd6f7e4bc3a5689723a7435682?tpId=37&tqId=21241&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合
2017-08-24 15:48:16 555
原创 leetCode——word ladder(Java实现)
Given two words (start and end), and a dictionary, find the length of shortest transformation sequence fromstart to end, such that: Only one letter can be changed at a time Each intermediate w
2017-08-24 14:06:57 539
转载 shell中各种括号()、(())、[]、[[]]、{}的作用及使用场景
转自:http://blog.csdn.net/ztf312/article/details/52317571技巧小结:字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格快速替换用花括号{ }——左右留空格反单引号起着命令替换的作用` `
2017-08-23 21:44:54 612
原创 Linux重点知识整理
基本概念:文件权限(http://blog.csdn.net/qqqqq1993qqqqq/article/details/73544513):文件权限前的一个字母用来表示文件类型: -:一般文件 d:目录文件 b:块设备文件(如,硬盘) c:字符设备文件(如,键盘、鼠标) l:链接文件(相当于Window中的快捷方式) p:人工管道 n:网络设备
2017-08-23 20:56:33 276
转载 MySQL触发器详解
转自:http://www.cnblogs.com/duodushu/p/5446384.html http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.htmlMySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。
2017-08-23 16:39:24 745 1
转载 ReentrantReadWriteLock分析
转自http://blog.csdn.net/vernonzheng/article/details/8297230一、ReentrantReadWriteLock与ReentrantLock 说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。R
2017-08-19 11:43:04 253
转载 AbstractQueuedSynchronizer源码分析二(共享锁部分)
前言经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueuedSynchronizer(下文简称AQS)的独占功能了然于胸,那么,这次我们再借助另一个工具类:CoutDownLatch,换个角度看看AQS的另外一个重要功能——共享功能的实现。AQS共享功能的实现在开始解读AQS的共享功能前...
2017-08-18 16:24:02 290
转载 设计模式——模板模式及在jdk中的应用
Template method(模板方法)核心思想:大的逻辑已经定义,coder要做的只是去实现一些具体步骤,不同的人实现这些具体步骤的方法也会有所不同,从而模板的行为也会表现出具体的区别。很多框架中都广泛应用了模板模式。作用:定义算法的结构,子类只实现不同的部分。可以加快块整个程序的开发进度。JDK中体现:ThreadPoolExecutor.Worker类图:
2017-08-18 14:43:02 455
转载 设计模式——策略模式及在jdk中的应用
策略模式(strategy)策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:图中ICalculator提供同意的方法,AbstractCalculator是辅助类,提供辅助方法。
2017-08-18 14:34:52 1269
转载 设计模式——访问者模式及在jdk中的应用
访问者模式(Visitor)访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其
2017-08-18 14:24:39 1263
转载 设计模式——外观模式及在jdk中的应用
转自 设计模式--外观模式Facade(结构型)& http://www.cnblogs.com/xrq730/p/4908822.html :1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电
2017-08-17 21:31:43 1453 1
转载 设计模式——代理模式及在jdk中的应用
代理模式(Proxy)其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作。代理对象控制对原对象的引用。根据上文的阐述,代理模式就比较容易的理解了,我们看下代码:[java] view plain copypublic interface Sourceable {
2017-08-17 20:46:43 540
转载 设计模式——装饰器模式及在jdk中的应用
装饰模式(Decorator)顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:[java] view plain copy
2017-08-17 20:22:03 1479
转载 设计模式——适配器模式及jdk中的应用
http://blog.csdn.net/zhangerqing/article/details/8239539 适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:核心思
2017-08-17 19:18:45 1877
转载 设计模式——建造者模式和原型模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象
2017-08-17 17:24:01 419
转载 设计模式——抽象工厂模式及在jdk中的应用+几种工厂模式的比较
抽象工厂模式(Abstract Factory)工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定
2017-08-17 16:39:35 4069
转载 设计模式——工厂方法模式及在jdk中的应用
工厂方法模式(Factory Method)定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式工厂方法模式分为三种:11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例
2017-08-17 15:21:36 1610
转载 设计模式——单例模式及jdk中的应用
http://blog.csdn.net/zhengzhb/article/details/7331369 http://blog.csdn.net/gtuu0123/article/details/6114197定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、
2017-08-17 14:33:47 2860
转载 设计模式——设计模式概览及六大设计原则
转自http://blog.csdn.net/zhangerqing/article/details/8194653 http://blog.csdn.net/column/details/pattern.html?&page=2(这个专栏很好)http://blog.csdn.net/zhengzhb/article/details/7187278 http://blog.csdn.ne
2017-08-17 13:24:44 187
转载 JVM——虚拟机字节码执行引擎(运行时栈帧结构、方法调用(解析,动静态分配)、字节码解释引擎)
1 运行时栈帧结构栈帧( Stack Frame ) 是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈( Virtual Machine Stack ) 的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程 ,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。(1)局部变量表
2017-08-16 23:30:22 566
转载 JVM——类文件结构
http://blog.csdn.net/zhoufenqin/article/details/51045890http://blog.csdn.net/ochangwen/article/details/51457398http://blog.csdn.net/u010349169/article/category/2620885无关性的基石各种不同平台的虚拟机与
2017-08-16 15:10:26 384
原创 大端和大端
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha
2017-08-15 16:59:21 616
翻译 Mybatis实战——高级结果映射
转:http://blog.csdn.NET/ilovejava_2010/article/details/8180521高级结果映射MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的。虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是。如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有。结果集映射就是MyBatis为解决这些问题
2017-08-15 16:17:59 267
转载 MyBatis实战——resultMap,resultType简介,关联对象
一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对
2017-08-15 15:36:10 1192
原创 网易2017——小易喜欢的数列
小易喜欢的数列小易非常喜欢拥有以下性质的数列:1、数列的长度为n2、数列中的每个数都在1到k之间(包括1和k)3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的但是小易不喜欢{4,4,4,2}这个数列。小易给出n和k,希望
2017-08-15 13:59:07 586
原创 网易2017——堆棋子
[编程题] 堆棋子小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述:输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示
2017-08-14 23:38:10 473
原创 子类的初始化以及super关键字的作用
很早前就看过继承关系中的初始化顺序如下:父类对象---》父类属性初始化---》父类构造方法(无参)----》子类对象----》子类属性初始化--》子类构造方法这次来验证一下父类:public class Parent { public String name; private int code; public Parent parent; /
2017-08-14 20:18:23 524
翻译 Json解析
出自:http://www.cnblogs.com/SkySoot/archive/2012/04/17/2453010.htmlJSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析
2017-08-14 17:03:40 296
转载 名词解释:POJO,JavaBean,DAO,BO,EJB
1、POJO POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来的。按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的Java对象”,但大家都使用“简单java对象”来称呼它。
2017-08-14 16:11:01 449
转载 基于jdk1.8的equals()与hashCode()方法详解
本文转载自:http://www.cnblogs.com/Qian123/p/5703507.html阅读目录equals()方法详解hashcode() 方法详解Hashset、Hashmap、Hashtable与hashcode()和equals()的密切关系equals()方法详解equals()方法是用来判断其
2017-08-14 14:52:33 1806
转载 自动装箱与自动拆箱(jdk1.5后)(以int和Integer为例)
出处:http://blog.csdn.net/JairusChan。自动装箱(Autoboxing)定义 大家在平时编写Java程序时,都常常以以下方式来定义一个Integer对象:[java] view plain copyInteger i=100;
2017-08-14 12:59:59 363
转载 Java中的equals和==,字符串常量池介绍
出处:http://blog.csdn.net/seu_calvin/article/details/520890401. Java中数据类型分类1.1 基本数据类型又称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间的比较应该使用(==),比较的是他们的值。1.2 复
2017-08-14 10:58:28 378
转载 Memcache应用场景介绍
面临的问题对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题。特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰 值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了。很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩 展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时
2017-08-13 20:51:44 205
转载 一致性hash算法的Java实现
http://www.cnblogs.com/xrq730/p/5186728.html一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的
2017-08-13 20:15:40 232
转载 MemCache解读
转载自http://www.cnblogs.com/xrq730/p/4948707.htmlMemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据
2017-08-13 16:19:03 300
转载 一致性Hash算法简介
http://blog.csdn.net/cywosp/article/details/23397179http://www.jianshu.com/p/e8fb89bb3a61负载均衡算法在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Respo
2017-08-13 13:04:54 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人