java
文章平均质量分 68
驰驰的老爸
IT民工一枚,长期耕耘于JAVA, JS,LINUX一线,现在努力提高机器学习方面的技能。
展开
-
从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性
JVM的内存分为两部分:stack(栈)是JVM的内存指令区。stack管理很简单,push一定长度字节的数据或者指令,stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,stack指针弹栈。stack的速度很快,管理很简单,并且每次操作的数据或者指令字节长度是已知的。所以Java 基本数据类型,Java 指令代码,常量都保存在stack中。heap (堆)是JVM的转载 2012-10-28 10:57:09 · 2166 阅读 · 1 评论 -
关于Java自增操作的原子性
最近在工作中和一个同事因为自增是不是原子性操作争论的面红耳赤,那Java的自增操作到底是不是原子性操作呢,答案是否的,即Java的自增操作不是原子性操作。1.首先我们先看看Bruce Eckel是怎么说的:In the JVM an increment is not atomic and involves both a read and a write. (via the latest J转载 2012-10-20 16:21:22 · 1112 阅读 · 0 评论 -
Inside JVM体系结构详解
当Inside JVM运行程序时,字节码,创建的对象,传递给方法的参数,返回值,局部变量以及运算的中间结果保存在运行时数据区中。规范本身对运行时数据区只有抽象的描述,也使得JVM可以容易的在各种计算机和设备上实现。简单介绍Inside JVM体系结构JVM的体系结构根据JVM的规范可分为类装载子系统,运行时数据区,执行引擎。本文将为大家介绍Inside JVM体系结构。当Inside JV转载 2012-10-24 12:15:36 · 844 阅读 · 0 评论 -
java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。转载 2012-10-25 08:23:17 · 3878 阅读 · 0 评论 -
深入理解Java多态性
看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类class A ...{ public String show(D obj)...{ return ("A and D"); } public Strin转载 2012-10-25 11:59:32 · 568 阅读 · 0 评论 -
深入解析JVM内存区域组成
v在方法(代码块)中定义一个变量时,java就在栈中为这个变量分配JVM内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的JVM内存空间;而在堆中分配的JVM内存由java虚拟机的自动垃圾回收器来管理。JVM内存区域组成JVM内存分四种:1、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放转载 2012-10-25 09:28:42 · 784 阅读 · 0 评论 -
Java内存分配三大策略
本文向大家简单介绍一下Java内存分配策略,简单的说Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。Java内存分配简单的说Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配转载 2012-10-25 09:55:43 · 859 阅读 · 0 评论 -
Java序列化的机制和原理
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及J转载 2012-10-28 15:56:57 · 579 阅读 · 0 评论 -
获取当前时间方法
最近的项目中使用的获取当月时间值的方法,期间看到一个关于处理时间的第三方jar包,joda time /*** 计算当前月最后一天*/public static String getMonthEnd(String beginyear , String beginmonth){Calendar c;c = Calendar.getInstance();c.set(Cale原创 2013-01-24 15:34:03 · 3584 阅读 · 0 评论 -
八个改善Java遗留系统的技巧
你没看错,就是这个题目:即使是Java系统也会变成“遗留”系统。每当我们想起遗留系统时,我们就会想起那些存储着大量文件数据并只能用COBOL访问的嘎吱嘎吱作响的大型主机。但事实是,Java已经是一门具有15年历史的开发语言,用Java写就的成千上万的系统已经成功运行了十年甚至更久。因此,考虑到许多读者都会工作在某个遗留的Java系统上,我根据自己的经验特地攒了这八个技巧,来帮助团队更新和激转载 2013-01-28 14:10:33 · 904 阅读 · 0 评论 -
ant编译脚本详解
最近在学习持续集成,使用jenkins,sonar,maven来更合理的管理项目,在学习maven的时候发现maven对项目目录结构的一些默认约定不利于遗留项目的构建,所以ant这个简单有效的工具还是非常有市场的。他可以集成到maven中,也可以单独来使用。总之,比较有用,下面是自己学习ant脚本编写的小例子,可以执行,所以没有加他多的其他属性。原创 2013-01-29 11:28:05 · 2770 阅读 · 0 评论 -
JMX一步步来
一、JMX简介 什么是JMX?在一篇网文中是这样说的:"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理",这句话我现在看着还是不知所云,云里雾里。 我们还是从JMX能给我们提供什么好处入手来理解吧。举一个应用实例:在一个系统中常常会转载 2013-01-28 16:18:10 · 1093 阅读 · 0 评论 -
工作学习中遇到的异常汇总
工作学习中经常遇到一些异常,或者问题,听过查找资料如何解决,记录下来在这里汇总,以一问一答的形式做一个总结,对于他人也行没有帮助,对于自己碰到的错误可以很快的找到解决方案(下次碰到回想起来,就在这里查询)。1. 问题:java中提示unmappable character for encoding解决办法错误原因是:源代码中包含GBK编码中不包含的字符,java的class文件使用的是UT原创 2013-01-29 17:41:41 · 1420 阅读 · 0 评论 -
查找一个数组中重复最多的项
看了一个帖子,里面的问题自己简单的实现下,肯定不是最优的,但目前能力只能写这样的。http://bbs.9ria.com/thread-9417-1-1.html初始:private static void findMatchingNum() {int[] array1 = { 47, 56, 56, 82, 42, 28, 35, 76, 86, 56, 56, 45, 54原创 2013-01-31 14:56:24 · 2046 阅读 · 0 评论 -
两个数组,交互他们之间的数据,使得他们之间的差值最小
昨天看了篇文章,自己也有点思路,用java实现。这道题的题目是:有两个数组a,b,大小都为n,数组元素的值任意整形数,无序;要求:通过交换a,b中的元素,使[数组a元素的和]与[数组b元素的和]之间的差最小。http://bbs.chinaunix.net/thread-1492723-1-1.htmlpublic static void m原创 2013-01-30 18:17:23 · 1540 阅读 · 0 评论 -
Java集合框架
Iterator和ListIterator主要区别有:一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。二、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历。但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Itera转载 2013-02-03 16:41:09 · 546 阅读 · 0 评论 -
代码范例
public static void testname() throws Exception {Map map = new HashMap();StringBuffer sb = new StringBuffer();String[] revids = {"22","452","65"};map.put("areaid", "2012");map.put("deptids",原创 2013-03-04 22:53:11 · 786 阅读 · 0 评论 -
Request的getParameter和getAttribute方法的区别
HttpServletRequest.getParameter("modelName"); 能取到想要的modelObject吗?经过测试之后,发现是不能的。后来想想,其他道理挺简单的,当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribute方法来转载 2013-02-22 16:46:21 · 17192 阅读 · 0 评论 -
人的幸福感取决于什么——一分钟读懂,一生方才感悟
1988年4月,霍华德金森24岁,是美国哥伦比亚大学的哲学系博士。他毕业论文的课题是《人的幸福感取决于什么》。为了完成这一课题,他向市民随机派发出了一万份问卷。问卷中,有五个选项:A非常幸福;B幸福;C一般;D痛苦;E非常痛苦。历时两个多月,他最终收回了5200余张有效问卷。经过统计,仅仅只有121人认为自己非常幸福。 接下来,霍华德金森对这121人做了详细地调查分析。他发现,这121人当中转载 2013-03-06 23:23:54 · 1067 阅读 · 0 评论 -
JVM详解
JVM详解本文详细讲解了JVM(Java Virtual Machine)的方方面面,首先由java的特性来描绘JVM的大致应用,再细细阐述了JVM的原理及内存管理机制和调优.最后讲述了与JVM密切相关的Java GC机制.本文内容大多来自网络,但内容十分丰富,是学习JVM的好资料.后面会再针对JVM的两大职责classloader和 execution engine进行讲解转载 2013-02-24 22:22:55 · 6572 阅读 · 0 评论 -
Java内存模型
原 本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的内容还蛮多的,所以直接作为一个章节的基础知 识来讲解,可能该章节概念的东西比较多。一个开发Java的开发者,一旦了解了JVM内存模型就能够更加深入地了解该语言的语言特性, 本文尽量涵盖所有Java语言可以碰到的和内存相关的内容,同样也会提到一些和内存相关的计算机语言的一些知识,为草案。因为平时转载 2013-02-25 23:13:49 · 1608 阅读 · 1 评论 -
浅谈SUN JVM内存管理与应用服务器的优化 之SUN JVM内存管理
作者:Jason S.H.Chen 名词解释: JVM(Java Virtual Machine):Java虚拟机,所有的Java程序都在Java虚拟机中运行。 元数据:在本文中指用于描述类和接口定义的数据。 在我做J2EE系统开发的工作生涯中,经常遇到技术人员或客户发出诸如此类的感慨:我的J2EE应用系统处理的数据量不大,系统体积也不大,技术架构也没有问题,我的应用服务器的内转载 2013-02-27 12:57:55 · 744 阅读 · 0 评论 -
action attribute和name 属性区别
在一般情况下,actionForm是被存储在一定的scope中(request或session,通过action的scope属性来配置),当我们在配置时,指定name而不指定attribute,那么指定的name值就作为actionForm存储在scope中的key值,我们可以在action中通过httpServletRequest.getAttribute("指定的name属性值")来获得这个a转载 2013-02-26 17:07:12 · 2090 阅读 · 0 评论 -
Java操作Excel之JXL
http://it.chinawin.net/softwaredev/article-13f87.htmlhttp://www.cnblogs.com/raymond19840709/archive/2008/06/26/1230289.htmlhttp://www.iteye.com/blogs/tag/JxlJava操作Excel之理解 JXL--读取Exc转载 2013-02-27 23:18:00 · 1841 阅读 · 0 评论 -
Java高手论道:你还在用if else吗?
面向过程设计和面向对象设计的主要区别是:是否在业务逻辑层使用冗长的if else判断。如果你还在大量使用if else,当然,界面表现层除外,即使你使用Java/C#这样完全面向对象的语言,也只能说明你的思维停留在传统的面向过程语言上。 传统思维习惯分析 为什么会业务逻辑层使用if else,其实使用者的目的也是为了重用,但是这是面向过程编程的重用,程序员只看到代码重用,因为转载 2013-02-28 22:11:29 · 9141 阅读 · 1 评论 -
JXL开发Excel文档中文教程
http://www.iteye.com/blogs/tag/Jxlhttp://liuzidong.iteye.com/blog/1021346 Excel开发文档1 开发调研1.1 需求描述MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。作为办公文档,势必要涉及到的电子文档的交换,Excel是一种在企业中非常通用的文件格式转载 2013-02-27 22:41:57 · 1412 阅读 · 0 评论 -
jxl调用模版导出Excel
转自:http://hi.baidu.com/bbt_soft/item/9f577d5171319badacc85799http://blog.csdn.net/Shb_derek/article/category/1256016Java操作Excel之理解JXL--读取Excel 说到如何用JXL读取Excel文件,现在来看看如何读取Excel模板然后把动态数据转载 2013-02-27 22:54:52 · 3202 阅读 · 0 评论 -
JProfiler远程监控Tomcat
http://zhumeng8337797.blog.163.com/blog/static/1007689142011116103325674/http://wenku.baidu.com/view/fd8f05d4c1c708a1284a44e9.htmlhttp://blog.csdn.net/huzhongxiang20/article/details/4320转载 2013-03-28 11:19:08 · 1166 阅读 · 0 评论 -
context switch对性能的影响
http://www.colorfuldays.org/linux/context-switch%E5%AF%B9%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D/今天在对一个应用程序进行压力测试发现context switch(上下文切换)对于CPU的load影响非常大。在将线程数减为之前的1/3时,load居然降到之前的1/5。通常导致contex转载 2013-03-21 15:59:55 · 3215 阅读 · 0 评论 -
从Java视角理解CPU上下文切换(Context Switch)
http://rdc.taobao.com/team/jm/archives/1706从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经转载 2013-03-21 16:04:46 · 1152 阅读 · 0 评论 -
jvm fastdebug
http://agapple.iteye.com/blog/1056599背景 RednaxelaFX 写道 agapple 写道还有一个问题,就是在验证一些逃逸优化时,有些jvm参数用不了,比如-XX:printInlining,-XX:printAssembly,jdk用的是1.6.11和jdk1.6.18 -XX:+PrintInlining在produc转载 2013-03-21 16:23:06 · 2172 阅读 · 0 评论 -
java.security.MessageDigest
最近研究jive,把jive源码移植到我的myeclipse中,在使jive跑起来的过程中来理解jive的技术点,首先是用户登录,了解了登录模块需要的加密算法。java.security.MessageDigest简介: 常用场景: 一般我们数据库登录时,需要对用户的密码进行加密操作,不直接将原密码保存到数据库中,用户登录时候也是采用加密算法进行比较 本案只介绍使用转载 2013-03-24 18:03:27 · 1076 阅读 · 0 评论 -
在eclipse中空心J标志的工程
我是java新手,而且个人做事鲁莽不细心,经常遇到怪异的问题今天用SVN检出了几个工程,发现不能编译,与已有的可以编译的.java文件对比,发现,这些不能编译的工程中的java源文件,上标是空心J,而正常可编译的java文件上标为实心的J,如图,而可编译的工程上标有J标识,不可编译的没有,如图在网上窜梭,得到三个解决方案,原文copy之:转载 2013-04-10 09:10:09 · 10741 阅读 · 0 评论 -
Java的内存回收机制
http://www.cnblogs.com/xiaoxuetu/archive/2013/03/29/2987805.html在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心转载 2013-04-16 14:01:15 · 796 阅读 · 0 评论 -
如何阅读他人的程序代码
如何阅读他人的程序代码文/王建兴 作者简介: 王建兴,清华大学资讯工程系的博士研究生,研究兴趣包括计算机网络、点对点网络、分布式网络管理、以及行动式代理人,专长则是Internet应用系统的开发。曾参与过的开发项目性质十分广泛而且不同,从ERP、PC Game到P2P网络电话都在他的涉猎范围之内。 一、读懂程序代码,使心法皆为我所用程序代码是别人写的,只有原作者才真的转载 2013-04-28 17:05:10 · 1030 阅读 · 0 评论 -
java通过ftp方式读取文件,并解析入库
对于自己是个总结,下次使用的时候直接copy,要注意的地方是ftp访问文件的方式,访问的是ftp用户的home目录,而不是从绝对路径访问。private final static String DELETEUSER = "delete from customermanager_user where cmanagerno in ";private final static Strin原创 2013-06-06 09:24:52 · 20742 阅读 · 2 评论 -
Eclipse日志文件存放在何处
我们自己在装插件的时候,有时由于插件的版本和 eclipse 的版本冲突或者其他原因导致自己的 eclipse 跑 不起来了,此时我们需要查找究竟错误在哪里, Eclipse 通常把错误信息保存在一个特定的日志文件中那么日志文件到底存放在何处? 获取方法如有下几种: (一)窗口 > 显示视图 > 其它 … > PDE 运行时 > 错误日志 此时就会显示出一系列日志内容转载 2013-07-08 11:12:48 · 1533 阅读 · 0 评论 -
JAVA获取CLASSPATH路径
ClassLoader提供了两个方法用于从装载的类路径中取得资源: public URL getResource(String name); public InputStream getResourceAsStream(String name); 这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的转载 2013-09-11 17:41:16 · 1433 阅读 · 0 评论 -
对session和cookie的一些理解
由于项目需要,最近用session容器比较多,传载的同时加上了自己的一些理解,不足之处还请大家补充和纠正。一、cookie机制和session机制的区别*************************************************************************************Cookie是客户端的存储空间,由浏览器来维持。具体来说c转载 2013-09-30 15:37:31 · 776 阅读 · 0 评论 -
HTTP协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of H转载 2013-09-15 21:36:13 · 670 阅读 · 0 评论