JDK动态代理和CGLIB代理的区别

当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁–代理对象。

按照代理对象的创建时期不同,可以分为两种:

静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。

阅读全文

无状态服务和有状态服务

一、定义

无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息

阅读全文

WebView加载速度优化

离线缓存

这个比较容易,开启webView的缓存功能就可以了。

1
2
3
4
5
WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);//开启DOM缓存,关闭的话H5自身的一些操作是无效的
settings.setCacheMode(WebSettings.LOAD_DEFAULT);

阅读全文

Spring MVC视图解析器

一、从freemarker谈起

Freemarker使用模板技术进行视图的渲染。自从看了Struts标签、Freemarker、JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差……

阅读全文

Nodejs之目录介绍及app.js说明

新建的项目结构应该是这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bin:项目的启动文件,也可以放其他脚本。
node_modules:用来存放项目的依赖库。
public:用来存放静态文件(css,js,img)。
routes:路由控制器。
views:视图目录(相当于MVC中的V)。
app.js:项目入口及程序启动文件。
package.json:包描述文件及开发者信息。
---------------------其他,自己创建使用---------------------
models:数据模型(相当于MVC中的M)。
controllers:控制器,对请求的操作(相当于MVC中的C)。
tools:工具库。
config:配置目录。
test:测试目录。
README.md:项目说明文件。

阅读全文

浏览器内部工作原理

一、介绍

浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。

阅读全文

反向代理 Reverse Proxy

在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。

反向代理的实现

1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上

阅读全文

Andoid NDK编程 - 注册native函数

当java代码中执行native的代码时候,首先是通过一定的方法来找到这些native方法。而注册native函数的具体方法的不同,会导致系统在运行时采用不同的方式来寻找这些native方法。JNI有如下两种注册native方法的途径:静态和动态。其中:

静态:先由Java得到本地方法的声明,然后再通过JNI实现该声明方法。

阅读全文

Spring原理:IOC和AOP

前言

说是Java web,Spring已经成为了事实标准,Spring原理的深入学习,无论是在工作中,还是在面试中,都尤为重要。

Spring的两个核心概念是IOC(控制反转)和AOP(面向切面编程)。想了解Spring的工作原理,毫无疑问,首先要从这两个概念的Spring实现入手。但是Spring源码浩如烟海,里面掺杂了太多的实现细节,入门可谓极其困难。当我正苦于难以入门时,好友介绍了tiny-spring这个开源项目,这个项目用了不到千行的代码,就将Spring的IOC、AOP的核心流程实现完毕,真是居家旅行、吹逼面试之必备呀!

阅读全文

基于token的多平台身份认证架构设计

1 概述

在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情。
随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格局 。

阅读全文