`
文章列表
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp47 最近在找关于JVM内部线程管理的资料,发现网上相关帖子很少,有一些还是胡说的,下面这个文章看起来还是不错的,虽然有一点儿乱,但是也得为作者致敬了。 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。  前段时间因为系统代码问题,造成性能瓶颈,于是就dump了一份stack出来进行分析。stack 里面线程非常多,排查起来需要一定的经验,所以,对它们有一定了解,可以提高排查问题的效率。现在网上资料也不是特 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp46 1、Arrays.sort() 该算法是一个经过调优的快速排序,此算法在很多数据集上提供N*log(N)的性能,这导致其他快速排序会降低二次型性能。 2、Collections.sort() 该算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素效益高子列表中的最低元素,则忽略合并)。此算法可提供保证的N*log(N)的性能,此实现将指定列表转储到一个数组中,然后再对数组进行排序,在重置数组中相应位置处每个元素的列表上进行迭代。这避免了由于试图原地对链接 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp45 [size=12px;]事务的四个属性[/size]:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。 原子性(Atomic)      最重要的原则,也是最容易理解的原则。被事务管理的所有方法,要么一起被提交,要么一起回滚。 一致性(Consistency)      事务在系统完整性中实施一致性,如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于新有效状态。如果在事务中出现错 ...
Oracle 的process和Session 1.process 和session的概念:process:这个参数限制了能够连接到SGA的操作系统进程数(或者是Windows 系统中的线程数),这个总数必须足够大,从而能够适用于后台进程与所有的专用服务器进程,此外,共享服务器进程与调度进程的数目也被计算在内.此外,共享 服务器进程与调度进程的数目也被计算在内.因此,在专用服务器环境中,这是一种限制并发连接数的方法.疑点一:能够连接到SGA的操作系统进程数,这种进程包括哪些进程? Windows系统中的线程数,是指所有与oracle相关的进程的线程数之和?疑点二:在共享服 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp44 理解oracle中连接和会话 1.  概念不同:概念不同: 连接是指物理的网络连接。 在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境 ...
在 JAVA 开发领域,热部署一直是一个难以解决的问题,目前的 JAVA 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。虽然 OSGI 架构的出现,让模块重启成为可能,但是如果模块之间有调用关系的话,这样的操作依然会让应用出现短暂的功能性休克。本文将探索如何在不破坏 JAVA 虚拟机现有行为的前提下,实现某个单一类的热部署,让系统无需重启就完成某个类的更新。 类加载的探索 首先谈一下何为热部署(hotswap),热部署是在不重启 Java 虚拟机的前提下,能自 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp43       1.JVM内存空间     JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured)  分区作用:  新创建的对象通常先将其分配在新生代中,在新生代中经过若干次GC之后仍未释放的对象,再将它移动到旧生代。为了让内存回收更高效(GC会暂停JVM中的应用),Sun JDK在1.2开始对堆采用了分代管理的方式。在分配对象遇到内存不足时,先对新生代进行GC(Young GC);当新生代GC之后仍无法满足 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp42 [size=12px;][size=12px;][size=12px;]Map的排序常分为两种情况,1、按[/size]key[size=12px;]值排序;2、按value排序[/size][/size][/size] [size=12px; font-family: 宋体;]    1.[size=12px; font-family: 宋体;]我们先讨论按[/size]key[size=12px; font-family: 宋体;]值进行排序[/size] [ ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp41 select * from A where id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录. 它的查询过程类似于以下过程 List resultSet=[]; Array A=(select * from A); Array B=(select id from B); for ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp40 用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序 。 select distinct id,name from t1 可以取多个字段,但只能消除这2个字段值全部相同的记录 例如要显示的字段为A、B、C三个,而A字段的内容不能重复可以用下面的语句: having [条件] order by A desc 显示出来的字段和排序字段都要包括在group by 中 如 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp39 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewar ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp38 sql执行机制 1.对于普通的sql语句只有where条件的执行机制     首先我们要了解一下SQL语句的执行过程。SELECT字段FROM表名WHERE条件表达式那它们是按什么顺序执行呢? 分析器会 ...
 详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp37    对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀  性能对比: BeanCopier > PropertyUtils > BeanUtils. 其中BeanCopier的性能高出另外两个100数量级。 BeanCopier使用可参考: http://grefr.iteye.com/blog/2053748 对象拷贝的应用现状简介: 业务系统中经常需要两个对象进行属性的拷贝,不能否 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp35 Ibatis XML 配置文件注释引起错误及解决方案 最近在使用Ibatis组件进行一个项目开发,在运行时发现提示如下错误信息: type 异常报告 消息 描述服务器遇到一个内部错误 (), 无 ...
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。 <bean id="dataSource" class="org.springframework.jdbc.datasource ...
Global site tag (gtag.js) - Google Analytics