- 博客(21)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 虚存,内存,主存,辅存
1、内存 cache和主存构成了系统的内存。2、虚拟存储器 主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。 每一个程序拥有一个虚拟存储器,这个虚拟存储器可以是页表,段表等。3、页表有两处保存地方 由上面两句我们可以推出: 当一个进程在运行时,其页表中一部分在主存中,另一部分在辅存中保存。 由于主存属于内存,辅存属于外存,所以粗糙点讲,页表
2016-01-21 16:23:35 4546
转载 使用Redis缓存和Google Guava本地缓存注意事项(深拷贝和浅拷贝)
1、问题场景及说明系统中同时使用 Redis 缓存和 Guava本地缓存。用 Guava 缓存将 Redis 缓存包了一层。可以提升效率,但是也会引出一些问题。问题:同一个本地缓存Map,获取到的值有时会不一致。不同机器可能不一致,同一机器也可能不一致。很神奇,但是数据库里都是对的。后来发现,因为有一个请求会对该缓存进行remove操作,导致缓存改变。如果这个请求到某个机器上,该台机器上的缓存就会被修改。同时缓存过期时间为一分钟,过期之后获取到的缓存是正常的。如果该台机器没有再次接收到请求
2016-01-20 17:19:53 1531
转载 MyBatis解决动态传入表名和字段名参数的问题
动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理。下面让我们先来熟悉下mybatis里#{}与${}的用法: 在动态sql解析过程,#{}与${}的效果是不一样的:#{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。 如以下sql语句select * from user where name = #{name};.
2016-01-20 16:21:39 1966
转载 mybatis 使用mapper代理开发DAO
开发思路:1.程序员需要编写mapper.xml映射文件2.程序员只需要编写mapper接口(相当于dao接口),需要遵循一些开发规范3.mybatis可以自动生成mapper接口的实现类代理对象二.开发规范以及过程1.在mapper.xml中,namespace等于mapper接口地址2.mapper.java接口中的方法名和mapper.xml中的statement的ID一直3.mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterTy
2016-01-19 16:43:58 707
转载 策略模式+ 工厂模式的组合
策略模式(Strategy Pattern)定义了一组策略,分别在不同类中封装起来,每种策略都可以根据当前场景相互替换,从而使策略的变化可以独立于操作者。比如我们要去某个地方,会根据距离的不同(或者是根据手头经济状况)来选择不同的出行方式(共享单车、坐公交、滴滴打车等等),这些出行方式即不同的策略。何时使用策略模式阿里开发规约-编程规约-控制语句-第六条 :超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现。相信大家都见过这种代码: if (co.
2016-01-16 22:05:16 510
转载 通过注解定义规则路由的策略模式
经常在网上看到一些名为“别再if-else走天下了”,“教你干掉if-else”等之类的文章,大部分都会讲到用策略模式去代替if-else。策略模式实现的方式也大同小异。主要是定义统一行为(接口或抽象类),并实现不同策略下的处理逻辑(对应实现类)。客户端使用时自己选择相应的处理类,利用工厂或其他方式。注解实现本文要说的是用注解实现策略模式的方式,以及一些注意点。话不多说,还是以最常 见的订单处理为例。首先定义这样一个订单实体类:@DatapublicclassOrder{...
2016-01-16 17:02:04 645
原创 sql server的服务器角色和数据库角色
先理解以下概念: sysadmin服务器角色的成员可以在服务器上执行任何活动。默认情况下,windows/administraters组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。 public 服务器角色不是固定服务器角色,因为可以更改这些权限。public 服务器角色被授予 VIEW ANY DATABASE 权限什
2016-01-15 12:31:13 2098
转载 Maven依赖中的scope详解
Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。scope的分类compile默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。testscope为test表
2016-01-15 10:18:38 1568
转载 JVM-类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑...
2016-01-15 10:16:55 425
转载 JWT Token的Java实现
官网地址:https://jwt.io/ jwt github:https://github.com/jwtk/jjwt Demo源码地址: https://github.com/wangcantian/SecurityCommDemo JWT Jar 包下载:http://pan.baidu.com/s/1pLqJYUv下面按照这几个方面来介绍它:Java 基本实现 开源库 jjwt 的使用 源码解析 jjwt废话不多说,撸起袖子就是干,上代码Java 实现private
2016-01-14 16:28:24 1397
转载 token主动失效的方案
众所周知,在 OAuth2 体系中认证通过后返回的令牌信息分为两大类:不透明令牌(opaque tokens)和透明令牌(not opaque tokens)。 不透明令牌 是一种无可读性的令牌,一般来说就是一段普通的 UUID 字符串。使用不透明令牌时资源服务不知道这个令牌是什么,代表谁,需要调用认证服务器校验、获取用户信息。使用不透明令牌采用的是 中心化 的架构。透明令牌 一般指的是我们常说的 JWT Token,用户信息保存在 JWT 字符串中,资源服务器自己可以解析令牌不再需要去认证服务器校..
2016-01-12 16:33:33 3253
转载 六种实现元素水平居中
仅inline-block属性是无法让元素水平居中,他的关键之处要在元素的父容器中设置text-align的属性为“center”,这样才能达到效果:
2016-01-12 16:13:58 445
转载 jquery的extend和fn.extend
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object);jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。jQuery.fn.extend(object);给jQuery对象添加方法。 fn 是什么
2016-01-12 15:51:13 275
转载 去掉首尾空格的正则表达式
正则表达式写法,(^\s*)表示从第一个位置开始匹配至少一个空格或控制符(\s*$)表示从最后一个位置开始匹配至少一个空格或控制符(^\s*)|(\s*$)前后匹配至少一个空格或控制符this.replace(/(^\s*)|(\s*$)/g, "");表示将匹配的空格或控制符替换成""/ 增加一个名为 trim 的函数作为// String 构造函数的原型
2016-01-12 15:08:13 22843
转载 Dubbo服务调用过程
节点角色说明:Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。调用关系说明:0. 服务容器负责启动,加载,运行服务提供者。 1. 服务提供者在启动时,向注册中心注册自己提供的服务。 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注
2016-01-12 12:21:31 764
原创 a标签只改变参数仍跳转到当前页面
a标签只改变参数仍跳转到当前页面href只写上?号和?号后的参数就行不用带上a.html,尽管带上当前页面的文件名,也是=能跳到当前页面,但加上后就不具备可拓展性
2016-01-12 12:16:52 1481 1
原创 canvas translate 移动坐标系实现图形拖拽
平移变换实质上是平移坐标系, 而对于translate()传入的参数,是新坐标系相对于旧坐标系的偏移量。方法一:在平移坐标系并绘制图形后,恢复状态,将坐标系平移回原点(即重新以canvas的左上角为坐标系原点)canvas拖拽 var Draw={ translateX: 45, translateY:45, coordinateX:0, coo
2016-01-12 11:51:18 2534
原创 建造者模式
概述建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式常用于构建复杂的对象。优化后的建造者模式以mybatis的MappedStatement为例:package org.apache.ibatis.mapping;import java.util.ArrayList;import java.util.Collectio...
2016-01-11 15:36:31 2259
转载 简单工厂和工厂方法模式
简单工厂和工厂方法模式 简单工厂:一个抽象产品类,派生出多个具体产品类;一个工厂类,每个工厂类可创建多个具体产品类的实例。“一对多”的关系。 工厂方法:一抽象产品类派生出多个具体产品类;一抽象工厂类派生出多个具体工厂类;每个具体工厂类只能创建一个具体产品类的实例。 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品
2016-01-11 15:10:23 587
转载 重新计算图形左上角坐标实现canvas上的图形拖拽
Canvas依赖分辨率不支持事件处理器 弱的文本渲染能力能够以 .png 或 .jpg 格式保存结果图像最适合图像密集型的游戏,其中的许多对象会被频繁重绘 SVG不依赖分辨率支持事件处理器最适合带有大型渲染区域的应用程序(比如谷歌地图)复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)不适合游戏应用 1 canvas:不支持事
2016-01-06 09:27:25 499
viewpager实现页面导航之三
2015-07-22
viewpager与预编译的点布局实现页面导航效果
2015-07-20
导入第三方类库却出现the importXXX can not be resolved
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人