MYSQL
摘要:Mysql设置某字段唯一Mysql设置某字段唯一1.建表时加上唯一性约束CREATE TABLE `t_user` (`Id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(18) NOT NULL unique,`password` varc...
阅读全文
posted @
2014-05-28 17:15
duanxz
阅读(213)
推荐(0) 编辑
ApplicationEventPublisherAware--待完善
摘要:ApplicationEventPublisherAware
阅读全文
posted @
2014-05-22 17:32
duanxz
阅读(890)
推荐(0) 编辑
JVM的启动流程
摘要:JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。 一.JVM
阅读全文
posted @
2014-05-16 16:50
duanxz
阅读(994)
推荐(0) 编辑
JVM体系结构之一:总体介绍
摘要:一、Java的内存区域划分 Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域。 Java的内存区域主要分为五部分: 程序计数器(PC) Java 虚拟机栈(JVM Stack) 本地方法栈(Native Method Stack) Ja
阅读全文
posted @
2014-05-16 16:34
duanxz
阅读(2608)
推荐(0) 编辑
JVM体系结构之二:类加载器
摘要:一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类加载和连接的过程都是在运行期间完成的。 二. 类的加载方式 1):本地编译好的class中直接加载 2):网络加载:java.net.URLClassLo
阅读全文
posted @
2014-05-14 21:46
duanxz
阅读(935)
推荐(0) 编辑
JVM体系结构之二:类加载器之2:JVM 自定义的类加载器的实现和使用
摘要:一、回顾一下jdk自带的类加载器: 1.java虚拟机自带的加载器 根类加载器(Bootstrap,c++实现) 扩展类加载器(Extension,java实现) 应用类加载器(App,java实现) 2.用户自定义的类加载器 java.lang.ClassLoader的子类 用户可以定制类的加载方
阅读全文
posted @
2014-05-14 21:45
duanxz
阅读(1101)
推荐(0) 编辑
方法区之1:方法区介绍
摘要:一、简介 方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。 方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译
阅读全文
posted @
2014-05-14 21:41
duanxz
阅读(17392)
推荐(2) 编辑
八、jdk工具之JvisualVM、JvisualVM之一--(visualVM介绍及性能分析示例)
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V
阅读全文
posted @
2014-05-14 21:38
duanxz
阅读(15555)
推荐(4) 编辑
MySQL中的两种临时表
摘要:目录: 《MySQL中的两种临时表》 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,MySQL会自动删除表并释放所有空间。 使用其他MySQL客户端程序连接
阅读全文
posted @
2014-05-14 21:38
duanxz
阅读(78550)
推荐(9) 编辑
Thread之十:停止线程方法汇总
摘要:在上篇文章《多线程的使用——Thread类和Runnable接口》中提到中断线程的问题。在JAVA中,曾经使用stop方法来停止线程,然而,该方法具有固有的不安全性,因而已经被抛弃(Deprecated)。那么应该怎么结束一个进程呢?官方文档中对此有详细说明:《为何不赞成使用 Thread.stop
阅读全文
posted @
2014-05-14 21:37
duanxz
阅读(15895)
推荐(0) 编辑
方法区之2:jdk1.6,jdk1.7,jdk1.8下的方法区变迁
摘要:在JDK1.7及以前,HotSpot虚拟机将java类信息、常量池、静态变量、即时编译器编译后的代码等数据,存储在Perm(永久带)里(对于其他虚拟机如BEA JRockit、IBM J9等是不存在永久带概念的),类的元数据和静态变量在类加载的时候被分配到Perm里,当常量池回收或者类被卸载的时候,
阅读全文
posted @
2014-05-14 21:28
duanxz
阅读(4642)
推荐(0) 编辑
MySQL 多表关联更新及删除
摘要:目录: 《MySQL中的两种临时表》 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 一、 多表关联更新 问题描述:现有tdb_goods表(含有具体信息)和tdb_goods_cates表(没有具体信息),需要查询tdb_goods表的所有记录,并且按"
阅读全文
posted @
2014-05-14 21:28
duanxz
阅读(7789)
推荐(0) 编辑
netty中的ByteBuf
摘要:网络数据的基本单位总是字节。Java NIO 提供了 ByteBuffer 作为它 的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐。 Netty 的 ByteBuffer 替代品是 ByteBuf,一个强大的实现,既解决了 JDK API 的局限性, 又为网络应用程序的开发者提供了更好的 A
阅读全文
posted @
2014-05-14 21:27
duanxz
阅读(30747)
推荐(8) 编辑
JVM体系结构之五:本地方法栈
摘要:对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,但不止如此,它还可以做任何它想做的事情。 本地方法本质上时依赖于实现的,虚拟机实现的设计者
阅读全文
posted @
2014-05-14 21:27
duanxz
阅读(442)
推荐(0) 编辑
JVM体系结构之六:堆Heap之1
摘要:一、简介 对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 Java把内存分成两种:栈内存和堆内存。关于堆内存和
阅读全文
posted @
2014-05-14 21:27
duanxz
阅读(507)
推荐(0) 编辑
JVM体系结构之六:堆Heap之2:新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数
摘要:一、为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,
阅读全文
posted @
2014-05-14 21:27
duanxz
阅读(704)
推荐(0) 编辑
spring扩展点之四:Spring Aware容器感知技术,BeanNameAware和BeanFactoryAware接口,springboot中的EnvironmentAware
摘要:aware:英 [əˈweə(r)] 美 [əˈwer] adj.意识到的;知道的;觉察到的 XXXAware在spring里表示对XXX感知,实现XXXAware接口,并通过实现对应的set-XXX方法,然后就可以使用XXX了。 通俗的解释:如果在某个类里面想要使用spring的一些东西,就可以通
阅读全文
posted @
2014-05-14 21:26
duanxz
阅读(3419)
推荐(0) 编辑
netty支持的协议
摘要:流经网络的数据总是具有相同的类型:字节。这些字节是如何流动的主要取决于我们所说的 网络传输--一个帮助我们抽象底层数据传输机制的概念。用户并不关心这些细节;他们只想确保他们的字节被可靠地发送和接收。 jdk提供了从阻塞传输到非阻塞传输及异步AIO等,在使用时会因为网络 API 的截然不同而遇到问题。
阅读全文
posted @
2014-05-14 21:26
duanxz
阅读(8583)
推荐(0) 编辑
Python介绍
摘要:本节内容 一、Python简史 历史背景 在20世纪80年代,IBM和苹果已经掀起了个人电脑的浪潮。但是在今天看来,当时的个人电脑的配置都很低,以至于一个大的数组就能把内存占满。为了让程序能够运行,当时所有编程语言编译器的核心就是尽量的去做优化。为了提高程序运行效率,编程语言迫使程序员去像计算机一样
阅读全文
posted @
2014-05-14 21:26
duanxz
阅读(417)
推荐(0) 编辑
juc-atomic原子类之七:LongAdder
摘要:LongAdder基本原理和思想 我们都知道AtomicLong是通过无限循环不停的采取CAS的方法去设置value,直到成功为止。那么当并发数比较多或出现更新热点时,就会导致CAS的失败机率变高,重试次数更多,越多的线程重试,CAS失败的机率越高,形成恶性循环,从而降低了效率。而LongAdder
阅读全文
posted @
2014-05-14 21:26
duanxz
阅读(663)
推荐(0) 编辑
Netty组件
摘要:一、Channel、EventLoop 和ChannelFuture 这些类合在一起,可以被认为是Netty 网络抽象的代表: Channel—Socket; EventLoop—控制流、多线程处理、并发; ChannelFuture—异步通知。 Channel 接口 基本的I/O 操作(bind(
阅读全文
posted @
2014-05-14 21:25
duanxz
阅读(704)
推荐(0) 编辑
netty中的EventLoop和EventLoopGroup
摘要:Netty框架的主要线程就是I/O线程,线程模型设计的好坏,决定了系统的吞吐量、并发性和安全性等架构质量属性。 一、Netty的线程模型 在讨论Netty线程模型时候,一般首先会想到的是经典的Reactor线程模型,尽管不同的NIO框架对应Reactor模式的实现存在差异,但本质上还是遵循了Reac
阅读全文
posted @
2014-05-14 21:24
duanxz
阅读(6131)
推荐(0) 编辑
《深入Java虚拟机学习笔记》- 第9章 垃圾收集
摘要:一、Java内存组成 组成图 堆(Heap) 运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。 组成 组成 详解 Young Generation 即图中的Eden + From Space + To Space 1.
阅读全文
posted @
2014-05-14 21:24
duanxz
阅读(525)
推荐(0) 编辑
netty中的Channel、ChannelPipeline
摘要:一、Channel与ChannelPipeline关系 每一个新创建的 Channel 都将会被分配一个新的 ChannelPipeline。这项关联是永久性 的;Channel 既不能附加另外一个 ChannelPipeline,也不能分离其当前的。在 Netty 组件 的生命周期中,这是一项固定
阅读全文
posted @
2014-05-14 21:23
duanxz
阅读(1351)
推荐(0) 编辑
EventLoop 与 Channel 的关联
摘要:Netty 中, 每个 Channel 都有且仅有一个 EventLoop 与之关联, 它们的关联过程如下: 从上图中我们可以看到, 当调用了 AbstractChannel#AbstractUnsafe.register 后, 就完成了 Channel 和 EventLoop 的关联. regis
阅读全文
posted @
2014-05-14 21:23
duanxz
阅读(1127)
推荐(0) 编辑
netty中的引导Bootstrap服务端
摘要:引导一个应用程序是指对它进行配置,并使它运行起来的过程。 一、Bootstrap 类 引导类的层次结构包括一个抽象的父类和两个具体的引导子类,如图 8-1 所示 服务器致力于使用一个父 Channel 来接受来自客户端的连接,并创建子 Channel 以用于它们之间的通信; 而客户端将最可能只需要一
阅读全文
posted @
2014-05-14 21:23
duanxz
阅读(694)
推荐(0) 编辑
netty中的引导Bootstrap客户端
摘要:一、Bootstrap Bootstrap 是 Netty 提供的一个便利的工厂类, 我们可以通过它来完成 Netty 的客户端或服务器端的 Netty 初始化.下面我以 Netty 源码例子中的 Echo 服务器作为例子, 从客户端和服务器端分别分析一下Netty 的程序是如何启动的. 客户端部分
阅读全文
posted @
2014-05-14 21:22
duanxz
阅读(570)
推荐(0) 编辑
syslog之三:建立Windows下面的syslog日志服务器
摘要:目录: 《syslog之一:Linux syslog日志系统详解》 《syslog之二:syslog协议及rsyslog服务全解析》 《syslog之三:建立Windows下面的syslog日志服务器》 《Linux下dmesg命令处理故障和收集系统信息的7种用法》 我们需要测试一种集中日志系统,要
阅读全文
posted @
2014-05-14 21:22
duanxz
阅读(13794)
推荐(1) 编辑
java内存模型JMM
摘要:现代CPU 架构的形成 硬件的效率与一致性 Java 内存模型(JMM) 主内存与工作内存 主内存与工作内存交互协议 JMM对于volatile型变量的特殊规则 JMM针对long和double型变量的特殊规则 原子性、可见性与有序性 先行发生原则 1、概述:现代CPU架构的形成 一切从冯洛伊曼计算
阅读全文
posted @
2014-05-14 21:21
duanxz
阅读(1116)
推荐(0) 编辑
mina中的发送延时
摘要:由于项目需要,用到了 mina 框架进行 tcp 通讯。我是初次接触 mina,于是从 Hello world 开始学习了 mina 。期间遇到了一个奇怪的发送数据的延迟问题,解决的过程是曲折的,但找出的原因却令我“吐血”(没真的吐……)。不管怎样,还是贴出来一下作反面案例,希望初次学习 mina
阅读全文
posted @
2014-05-07 10:13
duanxz
阅读(2534)
推荐(0) 编辑
微服务理论之五:微服务架构 vs. SOA架构
摘要:一、面向服务的架构SOA 面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务。通信可以是简单的数据传递,也可以是两个或多个服务彼此协调连接。这些独特的服务执行一些小功能,例如验证付款、创建用户帐户或提供社交登录等。 面向服务的架构不太关于如何对应用程序进行模块
阅读全文
posted @
2014-05-06 07:54
duanxz
阅读(1520)
推荐(1) 编辑
同步
摘要:1、同步代价 同步代码对性能有两个方面的影响。 其一:应用在同步块上所花的时间会影响该应用的可伸缩性。 其二:获取同步锁需要一些CPU周期,所以也会影响性能。 1.1、同步与可伸缩性 当某个应用被分割到多个线程上运行时,加速比(speedup)可以用如下等式定义(即Amdahl定律): P是程序并行
阅读全文
posted @
2014-05-05 22:15
duanxz
阅读(914)
推荐(0) 编辑
JAVA中线程同步的方法(7种)汇总
摘要:同步的方法: 一、同步方法 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会
阅读全文
posted @
2014-05-05 16:51
duanxz
阅读(50279)
推荐(4) 编辑
http连接管理
摘要:1.TCP连接 几乎所有的HTTP通信都有由TCP/IP承载的,TCP/IP是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集。一旦连接建立起来,客户端和服务器之间交换的报文就永远不会丢失、受损或失序。但计算机或网络崩溃,会使通信终端。 1.1.TCP可靠数据管道 TCP为HTTP提供
阅读全文
posted @
2014-05-05 14:30
duanxz
阅读(600)
推荐(0) 编辑
MySQL存储引擎比较
摘要:一、MySQL的体系结构 为了适应各种不同的运行环境,MYSQL提供了多种不同的存储引擎(Storage Engine ),在应用程序开发这个层面上,开发者可以根据不同的需求选择适合的Storage Engine 方案,更为灵活的是,你可以根据每张表将要存储数据的特点,选择不同的Storage En
阅读全文
posted @
2014-05-05 14:06
duanxz
阅读(919)
推荐(0) 编辑