java
kongls08
这个作者很懒,什么都没留下…
展开
-
Java内存模型(JMM) 资料整理
<br />Java的内存模型JMM(Java MemoryModel)JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(MainMemory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(WorkingMemory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈转载 2011-01-27 14:33:00 · 628 阅读 · 0 评论 -
JAVA_OPTS设置
JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。 JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"-server:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些-Xmx:java heap最大值,使用的最大内存上面两个值是分配原创 2013-01-05 14:49:36 · 131839 阅读 · 5 评论 -
JVM内存状况查看方法和分析工具
Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及调优程序的性能。下面介绍几种常用的免费工具,其中知名的有JProfiler 等。 1. 输出GC日志 输出GC日志对于跟踪分析GC的状况来说,无疑是最直接地分析内存回收状况的方法,只是原创 2013-01-05 09:39:27 · 615 阅读 · 0 评论 -
java堆栈详解
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Ja转载 2013-01-05 11:44:10 · 1005 阅读 · 0 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
概述对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储 (Heap Dump) 文件中,从而为我们分析和诊断问题提供了重要的依据。通常内存泄露分析被认为是一件很有难度的工作,一般由团队中的资深人士进转载 2013-01-21 15:26:27 · 1355 阅读 · 0 评论 -
技术博客
http://code.alibabatech.com/blog/原创 2013-03-08 15:01:12 · 568 阅读 · 0 评论 -
JAX-WS的例子
JAX-WS是JAX-RPC的后继新技术,日渐流行。于是我也来试试。看了IBM上的一些文章,对比JAX-WS和JAX-RPC的,JAX-WS带来不少好处。通过使用 Java™ API for XML Web Services (JAX-WS) 技术设计和开发 Web 服务,可以带来很多好处,能简化 Web 服务的开发和部署,并能加速 Web 服务的开发。JAX-WS 简介为何使用 JAX-转载 2013-02-27 10:06:29 · 661 阅读 · 0 评论 -
java Enum 基本原理
Java Enum 基本原理1. 关于 Java Enum学过 C/C++ 等语言的人,应该都对 Enum 类型略知一二。 Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来转载 2013-06-20 11:04:36 · 719 阅读 · 0 评论 -
【java规范】Java spi机制浅谈
最近看到公司的一些框架和之前看到的开源的一些框架的一些服务发现和接入都采用了java的spi机制。所以简单的总结下java spi机制的思想。 我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可转载 2013-06-20 11:05:23 · 1103 阅读 · 0 评论 -
JAVA中int、String的类型转换
int -> Stringint i=12345;String s="";第一种方法:s=i+""; 第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?String -> ints="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Int转载 2013-07-08 09:55:41 · 611 阅读 · 0 评论 -
MINA数据同步实现
一个理解wait()与notify()的例子原文链接:http://blog.csdn.net/xm4014/archive/2003/01/28/14714.aspx 这个解释了如何使用wait()和notify().那么基础的问题解决了,如何实现mina同步呢?使用对象的wait及notify方法实现了mina的同步.Java代码 //ResultLo原创 2013-07-10 11:35:06 · 4608 阅读 · 1 评论 -
JAVA 开发中一些提升性能的关注点
1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静态转载 2013-07-04 09:20:47 · 770 阅读 · 1 评论 -
深入浅出JNA—快速调用原生函数
深入浅出JNA—快速调用原生函数 本文原名《使用JNA方便地调用原生函数》发表于2009年3月的“程序员”杂志上。感谢程序员杂志的许可,使这篇文章能够成为免费的电子版,发布于网络上。 程序员杂志发表此文时,略有裁剪,因此本文比程序员上的文章内容更多。 JNA的API转载 2013-07-10 16:56:40 · 828 阅读 · 0 评论 -
整理关于JVM方面的知识点
http://furturestrategist.iteye.com/blog/1415852#bc2244482原创 2013-07-11 14:42:42 · 596 阅读 · 0 评论 -
java 堆和栈
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆 栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量. 堆(heap):是一个可动态申请的内存空间(其记录空闲内存空间的链表由操作系统维护),C中的malloc语句所产生的内存空转载 2013-01-05 11:43:23 · 536 阅读 · 0 评论 -
java-String中的 intern方法
今天看到一篇对intern解释的很详细的文章,特收藏起来.1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 3. String st转载 2013-01-05 11:08:31 · 447 阅读 · 0 评论 -
Java volatile(转)
<br />Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。 <br />锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visi原创 2011-01-27 10:37:00 · 423 阅读 · 0 评论 -
Java transient关键字
<br />Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 <br /> <br />Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 <br /> <br />这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得转载 2011-05-26 09:45:00 · 600 阅读 · 0 评论 -
tomcat 启动
Tomcat下的一个web 应用通常是对应 Server.xml 下的一个子元素的。在商业发布你的应用应用的时候你应该在下面配制和你的web 应用对应的. 但是在平时大家开发测试的时候发现不怎么做,应用也能跑,通常大家都是扔一个war包或干脆扔一个文件夹就完了,再启动tomcat,不错就可以用了。我们来插一段,仔细看看Tomcat中conf目录下的Server.xml文件,他基本上反映了正原创 2012-02-21 15:45:18 · 496 阅读 · 0 评论 -
Java中的Enum的使用与分析
public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.context; }转载 2012-04-13 14:57:19 · 643 阅读 · 0 评论 -
Java RMI入门
RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无转载 2012-05-18 14:40:00 · 1382 阅读 · 0 评论 -
lucene学习
Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。该结构及相应的生成算法如下: 0)设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too. 文章2的内容为:He once lived in Shanghai. 1)由于lucene是基于关键词索引和查询的,原创 2012-07-24 09:39:05 · 486 阅读 · 0 评论 -
java clone详解
Clone使用方法详解 java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能 通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。原创 2012-08-27 19:17:40 · 507 阅读 · 0 评论 -
EHCache简单使用
关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应用中80% 的时间内都在访问20% 的数据,那么,这时候就应该使用缓存了。 测试环境: MySQL 5.0.22, jdk1.6.0_07, ehcache-1.6.0-beta2, mysql-connector-java-3.1.14 测试表:Sql代码 CREATE TAB转载 2012-08-28 15:36:23 · 632 阅读 · 0 评论 -
高手的blog
方腾飞,花名清英,淘宝资深开发工程师,关注并发编程,目前在广告技术部从事无线广告联盟的开发和设计工作。个人博客:http://kiral.javaeye.com原创 2012-11-23 23:31:50 · 669 阅读 · 0 评论 -
利用 JConsole观察分析Java程序的运行,进行排错调优
Using jconsole如何利用 JConsole观察分析Java程序的运行,进行排错调优原创 2012-12-11 11:02:43 · 855 阅读 · 0 评论 -
tomcat控制台错误_http请求参数格式错误
2012-7-6 10:56:01 org.apache.tomcat.util.http.Parameters processParameters信息: Invalid chunk starting at byte [54] and ending at byte [54] with a value of [null] ignored2012-7-6 10:56:01 org.apache原创 2012-12-12 16:54:05 · 22115 阅读 · 0 评论 -
项目旧代码常见问题
公司一直在强调编程规范,但编程规范只能规避一些程序编写浅层次的问题,至于一些深层次的问题,只能靠人的自觉和开发能力的提升了。以下都是我以为的在程序设计开发中普遍存在的深层次的问题,这些问题光靠编程规范等文档的指导是无法避免的。 程序中充斥了大量相同或相近的代码。这样做在开发的时候会省时,省力,因为只要copy一下既有代码,就很容易的添加了新的功能项,而且即不用费太多的脑筋转载 2012-12-29 14:56:21 · 630 阅读 · 0 评论 -
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出
前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,转载 2012-12-29 15:32:34 · 636 阅读 · 0 评论 -
如何分析异常信息
从下往上看,可以点击报错信息,具体到你写的哪一行,结合报错信息,分析一下。原创 2014-02-12 15:33:46 · 942 阅读 · 0 评论