逝者如斯夫

静而思之
数据加载中……

如何进制转换

代码示例:
int a = 32;
System.out.println(
"二进制: "+Integer.toBinaryString(a));
System.out.println(
"十六进制: "+Integer.toHexString(a));
System.out.println(
"八进制: "+Integer.toOctalString(a));
System.out.println(
"十二进制: "+Integer.toString(month, 12));

String s
="66";
System.out.println(Integer.toString(Integer.parseInt(s,
12), 6));

posted @ 2007-04-20 10:36 ideame 阅读(778) | 评论 (0)编辑 收藏

复合常量的问题

可以使用一个变量或字段记录几个复合状态:



int a = 1;
System.out.println(a);
System.out.println(
"Integer.toBinaryString(a)=" +
Integer.toBinaryString(a));
System.out.println(
"Integer.toHexString(a)=" + Integer.toHexString(a));
System.out.println(
"Integer.toOctalString(a)=" +
Integer.toOctalString(a));
= 2;
System.out.println(a);
System.out.println(
"Integer.toBinaryString(a)=" +
Integer.toBinaryString(a));
System.out.println(
"Integer.toHexString(a)=" + Integer.toHexString(a));
System.out.println(
"Integer.toOctalString(a)=" +
Integer.toOctalString(a));

= 4;
System.out.println(a);
System.out.println(
"Integer.toBinaryString(a)=" +
Integer.toBinaryString(a));
System.out.println(
"Integer.toHexString(a)=" + Integer.toHexString(a));
System.out.println(
"Integer.toOctalString(a)=" +
Integer.toOctalString(a));

= 8;
System.out.println(a);
System.out.println(
"Integer.toBinaryString(a)=" +
Integer.toBinaryString(a));
System.out.println(
"Integer.toHexString(a)=" + Integer.toHexString(a));
System.out.println(
"Integer.toOctalString(a)=" +
Integer.toOctalString(a));

int b = 1 | 2 | 4 | 8;
System.out.println(
"1 | 2 | 4 | 8 = " + b);

int b1 = 4;
System.out.println(b1 
+ " is In " + b + " ? " + ((b1 & b) == b1) );



posted @ 2007-04-20 10:26 ideame 阅读(856) | 评论 (0)编辑 收藏

JVM参数优化

来源: 网奇

设置服务器端的 JVM:JAVA_OPTS="-server -Xms3000m -Xmx3000m -Xss512k"

-server:一定要作为第一个参数,在多个CPU时性能佳

-Xms:初始Heap大小,使用的最小内存

-Xmx:java heap最大值,使用的最大内存

上面两个值一般设置为同样的大小。

-Xss:每个线程的Stack大小

-verbose:gc 现实垃圾收集信息

-Xloggc:gc.log 指定垃圾收集日志文件

刚刚了解到的一些参数(待实践测试)

-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一

-XX:+UseParNewGC :缩短minor收集的时间

-XX:+UseConcMarkSweepGC :缩短major收集的时间

提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适

posted @ 2007-04-13 09:05 ideame 阅读(4285) | 评论 (0)编辑 收藏

SVN WEB 安装:“mod_dav_svn.so is garbled”

根据网上的一些资料,按照如下步骤

  1. 首先将Subversion安装目录bin\下面的两个文件:mod_authz_svn.somod_dav_svn.so复制到Apache安装目录modules\目录下。
  2. 找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:

    #LoadModule dav_module modules/mod_dav.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so

    将每行前面的注释符"#"去掉。再在所有LoadModule语句的最后添加一下几行:

    #SVN
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    <Location /svn>
    DAV svn
    SVNParentPath "E:/svnrepos"
    </Location>

但是使用启动测试一直有错,返回

Syntax error on line 143 of C:\apache\conf\httpd.conf: API module structure 'dav_svn_module' in file C:\apache\modules\mod_dav_svn.so is garbled - perhaps this is not an Apache module DSO?
Apache could not be started


后来再看资料,好像是SVN1.4.3提供的so文件只支持APACHE2.0,并不支持2.2版本的,除非重新编译。好在已经有人解决了,下载了一个支持APACHE2.2的,但却是SVN1.3.2的,死马当活马医了,放到SVN1.4中居然也可以,hoho~~。我是把所有和SVN有关的文件(含动态连接库文件)全部放在了APACHE安装目录的svn目录里,配置文件如下:

LoadModule dav_svn_module svn/mod_dav_svn_1.3.so
LoadModule authz_svn_module svn/mod_authz_svn_1.3.so
<Location /svn>
DAV svn
SVNParentPath "E:/svnrepos"
</Location>

Technorati :

posted @ 2007-03-28 11:58 ideame 阅读(7056) | 评论 (3)编辑 收藏

DHTML的onScroll事件

     摘要:   阅读全文

posted @ 2007-03-25 02:32 ideame 阅读(6031) | 评论 (0)编辑 收藏

关于JavaBean和XML的转换

今天试了个XML和JavaBean转换的软件JOX,之前一直有这样的需求,但比较来比较去还是这个比较简单实用。我想除非我有WS的需求,否则象JIBX和APACHE 的WS工具对我来说都是重量级的。

先看看输出结果:

            
  
<? xml version="1.0" encoding="ISO-8859-1" ?>
  
< ApproxItem  java-class ="com.greatwall.csi.np.model.ApproxItem" >
      
< expose  java-class ="java.lang.Double" > 0.23 </ expose >
      
< list  java-class ="com.greatwall.csi.np.model.ApproxInfo" >
          
< IDno > bbb </ IDno >
          
< birth  java-class ="java.lang.Integer" > 222 </ birth >
      
</ list >
      
< map  java-class ="java.util.HashMap" >
          
< dd  java-class ="com.greatwall.csi.np.model.ApproxInfo" >
              
< IDno > bbb </ IDno >
              
< birth  java-class ="java.lang.Integer" > 222 </ birth >
          
</ dd >
          
< ss  java-class ="com.greatwall.csi.np.model.ApproxInfo" >
              
< IDno > bbb </ IDno >
              
< birth  java-class ="java.lang.Integer" > 222 </ birth >
          
</ ss >
      
</ map >
      
< month  java-class ="java.lang.Integer" > 3923 </ month >
  
</ ApproxItem >  

在看看原来的JavaBean:

   package  com.greatwall.csi.np.model;

  
import  java.util.ArrayList;
  
import  java.util.HashMap;

  
public   class  ApproxItem {
      
public   int  getMonth() {
          
return  month;
      }

      
public   void  setMonth( int  month) {
          
this .month  =  month;
      }

      
public   double  getExpose() {
          
return  expose;
      }

      
public   void  setExpose( double  expose) {
          
this .expose  =  expose;
      }

      
public  ArrayList getList() {
          
return  list;
      }

      
public  HashMap getMap() {

          
return  map;
      }

      
public   void  setList(ArrayList list) {
          
this .list  =  list;
      }

      
public   void  setMap(HashMap map) {
          
this .map  =  map;
      }

      
private   int  month;
      
private   double  expose;
      
private  ArrayList list;
      
private  HashMap map;
  }

处理结果是令人满意的。实现过程如下:


public   class  JOXUtils {

    
/**
     * Retrieves a bean object for the
     * received XML and matching bean class
     
*/
    
public   static  Object fromXML(String xml, Class className) {
        ByteArrayInputStream xmlData 
=   new  ByteArrayInputStream(xml.getBytes());
        JOXBeanInputStream joxIn 
=   new  JOXBeanInputStream(xmlData);
        
try  {
            
return  (Object) joxIn.readObject(className);
        } 
catch  (IOException exc) {
            exc.printStackTrace();
            
return   null ;
        }
        
finally  {
            
try  {
                xmlData.close();
                joxIn.close();
            } 
catch  (Exception e) {
                e.printStackTrace();
            }
        }
    }

    
/**
     * Returns an XML document String for the received bean
     
*/
    
public   static  String toXML(Object bean) {
        ByteArrayOutputStream xmlData 
=   new  ByteArrayOutputStream();
        JOXBeanOutputStream joxOut 
=   new  JOXBeanOutputStream(xmlData);
        
try  {
            joxOut.writeObject(beanName(bean), bean);
            
return  xmlData.toString();
        } 
catch  (IOException exc) {
            exc.printStackTrace();
            
return   null ;
        }
        
finally  {
            
try  {
                xmlData.close();
                joxOut.close();
            } 
catch  (Exception e) {
                e.printStackTrace();
            }
        }
    }

    
/**
     * Find out the bean class name
     
*/
    
private   static  String beanName(Object bean) {
        String fullClassName 
=  bean.getClass().getName();
        String classNameTemp 
=  fullClassName.substring(
            fullClassName.lastIndexOf(
" . " +   1 ,
            fullClassName.length()
            );
        
return  classNameTemp.substring( 0 1 )
            
+  classNameTemp.substring( 1 );
    }
    
    
public   static   void  main(String[] args) {
        ApproxItem approxItem 
=   new  ApproxItem();
        approxItem.setMonth(
3923 );
        approxItem.setExpose(
0.23 );
        approxItem.setMap(
new  HashMap());
        ApproxInfo approxInfo 
=   new  ApproxInfo();
        approxInfo.setBirth(
111 );
        approxInfo.setIDno(
" aaa " );
        approxItem.getMap().put(
" ss " , approxInfo);
        approxInfo.setBirth(
222 );
        approxInfo.setIDno(
" bbb " );
        approxItem.getMap().put(
" dd " , approxInfo);
        approxItem.setList(
new  ArrayList( 1 ));
        approxItem.getList().add(approxInfo);
        System.out.println(
" JOXUtils.toXML(approxItem)= " );
       System.out.println(JOXUtils.toXML(approxItem));
    }

Wutka Consulting还提供了一个比较有趣的工具,Java2DTD,自从使用JDO做持久层框架,我就一直想找一个这样的工具,因为JDO的映射文件并没有将全部的JavaBean类描述到.jdo文件,所以在编程环境下一直无法获取所有的实体类和字段的一个描述情况。废话少说,马上试一下。运行时需要3个包文件:beantodtd,需要转换的实体classes,dtdparser。

java -cp beantodtd-1.0;classes;d:/policy38/lib/dtdparser121.jar; BeanToDTD \n
 -
mixed com.greatwall.csi.bs.model.PersonBase

-mixed参数是指定按JavaBean中的变量名生成属性,还有些其它的参数,可以控制大小写和连字符号等。另外由于我用的实体是JDO增强过的class文件,所以classpath还需要加上JDO实现的包。


运行的结果有少少无奈,因为对于JavaBean中List这样的容器字段类型,无法让它识别出对象的类型,只能生成类似<!ELEMENT pension ANY>这样的描述,如果在一个什么配置文件中可以设置的话那就更好了。

另外还有一个DTD解析工具,可以解析DTD文件,目前还不知道有什么其它用途,使用如下方法可以解析后输出控制台:

java -classpath d:/policy38/lib/dtdparser121.jar com.wutka.dtd.Tokenize code.dtd

资源:

http://www.wutka.com/download.html

posted @ 2007-03-23 19:02 ideame 阅读(6521) | 评论 (3)编辑 收藏

jdk1.5编译错误:varargs 方法的非 varargs 调用

错误信息:

警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用;
[javac] 对于 varargs 调用,应使用 java.lang.Object
[javac] 对于非 varargs 调用,应使用 java.lang.Object[],这样也可以抑制此警告

程序是一样的,在jdk1.4下可以编译通过,但在1.5就不行。上网查了一下,解决办法:

 Method method  =  cls.getMethod( " hashCode " new  Class[ 0 ]);  //  编译通过
Method method  =  cls.getMethod( " hashCode " null );  //  编译失败

allMethod[i].invoke(dbInstance, 
new  Object[]{});  //  编译通过
allMethod[i].invoke(dbInstance,  null );  //  编译失败



posted @ 2007-03-23 15:10 ideame 阅读(6174) | 评论 (0)编辑 收藏

离线发布

测试一下是否可以用离线工具zoundry。

API地址: http://www.blogjava.net/ideame/services/metaweblog.aspx


isOK。wonderful !

posted @ 2007-03-23 14:45 ideame 阅读(267) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4