Java语言基础
HelloJava89
码农
展开
-
java 是如何管理内存的
转载自 ---- http://yangzhiyong77.iteye.com/blog/1468175 1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分)分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间(基本类型除外),所有的对象都在堆 (Heap)中分配空间。释放:对象的释放是由垃圾回收机制转载 2013-04-18 13:19:48 · 709 阅读 · 1 评论 -
visualvm监控远程机器上的Java程序
JDK里面本身就带了很多的监控工具,如JConsole等。我们今天要讲的这款工具visualvm,就是其中的一款。但是这款工具是在JDK1.6.07及以上才有的。它能够对JAVA程序的JVM堆、线程、类加载情况、JVM GC情况进行监控,是一个很好的免费的监控工具。监控范围:JDK1.4及以上版本的程序都能够监控。它在JDK里面叫做: jvisualvm,当然我们可以到它的官方网站上去下载转载 2013-11-13 11:39:04 · 2298 阅读 · 0 评论 -
JDK, JRE 和JVM
JDK, JRE 和JVM是Java编程语言的核心概念。尽管它们看起来差不多,作为程序员我们也不怎么关心这些概念,但是它们是不同的针对特定目的的产品。这是一道常见的java面试题,而本文则会一一解释这些概念并给出它们之间的区别。 Java 开发工具包 (JDK)Java开发工具包是Java环境的核心组件,并提供编译、调试和运行一个Java程序所需的所有工具,可执行文件和二进制文件。转载 2013-11-26 09:56:03 · 529 阅读 · 0 评论 -
TimeUnit类中的sleep() 和Thread.sleep()
TimeUnit是什么?TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方法本身也很常用而且出现在很多面试中。如果你已经使用过Thread.sleep(),当然转载 2013-11-26 09:49:51 · 2068 阅读 · 0 评论 -
java 虚拟机参数配置详解
堆大小设置JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer 2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -转载 2013-11-08 10:40:29 · 659 阅读 · 0 评论 -
jvm server和client模式切换
Jvm动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加 载速度较快,server版本加载速度较慢但运行起来较快。 让Tomcat 使用Server版本的jvm吧 在开始菜单 tomcat5 ->tomcat config的java属性中 有一项 jvm路径 指向server目录下的jvm就行了。 启动速度对比一下,在我的C4转载 2013-11-07 23:15:23 · 1312 阅读 · 0 评论 -
深入理解java.lang.ProcessBuilder类
一、概述 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。 每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新的 Process转载 2013-09-26 12:03:05 · 1118 阅读 · 0 评论 -
深入理解java.lang.Process类
一、概述 Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。 Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该转载 2013-09-25 17:45:56 · 1038 阅读 · 0 评论 -
深入java Runtime类
一、概述 Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。 一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。 一旦得到了一个当前的Runtime对象的引用,就转载 2013-09-25 17:37:12 · 609 阅读 · 0 评论 -
常见加密算法java实现(MD5,SHA-256,SHA-512)
commons-codec-1.5.jar包下已经实现了有常见的加密算法,下面是几种常见的加密算法实现,使用很方便,很简单!这个连接是DigestUtils方法的使用API文档:http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html原创 2013-05-14 10:39:59 · 7252 阅读 · 1 评论 -
JAVA反射性能测试和应用场景
通过对比静态调用与类反射调用方法的效率,来了解现代框架中大量应用的反射调用对性能的影响程度。以便在系统架构中对性能与开发便利性之间进行权衡与取舍。代码1: view plaincopy to clipboardprint?·········10········20········30········40········50········60········70····转载 2013-05-07 16:32:53 · 701 阅读 · 0 评论 -
Java 反射机制中 getMethod()和getDeclaredMethod()区别
今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类方法时,发生 NoSuchMethodException异常,后来上网发现getMethod()调用公共方法,不能反射调用私有方法,后来找到 getDeclaredField()能够访问本类中定义的所有方法。后来用这个方法解决了我遇到的问题。我查了java api文档,其中详细说明如下:转载 2013-05-07 16:12:50 · 9254 阅读 · 0 评论 -
JAX-WS使用wsgen和wsimport从Java创建WebService
概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JAX-RPC2.0标准发布不久后就被重命名为JAX-WS2.0.JAX-WS2.0是Sun新的Web service协议栈,是一个完全基于标准实现的。在binding层,使用的是the Java转载 2013-05-06 09:37:59 · 1440 阅读 · 0 评论 -
使用POI3.8导出大数据excel方法(解决内存溢出)
工作中遇到大数据导出excel内存溢出的问题,在使用jxl和POI3.8之前的版本都找不到很好的解决办法,通过设置jvm内存效果也不理想。但是在POI3.8以上版本中提供了SXSSFWorkbook的新类,可以通过参数设置常驻内存中的行数,防止OOM异常!但是SXSSFWorkbook仅仅支持excel2007格式,也就是说SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。在原创 2013-04-28 16:27:48 · 5072 阅读 · 0 评论 -
为什么String类是不可变的
String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。String类不可变性的好处只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串。但如果字符串是可变转载 2013-11-29 09:35:17 · 553 阅读 · 0 评论