自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(169)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

转载 SpringMVC重要注解(二)@ControllerAdvice

@ControllerAdvice,是Spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。让我们先看看@ControllerAdvice的实现:package org.springframework.web.bind.annotation; @Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documente...

2018-02-22 18:23:44 633 3

转载 java泛型

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方

2018-02-07 20:03:49 347 2

转载 Spring IOC和Spring AOP的实现原理(源码主线流程)

本文为转载!!!Spring IOC一、容器初始化      容器的初始化首先是在对应的构造器中进行,在applicationContext的实现类构造器中,首先对参数路径中的${}进行了处理,用系统变量替换(setConfigLocations方法)然后调用refresh方法(这个就是最核心的容器初始化方法)。1、Resource定位:      在refre

2018-02-02 14:26:22 1184 1

转载 spring事件驱动过程分析

在看Spring源码之前确保理解了JDK中的 EventObject,EventListener的使用场景,其实体现的是观察者模式,适用于很多场景。在Spring中,事件基类ApplicationEvent,在应用的周期中触发(发布)相应的事件。public abstract class ApplicationEvent extends EventObject { /** use serial

2018-01-17 20:58:59 479

原创 UML类图中箭头和线条的含义和用法

UML类图中箭头和线条的含义和用法在学习UML过程中,你经常会遇到UML类图关系,这里就向大家介绍一下UML箭头、线条代表的意义,相信通过本文的介绍你对UML中箭头、线条的意义有更明确的认识。AD: 本节向大家学习一下UML箭头、线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条来实现。UML箭头、线条程序关系后面的例子将针对某个具

2018-01-17 19:58:13 915

转载

一、什么是锁:         Oracle的锁机制是一种轻量级的锁定机制,不是通过构建锁列表来进行数据的锁定管理,而是直接将锁作为数据块的属性,存储在数据块首部。这个是通过ITL来实现的,一个事务要修改块中的数据,必须获得该块中的一个itl。关于itl(事务槽)的介绍可参考http://blog.csdn.net/gybyylx/article/details/6893639。

2017-10-24 16:36:40 360 1

转载 前端框架模式的变迁

前言前端框架的变迁,体系架构的完善,使得我们只知道框架,却不明白它背后的道理。我们应该抱着一颗好奇心,在探索框架模式的变迁过程中,体会前人的一些理解和思考本篇将讲述的是前端框架变化过程中的一些思考,前端框架模式的变化:从无到有,从MVC(Flux或者Redux)->MVP->MVVM。这段变化的过程,会让人不断琢磨,每次的变化,都是一次大的进步。现在在前端的框架都是MVVM的模

2017-10-10 10:25:13 591 2

转载 浅谈WebLogic和Tomcat

J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器。可以看出服务器在这种架构是非常重要的。       这几天接触到两种Java的web服务器,做项目用的Tomcat,看视频看的是WebLogic Server(WLS),都是web服务器,有什么区别和联系呢?        (一)先简单介绍一下这两种服务器。       

2017-09-13 18:15:42 314 2

原创 编程中的幂等性 —— HTTP幂等性

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个幂等函数.

2017-09-11 17:03:21 501 3

转载 如何判断 Java 线程并发的安全性

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据===========================================================

2017-09-01 18:31:58 895 3

原创 Quartz学习

Quartz学习介绍QuartzQuartz是一个开源的任务调度系统,它能用来调度很多任务的执行。运行环境Quartz 能嵌入在其他应用程序里运行。Quartz 能在一个应用服务器里被实例化(或servlet容器), 并且参与XA事务Quartz能独立运行(通过JVM),或者通过RMIQuartz能被集群实例化任务调度当一个指定给任务的触发器发生时,任务就被调度执行. 

2017-08-31 11:35:07 496 6

原创 Quartz原理解析

最近项目中好多地方都需要用到定时器,一开始用的是netty的hashWheel,后来发现删除任务的时候不是很好删除,于是就放弃了,然后选择了Quartz。hashWheel定时器和Quartz的区别:1)Quartz将定时任务分为任务和触发器,而hashWheel只有任务的概念2)Quartz通过一个TreeSet对所有的触发器进行管理,而hashWheel通过一个hash

2017-08-31 10:40:50 922 5

原创 年终总结

1. 技术    1.1 基础    可能是由于ibm的项目用的jfinal的原因,很多人说jfinal比较low,但是low也有low的好处,之前ssm,ssh我不爱关注源码问题,但是这一年来,我关于源码越来越多。很多学习需要我查询源码来思考是怎么封装。java装箱与拆箱,java数据结构,java集合框架,java泛型,……很多东西又学习了一遍……    1.2

2017-08-30 10:10:43 640 15

转载 FileUpload文件上传源码解析

背景介绍: FileUpload是apache Commons 用于文件上传的组件,实际上就是用来解析http请求,大家都知道,上传文件的时候,http的request请求的 content-type 是multipart/form-data,我们就可以用FileUpload 来解析http请求,struts,springMVC 等很多MVC框架都是基于FileUpload 来实现文件上传

2017-08-17 17:30:35 774 4

转载 生产者消费者模式详细解读

在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生

2017-08-14 16:27:16 1119 6

原创 阻塞队列--详解2

阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加操作支持阻塞地插入和移除方法。支持阻塞插入的方法是指当队列满时会阻塞插入元素的线程,直到队列不满;支持阻塞移除的方法是指当队列为空时获取元素的线程无法继续获取元素直到队列不空。可以发现阻塞队列非常适合消费者和生产者场景下进行使用,生产者生产数据就是向阻塞队列中插入元素,消费者消费数据就是从阻塞队列中移除元素。

2017-08-14 13:47:58 287 6

原创 BlockingQueue(阻塞队列)详解

一. 前言  在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。二. 认识BlockingQueue  阻塞队列,顾名思义,首先它是一个

2017-08-14 13:38:53 472 3

原创 java-collections总结

类Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。java.lang.Object        java.util.CollectionsCollections中常用的方法:(1)sort()排序方法        函数定义:publi

2017-08-09 17:20:41 495 3

原创 Java泛型学习--有界类型参数

Java泛型学习笔记 - (四)有界类型参数1. 当我们希望对泛型的类型参数的类型进行限制的时候(好拗口), 我们就应该使用有界类型参数(Bounded Type Parameters). 有界类型参数使用extends关键字后面接上边界类型来表示, 注意: 这里虽然用的是extends关键字, 却不仅限于继承了父类E的子类, 也可以代指显现了接口E的类. 仍以Box类为例:

2017-08-09 15:48:26 888 3

原创 Java 自动装箱与拆箱(Autoboxing and unboxing)

什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样: Integer i = 100; (注意:不是 int i =

2017-08-09 11:34:59 330 2

转载 CountDownLatch

正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:目录CountDownLatch是什么

2017-08-03 17:37:59 281 3

原创 jfnal源码思想

动机在做项目的过程中运用到了JFinal,由于是第一次看这样框架的源码,所以很多东西都不知道。想多了解一些架构的思想和Web学习的基本知识。本文主要从大致的方面介绍JFinal,对于细节不做深究,而且本文的源码只剪辑了真正源码的部分。总体思想首先要了解一哈基本的知识:ORM:Object Relational Mapper,is the layer that sit

2017-07-31 19:11:11 1048 2

原创 jfinal源码解析

JFinal是一个Java极速开发框架,配置简单 先从web.xml看起,其中配置了一个过滤器,过滤器中配置项目中我们自己写的核心配置类web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocat

2017-07-31 19:08:28 367 1

原创 java.util.Stack类简介

Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用[plain] view plain copyE push(E item)            把项压入堆栈顶部。   E pop()  

2017-07-24 16:24:23 294 15

原创 代理模式--原理及实现

简介Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:中介。代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式包含如下角色:ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。RealSubjec

2017-07-12 09:24:01 1979 15

转载 TOMCAT源码分析——请求原理分析(上)

前言  谈起Tomcat的诞生,最早可以追溯到1995年。近20年来,Tomcat始终是使用最广泛的Web服务器,由于其使用Java语言开发,所以广为Java程序员所熟悉。很多人早期的J2EE项目,由程序员自己实现Jsp页面或者Servlet接受请求,后来借助Struts1、Struts2、Spring等中间件后,实际也是利用Filter或者Servlet处理请求,大家肯定要问了,这些Se

2017-07-03 13:57:48 666 14

转载 为什么要使用代理模式?

为什么要使用代理模式?Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问.为什么要使用Proxy?1.授权机制 不同级别的用户对同一对象拥有不同

2017-06-05 22:32:33 9405 10

原创 解析HttpURLConnection与代理服务器

目前网络上最流行的协议就是HTTP协议。HTTP协议有许多优点,例如它能够穿越防火墙。同时HTTP也是很多其他协议的基础,例如SOAP协议就是建立在HTTP协议之上的。Java通过两种API对HTTP提供支持,一种是servlet API,它覆盖了服务器端的编程问题;另一种是java.net包,它通过HttpURLConnection类在客户端提供了对HTTP协议的支持。但是我在使用ser

2017-06-05 22:09:44 1621 12

原创 JFinal使用事务及其原理

使用声明式事务事务类本身就是一个拦截器,可以用注解的方式配置。方法内部的所有 DML 操作都将在本次事务之内。配置代码如下:@Before(Tx.class)public void savePost(){ //...}事务配置就是这么简单任性。 回到顶部声明式事务实现原理上述配置中为 savePost() 配置

2017-06-02 16:21:38 9021 6

转载 那些年我们一起追过的缓存写法(一)

基本写法为了方便演示,这里使用Runtime.Cache做缓存容器,并定义个简单操作类。如下:123456789101112public class CacheHelper   {       public static object 

2017-05-22 23:08:12 323 6

原创 jdk源码解析--深入探讨Iterator模式

java.util包中包含了一系列重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕。下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。本文讨论的源代码版本是JDK 1.4.2,因为JDK 1.5在java.util中使用了很

2017-05-17 13:44:20 495 4

转载 jdk源码解析--集合类

最近在整理JAVA 基础知识,从jdk源码入手,今天就jdk中 java.util包下集合类进行理解先看图从类图结构可以了解 java.util包下的2个大类:  1、Collecton:可以理解为主要存放的是单个对象  2、Map:可以理解为主要存储key-value类型的对象一、Collection  Collection继承了Iterate接口,Iterate用于

2017-05-17 00:52:23 509 4

转载 java序列化

Java提供一种机制叫做序列化,通过有序的格式或者字节序列持久化java对象,其中包含对象的数据,还有对象的类型,和保存在对象中的数据类型。所以,如果我们已经序列化了一个对象,那么它可以被读取并通过对象的类型和其他信息进行反序列化,并最终获取对象的原型。ObjectInputStream 和 ObjectOutputStream对象是高级别的流对象,包含序列化和反序列化的方法。Obje

2017-05-17 00:49:14 293 4

原创 jdk源码解析--set

JDK源码分析Set类,因为Set类是经常要用到的,那我们知道JDK源码中Set类在其中不可以有相同的元素,那么判断这个元素是否相同是如何实现的呢,我们看下下面这张图:  对JDK源码分析之Set类在这张类图上,首先我们看见一个经典模式的应用,那就是适配器模式,我们把map接口的对象,包装成为了Set的接口;在代码中,我们来分析一下;首先,我们看一下HashSetpri

2017-05-17 00:22:51 304 4

转载 五分钟理解Java的反射API

反射APIJava是一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它们调用方法。这个快速提示旨在让您深度了解什么是反射,它在Java中的使用,以及它可以用于什么。 之后,你将准备好开始

2017-05-17 00:01:38 749 6

原创 SQL 行转列和列转行

行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT…CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。

2017-05-15 22:13:00 1970 6

原创 mysql使用存储过程循环插入数据

本来想说写一个sql插入语句,结果三百条数据,真的很壮观。所以自己查了查网上,写了个存储过程。逻辑:把t_memberId表里面存在的id查出来并插入到t_member_account//删除存储过程DROP PROCEDURE IF EXISTS proc_buildata; //存储语句tudou@Gyyx CREATE PROCEDURE proc_buildata(IN l

2017-05-07 05:25:15 1977 5

原创 mysql有条件插入数据

要求是这样的: 我有一个表存着基础数据有一个字段是 管理号 我的目的是先查询最新的管理号按照规则生成新管理号 然后insert到表里新数据  由于查询并不锁表 所以在查询到insert这步中间会有可能两线程查询到相同的管理号?  关键是如下的MYSQL语句, 插入多条记录: [sql]   INSERT INTO clients   (clien

2017-05-07 05:11:58 13068 5

原创 怎么解决java.lang.NoClassDefFoundError错误

前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。我们往往花费时间

2017-05-04 15:51:56 44047 11

原创 浅谈httpClient使用总结

浅谈httpClient使用总结      目前C/S还是B/S结构的应用程序, HTTP 应该是最为广泛使用的协议了。在 Java 平台上,Java 标准库提供了 一个HttpURLConnection 类来支持 HTTP 通讯。不过 HttpURLConnection 本身的 API 不够友好,所提供的功能也有限。httpClien是一个实现http协议很多操作功能的组件,并且它支

2017-04-26 12:07:07 4850 14

软工用户指南

这本书很好的对软功做了一个阐述,我个人还是比较喜欢的,虽然看了之后很想睡觉

2014-11-18

学生信息管理系统

对于学生信息管理系统的基本信息,之中存在的一些问题。

2014-08-01

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

TA关注的人

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