`
文章列表
尽管 Java™ 运行时能够解决大量的内存管理问题,但对程序的内存占用情况保持警惕仍然是优化机器性能、测定内存泄露的关键。Windows 上有很多工具可以监控内存的使用。但每种工具各有长短,都有特定的倾向性,常常没有明 ...
Tomcat并发 1、Apache + Tomcat 结合起来用Apache 负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况。 2、压力过大的问题,可以做负载均衡,一个TOMCAT无论如何也不可能担当如此多的线程负载,而且JVM过大,其内存管理成本将显著加大。2G的内存,做3-4个TOMCAT实例(512RAM*4),更为科学合理。 3、数据库连接池,不少人,都推荐使用C3P0,能提高访问数据库的并发性能好几倍。 4、采用Tomcat集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器上部署多个 ...

java GC机制2

finalize 是位于Object类的一个方法,该方法的访问修饰符为protected,由于所有类为Object的子类,因此用户类很容易访问到这个方法。由于,finalize函数没有自动实现链式调用,我们必须手动的实现,因此finalize函数的最后一个语句通常是 super.finalize()。通过这种方式,我们可以实现从下到上实现finalize的调用,即先释放自己的资源,然后再释放父类的资源。 意思就是:当某一个对象为不可达状态时就会执行finalize()方法,但是如果它的父类也有这个方法就需要显式的super.finalize(), 根据Java语言规范,JVM保证调用fina ...
打开MyEclipse选择Window->Preference 选择Java->Installed JREs :选中你所安装的jre,点击Edit,进入Edit JRE,如下所示 :选中rt.jar(可选多个),点击Source Attachment 在对话框中,点击External Folder,选择你所安装的jdk目录下的src.zip文件,OK即可 默认会在安装目录中根目录中找到

java GC机制

  java有自动垃圾回收机制当垃圾收集器判断已经没有任何引用指向对象的时候,会调用对象的finalize方法来释放对象占据的内存空间~ java中垃圾回收以前听老师讲好像是内存满了他才去做一次整体垃圾回收,在回收垃圾的同时会 ...
Runtime.getRuntime().exec("./do.sh"); 这样调用指的jar包和do.sh 在同一目录下,不过一定要使用.(表示当前的路径) 所以如果想使用相对对路径可以使用 ..(表示上一级目录)来指向目标
本篇文章讲述eclipse.ini参数的含义和设置。eclipse.ini中有如下参数: -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 下面我们一一进行回答 1. 各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是J ...
在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source) 2008-05-06 14:43:18|分类: LINUX |标签: |字号大中小订阅 fork ( /directory/script.sh) fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这 ...
#!/bin/sh SERVER=/home/java/server cd$SERVER case"$1"in start) nohupjava-Xmx128m-jarserver.jar>$SERVER/server.log2>&1& echo$!>$SERVER/server.pid ;; stop) kill`cat$SERVER/server.pid` rm-rf$SERVER/server.pid ;; restart) $0stop sleep1 ...

linux 安装java

linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到 任何一个目录下。 二. 需要配置的环境变量 1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中 ...

java启动机制

java程序的内存分配(一) JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先 ...
Java程序多数情况下都会用到一些第三方的类库,如果仅用到几个jar文件,写到java命令里就好,但是依赖的jar文件很多的情况,写到java命令里就不好了,而且如果jar文件被替换,名字变了,就需要改java命令,所以最好在启动命令里不出现jar文件名。假设程序依赖的类库jar文件存放在同级的lib目录下, 简单的: java -Djava.ext.dirs=lib -Djava.library.path=lib com.myapp.MyAppClass $* 这个写法绝大部分情况下都是正确有效的,但是曾经在启动一个用Spring框架写的程序时失败,总报告某些类找不到,实际上都已在lib ...
创建的连接,在写正常断开连接终止程序时,可以通过在类的重写destory()方法在时边加上if(null !=conn){ conn.disconnect ; conn =null;} MQ支持只读,取模式 MQ队列管理器有自己的连接池,可以使用连接池获得连接 我们可以使用的MQ自己的默认连接池,因为我的项目是每个线程访问不同一的队列管理器,所以我是在run()方法的开始,永真循环的外边,加入了 MQPoolToken token=MQEnvironment.addConnectionPoolToken(); 这样就会把在本线程中对队列管理器的连接纳入到了MQ自带的线程管理机制中(qm ...
今天在用ojdbc.jar写clog字段时报串超长的错误,之前用也没事,不知道为什么,后来才发现,数据的版本升级了,原来是10.0.2.现在是10.1.0,所以换了jdbc的jar包后就好了(在E:\oracle\product\10.1.0\Db_1\jdbc\lib). 注意:以后如果出现此类问题,试着换换针对此版本数据库的自带的jdbc包
1一般在windows下的Eclipse写的代码,默认编码方式 为GBK而linux下为utf-8,所以需要修改linux的默认编码: 修改Linux系统的默认编码     <wbr>vi<wbr>/etc/sysconfig/i18n</wbr></wbr> <wbr></wbr> <wbr> 在vi编辑中,修改<wbr> LANG="zh_CN.GB2312" <wbr><br><wbr><wbr> ...
Global site tag (gtag.js) - Google Analytics