自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HotSpot源码—— 字节码执行过程

TODO

2018-06-04 13:00:13 1484 1

转载 内存泄漏小例子

由于申请的内存没有释放,导致这块内存一直处于占用状态

2018-01-12 15:35:09 1070

原创 Tomcat性能测试

Tomcat性能测试

2017-11-17 14:18:40 3612 1

原创 并发锁

不可重入锁public class Lock{ private boolean isLocked = false; public synchronized void lock() throws InterruptedException{ while(isLocked){ wait(); } isLo

2017-09-19 16:54:42 485

原创 从IO到NIO

网络服务的基本结构当今网络上的各种基于TCP/IP的应用服务,其对1次请求的处理过程的本质流程结构均为从底层IO读取字节请求把读取后的字节请求进行解码成为自己的业务请求对象把解码后的业务请求对象进行业务处理把处理后的响应编码为底层IO可写入的字节响应利用底层IO返回(发出)编码后的字节响应

2017-04-07 16:43:50 512

原创 面向服务架构(SOA)

大型网站为了应对日益复杂的业务场景,将整个网站业务分成不同的产品线。如大型购物交易网站都会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队部署和维护。

2017-03-22 11:01:47 1092

原创 svn和Git区别

1.分支管理场景一:需要切换分支svn需要将代码下载到本地,eclipse打开项目-->编译-->运行2.离线提交

2017-03-15 17:16:22 568

转载 分布式缓存

回顾网站架构演化历程,当网站遇到性能瓶颈时,第一个想到的解决方案就是使用缓存。在整个网站应用中,缓存几乎无所不在,既存在于浏览器,也存在于应用服务器和数据库服务器;既可以对数据缓存,也可以对文件缓存,还可以对页面片段缓存。合理使用缓存,对网站性能优化意义重大。

2017-03-10 10:53:45 739

转载 分布式事务

在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。分布式事务—两阶段提交协议两阶段提交协议(Two-phase Commit,2PC)经常被用来实现分布式事务。一般分为协调器C和若干事务执行者Si两种角色,这里的事务执行者就是具体的数据库,协调器可以和事务执行器在一台机器上。阶段一:向所有Si发送prep

2017-03-07 17:55:50 301

转载 MongoDB 分片(Sharding)

一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式的MongoDB集群。 那么首先我们应该理解何为分片(sharding)以及它的基本工作模式。

2017-02-28 10:31:34 566

原创 深入剖析消息中间件

消息中间件使用消息队列将调用异步化,可改善网站的扩展性,改善网站系统的性能。

2017-02-23 15:32:41 2566

转载 大型网站架构演化

大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以 P 计的数据和面对数以亿计的用户,问题就会变得很棘手。大型网站架构主要解决这类问题。

2017-02-20 17:39:04 529

转载 为什么我们需要工作流

每一个信息化开发人员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,或许你也就明白一些了。这是一个简单的业务——订货流程:1、客

2016-10-11 15:18:38 2518 1

原创 REST:Atom标准

Atom联合格式(Atom Syndication Format)的简称。说起Atom可能有点陌生,可以把它看作RSS2.0的改进方案。它是 一种基于XML的超媒体格式。它提供了灵活可扩展的互操作的格式,并且因为基于XML的特点,所以它为跨平台的应用间传递数据提供了很好的支持。是IETF的“建议标准”。Atom作为一种流行的超媒体格式已经被Google等广泛使用。Atom详细规

2016-08-30 14:12:00 2601

翻译 REST:Atom的开源框架Apache Abdera

Apache Abdera的目标是实现Atom Syndication Format  和 Atom Publishing Protocol 定义的规范,并且功能完整,性能高

2016-08-30 13:39:34 1644

转载 Oracle数据库基本概念

Oracle数据库两个基本概念数据块(Block)数据块是数据库中数据在磁盘中存储的最小单位,也是一次IO访问的最小单位,一个数据块通常可以存储多条记录,数据块大小是DBA在创建数据库或表空间时指定,可指定为2K、4K、8K、16K或32K字节。下图是一个Oracle数据库典型的物理结构,一个数据库可以包括多个数据文件,一个数据文件内又包含多个数据块; ROWIDROWID

2016-08-11 15:20:59 676

原创 MYSQL数据库优化

数据库的性能受CPU,Cache,内存,硬盘,网络影响,数据库系统出现性能问题,其根本原因是系统资源出现瓶颈,包括硬件瓶颈和软件瓶颈。软件瓶颈则是由于软件设计的数据处理不合理导致的。很多情况下,硬件瓶颈是由于应用软件的不合理导致的。

2016-08-10 17:55:02 669

转载 REST设计规范

当谈及REST成熟度时,一些人常常会引用Richardson所提出来的REST成熟度模型(Maturity Model),并视之为正确的度量方法。第一级:在架构中引入资源(Resource)的概念。大多数WS-*服务和POX都只是使用一个URI作为一个服务端口,也只使用一个HTTP方法传输数据。这种做法相当于把HTTP这个应用层协议降级为传输层协议用,《REST实战

2016-08-03 13:52:48 6927

转载 Java工程师成神之路~

一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具jps, jstack, jmap

2016-08-02 14:34:35 832

原创 REST框架详解

传统上软件开发主要针对单机环境,互联网的兴起,使得这两个领域开始融合,越来越多的人开始意识到,网站即软件,而且是一种新型的软件。网站开发,完全可以采用软件开发的模式。。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。

2016-08-01 17:14:44 4110

转载 mysql query cache详解

query cache原理当mysql接收到一条select类型的query时,mysql会对这条query进行hash计算而得到一个hash值,然后通过该hash值到query cache中去匹配,如果没有匹配中,则将这个hash值存放在一个hash链表中,同时将query的结果集存放进cache中,存放hash值的链表的每一个hash节点存放了相应query结果集在cache中的地址,以及该query所涉及到的一些table的相关信息;如果通过hash值匹配到了一样的query,则直接将cache中相

2016-08-01 11:16:30 5872

转载 面向对象的5个基本设计原则

面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle)    其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将

2016-07-22 16:46:28 324

原创 设计原则

http://blog.csdn.net/hosterzhu?viewmode=contents

2016-07-21 15:37:28 337

转载 java接口和抽象类

对于接口而言,就是用来标记类的一个产物。每个接口都对应有一个或多个实现它的类,否则这个接口就成为冗余代码。因为管理接口比管理类要简单挺多,接口就由此体现了抽象的观点。换句话说,接口就是没有属性和行为实现的类。类实现多个接口,可以解决类不能继承多个类的机制。

2016-07-21 13:32:47 303

转载 Java 多线程状态转换

Java 多线程状态转换

2016-07-20 14:10:30 370

转载 经典SQL语句

本人总结了数据库查询中一些比较复杂的查询,如链表查询,多重子查询,连表查询+子查询等,由于技术有限,并没有太多考虑sql语句的优化,如有不足之处,敬请谅解。create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) );

2016-07-14 11:05:55 1180

原创 Java反射原理极其实战

在上一篇文章中介绍Java注解的时候,多次提到了Java的反射API。与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理也是非常强大的功能,可以原生实现AOP中 的方法拦截功能。正如英文单词reflection的含义一样,使用反射API的时候就好像在看一个Java类在水中的倒影一样。知道了Java类的内部 结构之后,就可以与它

2016-07-06 17:25:42 1263

原创 类加载机制

类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持 Java 语

2016-07-06 14:56:51 352

原创 Java内存模型

Java虚拟机和真实的计算机一样,运行的都是二进制的机器码;而我们将.java 源代码编译成.class 文件,class文件便是Java虚拟机能够认识的二进制机器码,Java能够识别class文件中的信息和机器指令,进而执行这些机器指令。那么,Java虚拟机是如何运行这些二进制的机器码的呢? 本文将通过一个非常简单的例子,带你感受一下Java虚拟机运行机器码的过程

2016-07-05 16:44:51 391

转载 JVM指令详解

一、未归类系列A此系列暂未归类。指令码    助记符                            说明0x00         nop                                什么都不做0x01        aconst_null                   将null推送至栈顶二、const系列该系列命令主

2016-07-05 16:34:10 3069 2

转载 Java 反编译命令javap

javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad。但是,javap还可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了解很多编译器内部的工作。实例javap命令分解一个class文件,它根据o

2016-07-05 16:27:20 27609 2

转载 Java编程性能优化一些事儿

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到

2016-06-30 15:02:39 1037 1

转载 java中for循环的优化

作为java中三大循环之一的for循环,大家应该用的特别多,今天那就以我在项目中遇到的for循环优化来聊一聊for循环的优化.首先是for循环的写法上面最原始的写法public void optimalizeFor() { List list = new ArrayList<>(); for (int i = 0; i < list.size(); i++) {

2016-06-30 10:09:18 10864 2

原创 java提高篇之强制类型转换

在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。当我们用一个类型

2016-06-28 13:27:05 422

转载 深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用

一、java对象的比较等号(==):对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例;又可以说是判断对象实例是否物理相等; equals():对比两个对象实例是否相等。当对象所属的类没有重写根类Object的equals()方法时,equals()判断的是对象实例的ID(内存地址),是否是同一对象实例;该方法就是使用的等号(==

2016-06-27 17:11:59 1755

原创 编程中如何避免if(object!=null)判空语句

1.确定不会返回null的对象,可以不判空,如果脏数组导致报空,下面的逻辑也没必要执行,有必要的话可以try catch来处理2.需要判空的地方,3.好的设计

2016-06-27 13:42:19 2728

转载 java exception的使用规范

合理使用JAVA异常机制可以使程序健壮而清晰,但不幸的是,JAVA异常处理机制常常被错误的使用,下面就是一些关于Exception的注意事项:1. 原则:不要忽略checked Exception请看下面的代码:try{ method1(); //method1抛出ExceptionA}catch(ExceptionA e){ e.printS

2016-04-05 16:00:37 2979

原创 Java 单例模式

单例模式对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销,另外由于 new 操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻 GC 压力,缩短 GC 停顿时间。常应用于读取配置文件,sessionFactory等场景。

2016-03-31 16:06:45 404

转载 数据库事务隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Re

2015-08-24 11:47:41 314

转载 MongoDB数据库设计法则

By William Zola, Lead Technical Support Engineer at MongoDB“我有丰富的sql使用经验,但是我是个MongoDB的初学者。我应该如何在MongoDB中针对一对多关系进行建模?”这是我被问及最多的问题之一。我没法简单的给出答案,因为这有很多方案去实现。接下来我会教导你如何针对一对多进行建模。这个话题有很多内容需要讨论,

2015-08-18 16:55:46 4307

大型网站技术架构:核心原理与架构分析.pdf

2017-03-23

spring 整合flex,整合webService

关于webService的应用 非常详细

2010-03-18

Microsoft service 2005驱动

service2005的驱动,非常好用,java 的 JDBC

2010-03-13

axis2 eclipse插件

axis2 的eclipse插件 客户端

2010-03-13

空空如也

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

TA关注的人

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