自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 HashMap源码剖析

大部分思路都是一样的 ,只是一些细节不一样,源码中都标了出来。jdk容器源码还是挺简单的。public class HashMap extends AbstractMap implements Map, Cloneable, Serializable{ //容量默认值 static final int DEFAULT_INITIAL_CAPACITY = 16;

2015-08-21 17:47:51 1112

原创 HashTable源码剖析

package java.util;import java.io.*;public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable { //transient不能被序列化 数据部分 private transient Entry[] tab

2015-08-21 16:16:00 1056

原创 TCP三次握手及关闭时的2MSL分析

TCP/IP三次握手四次挥手,是非常重要的,这个链接与关闭过程也是很简单的,但为什么是三次握手?以及为什么要等待2MSL的状态?大部分人也许听到这个问题就蒙了,这篇博客就综合《TCP/IP详解:卷一》来分析一下原因:下面看TCP三次握手四次挥手的原理图:1.为什么要三次握手?     为了避免已失效的连接报文段又到达可服务器。考虑这样一个正常的情况:   假设TCP连接是两

2015-08-20 17:48:31 1907 1

原创 40个Java集合面试问题和答案

1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:

2015-08-18 16:19:56 1900

原创 全面解读java虚拟机(面试考点大全)d

学习java以来,jvm的原理已经看过好多遍了,但是许多知识点都串不起来。今天我把jvm相关知识整理了一下,看完之后肯定会对JVM非常的清楚。JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,操作码决定了操作类型和所操作

2015-08-18 11:54:43 4851

原创 Socket编程系列

整理了整理以前写的博客,将Socket编程的博客都集锦在这里,以便阅读方便。                                       基本套接字TCP和UDP                       socket的底层创建与关闭                       揭秘Socket与底层数据传输实现

2015-08-16 09:14:27 876

原创 ArrayList源码解析

本片博客只解析了源码的关键部分,其余可自行查看。注意此容器是线程不安全的,且注意Fail-fast机制public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable{ private static final long s

2015-08-16 00:56:15 908

转载 java NIO、BIO、AIO全面剖析

在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?散仙

2015-08-15 19:29:24 2320 3

原创 JDK容器 Vector源码剖析

/* * %W% %E% * * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;/** * The {@co

2015-08-13 23:25:35 887

原创 Tomcat源码解析系列

学web也有一段时间了,为了从底层了解web应用在Tomcat中的运行,决定看一下Tomcat的源码参见《How Tomcat works》    和大牛博客,对大体架构有了一定的了解,但是具体细节还是不大清楚,以后随着对这方面的深入再具体看吧。下面是解析的Tomcat系列:Tomcat源码解析(一)下载源码与导入eclipseTomcat总体架构(Tomcat源码解析系列

2015-08-11 21:06:21 3768

原创 Tomcat 设计模式总结(Tomcat源代码阅读系列之八)

本篇我们将来分析一下Tomcat中所涉及到设计模式,本文我们将主要来分析外观模式,观察者模式,责任链模式,模板方法模式,命令模式。 在开始本文之前,笔者先说明一下对于设计模式的一点看法。笔者曾经经常看到网上有人讨论设计模式,也偶尔会遇到有人非要严格按照GOF设计模式的类图以及其中的角色去套用别人的设计,只要类图不一样,或者角色多了或者少了就会觉得怎么和官方定义的模式不一样,其实这都是对设计模式

2015-08-11 20:55:13 5896 2

原创 Tomcat Session管理机制(Tomcat源码解析七)

前面几篇我们分析了Tomcat的启动,关闭,请求处理的流程,tomcat的classloader机制,本篇将接着分析Tomcat的session管理方面的内容。在开始之前,我们先来看一下总体上的结构,熟悉了总体结构以后,我们在一步步的去分析源代码。Tomcat session相光的类图如下:通过上图,我们可以看出每一个StandardContext会关联一个Manager,

2015-08-11 11:22:18 3908

原创 Tomcat类加载器机制(Tomcat源码解析六)

要说Tomcat的Classloader机制,我们还得从Bootstrap开始。在BootStrap初始化的时候,调用了org.apache.catalina.startup.Bootstrap#initClassLoaders方法,这个方法里面创建了3个ClassLoader,它们分别是commonLoader,catalinaLoader,sharedLoader,其中catalinaLoad

2015-08-11 10:28:48 4946 2

原创 Tomcat请求处理过程(Tomcat源码解析五)

前面已经分析完了Tomcat的启动和关闭过程,本篇就来接着分析一下Tomcat中请求的处理过程。在开始本文之前,咋们首先来看看一个Http请求处理的过程,一般情况下是浏览器发送http请求->建立Socket连接->通过Socket读取数据->根据http协议解析数据->调用后台服务完成响应,详细的流程图如上图所示,等读者读完本篇,应该就清楚了上图所表达的意思。Tomcat既是一个Http

2015-08-11 09:25:31 8095 3

原创 Tomcat关闭过程(Tomcat源码解析四)

我们在Tomcat启动过程(Tomcat源代码阅读系列之三)一文中已经知道Tomcat启动以后,会启动6条线程,他们分别如下:"ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000]"ajp-bio-8009-Acceptor-0"

2015-08-10 20:31:52 4564

原创 tomcat的启动过程(Tomcat源码解析(三))

Tomcat组件生命周期管理在Tomcat总体结构 (Tomcat源代码解析之二)中,我们列出了Tomcat中Server,Service,Connector,Engine,Host,Context的继承关系图,你会发现它们都实现了org.apache.catalina.Lifecycle接口,而org.apache.catalina.util.LifecycleBase采用了模板方法模式

2015-08-10 17:49:35 9905 6

原创 Tomcat总体架构(Tomcat源码解析系列二)

Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯servlet的web应用似乎很好理解Tomcat是如何装载servlet的,但,当使用一些MVC框架时,如spring MVC、strusts2,可能就找不出servlet在哪里?其实spring MVC框架就是一整个servlet,在web.xml中配置如下:

2015-08-10 09:56:48 10247

原创 Tomcat源码解析(一)下载源码与导入eclipse

自从写web程序以来,web程序是如何在Tomcat中运行的一直困惑着我,不知道底层的运行机制是无法真正理解web的,所以就开始研究Tomcat源码,Tomcat是一个轻量级的java服务器,再结合《How Tomcat works》和网上大牛博客之后,也算知道了内部的运行架构。    首先去官网下载Tomcat源码,我下载的是apache-tomcat-7.0.63-src(在这里下载),因

2015-08-09 11:46:56 4125 2

原创 (二)线程同步基础

1.使用 synchronized实现同步方法  如果一个对象已经用synchronized声明,那么只允许一个执行线程访问它,如果其他线程试图访问这个对象的其他方法,它将被挂起,直到第一个线程执行完正在运行的方法。被synchronized声明的方法就是临界区。 对于非静态的方法被synchronized修饰后,同一时间内只能有一个线程访问这个对象的synchronized方法。即,每一

2015-08-07 17:46:01 588

原创 java并发编程实战手册(一)线程管理

本文主要是以知识点的形式对java多线程进行了解,学习java多线程的基础,本文参考书籍《java并发编程实战手册》,若有兴趣想研究跟高级的多线程思想,可以阅读《java并发编程实战》。线程管理     1.线程的创建和运行  java线程的创建有三种方式,可能大部分人只知道常用的两种:    1.继承Thread类,并且覆盖run()方法。    2.创建一个实现Runnab

2015-08-07 15:28:31 711

Tomcat源码

Tomcat源码,官方下载,可以使用,绝对没问题 ,请放心下载

2015-08-09

算法导论英文版

算法导论英文版这里有详细的英文版 是学习 算法的神书

2014-11-04

空空如也

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

TA关注的人

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