自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想从这里开始

千里之行,始于足下

  • 博客(76)
  • 收藏
  • 关注

转载 当你访问淘宝的时候,发生了什么?

你发现快要过节了,于是想给你的男/女朋友买点儿礼物,你打开了淘宝。下面来看看,当你在浏览器轻轻www.taobao.com 以后发生了什么?首先你的浏览器查询了DNS服务器(注:能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址,例如192.168.1.1),现在DNS服务器将www.taobao.com转换成IP地址,机器能直接读取了。不过浏览器发现,在不同的地

2016-06-29 21:34:39 456

转载 读源码时,我们到底在读什么?

村上春村有本关于跑步的书:当我谈跑步时我谈些什么而我们软件工程师,经常会提到读源代码,读优秀开源作品的源代码。我们谈起读源码时,到底是读什么呢?读者可能会说,你这不是装X,明知故问嘛,读源码,当然就是读源码了。当然,源码是我们阅读的对象,我前面的文章也提到了一些源代码阅读相关的内容。我今天想谈的是,我认为源码阅读除了提高设计能力外,也是学习相应实现语方语法与最佳

2016-06-24 14:59:23 426

转载 为什么要使用集合框架?

很多时候,我们专心研究一个东西的时候,往往忘记了我们最初的目的是什么。        曾经研究过那么久的Java集合框架,为了搞清里面的细节,甚至都跑去重新买了一本数据结构,终于知道了线性表,知道了树,知道了查找表。也自己动手实现了ArrayList,LinkedList,HashMap等。        今天在公交车上,突然想到“我们为什么要使用Java集合框架呢?”竟然一时语塞,半天想

2016-06-24 02:02:27 1148

转载 TCP/IP传输层,你懂多少?

你所不知道的传输层题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。 1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP

2016-06-24 02:01:18 725

转载 Java内存分配、管理小结

P.S.想写这篇总结酝酿了有个来月了,却始终感觉还差点什么东西,一直未敢动笔。       最近两天连夜奋战,重新整理下前面查阅的资料、笔记,还是决定将它写出来。       现在提出几个问题,如果都能熟练回答的大虾,请您飘过.如以往一样,我是小菜,本文自然也是针对小菜阶层的总结。 首先是概念层

2016-06-24 02:00:08 293

转载 Hash表分析以及Java实现

这篇博客主要探讨Hash表中的一些原理/概念,及根据这些原理/概念,自己设计一个用来存放/查找数据的Hash表,并且与JDK中的HashMap类进行比较。我们分一下七个步骤来进行。 一。    Hash表概念二 .      Hash构造函数的方法,及适用范围三.       Hash处理冲突方法,各自特征四.       Hash查找过程五.       实现一个使用Ha

2016-06-23 23:28:35 5733 4

转载 OC原理分析

IOC(inversion of control)控制反转在我们的程序中,要实现某个功能,我们都会用到两个或两个以上的类来协同完成,那么在一个类中,我们就会要有它的合作类的引用,也就是说这个类依赖于别的类,这个合作类的获取,将会有一下几种不同的情况依赖获取的三种方式:  Java代码  情况1.自己生成     Class person{       Eat

2016-06-23 23:19:58 914

转载 简单Spring容器实现

在写完《IOC原理分析》,本来就准备写这个《简单Spring实现》的,但是因为复习数据结构和Collection,就一直拖到现在了,今天还是抽一天时间来把这个的总结和代码都写了吧.    恩,《IOC原理分析》中已经很详细的说明了Spring的IOC理念,在这里,就不累述了。    今天我们要做以下几件事 :         一.进行OO分析, 给出代码框架     

2016-06-23 23:18:07 320

转载 java多线程例子

我们在实现多线程广播屏幕截图的时候因为CPU对多个线程之间的执行顺序是随机的也就导致了我们发图片的时间间隔的不确定性从而导致了有些图片从开始发到发完的时间的不确定性严重降低了系统的实时性(实际上,在TCP模式下用线程池多线程随机发送图片改良下的远程监控系统,如果服务器端放电影,观测客户端,会发现经常会出现电影“倒着放”的现象,原因也就是这个还有救网络路由时间

2016-06-23 23:11:30 332

转载 深入探讨 Java 类加载器

类加载器(class loader)是 Java 中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi 中的应用。类加载器是 Java 语言的一个创新,也是 Java 语言流行的重

2016-06-23 21:53:45 213

转载 以操作系统的角度述说线程与进程

什么是线程什么是线程?线程与进程有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲得好,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把它讲得通俗一点,讲得明白一点,因为这是个困扰我很久的,扑朔迷离的知识领域,希望通过我的理解来揭开它一层一层神秘的面纱。1.任务调度线程是什么?要理解这个概念,必须要先了解一下操作系统的一些相关概念

2016-06-23 21:51:59 468

转载 进程和线程的联系和区别

定义一、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。二、线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;进程和线程的关系(1)一个线程只能属于一个进程,而

2016-06-23 21:49:26 266

转载 理解JVM

1. Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,

2016-06-23 14:38:31 1535

转载 怎样调试tomcat源码

我前面大多数文章都是以Tomcat源代码为基础,分析其某个功能的实现等细节,最近有不少朋友在群里询问怎样调试Tomcat的源码,今天以Tomcat源码为例,来总结下源码调试的方式。例如问题的处理过程,大致是发现问题,分析问题,解决问题。源码的调试我们简单总结下:获取源代码 Tomcat的源代码下载方式也比较多从github上下

2016-06-23 14:35:25 4196

转载 怎样阅读源代码?

软件工程师磨炼技艺的方式有许多,而读优秀项目的源码,是这些方式中学习其他人的经验和方法,快速进步的很重要一种方式。古人云:独学而无友,则必孤陋寡闻!读优秀的源码,就如同和高手交谈,无形中有胜过若干书的感觉。在代码中,我们能看到高手对于软件的设计,代码的组织,变量和方法的方法的命名,甚至通过多个版本能观察到作者对于项目不同时期的思考,对问题的修订方式,

2016-06-23 14:34:05 792

转载 图解Tomcat类加载机制

图解Tomcat类加载机制  说到本篇的tomcat类加载机制,不得不说翻译学习tomcat的初衷。  之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试。后来同事指导,说是直接把java类复制到src下就可以了。很纳闷....为什么会优先加载src下的java文件(编译出的class),而不是jar包中

2016-06-23 14:11:02 279

转载 Tomcat系列之Java技术详解

大纲一、概述二、Java三、Servlet与JSP四、Tomcat注,本博文是从运维的角度来说明Java相关技术,不涉及开发相关内容。主要写给与我一样做运维的博友进行参考!(现在的博客,操作多、理论少,在这一篇博客我主要和大家说一说理论知识)(说明:本博文的一些图片自于开源社区与官方网站并不是所有内容全是原创)一、概述1.前言

2016-06-23 14:09:02 1636 1

转载 使用Java开发高性能网站需要关注的那些事儿

近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内幕与同行们分享,大到facebook,百度,小到刚起步的网站。facebook,百度之类的大型网站采用的技术和超凡的处理能力的确给人耳目一新的感觉,但并不是每个网站都是像facebook,百度 有上亿的用户访问流量,有海量的数据需要存储,需要使用到mapreduce/并行计算,HBase/列存储这些技术不可。技术手段始终是运营的支撑,

2016-06-23 13:56:45 421

转载 JVM必备指南

简介Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码。更通俗地说,JVM是指对这个规范的具体实现。这种实现基于严格的指令集和全面的内存模型。另外,JVM也通常被形容为对软件运行时环境的实现。通常JVM实现主要指的是HotSpot。JVM规范保证任何的实现都能够以同样的方式解释执行字

2016-06-23 13:41:05 252

转载 Java、JVM和操作系统之间的关系,写给新人,

来张图:这个帖子写给新人的,老玩家就直接无视他,因为这个完完全全是白话基础原理。解释:上面的图是从上往下依次调用的关系。操作系统(Windows/Linux)管理硬件,让硬件能够正常、合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接口,叫做系统呼叫层,程序员可以面向这一层的接口编程,来实现对计算机的控制,而不同的操作系

2016-06-23 13:22:05 2947 3

转载 JVM JRE JDK三者的区别和联系

一、 详细介绍1、JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行。JVM 是 Java 平台

2016-06-23 13:20:51 6796 1

转载 WEB服务器、应用程序服务器、HTTP服务器区别

WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务

2016-06-23 13:19:17 325

转载 java web中jsp与servlet之间的跳转和传递参数

java web中jsp与servlet之间的跳转和传递参数一、jsp跳转到servlet并传递参数:在jsp中使用下列两种方式跳转到servleta> servlet的url-parrten”>(此时可以传递参数,也可以传递属性值)1.通过page属性来传递参数值在doXX()方法中使用request.getParameter("name")获取参数值2.通过来传递参

2016-06-23 13:17:53 6089 1

转载 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别

一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!

2016-06-23 13:16:50 346

转载 知识联系

计算机组成原理这门学科告诉你什么是计算机。首先,我们可以把计算机分解成最原始的部件——晶体管。晶体管是一种半导体材料,其最重要的作用就是半导:可以通过电流的变化,实现电路的切换。比如计算机最基础的与或非运算,都可以通过晶体管组成的电子元件实现。而通过晶体管的电位差不同,就可以体现"二进制数据",即0和1。再加上电容和电阻,就能把这种二进制数据临时保存起来。综合这些特性,大牛们发现把晶体

2016-06-23 00:51:21 1225

转载 HashSet、HashMap,散列表数据结构(哈希表)

很多开发者,初学者都知道HashSet无序,不可重复,线程非同步。底层是哈希表结构。但它是怎么做到的?什么是散列表数据结构(哈希表)?有什么特性?都清楚吗?不清楚继续往下看。它是这样做到的:先来看HashSet的源码,首先看默认构造器:[java] public HashSet() {     map = new HashMap(); } // ok,我们看

2016-06-22 20:49:56 1716

转载 java如何得到GET和POST请求URL和参数列表

在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getParameterMap()方法遍历得到,不论GET或POST都可以通过getRequestURL+getParameterMap()来得到请求完整路径 [java] view p

2016-06-22 20:46:35 502

转载 request.getParameter()、request.getInputStream()和request.getReader()

大家经常 用servlet和jsp,但是对 request.getInputStream()和request.getReader()比较陌生。request.getParameter()request.getInputStream()request.getReader()这 三个方法都是从request对象中得到提交的数据,但是用途不同,要根据表单提交数据的编码方式选择不同的方法。

2016-06-22 20:44:52 354

转载 JSON for java入门总结

一、JSON介绍JSON(JavaScript Object Notation),类似于XML,是一种数据交换格式,比如JAVA产生了一个数据想要给JavaScript,则除了利用XML外,还可以利用JSON;JSON相比XML的优势是表达起来很简单;官网:http://www.json.org/JSON是AJAX中的X(就是可以取代XML);    

2016-06-22 20:42:54 343

转载 四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消

2016-06-22 20:41:37 9873 1

转载 TCP三次握手/四次挥手详解

1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。 (3) 客户必须再次回应服务段一个ACK报文,这是报文段3。 2、连接终

2016-06-22 20:38:09 245

转载 java 单例模式的7种实现方法

第一种(懒汉,线程不安全): 1 public class Singleton {  2     private static Singleton instance;  3     private Singleton (){}   4     public static Singleton getInstance() {  5     if (instance == nul

2016-06-22 20:34:08 350

转载 MySQL集群的可行方案

如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案 有: 一、MySQL Cluster 优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集

2016-06-22 20:29:21 324

转载 数据库设计的一些心得与经验

原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是 一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面 大有好处。比如:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工

2016-06-22 20:28:26 23790

转载 数据库设计准则(第一、第二、第三范式说明)

I、关系数据库设计范式介绍 1.1 第一范式(1NF)无重复的列        所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如 果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只

2016-06-22 20:27:13 474

转载 session和cache的区别

以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application。其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息。Session则保存对话信息。Application则是保存在整个应用程序范围内的信息,相当于全局变量。SessionSession用来保存每一个用户的专有信息Session的生存

2016-06-22 20:07:02 11451

转载 Cookie/Session机制详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制在程序中,会话跟

2016-06-22 19:16:34 612

转载 探索 ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代码会涉及到散

2016-06-22 00:54:26 325

转载 HashMap工作原理

HashMap 的工作原理是近年来常见的 Java 面试题。几乎每个 Java 程序员都知道 HashMap,都知道哪里要用 HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现 HashMap 来考察你的编程能力。ConcurrentHashMa

2016-06-22 00:50:58 279 1

转载 Mysql inndodb 存储引擎的简单总结(组成结构,锁,事务,备份,优化)

上面这张图总结了innodb mysql的逻辑和物理架构组成,锁与事务,备份策略以及调优点,以下就每个点进行总结说明。在线程处理方面,Mysql是多线程的架构,由一个master线程,一个锁监控线程,一个错误监控线程,和多个IO线程组成。并且对一个连接会开启一个线程进行服务。io线程又分为节省随机IO的insert buffer,用于事务控制的类似于oracle的redo log,

2016-06-22 00:45:22 967

空空如也

空空如也

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

TA关注的人

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