自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想从这里开始

千里之行,始于足下

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

转载 Git

CVS和Subversion有很多不同的地方。但如果将这两者和git比较,那么git看起来就像孙权的碧眼,有一些怪异。git的作者是Linus Torvald。对,就是写Linux Kernel的那个Linus Torvald。Linus在贡献了最初的Linux Kernel源代码之后,一直领导着Linux Kernel的开发。Linus Torvald本人相当厌恶CVS(以及Subversi

2017-03-15 22:26:50 338

转载 Spring并发访问的线程安全性问题(高度总结)

下面的记录对spring中并发的总结。理论分析参考Spring中Singleton模式的线程安全,建议先看spring中的并发访问题:我们知道在一般情况下,只有无状态的Bean才可以在多线程环境下共享,在Spring中,绝大部分Bean都可以声明为singleton作用域。那么对于有状态的bean呢?Spring对一些(如RequestContextHolder、Transacti

2017-03-11 23:54:02 17733 3

转载 Spring 并发访问的线程安全性问题

首先对于Spring的IOC来说,对象是由Spring来帮我们管理,也就是在Spring启动的时候,在Spring容器中,由Spring给我们创建的,Spring会帮我们维护,一般都是单例的,也就是一个对象。 spring生成对象默认是单例的。通过scope属性可以更改为多例。 第一部分:验证Spring生成对象默认是单例的。 下面我们来一个网上的例子验证一下: 

2017-03-11 23:49:44 438

转载 理解Mysql的索引与优化

转自:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取

2017-03-11 23:32:35 278

转载 servlet/filter/listener/interceptor区别与联系

由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时候,发现为什么struts1要用servlet,而struts2要用filter呢?一时又发现,servlet和filter有什么区别呢?于是看了看web.xml,一时又发现,咦,servlet、filter、listener?还有个interceptor?对于这

2017-03-11 23:22:07 302

转载 MySql中的varchar类型

今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下。1.varchar类型的变化MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532

2017-03-11 23:19:47 506

转载 Spring单例与线程安全小结(通俗易懂)

一、Spring单例模式与线程安全Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这是多个线程会并发执行该请求多对应的业务逻

2017-03-11 23:16:39 475

转载 Servlet多线程安全性有关问题

Servlet多线程安全性问题摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。关键字:Servlet 线程安全 同步 Java内存模型 实例变量   Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的

2017-03-11 22:28:02 266

转载 vim简单使用教程

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类史上最好

2017-03-11 20:51:04 1616

原创 web.xml 中的listener、 filter、servlet 加载顺序及其详解

web.xml 中的listener、 filter、servlet 加载顺序及其详解一、概述1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器

2017-03-11 17:03:49 325

转载 Tomcat启动过程原理详解

基于Java的Web 应用程序是 servlet、JSP 页面、静态页面、类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器。Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的。Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源,比如图像、HTML 页面等。构成:Web应用由Web组件(一组Java类库

2017-03-11 16:57:42 308

转载 如何设计一个可用的web容器

开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的思路,并不涉及过多的具体实现。把它分解划分成若干模块和组件,每个组件模块负责不同的功能,下图列出一些基本的组件,并将对每个组件进行介绍。连接接收器主要的职责就是

2017-03-11 15:26:18 285

原创 操作系统与我们编程的关系(抽象和封装的运用)

通常,计算机用户是用高级语言来编写应用程序的,但计算机的硬件却是按照机器码指令来执行操作的。于是,就出现了这样一个问题:用户如何才能用高级语言来指示一台只能识别机器码指令的机器来工作。显然,在高级语言程序和机器硬仵之间,必须有一个中介来完成高级语言与低级语言的对接工作。  为了说明问题,先看一下当一个用户面对一台裸机时他会面对什么样的问题及困难。在使用计算机时,如果用户面对的是一台只由硬件

2017-03-11 14:45:50 2448 2

转载 JVM基本结构

欢迎装载请说明出处:http://blog.csdn.net/yfqnihao这一节,主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信。当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多。在你看完本节之

2017-03-10 22:43:26 247

转载 关于Web服务器的认识

1.进程与线程进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。从逻辑角度来看,多线程的意义在于一个应用程序(进程)中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现,而是作为进程来调度和管理以及资源分配。这就是进程和线程的重要区别,进程和线程的主要差别在于,进程有独立的地址空间,一个进程崩溃后,在保护模

2017-03-10 16:05:52 649

转载 Java的Main方法与Java进程之间的关系

Java应用程序的入口就是main方法()!启动一个Java应用程序,就是要运用它的main方法,这时候就启动了一个Java虚拟机------在Windows下查看任务管理器,就会发现多出了一个javaw.exe的进程,这个就是java虚拟机!而main()方法其实是Java虚拟机这个进程的一个主线程(默认至少还有一个垃圾回收器的守护线程,所以运行一个java应用程序,启动了一个java进

2017-03-10 15:27:47 1355

转载 Java 中的进程与线程

进程与线程在程序开发中无疑占有极其重要的地位,而 Java 语言为了能提供统一的、与平台无关的关于进程和线程的编程接口,必然要对操作系统提供的相关功能做进一步封装。本文主要介绍 Java 中关于进程与线程的相关封装类,揭示如何创建 Java 进程与线程,Java 封装类和实际的系统本地进程和线程是如何对应的,以及使用 Java 进程和线程的一些限制。概述进程与线程,本质

2017-03-10 15:17:25 291

转载 Web应用程序中调度器的启动和关闭问题

我们知道静态变量是ClassLoader级别的,如果Web应用程序停止,这些静态变量也会从JVM中清除。但是线程则是JVM级别的,如果你在Web 应用中启动一个线程,这个线程的生命周期并不会和Web应用程序保持同步。也就是说,即使你停止了Web应用,这个线程依旧是活跃的。正是因为这个很隐晦 的问题,所以很多有经验的开发者不太赞成在Web应用中私自启动线程。 如果我们手工使用JDK Time

2017-03-10 14:06:49 479 1

转载 为什么浏览器会使用多进程架构。

在使用浏览器时偶然发现虽然仅仅打开一个标签页,但是在任务管理器内发现有多个浏览器进程在运行,占用了不小的内存,当时很纳闷:为什么一个浏览器却需要多个进程呢?不经意间在网上发现这篇文章,以Google chrome浏览器为例,讲解了使用多进程构架的浏览器。翻译给大家,希望对有英语阅读困难的同学有所帮助,第一次翻译技术文章,好多术语不明白啥意思,也没有搜到都是凭理解翻译的。如cross-site

2017-03-09 22:58:15 1337

转载 擦亮自己的眼睛去看SQLServer之谈谈锁机制

在谈谈SQLServer的锁机制之前,来思考以下这个场景:当你在酷暑的时候骑着自己的小车往目的地行走时,路上连续遇到几个时间很长的红灯,是不是很郁闷?有时候你可能实在受不了闯了个红灯,其实在大部分情况下问题不大,如果通行的汽车很多那就不好说了。因为不遵守规则的人太多,都为了达到目的去走捷径,不愿意等待。这样才有了交警。交警的作用就是维护这些红绿灯的规则。这些红绿灯就像锁一样,锁住或延长你去目的地的

2017-03-09 21:24:43 238

转载 IO 的底层实现问题

最近在看 JAVA NIO 的相关知识,了解一下IO的底层实现原理。IO涉及到的底层的概念大致如下:1) 缓冲区操作。2) 内核空间与用户空间。3) 虚拟内存。4) 分页技术。一,虚拟存储器虚拟存储器是硬件异常(缺页异常)、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。虚拟存储器的三大能力:①将主存看成是一个存储在磁盘

2017-03-09 16:30:53 350

转载 深入分析 Java I/O 的工作机制

I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I/O 的工作机制;其中以网络 I/O 为重点介绍 Jav

2017-03-09 15:54:35 224

转载 网络编程中需要理解的一些概念

络编程中 一些概念问题1.同步与异步网络编程中,同步的意思是说,进行收发数据,等到数据真正发送出去或者接受到,才返回;而异步的意思是,可以把数据发送到缓冲区立即返回,而发送成功的消息是通过事件通知的。异步可以腾出更多的CPU来处理其他事情,所以异步的方式比较灵活。 线程同步是指,多个线程协同完成一件工作,一个线程需要等待其他线程完成相关的工作,才能接着往下运行。线程同步一般采用互斥体,信号

2017-03-09 15:08:10 1931

转载 JSON JSONP理解

说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。JSON和JSONP虽然只有一个字母的差别,但其实

2017-03-09 14:36:33 241

转载 简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法

在WEB开发中异步请求方式普遍使用,ajax技术减少程序员的工作量,也提升用户交互体验。AJAX的四种异步请求方式都能实现基本需求,闲话不多说,直接切入正题。1.$.getJSON  $.getJSON()是专门为ajax获取json数据而设置的,并且支持跨域调用,其语法的格式为:  1 $.getJSON(2 url,

2017-03-09 14:35:17 351

转载 nginx的配置、虚拟主机、负载均衡和反向代理

nginx启动和关闭按照惯例,先说下各个平台的配置情况:centos平台,源码安装的:/usr/local/nginx/nginx # 启动/usr/local/nginx/nginx -s reload #平滑重启/usr/local/nginx/nginx.conf #配置文件mac平台,我用brew安装的。/usr/local/bin/ngin

2017-03-09 14:33:18 228

转载 Nginx配置文件nginx.conf中文详解

查了下网络资料,对Nginx配置文件nginx.conf的理解整理如下:view source?001#定义Nginx运行的用户和用户组002user www www;003 004

2017-03-09 14:31:21 388

转载 几种经典的网络服务器架构模型的分析与比较

事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文将不拘泥于源代

2017-03-09 14:19:59 4757

转载 聊聊Socket、TCP/IP、HTTP、FTP及网络编程

1 这些都是什么既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输。这里就要使用到TCP/IP协议。1.1 TCP/IP协议组TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上

2017-03-09 14:08:59 218

转载 Socket网络编程,TCP/IP和Http等网络协议理解

一、网络各个协议:TCP/IP、SOCKET、HTTP等网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。http协议 对应于应用层 tcp协议 对应于传输层 ip协议 对应于网络层 三者本质上

2017-03-09 13:58:13 2590

转载 Java I/O底层是如何工作的?

目录缓存处理和内核vs用户空间虚拟内存内存分页面向文件、块的I/O文件锁定面向流的I/O缓存处理和内核vs用户空间缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。通常,进程执行操作系统的I/O请求包括数据从缓冲区排出(写操作)和数据填充缓冲区(读操作)。这就是

2017-03-08 23:03:26 228

转载 redis基本数据结构小例子讲解

最近在自己的工作中,把其中一个PHP项目的缓存从以前的APC缓存逐渐切换到Redis中,并且根据Redis所支持的数据结构做了库存维护功能。缓存是在业务层做的,准确讲应该是在MVC模型中Model的ORM里面。主要逻辑就是先查缓存,查不到的话再查数据库。不过这些不是本文的主要内容,下面我把库存管理功能的缓存设计思路分享一下,希望能带给大家一些收获,有不足之处或者有更好方案的,也希望各位多多指教。

2017-03-08 20:47:44 744

转载 用场景法剖析需求问题

场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。用场景法来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。  下面来看具体的例子:假设你现在需要完成的是一套出租车预定系统(顾客进行出租车的预定,系统完成扣款以及出租车

2017-03-08 18:28:26 2246

转载 产品方法论:B端产品需求梳理分析模型

在B端产品的工作当中,常常要与不同的业务部门打交道,他们的角色众多、诉求各有差异,造就了后台业务产品的复杂性,下面介绍一下我在国内排名第一的房产中介公司工作以来总结的一套产品方法论。需求梳理我们常常收到来自用户(业务部门)或老板,以一句话高度概括提出的需求:“我需要对挂牌房源进行回访,并进行判定”、“我需要一个对网站400来电录音进行打分的平台”……因此,需要一个框架有序、

2017-03-08 16:10:29 8110

原创 tomcat类加载器找不到jar包中的类问题分析与解决思路

在这篇博文中java动态加载指定的类或者jar包反射调用其方法,介绍动态加载指定的类,当时我是拿URLClassLoader介绍的,当然可以自定义一个ClassLoader重写对应的方法, 不过这个有现成的比自己重写更强大为何不用。话不多说,很久不写博客了,时间太紧了,起因还是一个网友私信我,说他反射创建某个对象时涉及其他jar中的类就会报ClassNotFound异常。其实,我也遇到

2017-03-07 23:10:22 5319 3

转载 图解Tomcat类加载机制

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

2017-03-07 23:06:33 189

转载 互联网后端基础设施概览

对于一个互联网企业,后端服务是必不可少的一个组成部分。抛开业务应用来说,往下的基础服务设施做到哪些才能够保证业务的稳定可靠、易维护、高可用呢?纵观整个互联网技术体系再结合公司的目前状况,个人认为必不可少或者非常关键的后端基础技术/设施如下图所示:Api网关业务应用和后端基础框架缓存、数据库、搜索引擎、消息队列文件存储统一认证中心单点登录系统统一配置中心服务治理框架统一调度中心统一日

2017-03-07 17:46:34 1072

转载 对分解和组合思维方法的理解

抽象方法一般有两个分解decomposition和组合composition,这两种方法的方向正好相反,分解是将整体分解为部分,而组合是将部分组合成整体。在软件架构设计和编码中,我们经常快速灵活使用这两种方法,比如将一个类分解为多个小类,将一个方法分解为多个方法,或者将几个类合成一个类一起调用,GoF设计模式中有不少模式是展示这两种方法的使用,比如桥模式或适配器模式是将几个类组合在一起调用

2017-03-07 15:58:53 5202

转载 翻译-DevOps究竟是什么?

原文地址:http://www.drdobbs.com/architecture-and-design/what-exactly-is-devops/240009147作者:Neil Garnichaud软件开发目前的最新趋势是DevOps文化,即开发人员和运营人员一起确保软件以最低的故障率运行。很多组织发现他们面临这样的挑战,即随着云的Web应用程序的发展,要求快速发布以便及时响应来自用

2017-03-07 15:52:19 1093

原创 程序员解决问题的策略总结

根本的指导方针1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。良好的单元测试强制数据库约束使用输入验证框架避免未实现的“else”条件在应用到主程序之前知道如何在孤立的情况下使用日志2. print 语句。往往额外输出个一两行将有助于隔离问题。3. 切换至详细的日志记录。详细的日志记录有助

2017-03-07 15:24:58 836

空空如也

空空如也

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

TA关注的人

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