- 博客(29)
- 资源 (4)
- 收藏
- 关注
原创 Spring源码分析——AOP实现(2)
文章深入讲解了Spring中AOP的实现机制和原理以及使用AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令
2016-06-30 17:04:52 2611 2
转载 JAVA volatile关键字解析
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速
2016-06-30 10:35:58 625
转载 JAVA并发集合学习总结
Java多线程系列--“JUC集合”01之 框架Java多线程系列--“JUC集合”02之 CopyOnWriteArrayListJava多线程系列--“JUC集合”03之 CopyOnWriteArraySetJava多线程系列--“JUC集合”04之 ConcurrentHashMapJava多线程系列--“JUC集合”05之 Concurre
2016-06-29 20:57:16 825
转载 关于java并发锁的学习总结
Java多线程系列--“JUC锁”01之 框架Java多线程系列--“JUC锁”02之 互斥锁ReentrantLockJava多线程系列--“JUC锁”03之 公平锁(一)Java多线程系列--“JUC锁”04之 公平锁(二)Java多线程系列--“JUC锁”05之 非公平锁Java多线程系列--“JUC锁”06之 Conditio
2016-06-29 20:54:59 456
转载 HashMap之深入理解
HashMap实例中table的length是在初始化时就被指定的,无论采用默认值还是其他指定值,table数组的大小就已经确定,随着添加元素的增多在一定时机下下会对table数组进行扩容呢。 HashMap实例通过put方法设置元素,HashMap实例首先会计算该key所对应的下标位置,然后遍历寻找该key,如果找到则直接更新,当该key为原实例中不存在时则会调用addEn
2016-06-29 19:26:44 5443 1
原创 jvm内存回收机制
Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java Virtual Machine)中的
2016-06-28 17:32:44 4705
转载 Java GC堆和jvm参数设置
1、堆内存Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。 这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以
2016-06-28 16:54:32 9785
转载 关于分布式的一些理解和认识
分布式系统并不是什么新鲜词,在上个世纪七八十年代就已经有各种分布式系统出现。只是在互联网时代,分布式系统才大放异彩,尤其是Google更是把分布式系统运用到了极致。Google整个的软件构架都是基于各种各样的分布式系统,诸如Borg、MapReduce、BigTable等。正是这些分布式系统,使得Google可以处理高并发请求响应以及海量数据处理等。Apache旗下的Hadoop、Spark、Me
2016-06-28 15:33:46 7634 1
原创 数据库查询优化方案
查询速度慢的原因:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_loc
2016-06-28 10:09:03 581
原创 数据库之索引
一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是
2016-06-27 17:12:07 632
转载 数据库三范式解析
一、基本介绍 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范
2016-06-27 16:00:42 1352
转载 同步IO/异步IO/阻塞IO/非阻塞IO
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不
2016-06-27 09:07:49 347
转载 Java NIO 教程
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲
2016-06-25 15:28:37 809 1
原创 TCP(HTTP)长连接和短连接区别和怎样维护长连接
一、HTTP协议和TCP协议HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。二、HTTP协议的长连接和短连接在HTTP/1
2016-06-25 10:38:44 31051 4
原创 B族树详解(二叉搜索树、B-树、B+树、B*树)
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,
2016-06-23 17:09:51 3248
原创 java中String.split()的常用方法
String.split()函数将一个字符串分割为子字符串,然后将结果作为字符串数组返回。在字符串处理中,经常会有这样的应用场景,即我们需要将原字符串分隔成若干个更小的单位,以便我们接下来的计算,这时候就要用到split()函数了,它一般有下面几种常用的使用情景:1.以空格作为分隔符比如String s = "我们 都是 中国人!";String[] strs = s.split("
2016-06-21 15:10:25 10988
原创 java中栈和队列的实现和API用法
在java中要实现栈和队列,需要用到java集合的相关知识,特别是Stack、LinkedList等相关集合类型。一、栈的实现栈的实现,有两个方法:一个是用java本身的集合类型Stack类型;另一个是借用LinkedList来间接实现Stack。1.Stack实现有关Stack的具体知识可以参考:http://www.cnblogs.com/skywang12345/p/3308
2016-06-17 16:09:29 10179
原创 Android——BroadcastReceiver总结
什么是广播 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。我们拿广播电台来做个比方。我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了。Android中的广播机制就和这个差不多的道理。电台发送的内容是语音,而在Androi
2016-06-14 19:03:53 506
转载 java集合排序——Collections.sort()的两种用法
转自:http://gwh-08.iteye.com/blog/1233401/** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; import java.util.ArrayList; import j
2016-06-14 14:24:13 601
转载 Spring源码分析——AOP实现(1)
Contents1 什么是 AOPw2 AOP 的几个重要概念2.1 Joint point2.2 Pointcut2.3 Advice2.4 Aspect2.5 Weaving2.6 AOP proxy2.7 Target object2.8 一个 demo3 Spring AOP 实现机制3.1 代理模式3.2 JDK 动态代理3.3 动态字节码生成一共
2016-06-14 10:37:41 498
原创 Spring源码分析——Ioc实现原理
1. 初始化大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到Bean Factory中:在完成初始化的过程后,Bean们就在BeanFactory中蓄势以待地等调用了。下面通过一个具体的例子,来详细地学习一下初始化过程,例如当加载下面一个bean:12345678
2016-06-14 09:26:57 1142
转载 Struts2中属性注入的机制
Struts2 中属性自动注入的原理是:拦截器+反射,就是在request到达后台处理程序之间,加一层拦截器,截获到request对象,就可以通过request.getParameters()获取请求参数,然后通过请求URL可以得知你要请求的是哪个action类的哪个方法,然后你action中定义了跟request请求参数名称同名的属性,并提供get set,那么通过java反射机制调用actio...
2016-06-13 09:44:48 1746 1
原创 Servlet学习笔记
最近在看Servlet的相关知识,好记性不如烂笔头,有些东西还是记下来比较靠谱。。。一、Servlet 是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或
2016-06-09 15:16:38 11017 1
原创 过滤器、监听器、拦截器的区别
转自http://justsee.iteye.com/blog/724080struts2体系结构图:当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMa
2016-06-08 16:08:40 441
原创 Struts2源码分析——StrutsPrepareAndExecuteFilter
一、概述 Struts2的核心是一个Filter,Action可以脱离web容器,那么是什么让http请求和action关联在一起的,下面我们深入源码来分析下Struts2是如何工作的。 鉴于常规情况官方推荐使用StrutsPrepareAndExecuteFilter替代FilterDispatcher,我们此文将剖析StrutsPrepareAndExecute
2016-06-07 21:37:50 4125
原创 TCP连接状态解析和过程分析
tcp有如下状态:LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等
2016-06-04 11:23:59 3466
转载 java中的继承和多态以及重载和重写
继承(inheritance)简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封装、继承、多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类、超类),如果我们新定义的一个类没有
2016-06-02 10:19:05 7639
原创 JSP中动态include和静态include区别
静态 INCLUDE 用 include 伪码实现 , 不会检查所含文件的变化 , 适用于包含静态页面 <%@ include file="included.htm" %> 。先将文件的代码被原封不动地加入到了主页面从而合成一个文件,然后再进行翻译动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="
2016-06-01 10:20:02 19701 2
转载 java多线程状态切换
转自 http://blog.csdn.net/huang_xw/article/details/7316354一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的
2016-06-01 09:52:44 893
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人