飞翔的起点

从这里出发

导航

<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

常用链接

留言簿(5)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

2009年8月20日 #

Queue

public class QuenDemo {
  public static void main(String[] args){
   //public class Queue extends Collection
   Queue<Integer> queue=new LinkedList<Integer>();
   Random  rand = new Random(47);
   for(int i=0;i<10;i++){
    queue.offer(rand.nextInt(i+10));
   }
   System.out.println("1111"+queue.toString());
   printQ(queue);
   //public class LinkedList extends AbstractSequentialList implements List,Queue,Cloneable,Serializable
   Queue<Character> qc=new LinkedList<Character>();
   for(char c:"guoxzh".toCharArray()){
    qc.offer(c);
    System.out.println("qc=="+qc.toString());
   }
    printQ(qc);
  }
  
  public static void printQ(Queue queue){
   while(queue.peek()!=null){
    //peek和element都是在不移除的情况下返回对头,但是peek在队列为空的情况下返回null,element方法会抛出NoSuchElementException异常
    System.out.println(queue.remove());
    //remove和poll方法都是在移除并返回对头,但是poll在为空时返回null,而remove会抛出NoSucheElementException异常
    System.out.println("2222"+queue.toString());
   }
  }
}

posted @ 2009-10-18 18:29 forgood 阅读(198) | 评论 (0)编辑 收藏

java中的编码方法

package src;

import java.io.UnsupportedEncodingException;

public class ChangeCharset {
  /** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
  public static final String US_ASCII = "US-ASCII";

  /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */
  public static final String ISO_8859_1 = "ISO-8859-1";

  /** 8 位 UCS 转换格式 */
  public static final String UTF_8 = "UTF-8";

  /** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */
  public static final String UTF_16BE = "UTF-16BE";

  /** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */
  public static final String UTF_16LE = "UTF-16LE";

  /** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */
  public static final String UTF_16 = "UTF-16";

  /** 中文超大字符集 */
  public static final String GBK = "GBK";

  /**
   * 将字符编码转换成US-ASCII码
   */
  public String toASCII(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, US_ASCII);
  }
  /**
   * 将字符编码转换成ISO-8859-1码
   */
  public String toISO_8859_1(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, ISO_8859_1);
  }
  /**
   * 将字符编码转换成UTF-8码
   */
  public String toUTF_8(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, UTF_8);
  }
  /**
   * 将字符编码转换成UTF-16BE码
   */
  public String toUTF_16BE(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, UTF_16BE);
  }
  /**
   * 将字符编码转换成UTF-16LE码
   */
  public String toUTF_16LE(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, UTF_16LE);
  }
  /**
   * 将字符编码转换成UTF-16码
   */
  public String toUTF_16(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, UTF_16);
  }
  /**
   * 将字符编码转换成GBK码
   */
  public String toGBK(String str) throws UnsupportedEncodingException{
   return this.changeCharset(str, GBK);
  }
 
  /**
   * 字符串编码转换的实现方法
   * @param str  待转换编码的字符串
   * @param newCharset 目标编码
   * @return
   * @throws UnsupportedEncodingException
   */
  public String changeCharset(String str, String newCharset)
    throws UnsupportedEncodingException {
   if (str != null) {
    //用默认字符编码解码字符串。
    byte[] bs = str.getBytes();
    //用新的字符编码生成字符串
    return new String(bs, newCharset);
   }
   return null;
  }
  /**
   * 字符串编码转换的实现方法
   * @param str  待转换编码的字符串
   * @param oldCharset 原编码
   * @param newCharset 目标编码
   * @return
   * @throws UnsupportedEncodingException
   */
  public String changeCharset(String str, String oldCharset, String newCharset)
    throws UnsupportedEncodingException {
   if (str != null) {
    //用旧的字符编码解码字符串。解码可能会出现异常。
    byte[] bs = str.getBytes(oldCharset);
    //用新的字符编码生成字符串
    return new String(bs, newCharset);
   }
   return null;
  }

  public static void main(String[] args) throws UnsupportedEncodingException {
   ChangeCharset test = new ChangeCharset();
   String str = "This is a 中文的 String!";
   System.out.println("str: " + str);
   String gbk = test.toGBK(str);
   System.out.println("转换成GBK码: " + gbk);
   System.out.println();
   String ascii = test.toASCII(str);
   System.out.println("转换成US-ASCII码: " + ascii);
   gbk = test.changeCharset(ascii,ChangeCharset.US_ASCII, ChangeCharset.GBK);
   System.out.println("再把ASCII码的字符串转换成GBK码: " + gbk);
   System.out.println();
   String iso88591 = test.toISO_8859_1(str);
   System.out.println("转换成ISO-8859-1码: " + iso88591);
   gbk = test.changeCharset(iso88591,ChangeCharset.ISO_8859_1, ChangeCharset.GBK);
   System.out.println("再把ISO-8859-1码的字符串转换成GBK码: " + gbk);
   System.out.println();
   String utf8 = test.toUTF_8(str);
   System.out.println("转换成UTF-8码: " + utf8);
   gbk = test.changeCharset(utf8,ChangeCharset.UTF_8, ChangeCharset.GBK);
   System.out.println("再把UTF-8码的字符串转换成GBK码: " + gbk);
   System.out.println();
   String utf16be = test.toUTF_16BE(str);
   System.out.println("转换成UTF-16BE码:" + utf16be);
   gbk = test.changeCharset(utf16be,ChangeCharset.UTF_16BE, ChangeCharset.GBK);
   System.out.println("再把UTF-16BE码的字符串转换成GBK码: " + gbk);
  }
}

posted @ 2009-09-23 14:25 forgood 阅读(288) | 评论 (0)编辑 收藏

byte数组和String之间的转化

JAVA里面关于byte数组和String之间的转换问题

把byte转化成string,必须经过编码

例如下面一个例子:

import java.io.UnsupportedEncodingException;

public class test{
 public static void main(String g[]) {
  String s = "12345abcd";
  byte b[] = s.getBytes();
  String t = b.toString();

  System.out.println(t);

 }
}
输出字符串的结果和字符串s不一样了.

经过以下方式转码就可以正确转换了:

public class test{
 public static void main(String g[]) {
  String s = "12345abcd";
  byte b[] = s.getBytes();
  try {
   String t = new String(b);
   System.out.print(t);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

引用:
String   str   =   "String"; 
          byte[]   byte1   =   str.getBytes(); 
          String   str1   =   new   String(byte1); 
          byte[]   byte2   =   str1.getBytes(); 
          String   str2   =   new   String(byte2); 
          System.out.println("str<<<"   +   str); 
          System.out.println("byte1<<<"   +   byte1); 
          System.out.println("str1<<<"   +   str1); 
          System.out.println("byte2<<<"   +   byte2); 
          System.out.println("str2<<<"   +   str2); 
  ------------------------------------- 
  输出结果 
  str<<<String 
  byte1<<<[B@192d342 
  str1<<<String 
  byte2<<<[B@6b97fd 
  str2<<<String 
  
  想请教为什么两个byte输出的不一样呢? 
 

String   str   =   "String"; 
          byte[]   byte1   =   str.getBytes(); 
          String   str1   =   new   String(byte1); 
          byte[]   byte2   =   str1.getBytes(); 
  ---------- 
  注意byte1是str得到的byte数组,而byte2是另一个字符串str1得到的数组 
  他们本身也是两个对象  
   
  直接打印实际上调用的是toString()方法,而toString()的默认实现是打印对象类型+hashCode()  
  [B表示byte数组  @表示之后的是地址  后面跟着的是hashCode,其实就是其虚拟机地址  
  

posted @ 2009-09-23 14:19 forgood 阅读(3051) | 评论 (0)编辑 收藏

jvm的内存模型

从大的方面来讲,JVM的内存模型分为两大块:

 

永久区内存( Permanent space)和堆内存(heap space)。

 

栈内存(stack space)一般都不归在JVM内存模型中,因为栈内存属于线程级别。

每个线程都有个独立的栈内存空间。

 

Permanent space里存放加载的Class类级对象如class本身,methodfield等等。

heap space主要存放对象实例和数组。

heap spaceOld GenerationNewGeneration组成,OldGeneration存放生命周期长久的实例对象,而新的对象实例一般放在NewGeneration

New Generation还可以再分为Eden(圣经中的伊甸园)、和Survivor区,新的对象实例总是首先放在Eden区,Survivor区作为Eden区和Old区的缓冲,可以向Old区转移活动的对象实例。

 

一般,我们常见的OOMout of memory)内存溢出异常,就是堆内存空间不足以存放新对象实例时导致。

 

永久区内存溢出相对少见,一般是由于需要加载海量的Class数据,超过了非堆内存的容量导致。通常出现在Web应用刚刚启动时,因此Web应用推荐使用预加载机制,方便在部署时就发现并解决该问题。

 

栈内存也会溢出,但是更加少见。

 

堆内存优化:

调整JVM启动参数-Xms  -Xmx   -XX:newSize -XX:MaxNewSize,如调整初始堆内存和最大对内存 -Xms256M -Xmx512M。 或者调整初始New Generation的初始内存和最大内存-XX:newSize=128M -XX:MaxNewSize=128M

 

永久区内存优化:

调整PermSize参数   如  -XX:PermSize=256M-XX:MaxPermSize=512M

 

栈内存优化:

调整每个线程的栈内存容量  如  -Xss2048K

 

 

最终,一个运行中的JVM所占的内存堆内存  +  永久区内存  +  所有线程所占的栈内存总和 

posted @ 2009-09-18 09:12 forgood 阅读(283) | 评论 (0)编辑 收藏

财务公司概述

财务公司的背景:

财务公司有两种模式:

1.美国模式财务公司是以搞活商品流通、促进商品销售为特色的非银行金融机构,它依附于制造商,是一些大型耐用品而设立的受控子公司,这类财务公司主要是为零售商提供融资服务的,主要分布在美国、加拿大和德国。

2.英国模式财务公司基本上依附于商业银行,其组建的目的在于规避政府对商业银行的监管,因为政府规定,商业银行不得从事证券投资业务,而财务公司不属于银行,所以不受此限制,这种模式主要分布在英国、日本和中国香港。

中国财务公司概况

财务公司又称金融公司,是为了企业技术改造,新产品开发及产品销售提供金融服务的,以中长期金融业务为主的非银行机构,各国的名称不同,业务内容也不一样。

财务公司是中国企业体制改革和融资体制改革的产物,国家为了增强国有大中型企业的活力,盘活企业内部资金,增强企业集团的融资能力,支持企业集团的发展,促进产业结构和产品结果的调整,以及探索具有中国特色的产品资本与金融资本相结合的道路,于1987年成立了中国第一家企业集团财务公司,即东风汽车工业集团财务公司。

财务公司---公司主体

财务公司是根据《公司法》和《企业集团财务公司管理办法》设立的,为企业集团成员单位技术改造、新产品开发及产品销售提供金融服务,以中长期金融业务为主的非银行机构。

财务公司一般分企业附属财务公司和非企业附属财务公司,企业附属财务公司由企业设立,为本企业服务,但是服务范围不仅局限于本企业;非企业附属财务公司包括银行附属财务公司、引起合资财务公司和独立财务公司。

1.银行附属财务公司是由银行控股,因规避监管、实现金融创新和弥补银行的不足而设立的,同时也为企业和个人提供金融服务。

2.银行合资财务公司是银行和企业出于金融创新规避监管或促进产融合作的考虑而设立,为企业和个人提供金融服务,

3.独立财务公司一般是没有母公司的财务公司,规模较小,比较灵活,在某一方面提供融资服务。

财务公司的业务范围

1.经中国人民银行批准,中国财务公司可从事下列部分或全部业务:

2.吸收成员单位3个月以上定期存款。
3.发行财务公司债券
4.同业拆借
5.对成员单位办理贷款及融资租赁。
6.办理集团成员单位产品的消费信贷买方信贷融资租赁
7.办理成员单位商业汇票的承兑及贴现
8.办理成员单位的委托贷款及委托投资
9.有价证券、金融机构股权及成员单位股权投资。
10.承销成员单位的企业债券
11.对成员单位办理财务顾问、信用鉴证及其他咨询代理业务。
12.对成员单位提供担保。
13.境外外汇借款。
14.中国人民银行批准的其他业务。

财务公司的主要作用

1.业务范围比较广,但是以企业集团为限。

主要业务有存款、贷款、结算、担保和代理等一般银行业务,还可以经人民银行批准,开展证券、信托投资等业务。

2.资金来源于集团公司,用于集团公司,对集团公司的依附性强,

财务公司的资金主要来源于两个方面:a、集团公司和集团成员公司投入的资本金;b、集团公司成员企业在财务公司的存款。

3.接受企业集团和人民银行的双重监管。

财务公司是企业内部的金融机构,期股东大都是集团公司成员企业,因而其景荣活动必然受到集团公司的监督,同时,财务公司所从事的是金融业务,其金融活动必须接受人民银行监管

4.坚持服务与效益相结合、服务优先的经营原则。虽然财务公司作为独立的法人,但是是企业集团内部的机构,且集团公司成员企业大都是财务公司的股东,所以财务公司在经营中一般都应较好地处理服务与效益的关系,在坚持为集团公司成员企业提供良好金融服务的前提下,努力实现利润的最大化,

财务公司的作用

1.在资金管理方面和使用上,促使企业从粗放型向集约型转变,

没有财务公司之前,集团公司成员企业不能直接发生信贷关系,有些单位资金闲置,有些单位资金紧张,财务公司成立以后,成员单位成为财务公司的股东,在一定程度上集中了各成员单位的资本来进行一体化经营,财务公司应用金融手段将集团公司内企业的闲散资金集中起来,统筹安排使用,这样不仅可以加快集团成员企业间资金结算的速度,而且总整体上降低了集团财务费用,提高就然公司资金的使用效率,加速集团公司资产一体化经营的进程,

2.财务公司以资金为纽带,以服务为手段,增强了集团公司的凝聚力。

股本金将成员单位联接在一起,另一方面财务公司吸纳的资金又成为集团公司企业信贷资金的一个来源,从而集团公司成员企业进一步紧密的联结在一起,形成了一种相互支持,相互促进,共同发展的局面。

3.及时解决了企业集团急需的资金,保证企业生产经营的正常进行。

4.增强了企业集团的融资功能,促进了集团公司的发展壮大,

5.有利于打破现有银行体制资金规模按行政区域分割的局面,促进大集团公司跨地域、跨行业发展,

6.促进了金融业的竞争,有利于金融机构提高服务质量和效益,有利于金融体制改革的深化。

posted @ 2009-09-06 16:19 forgood 阅读(212) | 评论 (0)编辑 收藏

英语常用语

 1、“我请客”:觉得我们常用pay这个词,如Let me pay it for you。这里列举三种说法:I am buying;This is on me;This is all my bill。

  2、“收买某人”:有个比较正式的词叫bribe,名词时为“贿赂”的意思,动词时就有“收买”之意。既然提到了“买”,那么我们能不能用上buy呢?当然,那就是buy sb off。

  3、“向前看!”:我们会说Look forward!而美语里有个更贴切的说法是Eyes front!“眼睛朝前”,是不是很生动?

  4、“头等大事”:你会怎么翻译呢?The most important thing吗?看这个吧“It's on the top of my list”。

  5、“看在主的份上,你就……”:两种说法,其一是For the love of God,另外For God's sake(sake的意思是缘故、关系)二者之中,后者更常用

  6、“我不是傻子!”:I am not a fool?对,语法完全正确。但再看这个I am no fool。比上面的只少两个字母,但是不是感觉不一样?同样的道理,我们常说I have no idea,而不常说I dont have any idea。

  7、short hairs:是说“短头发”吗?呵呵,它就是我们说的“小辫子”!

  8、one-time thing:帅哥跟一美女过了一夜,回来后室友问帅哥:Do you really love her?帅哥回答:Oh, it was just a one-time thing!那么one-time thing是什么呢?我就不罗嗦喽!

  9、She knew red was her color。“她知道红色是她的颜色”?恰当的翻译是:她知道自己和红色很相配。Then, what's your color?

  10、“停电”:No electricity?恩,够直白!其实提到“电”,老外更多是用power,停电就可以是Ther is a power failure或Power goes out

posted @ 2009-08-30 12:49 forgood 阅读(216) | 评论 (0)编辑 收藏

html中的标签

有一次编网页的时候,把base 标签给删掉了,超链接怎么也行不通,老是路径不对,原来是base 标签在做怪:
       <base>标记定义了文档的基础URL地址,在文档中所有的相对地址形式的URL都是相对于这里定义的URL而言的。一篇文档中的<base>标记不能多于一个,必须放于头部,并且应该在任何包含URL地址的语句之前。
      (1)href 属性
       href属性指定了文档的基础URL地址,该属性在<base>标记中是必须存在的。
例如:如果希望将文档的基础URL定义为“www.abc.com”,则可以使用如下语句:
<base href = "www.abc.com"> 当定义了基础URL地址之后,文档中所有引用的URL地址都从该基础URL地址开始,例如,对于上面的语句,如果文档中一个超级链接指向gsl/welcome.htm,则它实际上指向的是如下URL地址:www.abc.com/gsl/welcome.htm
       (2)target
        target属性同框架一起使用,它定义了当文档中的链接被点击后,在哪一个框架中展开页面。如果文档中超级链接没有明确指定展开页面的目标框架集,则就使用这里定义的地址代替。常用的target的属性值有:
        _blank,表明在新窗口中打开链接指向的页面。
        _self,在当前文档的框架中打开页面。
        _parent,在当前文档的父窗口中打开页面。
        _top,在链接所在的完整窗口中展开页面。

posted @ 2009-08-26 11:12 forgood 阅读(178) | 评论 (0)编辑 收藏

改变原虚拟硬盘的大小

1、增加一个虚似硬盘

    如果是在vmware里面安装的windows系统,添加个硬盘很容易,

(1)先打开要添加硬盘的虚拟系统(不要启动该系统),选择虚拟机菜单---设置-----选添加,

(2)然后在弹出添加硬件向导窗口中------选择硬盘-------一路next就好了,后面的操作和新建一个虚拟机的时候配置硬盘是一样的。

(3)添加了新的硬盘后,启动windows进到系统中,在控制面板中找“管理工具”->“计算机管理”,然后选“磁盘管理”,添加新磁盘就好了。

其实很简单的..如果想继续给VMware增加硬盘的话,重复上述动作。

2、改变原虚拟硬盘的大小

界面中并没有提供增加硬盘容量的方法。

只能在命令行形式下执行。

安装所在盘的c:\Program Files\VMware\VMware Workstation下有一个vmware-vdiskmanager.exe,就是它。

命令参数如下:
------------------------------------------------------------------
Usage: vmware-vdiskmanager.exe OPTIONS <disk-name> | <mount-point>

Offline disk manipulation utility

   Options:
      -c                    : create disk; need to specify other create options
      -d                    : defragment the specified virtual disk
      -k                    : shrink the specified virtual disk
      -n <source-disk>      : rename the specified virtual disk; need to
                             specify destination disk-name
      -p                    : prepare the mounted virtual disk specified by
                             the drive-letter for shrinking
      -q                    : do not log messages
      -r <source-disk>      : convert the specified disk; need to specify
                             destination disk-type
      -x <new-capacity>     : expand the disk to the specified capacity

      Additional options for create and convert:
         -a <adapter>       : (for use with -c only) adapter type (ide, buslogic o
r lsilogic)
         -s <size>          : capacity of the virtual disk
         -t <disk-type>     : disk type id

      Disk types:
         0                  : single growable virtual disk
         1                  : growable virtual disk split in 2Gb files
         2                  : preallocated virtual disk
         3                  : preallocated virtual disk split in 2Gb files

      The capacity can be specified in sectors, Kb, Mb or Gb.
      The acceptable ranges:
                            ide adapter : [100.0Mb, 950.0Gb]
                            scsi adapter: [100.0Mb, 950.0Gb]

         ex 1: vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
         ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
         ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vm
dk
         ex 4: vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
         ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
         ex 6: vmware-vdiskmanager.exe -k myDisk.vmdk
         ex 7: vmware-vdiskmanager.exe -p <mount-point>
               (A virtual disk first needs to be mounted at <mount-point>)
-----------------------------------------------------------------
其中的-x参数就是用来扩容的……

如这个:vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk

    解析: vmware-vdiskmanager.exe -x 大小 虚拟硬盘文件
-------------------------------------------------------

我的执行过程:

D:\Program files\VMware\VMware Workstation>vmware-vdiskmanager.exe -x 12GB "F:\Windows Server 2003 Enterprise Edition\Windows Server 2003 Enterprise Edition.vmdk"
==================================================================
总结一下:
1。文件名应该用双引号括起来。
2。vmdk文件名要连同路径。
3。GB,MB,别忘了B。

posted @ 2009-08-20 11:22 forgood 阅读(516) | 评论 (0)编辑 收藏