易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : java

JVM详解之Java垃圾回收机制详解和调优 (2)

 3.Sun HotSpot
  1.4.1 JVM堆大小的调整
  Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中jvm则存储class和method对象。就配置而言,永久域是一个独立域并且不认为是堆的一部分。
  下面介绍如何控制这些域的大小。可使用-Xms和-Xmx 控制整个堆的原始大小或最大值。
  下面的命令是把初始大小设置为128M:
  java –Xms128m
  –Xmx256m为控制新域的大小,可使用-XX:NewRatio设置新域在堆中所占的比例。
  下面的命令把整个堆设置成128m,新域比率设置成3,即新域与旧域比例为1:3,新域为堆的1/4或32M:
java –Xms128m –Xmx128m
–XX:NewRatio =3可使用-XX:NewSize和-XX:MaxNewsize设置新域的初始值和最大值。
  下面的命令把新域的初始值和最大值设置成64m:
java –Xms256m –Xmx256m –Xmn64m
  永久域默认大小为4m。运行程序时,jvm会调整永久域的大小以满足需要。每次调整时,jvm会对堆进行一次完全的垃圾收集。
  使用-XX:MaxPerSiz ......

JVM详解之Java垃圾回收机制详解和调优 (3)

 5.如何从JVM中获取信息来进行调整
  -verbose.gc开关可显示gc的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开- xx:+ printgcdetails开关,可以详细了解gc中的变化。打开-XX: + PrintGCTimeStamps开关,可以了解这些垃圾收集发生的时间,自jvm启动以后以秒计量。最后,通过-xx: + PrintHeapAtGC开关了解堆的更详细的信息。为了了解新域的情况,可以通过-XX:=PrintTenuringDistribution开关了解获得使用期的对象权。
6.Pdm系统JVM调整
  6.1.服务器:前提内存1G 单CPU
  可通过如下参数进行调整:-server 启用服务器模式(如果CPU多,服务器机建议使用此项)
  -Xms,-Xmx一般设为同样大小。 800m
  -Xmn 是将NewSize与MaxNewSize设为一致。320m
  -XX:PerSize 64m
  -XX:NewSize 320m 此值设大可调大新对象区,减少Full GC次数
  -XX:MaxNewSize 320m
  -XX:NewRato NewSize设了可不设。
  -XX: SurvivorRatio
  -XX:userParNewGC 可用来设置并行收集
  -XX:ParallelGCThreads 可用来增加并行度
  -XXUseParallelGC 设置后可以使用并行清除收集器
  - ......

Java获取请求客户端的真实IP地址

 像移动网关一样,iisforward这个ISAPI过滤器也会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。
实际的iisforward附加头如下:
WL-Proxy-Client-IP=211.161.1.239
Proxy-Client-IP=211.161.1.239
X-Forwarded-For=211.161.1.239
WL-Proxy-Client-Keysize=
WL-Proxy-Client-Secretkeysize=
X-WebLogic-Request-ClusterInfo=true
X-WebLogic-KeepAliveSecs=30
X-WebLogic-Force-JVMID=-327089098
WL-Proxy-SSL=false
综上,正确作法如下:
private String getIpAddr() {
     String ipAddress = null;
     //ipAddress = this.getRequest().getRemoteAddr();
     ipAddress = this.getRequest().getHeader("x-forwarded-for");
     if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
      ipAddress = this.getRequest().getHeader("Proxy-Client-IP");
     }
   &nb ......

*成为Java高手的25个学习要点*

 1. 你需要精通面向对象分析与设计(OOAOOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams.   2. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、multithreading、reflection、event、handling、NIO、localization以及其他)。  3. 你应该了解JVM、classloaders、classreflect以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。  4. 如果你将要写客户端程序,你需要学习Web的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING、AWT、SWT.你还应该对UI部件的JavaBEAN组件模式有所了解。JavaBEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。  5. 你需要学习Java数据库技术,并且会使用至少一种persistenceORM构架,例如Hibernate、JDO、CocoBase、TopLink、InsideLiberator(国产JDO红工厂软件)或者iBatis.   6. 你还应该了解对象关系的阻抗失配的含义以及它是如何影响业务对象与关系型数据库的交互,和它的运行结果。还需要掌握不同的数据库产品运用,比如Oracle、MySQ ......

Java 连接数据库、执行SQL封装类

/*当执行SQL时发现不能连接数据库,先重连一次*/
 
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
 
 
 
class SQL_OPERATION_TRAN {
//private Connection cn;
private PreparedStatement pst;
private ResultSet rs;
private boolean isAutoCommit=true;
private CallableStatement proc;
java.util.Timer tmReceive;
//int counter=0;
Main gbl_Main;
 
SQL_OPERATION_TRAN(Main main){
//cn=connection;
gbl_Main=main;
//this.CheckConnect();
// this.Connect();
}
 
......

Java 连接数据库、执行SQL封装类

/*当执行SQL时发现不能连接数据库,先重连一次*/
 
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
 
 
 
class SQL_OPERATION_TRAN {
//private Connection cn;
private PreparedStatement pst;
private ResultSet rs;
private boolean isAutoCommit=true;
private CallableStatement proc;
java.util.Timer tmReceive;
//int counter=0;
Main gbl_Main;
 
SQL_OPERATION_TRAN(Main main){
//cn=connection;
gbl_Main=main;
//this.CheckConnect();
// this.Connect();
}
 
......

Execl导入notes JAVA代理

 import lotus.domino.*;
import java.io.*;
import java.util.Vector;
import jxl.*;
/*******************************************************************************
 * @saveSQMessageToOracle
 * @作者:徐华祥
 * @2009年10月28日
 * @说明:Execl文件的导入
 ******************************************************************************/
public class inputExecl_new extends AgentBase {
 public void NotesMain() {
  System.out.println("代理开始");
  EmbeddedObject ebd = null;
  String srcFile = "";
  InputStream is = null;
  Workbook wb = null;
  Sheet st = null;
  try {
   Session session = getSession();
   AgentContext agentContext = session.getAgentContext();
   Document currentDoc = agentContext.getDocumentContext();
   Database currentDB = agentContext.getCurrentDatabase();
   Database wjkhDB ......
总记录数:6386; 总页数:1065; 每页6 条; 首页 上一页 [951] [952] [953] [954] 955 [956] [957] [958] [959] [960]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号