自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路漫漫 始于足下

博客 让生活更充实

  • 博客(28)
  • 资源 (11)
  • 收藏
  • 关注

原创 ThreadLocal原理解析

ThreadLocal从这个名字大概就能听出它是干啥的,差不多就是将一个变量绑定到一个线程上,解决一些并发问题并且使代码变得更优雅。那它是怎么将变量绑定到线程上的呢?我们先看Thread类源码,/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal c

2017-05-19 13:35:37 429

原创 自己实现一个简易的SpringMVC

上回实现了一个简易的Spring,那就顺便实现一些SpringMVC吧。自己实现的架构比较简单,下面简单介绍一下。源码下载:http://download.csdn.net/detail/jobsandczj/9844308实现思路及工作流程:定义一个DispatcherServlet,用来做请求入口。初始化时,去读取配置文件,获得Controller的包,然后“注入”Controll

2017-05-17 10:13:09 849

原创 自己实现的一个简易Spring框架(IoC+AOP)

IoC和AOP是Spring的核心,可以说没有他们就没有庞大的Spring家族。我也是心血来潮,自己动手写了一个简易的Spring框架。可以通过使用注解来实现IoC容器和AOP。先说IoC部分吧。源码下载:http://download.csdn.net/detail/jobsandczj/9841126IoC先定义了两个注解@MyBean和@MyAutowired,用来标记Bean和

2017-05-12 21:25:47 1468 5

原创 Java中的多线程常用方法

多线程一直是Java的一个重点和难点,前两天小结了一下。synchronized和Lock我们都知道ArrayList是非线程安全的,就拿它开刀。下面这个程序简单地展示了synchronized和Lock的用法。package temp.test;import java.util.ArrayList;import java.util.List;import java.util.

2017-05-11 20:11:57 610

原创 Spring AOP的一些基础知识

什么是AOPAOP是Spring的核心内容之一,Spring能有今天,它功不可没。那什么是AOP呢?我们先来让他和OOP进行对比一下,下面有一段描述比较不错,我就直接引用了。AOP的一些基础概念描述AOP常用的一些术语有通知(Adivce)、连接点(Join point)、切点(Pointcut)、切面(Aspect)、引入(Introduction)、织入

2017-05-10 16:23:36 410

原创 Java中的四大引用(强引用,弱引用,软引用,虚引用)

引用这个概念经常被提及,今天总结一下。强引用强引用即(StrongReference)我们最常使用的引用,A a=new A()。这个a就是一个强引用。软引用即(SoftReference),Object obj = new Object();SoftReference sf = new SoftReference(obj);obj = null;sf.g

2017-05-09 11:22:36 659

原创 数据库隔离级别以及Spring事务传播

数据库隔离级别说这个问题之前我们先说说三个概念。脏读当一个事务正在访问数据,并且对数据进行了修改,但这个修改了的数据还没提交到数据库中,然后另一个事务也访问了这个数据,那么我们就称这个事务读到的数据是脏数据。这个错误过程就叫脏读。不可重复读在同一个事务内,多次读同一个数据。在这个事务还没结束时,另一个事务也访问这条数据并做了修改最后提交了修改数据。那么第一个事务可能在某次读的数

2017-05-08 20:34:00 557

原创 Struts2和Hibernate原理与架构

前一阵子写了《深入分析JavaWeb技术内幕》的读书笔记,最后一章写的是框架。趁此机会把另外两个比较流行的框架也一起介绍了。Struts2整体架构先看一下Struts2的整体架构:现在的FilterDispatcher已经过时,替换成了StrutsPrepareAndExecuteFilter。改进的意义:处理流程在上述过程中所有的对象(Action,Res

2017-05-07 18:47:22 984

原创 设计模式之---总结

前面已经把设计模式都介绍了一遍,最后做个总结。先说分类:可根据模式的目的即模式是用来做什么的将模式分为三类:创建型( Creational)、结构型( Structural)、或行为型( Behavioral )三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。Java设计模式之创建模式包括:Factory,

2017-05-06 18:42:29 739

原创 《深入分析JavaWeb技术内幕》读书笔记九.Spring,SpringMVC,MyBatis

这三个框架在JavaWeb项目中非常常见,书中也对它们进行了相关介绍,但书中讲的是iBatis,我这里则介绍MyBatis。这三个框架都非常优秀,也不是三言两语能讲清楚的,我这里只是对它们的架构和原理进行简单的介绍,具体应用请自行学习。SpringSpring的骨骼架构从这幅图中我们可以看出Spring的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spri

2017-05-06 16:14:14 1056

原创 《深入分析JavaWeb技术内幕》读书笔记八.Tomcat

书中介绍了两个Servlet引擎,分别是Jetty和Tomcat。由于本人更熟悉Tomcat,所以只讲Tomcat部分吧。书中也明确说了,Tomcat很复杂,不是一章内容能说清楚的。这一章以Tomcat5为基础,也兼顾Tomcat6。Tomcat的基本设计思路和架构是有一定连续性的。Tomcat的总体结构ServiceServerLifecycle

2017-05-06 00:02:34 938

原创 设计模式之---访问者模式

package visitor;public interface IVisitor { void visit(Element element); }package visitor;public abstract class Element { public abstract void accept(IVisitor visitor); public abstract

2017-05-05 19:46:33 483

原创 设计模式之---解释器模式

解释器模式是个不怎么常用的设计模式。我们先来举一个简单的例子说明它。a+b-c这么一个表达式,+,-都是非终结符表达式,a,b,c都是终结符表达式。非终结表达式一般是文法中的运算符或者关键字,而终结表达式一般是文法中的运算单元。package interpreter;import java.util.HashMap;import java.util.Map;public clas

2017-05-05 19:04:57 274

原创 设计模式之---享元模式

下面来个实例,大家应该就明白了。package flyweight;public interface Flyweight { void operate();}package flyweight;public class FlyweightA implements Flyweight { @Override public void operate() { // TODO

2017-05-05 09:30:07 365

原创 《深入分析JavaWeb技术内幕》读书笔记七.Servlet,Session与Cookie

这三个东西接触过JavaWeb的同学应该都很熟悉吧,我们就依次聊一聊这三个东西。ServletServlet容器Servlet与Servlet容器就好比子弹和枪,枪为子弹而生而子弹又让枪有了杀伤力。它们通过标准化接口来相互协作,彼此依存却又独立发展。Servlet容器作为一个独立发展的标准化产品,目前种类繁多,它们有各自的市场定位,各有特点,很难说孰优孰劣。我们则选择Tom

2017-05-04 16:44:33 455

原创 设计模式之---中介者模式

有时候,几个对象之间会相互影响,我们把这些会相互影响的对象叫做”同事“,如果我们显示地去执行他们之间的相互影响的话,代码会变得很臃肿并且难以维护。所以我们引入中介者来帮我们维护他们之间的相互关系,这样就减少了系统耦合。比如,在一个能量守恒的系统里,两股能量是此消彼长,但总和不变。我们要用代码模拟并且每股能量都是单独的一个对象的话,这个关系我们便可以用中介者来维护。package media

2017-05-04 14:11:48 289

原创 设计模式之---命令模式

定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。package command;public class Receiver { public void doSomething(){ System.out.println("接收者执行业务逻辑处理"); } }

2017-05-04 11:42:20 378

原创 设计模式之---桥接模式

还是举例说明吧!现在有一个问题,那就是手机和手机应用。手机有很多牌子,应用也有很多,那某个手机上的应用,该怎么实现呢。第一种架构:这种架构非常简单,但有个明显的问题,那就是可扩展性差。比如再来一种手机或者应用,那类又得增加好几个。他虽然符合开放封闭原则,但却违背了职责单一性原则,即一个类应该只有一个引起它变化的原因。这个时候,桥接模式就派上用场了。从UML类图里我们就能看出来,

2017-05-04 10:23:50 392

原创 《深入分析JavaWeb技术内幕》读书笔记六.JVM

JVM体系结构何谓JVMJVM体系结构详解类加载器执行引擎Java内存管理JVM工作机制机器如何执行代码JVM为何选择基于栈的架构执行引擎的架构设计JIT:JVM在执行时会记录某个方法的执行次数,如果执行的次数到了一个阈值(客户端一般是1500次,服务器一般是1000

2017-05-03 15:29:52 587

原创 设计模式之---迭代器模式

现在很多编程语言都通过发语法糖来支持这种模式了,比如Java的for-each,但我们对这个模式做个了解还是有必要的。package iterator;public interface Iterator { public Object next(); public boolean hasNext(); } package iterator;impor

2017-05-03 11:18:35 328

原创 设计模式之---组合模式

组合模式:树是最常用的一种数据结构了,组合模式就将这种数据结构用到类的组合上。package composite;public abstract class Component { protected String name; public Component(String name) { super(); this.name = name; } publi

2017-05-03 11:01:27 436

原创 设计模式之---备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。很好理解,就像我们以前打通关游戏一样,打通某个关卡,就会备份一下,不然根本通不了关。。package memento;//备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。public class Memento {

2017-05-03 10:25:41 371

原创 《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

Java中的编码编码问题一直在困扰着程序开发人员,尤其在Java中更加明显。因为Java是跨平台语言,在不同平台的编码之间的切换较多。为什么要编码?所谓编码,就是要把人类能理解的语言翻译成计算机能理解的语言。如何编码?ASCII编码ISO-8859-1GB2312GBKGB18030UTF-16UTF-8J

2017-05-01 18:57:26 518

原创 设计模式之---状态模式

很多东西处于不同状态会有不同的表现,就像我们小时候看的迪加奥特曼,就有三种形态。类作为模拟这个世界的抽象,当然也可以具备这样的属性啦!状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。解决的问题:主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。实例:迪迦奥特

2017-05-01 14:50:26 406

原创 设计模式之---建造者模式

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的优点:建造者模式与工厂模式的区别:实例:package builder;public abstract class Builder { protected Product product; public abstract void makeWheel(String w

2017-05-01 13:59:34 280

原创 设计模式之---外观模式

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。何时使用外观模式:实例:package facade;public class SubSystemOne { public void methodOne() { System.out.println("方法一"); }}package f

2017-05-01 13:17:04 310

原创 设计模式之---原型模式

原型模式也是一种创建型模式,主要用于对象的复制。原型模式的优点及适用场景:使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。使用原型模式的另一个好处是简化对象的创建,使得创建对象就像我们在编辑文档时的复制粘贴一样简单。因为以上优点,所以在需要重复地创建相似对

2017-05-01 10:35:30 277

原创 Java中的深拷贝与浅拷贝

Java中有两种拷贝方式一种是浅拷贝,一种是深拷贝。两者的区别也很好阐述:浅拷贝它只是简单拷贝对象成员的引用,而深拷贝则会重新生成一个对象副本。当然String这些对象比较特殊。举个实例:(注意看注释)package clone;public class Teacher implements Cloneable { public String name; public int

2017-05-01 10:05:59 390

JVM调优.pptx

JVM调优分享,简单的一些分享,希望能帮助大家。凑字数真的烦!!!

2019-10-27

myrpc-自主实习的RPC工具框架

自主实现的RPC工具框架,非常方便使用与学习,非常高效,可靠

2018-03-26

自主实现的简易SpringMVC

自主实现的简易SpringMVC 一个控制器

2017-05-17

自主实现的简易Spring框架

自主实现的简易Spring框架,通过注解实现IoC容器和AOP。

2017-05-12

模拟Spring的IoC容器实现注解自动装配

自己实现的简易的模拟Spring的IoC容器,实现注解自动装配

2017-05-10

2016年第四届湘潭大学新生趣味程序设计竞赛题解

2016-12-19

MyBlog(个人博客)

个人技术类博客,支持多种代码格式和动态地图。

2016-12-08

游戏OOXX棋

原创小游戏 内含人机对战

2016-06-24

源程序OOXX

OOXX源程序,java开发

2016-06-08

小游戏OOXX

java开发的小游戏,期末课程设计。

2016-06-08

OOXX源代码

自创游戏OOXX的源代码

2016-05-13

空空如也

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

TA关注的人

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