- 博客(28)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 利用MemoryAnalyzer进行OutOfMemoryError的诊断分析
这篇帖子只介绍利用MemoryAnalyzer进行简单的JVM的堆的分析,至于JVM的内部结构是怎么样的,这里不进行分析。好吧,废话不多说;首先如果我们要分析JVM某个时刻的Heap的对象分配情况,我们就必须要dump这个时刻的JVM的heap(堆);有以下几个办法进行dump某个时刻JVM的heap内容: 1、 使用$JAVA_HOME/bin/jmap -dump来触发,
2012-07-09 00:19:43
14219
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 深入剖析Socket实现
在我们平时的开发中用到的最多的是HTTP协议,而HTTP协议本身是一种应用层协议,属于文本协议;并且这种协议也基本上满足了应用的大部分需求。HTTP协议当初的设计并没有想到它应用的是如此的广泛,所以设计的时候考虑的比较简单实用,也许也就是这种简单实用才这么广泛;但如今,HTTP协议似乎并不能满足所有的需求,特别是当今的web2.0时代,浏览器应用横行的年代,也越来越多需要长连接的应用,所以在HTM
2010-08-15 18:17:00
9286
原创 漫谈数据库锁
前言 前段时间在线上和项目当中遇到了很多关于用mysql的GET_LOCK()函数获取锁导致的一些问题,主要有两类问题: 1、一个连接中不能同时获取两把锁,因为获取后一个的时候会自动释放前面一把锁;另外如果获得锁或者释放锁所使用的connection不一样,假如获得锁的connection被连接池回收了,也可能会导致第一把锁自动释放,最终导致你的业务还没有处理完,
2015-04-19 14:52:59
1258
转载 Java并发总结(三):中断线程
线程的状态在了解如何中断线程之前,先应该弄清楚线程的几种状态:新建状态(New):一个新的线程在被创建之后,在运行(或阻塞)之前的状态。就绪状态(Runnable):当一个线程只要拥有CPU时间片就能运行的时候,这个线程就处于就绪状态。阻塞状态(Blocked):线程还没有死亡,但是由于一些原因不能继续运行,但是还能回到就绪状态。死亡状态
2012-12-12 23:44:45
1190
1
原创 垃圾收集算法
垃圾收集算法垃圾收集提供了内存管理的机制,使得应用程序不需要再关注内存如何释放,内存用完后,垃圾收集会进行收集,这样就减轻了因为人为的管理内存而造成的错误,比如在C++语言里,出现内存泄露时很常见的。Java语言是目前使用最多的依赖于垃圾收集器的语言,但是垃圾收集器策略从20世纪60年代就已经流行起来了,比如Smalltalk,Eiffel等编程语言也集成了垃圾收集器的机制。所有的垃圾收集
2012-10-07 23:29:15
917
转载 另一个视角解读计算机编码-补码编码
这篇文章写得很好,转来供大家分享! 数学是一个完全抽象的学科,而计算机是这个学科的一种形象化的实现,显然无法处理一些仅在抽象意义上有意义的特殊”数字“,比如无穷之类的东西。像数学中的加法,乘法这样运算,计算机必须给与实现,然而由于数学中的实数加法(以及别的运算)是建立在实数域上的,而实数域又是无限的,而计算机只能处理有限域的运算,因此必须给定一个范围,一种方案是在这个范围
2012-07-31 15:48:01
770
翻译 What is protected mode?
What is protected mode? The 8088 CPU used in the original IBM PC was not very scalable. In particular, there was no easy way to access more than 1 megabyte of physical memory. To get around this w
2012-07-17 13:04:56
1426
转载 jhat中的OQL(对象查询语言)
jhat中的OQL(对象查询语言) 如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可以在jhat的html页面中执行OQL,来查询符合条件的对象基本语法: select [from [instanceof] ][where ]解释: (1)class name是java类的完全限定名,如:java.lang.String, java.util.Arra
2012-04-30 00:15:15
1073
转载 jhat命令
jhat命令 -- Java Head Analyse Tool 用途:是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言第一步:导出堆 第二步:分析堆文件 第三步:查看html有时你dump出来的堆很大,在启动时会报堆空间不足的错误,可以使用如下参数:jhat -J-Xmx512m 对
2012-04-30 00:05:42
976
转载 Java-jps命令的使用
jps -- Java Virtual Machine Process Status Tool可以列出本机所有java进程的pid jps [ options ] [ hostid ] 选项 -q 仅输出VM标识符,不包括class name,jar name,arguments in main method -m 输出main method的参数 -l 输
2012-04-30 00:00:29
2830
翻译 Java虚拟机类装载的原理及实现
一、引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行。本文将分析JVM中的类装载系统,探讨JVM中类装载的原理、实现以及应用。二、Java虚拟机的类装载实现与应用2.1 装载过程简介
2012-03-28 00:20:18
1646
翻译 Java虚拟机内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子
2012-03-27 23:53:33
7836
1
转载 Android下的任务和Activity栈
转载于:http://blog.csdn.net/wbw1985/article/details/4916909Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + number)); startActivity(intent);
2011-10-19 21:41:01
1383
转载 Android Service and Broadcast Receiver Tutorial
This tutorial describes how to create and consume Androidservices. It is based on Eclipse 3.6, Java 1.6 and Android 2.3(Gingerbread).T
2011-08-25 14:07:17
2812
原创 How MySQL Does Sorting
<br />How MySQL Does Sorting (filesort) <br />MySQL has two filesort algorithms for sorting and retrieving results. The original method uses only the ORDER BY columns. The modified method uses not just the ORDER BY columns, but all the columns used in the
2011-05-15 18:52:00
875
原创 讲解MySQL索引的概念及数据库索引的应用
<br />1.数据库引入了索引 <br /> 用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。 <br /> 2.有关“索引”的比喻 <br /> 从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。 <br /> 3.数据库索引实际是什么?(两部分组成) <br />
2011-03-31 18:48:00
1005
转载 mysql索引详解,摘自《MySQL 5权威指南》
<br />本文介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。(2007.07.05最后更新)<br /><br /> 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。<br />注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据
2011-03-31 17:38:00
1421
转载 find命令的使用
<br />find 命令的一般形式为:<br />find pathname -options [-print -exec -ok]<br /> <br />pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。<br />-print find命令将匹配的文件输出到标准输出。<br />-exec find命令对匹配的文件执行该参数所给出的s h e l l命令。相应命令的形式为' c o m m -<br />and' {} /;,注意{ }和/;之间的空格。<
2011-03-31 17:37:00
3462
原创 awk用法
<br />转载:http://bbs.chinaunix.net/viewthread.php?tid=691456<br /> <br />awk 用法:awk ' pattern {action} ' <br /><br />变量名 含义 <br />ARGC 命令行变元个数 <br />ARGV 命令行变元数组 <br />FILENAME 当前输入文件名 <br />FNR 当前文件中的记录号 <br />FS 输入域分隔符,默认为一个空格 <br />RS 输入记录分隔符 <br />NF 当
2011-02-10 22:13:00
713
转载 awk用法小结
<br />转载:http://bbs.chinaunix.net/viewthread.php?tid=691456<br /> <br />awk 用法:awk ' pattern {action} ' <br /><br />变量名 含义<br />ARGC 命令行变元个数<br />ARGV 命令行变元数组<br />FILENAME 当前输入文件名<br />FNR 当前文件中的记录号<br />FS 输入域分隔符,默认为一个空格<br
2011-01-25 22:38:00
789
原创 C关键字restrict的理解
'Restrict' PointersOne of the new features in the recently approved C standard C99, is the restrict pointer qualifier. This qualifier can be applied to a data pointer to indicate that, during the scope of that pointer declaration, all data accessed through
2011-01-07 10:59:00
2968
原创 Java NIO 详解
前记: 有一个周末的晚上,我突然想阅读以前写过的一些引以为自豪的程序;于是乎,我就把9个月前做过的一个项目的源码翻出来读了,这是一个Socket项目,服务器端是用Java实现的,客户端是用Flash实现的;这个项目的目的就是需要保证服务器端和客户端的连接不掉链,并且如果客户端有心跳超时或者连接断开的情形,我们会立即通知另一个应用程序(probe)。 这个程序本身的业务非常简单,也就是:与客户端建立连接,客户端发送事件数据,转发事件数据,检测连接状态,通知probe,监控等。然而因为这是一个
2010-08-30 18:17:00
14470
5
原创 Java CountDownLatch应用
Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上的await()方法都会阻塞,直到这个计数器的计数值被其他的线程减为0为...
2010-08-25 01:02:16
539
1
原创 10 good reasons to look for something better than Java
Don't get me wrong. During my professional life I have written tons of Java code and of course I think it is a great language still. For sure it has been a great improvement from C++ and Smalltalk. Bu...
2009-12-26 20:49:58
205
原创 理解闭包的概念
最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。 一、什么是闭包? “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式...
2009-12-26 20:45:19
104
Java解压缩Zip文件(支持中文)
最近有个项目需要用Java做解压缩Zip文件,由于JDK自带的zip相关的类都不支持以中文命名的文件,所以在网上搜索了些资料,自己花了点时间研究了下。希望和大家分享下,有不足的地方还多多指教。 废话不多说,直接看代码吧!(记住:在classpath里面一定要引入ant.jar这个jar包。) package org.zapldy.io;import...
2009-05-23 22:01:09
218
原创 JavaMail发送和接收邮件
一、JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。 厂商所提供的JavaMail服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:l SMTP:简单邮件传输协议,用于发送电子邮件的传输协议;l P
2009-03-09 10:40:00
76492
21
原创 设计模式(1)-----设计模式的分类和各种模式的描述
最近公司没有什么项目,时间比较空闲,但又不想浪费时间,所以想找点事情来做做;这段时间一直在研究设计模式,网上看了很多的例子也看了很多的书,所以想写点东西让自己的工作充实一下也可以和别人分享一下自己的知识。 至于什么叫做设计模式,以及为什么要用设计模式这些话题在此不讨论,有兴趣的同学可以再网上找找,肯定有你想要的东西的,因为这是随笔,可能讲得比较零散和混乱但我想并不会对于理
2009-02-27 16:47:00
1813
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人