上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 91 下一页
  2014年5月22日
摘要: ApplicationEventPublisherAware 阅读全文
posted @ 2014-05-22 17:32 duanxz 阅读(916) 评论(0) 推荐(0)
  2014年5月16日
摘要: 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 阅读(1004) 评论(0) 推荐(0)
摘要: 一、Java的内存区域划分 Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域。 Java的内存区域主要分为五部分: 程序计数器(PC) Java 虚拟机栈(JVM Stack) 本地方法栈(Native Method Stack) Ja 阅读全文
posted @ 2014-05-16 16:34 duanxz 阅读(2618) 评论(0) 推荐(0)
  2014年5月14日
摘要: 一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类加载和连接的过程都是在运行期间完成的。 二. 类的加载方式 1):本地编译好的class中直接加载 2):网络加载:java.net.URLClassLo 阅读全文
posted @ 2014-05-14 21:46 duanxz 阅读(992) 评论(0) 推荐(0)
摘要: 一、回顾一下jdk自带的类加载器: 1.java虚拟机自带的加载器 根类加载器(Bootstrap,c++实现) 扩展类加载器(Extension,java实现) 应用类加载器(App,java实现) 2.用户自定义的类加载器 java.lang.ClassLoader的子类 用户可以定制类的加载方 阅读全文
posted @ 2014-05-14 21:45 duanxz 阅读(1130) 评论(0) 推荐(0)
摘要: 一、简介 方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。 方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译 阅读全文
posted @ 2014-05-14 21:41 duanxz 阅读(17671) 评论(1) 推荐(2)
摘要: 目录 一、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 阅读(15787) 评论(3) 推荐(4)
摘要: 目录: 《MySQL中的两种临时表》 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,MySQL会自动删除表并释放所有空间。 使用其他MySQL客户端程序连接 阅读全文
posted @ 2014-05-14 21:38 duanxz 阅读(78945) 评论(0) 推荐(9)
摘要: 在上篇文章《多线程的使用——Thread类和Runnable接口》中提到中断线程的问题。在JAVA中,曾经使用stop方法来停止线程,然而,该方法具有固有的不安全性,因而已经被抛弃(Deprecated)。那么应该怎么结束一个进程呢?官方文档中对此有详细说明:《为何不赞成使用 Thread.stop 阅读全文
posted @ 2014-05-14 21:37 duanxz 阅读(16078) 评论(0) 推荐(0)
摘要: 在JDK1.7及以前,HotSpot虚拟机将java类信息、常量池、静态变量、即时编译器编译后的代码等数据,存储在Perm(永久带)里(对于其他虚拟机如BEA JRockit、IBM J9等是不存在永久带概念的),类的元数据和静态变量在类加载的时候被分配到Perm里,当常量池回收或者类被卸载的时候, 阅读全文
posted @ 2014-05-14 21:28 duanxz 阅读(4697) 评论(0) 推荐(0)
摘要: 目录: 《MySQL中的两种临时表》 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 一、 多表关联更新 问题描述:现有tdb_goods表(含有具体信息)和tdb_goods_cates表(没有具体信息),需要查询tdb_goods表的所有记录,并且按" 阅读全文
posted @ 2014-05-14 21:28 duanxz 阅读(7895) 评论(0) 推荐(0)
摘要: 网络数据的基本单位总是字节。Java NIO 提供了 ByteBuffer 作为它 的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐。 Netty 的 ByteBuffer 替代品是 ByteBuf,一个强大的实现,既解决了 JDK API 的局限性, 又为网络应用程序的开发者提供了更好的 A 阅读全文
posted @ 2014-05-14 21:27 duanxz 阅读(30836) 评论(0) 推荐(8)
摘要: 对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,但不止如此,它还可以做任何它想做的事情。 本地方法本质上时依赖于实现的,虚拟机实现的设计者 阅读全文
posted @ 2014-05-14 21:27 duanxz 阅读(452) 评论(0) 推荐(0)
摘要: 一、简介 对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 Java把内存分成两种:栈内存和堆内存。关于堆内存和 阅读全文
posted @ 2014-05-14 21:27 duanxz 阅读(531) 评论(0) 推荐(0)
摘要: 一、为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话, 阅读全文
posted @ 2014-05-14 21:27 duanxz 阅读(728) 评论(0) 推荐(0)
摘要: aware:英 [əˈweə(r)] 美 [əˈwer] adj.意识到的;知道的;觉察到的 XXXAware在spring里表示对XXX感知,实现XXXAware接口,并通过实现对应的set-XXX方法,然后就可以使用XXX了。 通俗的解释:如果在某个类里面想要使用spring的一些东西,就可以通 阅读全文
posted @ 2014-05-14 21:26 duanxz 阅读(3496) 评论(1) 推荐(0)
摘要: 流经网络的数据总是具有相同的类型:字节。这些字节是如何流动的主要取决于我们所说的 网络传输--一个帮助我们抽象底层数据传输机制的概念。用户并不关心这些细节;他们只想确保他们的字节被可靠地发送和接收。 jdk提供了从阻塞传输到非阻塞传输及异步AIO等,在使用时会因为网络 API 的截然不同而遇到问题。 阅读全文
posted @ 2014-05-14 21:26 duanxz 阅读(8699) 评论(0) 推荐(0)
摘要: 本节内容 一、Python简史 历史背景 在20世纪80年代,IBM和苹果已经掀起了个人电脑的浪潮。但是在今天看来,当时的个人电脑的配置都很低,以至于一个大的数组就能把内存占满。为了让程序能够运行,当时所有编程语言编译器的核心就是尽量的去做优化。为了提高程序运行效率,编程语言迫使程序员去像计算机一样 阅读全文
posted @ 2014-05-14 21:26 duanxz 阅读(433) 评论(0) 推荐(0)
摘要: LongAdder基本原理和思想 我们都知道AtomicLong是通过无限循环不停的采取CAS的方法去设置value,直到成功为止。那么当并发数比较多或出现更新热点时,就会导致CAS的失败机率变高,重试次数更多,越多的线程重试,CAS失败的机率越高,形成恶性循环,从而降低了效率。而LongAdder 阅读全文
posted @ 2014-05-14 21:26 duanxz 阅读(686) 评论(0) 推荐(0)
摘要: 一、Channel、EventLoop 和ChannelFuture 这些类合在一起,可以被认为是Netty 网络抽象的代表: Channel—Socket; EventLoop—控制流、多线程处理、并发; ChannelFuture—异步通知。 Channel 接口 基本的I/O 操作(bind( 阅读全文
posted @ 2014-05-14 21:25 duanxz 阅读(710) 评论(0) 推荐(0)
摘要: Netty框架的主要线程就是I/O线程,线程模型设计的好坏,决定了系统的吞吐量、并发性和安全性等架构质量属性。 一、Netty的线程模型 在讨论Netty线程模型时候,一般首先会想到的是经典的Reactor线程模型,尽管不同的NIO框架对应Reactor模式的实现存在差异,但本质上还是遵循了Reac 阅读全文
posted @ 2014-05-14 21:24 duanxz 阅读(6215) 评论(0) 推荐(0)
摘要: Java虚拟机学习笔记(八)连接模型 阅读全文
posted @ 2014-05-14 21:24 duanxz 阅读(158) 评论(0) 推荐(0)
摘要: 一、Java内存组成 组成图 堆(Heap) 运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。 组成 组成 详解 Young Generation 即图中的Eden + From Space + To Space 1. 阅读全文
posted @ 2014-05-14 21:24 duanxz 阅读(539) 评论(0) 推荐(0)
摘要: 一、Channel与ChannelPipeline关系 每一个新创建的 Channel 都将会被分配一个新的 ChannelPipeline。这项关联是永久性 的;Channel 既不能附加另外一个 ChannelPipeline,也不能分离其当前的。在 Netty 组件 的生命周期中,这是一项固定 阅读全文
posted @ 2014-05-14 21:23 duanxz 阅读(1421) 评论(0) 推荐(0)
摘要: Netty 中, 每个 Channel 都有且仅有一个 EventLoop 与之关联, 它们的关联过程如下: 从上图中我们可以看到, 当调用了 AbstractChannel#AbstractUnsafe.register 后, 就完成了 Channel 和 EventLoop 的关联. regis 阅读全文
posted @ 2014-05-14 21:23 duanxz 阅读(1133) 评论(0) 推荐(0)
上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 91 下一页