基于Nginx实现三级域名访问和https访问
Nginx实现三级域名访问我的VPS上部署了MPOOM工作台、个人博客、文件共享平台三个系统,并且在阿里云平台购买了域名,想要通过nginx实现不同的三级域名访问不同的系统,例如:
MPOOM工作台:http://www.mpoon.cn
个人博客: http://blog.mpoom.cn
文件共享平台:http://m.mpoom.cn
ps:如果域名要解析到国内云服务器,域名要提前在工信部进行备案,但是如果解析到国外,则没有这个限制.
配置文件mpoom.conf如下:
# mpoom工作台
server {
listen 80;
server_name mpoom.cn www.mpoom.cn;
location / {
proxy_pass http://127.0.0.1:8090;
}
}
# 个人博客
server {
listen 80;
server_name blog.mpoo ...
Shiro简介及使用
Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest mobile applications to the largest web and enterprise applications.
Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理。 借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的Web和企业应用程序。
#一、Apache Shiro简介
Apache Shiro的首要目标是易于使用和理解。安全有时可能非常 ...
Java类加载机制
一、类加载过程 类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了: 加载、验证、准备、解析、初始化、使用和卸载 这7个阶段。其中, 验证、准备和解析这三个部分统称为连接(linking) 。
其中,加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的“开始”(仅仅指的是开始,而非执行或者结束,因为这些阶段通常都是互相交叉的混合进行,通常会在一个阶段执行的过程中调用或者激活另一个阶段),而解析阶段则不一定(它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定)。
加载“加载”(Loading)阶段是“类加载”(Class Loading)过程的第一个阶段,在此阶段,虚拟机需要完成以下三件事情:
1、 通过一个类的全限定名来获取定义此类的二进制字节流。
2、 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3、 在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口。
加载阶段既可以使用系统提供的类加载器来完成 ...
Java集合
早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。
虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。
集合框架被设计成要满足以下几个目标。
该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。
该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。
对一个集合的扩展和适应必须是简单的。
为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Qu ...
Java常用日志框架
Java常用日志框架介绍
Log4j Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的,现在则是Apache软件基金会的一个项目。 Log4j是几种Java日志框架之一。
Log4j2 Apache Log4j 2是apache开发的一款Log4j的升级产品。
Commons Logging Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。
Slf4j 类似于Commons Logging,是一套简易Java日志门面,本身并无日志的实现。(Simple Logging Facade for Java,缩写Slf4j)。
Logback 一套日志组件的实现(slf4j阵营)。
Jul (Java Util Logging),自Java1.4以来的官方日志实现。
Java常用框架历史
1996年早期,欧洲安全电子市场项目组决定编写它自己的程序跟踪API(Tracing API)。经过不断的完善,这个API终于成为一个十分受欢迎的J ...
Java中的强引用、软引用、弱引用和虚引用
Java中的强引用、软引用、弱引用和虚引用Java执行GC判断对象是否存活有两种方式其中一种是引用计数。
引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。
在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。
从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期。
Java中4种引用的级别和强度由高到低依次为:强引用 -> 软引用 -> 弱引用 -> 虚引用
引用类型
被垃圾回收时间
用途
生存时间
案例
强引用
从来不会
对象的一般状态
JVM停止运行时终止
通过new或反射创建的引用对象
软引用
当内存不足时
对象缓存
内存不足时终止
弱引用
正常垃圾回收时
对象缓存
垃圾回收后终止
虚引用
正常垃圾回收时
跟踪对象的垃圾回收
垃圾回收后终止
DirectByteBuffer堆外内存释放
参考文章
理解Java的强引用、软引用 ...
Netty简介
官网简介: Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.用一句话来概括: Netty是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。
特征设计
适用于各种传输类型的统一API - 阻塞和非阻塞套接字
基于灵活且可扩展的事件模型,可以清晰地分离关注点
高度可定制的线程模型 - 单线程,一个或多个线程池,如SEDA
真正的无连接数据报套接字支持(自3.1起)
易用
详细记录的Javadoc,用户指南和示例
没有其他依赖项,JDK 5(Netty 3.x)或6(Netty 4.x)就足够了
性能
吞吐量更高,延迟更低
减少资源消耗
最小化不必要的内存复制
安全
完整的SSL / TLS和StartTLS支持
架构示意图
使用Hexo搭建个人博客
记录一下自己使用Hexo搭建个人博客的过程,以及搭建过程中踩过的坑。 Hexo简介这里引用Hexo官网介绍:
快速、简洁且高效的博客框架A fast, simple & powerful blog framework.
一、为什么选择Hexo之前也想过自己用java写一个博客系统,顺便能学习一些开发技术。通过一段时间的折腾,主要发现有一下几个问题,于是放弃了自己开发的计划转而采用开源框架。
使用java自行开发个人博客系统遇到的问题:
开发周期长:虽然可以使用一些脚手架快速搭建博客系统框架,但是仍需要个人大量的开发时间去实现及调试代码。
UI样式不美观: 由于本人是非前端开发人员,只能通过前端的一些脚手架去搭建博客前端,UI设计不够美观。
偏离初始目标:自己开发博客的目标是通过开发过程提高编码水平,但是随着在工作中的成长,知识面已经铺开,搭建个人博客已经无法带来技术深层面成长,只是重复造轮子罢了。
hexo 博客的优点
支持MarkDown格式
使用Node.js生成静态文件,部署简便
有丰富的主题可以选择
有丰富的插件扩展性强
选择hexo搭建个人博客完全满 ...
Forecasting Research on the Wireless Mesh Network Throughput Based on the Support Vector Machine
《基于支持向量机的无线Mesh网络吞吐量预测》 —— 论文