自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 java面经(2019京东笔试+三面)

   版权声明:本文为博主原创文章,未经博主允许不得转载。     昨天刚结束了京东2018春季实习生招聘的HR面(可能有的童鞋还没有结束),有些感触想在这里记录下来,给大家给自己日后再次参加类似的面试提供帮助。本人在北京某211学校研究生在读,参加京东春季实习生招聘主要是为毕业找工作带来方便,争取留在公司就省了毕业季的找工作慌了(本人比较怕麻烦),在此之前,我已经分别在一家小公司和一家美国公司实...

2018-04-17 16:02:09 9294 1

原创 Sqlserver数据库使用快照隔离发生更新冲突的解决办法

   版权声明:本文为博主原创文章,未经博主允许不得转载。        为了满足并发性能,我们将数据库的隔离级别改成了SNAPSHOT隔离级别,采用基于行版本控制的隔离级别解决了死锁问题,改善了性能并且能够防止脏读、更新丢失、不可重复读、幻读等问题,是并发开发下不错的选择。    SNAPSHOT隔离级别可以防止更新冲突,但不会像REPEATABLE READ和SERIALIZABLE隔离级别那...

2018-02-27 15:15:50 1314

原创 SQL Server事务、隔离级别和并发问题解决

     版权声明:本文为博主原创文章,未经博主允许不得转载。    首先,对于SqlServer的事务和隔离级别,与其他关系型数据库类似,事务是一个工作单元,可能包含查询和修改数据以及修改数据定义等多个活动。我们可以显式或隐式的定义事务边界。可以使用BEGIN TRAN或者BEGIN TRANSACTION语句显式的定义事务的开始。如果希望提交事务,可以使用COMMIT TRAN语句显式的定义事...

2018-02-27 11:38:06 3623 1

原创 nginx实现CSRF和XSS防御

版权声明:本文为博主原创文章,未经博主允许不得转载。nginx实现CSRF和XSS防御 最近,因为公司任务要求,搞了一下nginx配置。任务要求是实现CSRF和XSS防护,至于什么是CSRF和XSS请自行学习一下。首先需要解释的是,这里所提到的CSRF和XSS防御全是基于后台基于Nginx配置。1.CSRF防御网上搜一下解决方案大概是有四种:(1)验证H

2018-01-31 17:19:51 21000

原创 一文教会你mock(Mockito和PowerMock双剑合璧)

1.解决的问题我们在写单元测试时,总会遇到类似这些问题:1. 构造的入参,对于极值、异常边界场景不好复现,相关的逻辑测不到,只能依靠测试环境或预发跑,运气不好可能要改好几次代码重启机器验证,费时费力;2. 依赖别人接口,可能需要别人协助测试环境数据库插数才能跑通;3. 依赖的别人的接口还没有开发完,为了不影响提测,如何完成单元测试?4. 编写的单元测试依赖测试数据库的数据,每次跑都要数据库改数?5. 对service层加了逻辑,跑单元测试本地验证的时候,由于种种原因,本...

2020-06-23 21:09:53 1930

原创 服务器并发处理能力之《构建高性能WEB站点》读书笔记

本篇主要总结一些与服务器并发处理能力相关的指标名词及一些相应的linux指令含义。说之前粘一下百度来的信息(捂脸)3种WEB服务器的比较:在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容...

2019-08-16 09:19:08 165

原创 大话设计模式之迭代器模式

    今天总结一下迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。迭代器模式在访问数组、集合、列表等数据时,尤其是数据库数据操作时,是非常普遍的应用,但由于它太普遍了,所以各种高级语言都对它进行了封装,我们对它进行总结主要就是方便我们日后总结源码。迭代器的实现    我们来看一下迭代器模式的UML图:    同样的,我们根据UML图去实现一下public in...

2018-03-19 10:37:02 261

原创 大话设计模式之外观模式(门面模式)

    外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。       人如其名,我们一看外观设计模式(门面设计模式)UML图就能立刻领会到该设计模式的用处。    我们在做开发的设计初期阶段,应该有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样...

2018-03-16 15:07:27 298 1

原创 大话设计模式之三种适配器模式

   版权声明:本文为博主原创文章,转载需注明出处。    http://blog.csdn.net/qq_29517037    适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。                                                           ...

2018-03-16 10:53:14 238

原创 大话设计模式之代理模式

今天我们来总结一下一个常见的设计模式---代理设计模式。首先我们看一下代理模式的UML图: 然后呢我们根据UML图把代码写一下: public interface Subject{ public void Request(); } public class RealSubject impl...

2018-03-15 15:00:30 199

原创 大话设计模式之装饰模式

   版权声明:本文为博主原创文章,转载需注明出处。        经过了前面的设计原则和工厂三姐妹、单例设计模式的学习,我相信大家已经掌握了基本的学习方法,今天我们来总结装饰模式,首先来看一下装饰模式的UML图:                         接着我们根据UML图写一下源码实现:     abstract class Component{ public abst...

2018-03-13 16:24:56 188

原创 大话设计模式之单例模式

   版权声明:本文为博主原创文章,转载需注明出处。    http://blog.csdn.net/qq_29517037    相信大家对于单例都不陌生,我们主要总结一下单例模式的演化过程,其实学设计模式不是说一定让你遇到什么情况去套哪种设计模式,更多的是要学习里面的程序设计思想,让我们在遇到复杂问题的时候遵循设计原则,培养的是我们设计高质量代码的能力。我们对于高质量代码的定义,我认为就是:可...

2018-03-13 11:28:37 321

原创 大话设计模式之工厂三姐妹

   版权声明:本文为博主原创文章,未经博主允许不得转载。 工厂三姐妹一向受到了我们广大工人阶级的拥护。小妹简单工厂模式,二姐工厂方法模式,大姐抽象工厂模式。为了让大家混淆,特意将这三种设计模式放到一起总结,开玩笑啦,放在一起总结是为了方便比较异同。简单工厂模式    简单工厂就是帮我们来实例化对象的,当我们需要考虑用一个类来做这个创造实例的过程,这就是工厂。以一个简单计算器为例,有加、减、乘、除...

2018-03-12 18:07:34 242 1

原创 大话设计模式之设计原则

    在总结设计模式之前,我觉得有必要把程序设计中要遵循的几个设计原则总结一下,因为在后面总结设计模式的时候,你会发现,基本上设计模式都是设计原则的体现和应用而已,有助于我们后期的总结学习。单一职责原则    单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱...

2018-03-08 15:23:15 119

转载 互联网高并发架构的8种设计模式演化

1、单库单应用模式这种是最简单的模式,即一个数据一个应用服务器,一般在产品发布初期使用会比较方便,单日30万到50万PV以下一般没有问题。2、内容分发模式在主机中使用了静态文件缓存之后,还可以使用CDN的方式把静态文件分发到离用户最近的节点上以达到快速响应的目的,一般在百万级别的PV时需要使用。3、查询分离模式主要是指数据库的读写分离,能够降低响应延时,在千万级别的PV时会使用。4、微服务模式微服...

2018-03-02 15:26:27 197

转载 SqlServer数据库中的时间戳(TimeStamp)类型

 1.公开数据库中自动生成的唯一二进制数字的数据类型。  2.timestamp 通常用作给表行加版本戳的机制。  3.存储大小为 8 个字节。 不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。这将导致在C#程序中获取到的timestamp类型则变成了byte[]类型。所以如果我们需要从数据库中...

2018-02-27 15:24:52 10970

转载 Sqlserver数据库的快照隔离和行版本控制详解

了解快照隔离和行版本控制一旦启用了快照隔离,每个事务更新的行版本均维护在tempdb。 唯一的事务序列号标识每个事务,并且为每个行版本记录这些唯一的编号。 事务使用序列号在事务序列号之前的最新行版本。 事务将忽略在事务开始之后创建的更新的行版本。“快照”一词反映的情况是:事务中的所有查询根据事务开始那一刻数据库的状态,看到数据库的相同版本(即快照)。 不会在快照事务中的基础数据行或数据页上获取锁,...

2018-02-27 14:17:29 1809

转载 log的级别

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。: 1.static Level DEBUG :    DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。 2.static Level INFO    INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。 3.static Le

2018-02-07 11:29:46 2638

转载 Mockito测试

Mockito一 mockito基本概念Mock测试是单元测试的重要方法之一,而Mockito作为一个流行的Mock框架,简单易学,且有非常简洁的API,测试代码的可读性很高。Mock测试就是在测试过程中,对于一些不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者说获取比较复杂的对象(如JDBC中的ResultSet对象)或者说我

2018-02-01 17:24:22 1158

转载 比较完整的junit单元测试之-----mock模拟测试

介绍  本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例。模拟(Mock)的概念   在软件开发的世界之外, "mock"一词是指模仿或者效仿。因此可以将“mock”理解为一个替身,替代者。在软件开发中提及"mock",通常理解为模拟对象或者fake。  译者注:mock等多代表的是对被模拟对象

2018-02-01 17:21:17 547

转载 nginx启动、重启、重新加载配置文件和平滑升级

Nginx有一个主进程和几个工作进程,主进程的主要作用就是读取、评估配置文件和管理工作进程,工作进程对请求做实际处理。工作进程的数量是在配置文件中配置的,一般设置为cpu的核心数*线程数。nginx可以通过信号控制,默认情况下,主进程的进程ID记录在/usr/local/nginx/logs/nginx.pid 文件中。信号可以通过nginx可执行文件发送给nginx (n

2018-02-01 16:22:00 220

原创 PostgreSQL和Sqlserver对json数据的支持

首先说几点数据库存json格式数据的好处(经验尚浅,望大牛们不吝赐教):(1)将对象转成json格式存入数据库中,避免了主外键的设置和多表联合查询(2)想增加或减少字段时,不必频繁地去修改数据库,尤其 是使用三层框架,改一个字段要改好多内容的。接下来就我接触到的对json格式支持比较好的数据库进行一些分享。1.PostgreSQLPostgreSQL是以加州大学伯克利分校计算机系开发的 POSTG...

2018-02-01 10:54:09 1788

转载 java8新特性源码解析

1 Lambda表达式与Functional接口Lambda表达式(也称为闭包)是整个Java 8发行版中最受期待的在Java语言层面上的改变,Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据:函数式程序员对这一概念非常熟悉。在JVM平台上的很多语言(Groovy,Scala,……)从一开始就有Lambda,但是Java程序员不得不使用毫无新意的匿名类来

2018-02-01 10:48:02 756 1

原创 Unit Test写法

首先,此处所说的unit test是针对持久层的单元测试,如针对dal、db层的代码测试。如果是要对业务层(manager、rest层)进行测试,一般都是使用mock测试,如easyMock(这个部分回头补上)。介绍一些unit test的常用指令:Assert断言:1.assertTrue/False([String message,]boolean condition);判断一

2018-01-31 17:43:52 2423

转载 数据库的trigger机制

数据库trigger(触发器)触发器  其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是  通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。  常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。  after(for) 表示执行代码

2018-01-31 17:40:10 1234

原创 redis小结

redis是一种key-value存储的非关系型数据库,值(value)可以是字符串(String),哈希(Map),列表(list),集合(sets) 和 有序集合(sorted sets)等类型。通常和关系型数据库(如:sqlserver、oracle、mysql、psql等)一起使用,起到缓存的作用。缓存分为本地缓存和分布式缓存,redis和Memcache属于分布式缓存

2018-01-31 17:39:16 193

转载 CSRF

General黑客获得用户有效的cookie,从黑客网站伪造用户请求,在用户认证服务器上非法操作。解决方案1. Origin & Referer headersReferer 从哪个页面链接过来的。2. 改变状态的操作用POST,不能使用GET3. CSRF Token3.1 实现session建立时生成CSRF Token,存储在session中,

2018-01-31 17:24:20 759

原创 docker个人理解和常用命令总结

个人理解,docker就是用来装service的容器,在docker的包装下,所有的服务便可以方便设置端口,方便service之间的协作。它的作用其实就是消除了service之间的耦合,方便service的管理。1.首先docker中会有container(容器)对container的管理命令:docker stop :停止containerdocker start :重新启动

2018-01-31 17:14:53 263

原创 docker-compose build、gradlew build、docker-compose up的个人理解

利用docker搭建一个mysql + java service + nginx,总共4个docker容器,如果采用docker run的方式一个一个容器去创建十分麻烦。为了能更高效的批量创建容器,docker推出了docker-compose工具,只需要定义一个docker-compose.yml文件即可快速搞定一组容器的创建.docker-compose.yml文件格式如下:mys

2018-01-31 17:10:16 4429

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除