??xml version="1.0" encoding="utf-8" standalone="yes"?>久久电影tv,欧洲在线视频一区,在线视频毛片http://www.aygfsteel.com/coolingverse/志未半斤, 才无八两. 有苦有乐, p涂q活?/description>zh-cnSun, 18 May 2025 14:17:03 GMTSun, 18 May 2025 14:17:03 GMT60java.lang Package Class Diagramhttp://www.aygfsteel.com/coolingverse/archive/2008/07/11/214209.htmlStanley SunStanley SunFri, 11 Jul 2008 03:25:00 GMThttp://www.aygfsteel.com/coolingverse/archive/2008/07/11/214209.htmlhttp://www.aygfsteel.com/coolingverse/comments/214209.htmlhttp://www.aygfsteel.com/coolingverse/archive/2008/07/11/214209.html#Feedback0http://www.aygfsteel.com/coolingverse/comments/commentRss/214209.htmlhttp://www.aygfsteel.com/coolingverse/services/trackbacks/214209.htmlimage



Stanley Sun 2008-07-11 11:25 发表评论
]]>
Java 数据存储方式http://www.aygfsteel.com/coolingverse/archive/2008/06/14/207903.htmlStanley SunStanley SunSat, 14 Jun 2008 07:25:00 GMThttp://www.aygfsteel.com/coolingverse/archive/2008/06/14/207903.htmlhttp://www.aygfsteel.com/coolingverse/comments/207903.htmlhttp://www.aygfsteel.com/coolingverse/archive/2008/06/14/207903.html#Feedback0http://www.aygfsteel.com/coolingverse/comments/commentRss/207903.htmlhttp://www.aygfsteel.com/coolingverse/services/trackbacks/207903.html众所周知在计机中所有的数据都是以二q制的方式存储的。不是int,String,float{等不同的数据类型,最l都会保存ؓ01的Ş式。那么ؓ什么要使用q种方式储存数据呢?

因ؓ计算机是一U电子设备,由复杂的电子元器件组合而成Q一个电子元器g有带电和不带电两U状态,通常我们带늊态表CZؓ数?Q不带电状态表CZؓ数?Q多个这L元器件的l合可以表示更多状态,也就是可以表C更多的数据Q如000表示0Q?01表示1Q?10表示2Q?11表示3Q依此类推,111表示 7Q一个元器g可表CZ位(bitQ数据,q种表示数据的方式就叫二q制?br>在实际的电子讑֤中,我们?个这L元器件Ş成一个单元,q样的单元叫一个字节(byteQ,一个字节能表示多少个数呢?表示数值的范围?-255?br>一个字节由8个二q位l成Q其中最双的一位称为“最低有效位”或“最低位”,最左边的一位称为“最高有效位”或“最高位”。每一个二q位的值是0??

二进制计数的~点:书写太长Q容易出错,一般计机的数据位数都?的整数倍,所以,在计机里通常采用16q制计数法。用数字可以表示各种信息Q计机里只有数|当你在内存中看到一个数值时Q这个数值可能代表各U意义,生活中的数g可以代表其他意义Q如1234可以代表密码Q存NQ电报信息,Ҏ上下U烦Q我们就能够知道q数g表的意义

 

但是在Java中到底是如何M存数据的呢?下面我就以int数据cdZ说明Java的方式?/p>

大家都知道在Java中规? int = 4 byte, 1 byte = 8 bit。以此推理那?个int在计机中就是以4 * 8 = 32?bit)的方式存储的。而又׃java中的int是属于有W号cd(Java中不存在unsignedcd)Q所?2位的高一位是W号位,由此可以推理出int的储存大区?/p>

Integer.MAX_VALUE = 2147483647(十进? = 1111111 11111111 11111111 11111111(二进?
Integer.MIN_VALUE = -2147483648(十进? = 10000000 00000000 00000000 00000000(二进?

现在我们知道了二q制的概念了Q但是其实二q制我想我们惌的那么单U的表示的,他们是不同的表现方式如:原码Q反码,补码

  • 原码
    最高位作ؓW号位(?代表正,1代表负)Q其余各位代表数值本w的l对|以二q制表示Q?br>            Z单v见,我们?个字节来表示一个整数?br>            +7的原码ؓQ?00000111
                 -7的原码ؓQ?10000111
  • 反码
          一个数如果为正Q则它的反码与原码相同;一个数如果Q则W号位ؓ1Q其余各位是对原码取反?br>            Z单v见,我们?个字节来表示一个整数?br>            +7的反码ؓQ?00000111
                 -7的反码ؓQ?11111000
  • 补码
        利用溢出Q我们可以将减法变成加法?br>    对于十进制数Q如果从9得到l果5Q可以用减法Q?br>         9-4=5
          因ؓ4+6=10Q我们将6作ؓ4的补敎ͼ上式的减法改写为加法:
             9+6=15
          L高位1Q也是减去10Q,得到l果5?br>      对于16q制敎ͼ如果从C得到l果5Q可以用减法Q?br>         C-7=5
          因ؓ7+9=16Q我们将9作ؓ7的补敎ͼ上式的减法改写为加法:
             C+9=15
          L高位1Q也是减去16Q,得到l果5?br>      在计机中,如果我们?个字节表CZ个数Q一个字节有8位,过8位就q?Q在内存中情况ؓQ?br>           1 00000000
        q位1被丢弃?br>    一个数如果为正Q则它的原码、反码、补码相同;一个数如果Q则W号位ؓ1Q其余各位是对原码取反,然后整个数加1?br>            Z单v见,我们?个字节来表示一个整数?br>            +7的补码ؓQ?00000111
                -7的补码ؓQ第一步:11111000 Q符号位为,其余各位取反Q?br>                                  W二步:11111001 Q整个数?Q?br>           +0的补码:00000000Q?br>           -0的补码:11111111Q(W一步)
                              100000000Q(W二步)
    已知一个负数的补码Q将其{换ؓ十进制数Q步骤:
          1、先对各位取反;
          2、将其{换ؓ十进制数Q?br>      3、加上负P再减??br>      例如Q?br>      11111010Q最高位?Q是负数Q先对各位取反得00000101Q{换ؓ十进制数?Q加上负号得-5Q再??6?/li>

     

    那么我们q道了1?1的二q制形式分别?000000 00000000 00000000 00000001?1111111 11111111 11111111 11111111QJava中的数据是以补码的Ş式储存的Q了。那么现在我们知道了数据是如何储存的了。那么计机是如何利用这些数据进行计的呢?我们知道在计机的CPU中只有一个加法器Q所有的q算都是需要它q行的。所以在计算机里所有的加减乘除都是转换成加法来q行q算的。那么它们是怎么转换的呢Q下面我们介l一下二q制的运操?/p>

  • 位运符
    Z方便对二q制位进行操作,Javal我们提供了四个二进制位操作W:
    &          按位?br>|           按位?br>^          按位异或
    ~          按位取反
  • 按位?br>    一个房间里有两个开x制房间的灯的明暗。当两个开兛_时处于打开状态时Q灯才能亮?br>     开?                   开?                         灯的状?br>       ?nbsp;                        ?nbsp;                             ?br>      开                          ?nbsp;                             ?br>      ?nbsp;                         开                              ?br>      开                          开                              ?br>l论Q按位与Q只有壹(1)?1)??
  • 按位?br>    一个房间里有两个开x制房间的灯的明暗。当M一个开兛_于打开状态时Q灯p亮?br>    开?                     开?                     灯的状?br>       ?nbsp;                        ?nbsp;                             ?br>      开                          ?nbsp;                             ?br>      ?nbsp;                         开                              ?br>      开                          开                              ?br>l论Q按位或Q只有零(0)?0)??
  • 按位异或
        一个房间里有两个开x制房间的灯的明暗。当两个开兛_于不同状态时Q灯p亮?br>   开?                    开?                       灯的状?br>      ?nbsp;                         ?nbsp;                             ?br>      开                          ?nbsp;                             ?br>      ?nbsp;                         开                              ?br>      开                          开                              ?br>l论Q按位异或,只有?0)?1)或壹(1)?0)??
  • 按位取反
    l论Q对二进制数按位取反Q即0变成1Q?变成0?
  • Java中有三个UMq算W?br>左移Q?lt;<              Q相当于 乘以2Q?br>带符号右U:>>     Q相当于 除以2Q?br>无符号右U:>>>
      ?nbsp;           x                   x<<2                 x>>2              x>>>2
    17      00010001    00 01000100      00000100 01     00000100 01
    -17     11101111     11 10111100      11111011 11     00111011 11


  • Stanley Sun 2008-06-14 15:25 发表评论
    ]]>
    加密法与实?/title><link>http://www.aygfsteel.com/coolingverse/archive/2007/12/05/165665.html</link><dc:creator>Stanley Sun</dc:creator><author>Stanley Sun</author><pubDate>Wed, 05 Dec 2007 14:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/coolingverse/archive/2007/12/05/165665.html</guid><wfw:comment>http://www.aygfsteel.com/coolingverse/comments/165665.html</wfw:comment><comments>http://www.aygfsteel.com/coolingverse/archive/2007/12/05/165665.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/coolingverse/comments/commentRss/165665.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/coolingverse/services/trackbacks/165665.html</trackback:ping><description><![CDATA[ <p>概念Q?/p> <p>1.数字摘要Q解军_安全的通信环境下,保证信息的唯一的一U方式。通常使用MD5/SHA-1{算法完成摘要。一般比如大家在|上下蝲软g光盘旉会看C个MD5值就是v到这个数字摘要的作用。在|络的环境中发送者把消息和数字摘要一同发送给接收者,接收者用发送者相同的法Ҏ息加密,看是否与发送者发送过来的数字摘要相同Q如果相同就证明消息没有l篡改过。下面是一个最为简单的CZQ?/p> <pre xml:space="preserve" class="displaycode"> import java.security.*; public class myDigest { public static void main(String[] args) { myDigest my=new myDigest(); my.testDigest(); } public void testDigest() { try { String myinfo="我的试信息"; //java.security.MessageDigest alg=java.security.MessageDigest.getInstance("MD5"); java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1"); alga.update(myinfo.getBytes()); byte[] digesta=alga.digest(); System.out.println("本信息摘要是:"+byte2hex(digesta)); //通过某中方式传给其他Z的信?myinfo)和摘?digesta) Ҏ可以判断是否更改或传输正? java.security.MessageDigest algb=java.security.MessageDigest.getInstance("SHA-1"); algb.update(myinfo.getBytes()); if (algb.isEqual(digesta,algb.digest())) { System.out.println("信息查正?); } else { System.out.println("摘要不相?); } } catch (java.security.NoSuchAlgorithmException ex) { System.out.println("非法摘要法"); } } public String byte2hex(byte[] b) //二行制{字符? { String hs=""; String stmp=""; for (int n=0;n<b.length;n++) { stmp=(java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length()==1) hs=hs+"0"+stmp; else hs=hs+stmp; if (n<b.length-1) hs=hs+":"; } return hs.toUpperCase(); } } </pre> <br/><p>2.电子{֐Q对数据信息的发生者n份的认定Q它是一U抽象的概念而不是一U具体技术。实现电子签名的技术手D늛前有多种Q比如基于公钥密码技术的数字{֐Q或用一个独一无二的以生物特征l计学ؓ基础的识别标识,例如手印、声韛_记或视网膜扫描的识别Q手书签名和囄的电子图象的模式识别Q表明n份的密码代号Q对U算法)Q基于量子力学的计算机等{?/p> <br/><p>3.数字{֐Q所谓数字签名就是利用通过某种密码q算生成的一pdW号及代码组成电子密码进?{֐"Q来代替书写{֐或印章,对于q种电子式的{֐在技术上q可q行法验证Q其验证的准度是在物理世界中与手工{֐和图章的验证是无法相比的。一般实现数字签名的Ҏ是通过生成的密钥对的私钥对用户生成的数字消息进行DSA(Digital Signature Algorithm (DSA)是Schnorr和ElGamal{֐法的变U,被美国NIST作ؓDSS(DigitalSignature Standard))加密实现的。实C码如下:</p> <pre xml:space="preserve" class="displaycode"> */ import java.security.*; import java.security.spec.*; public class testdsa { public static void main(String[] args) throws java.security.NoSuchAlgorithmException,java.lang.Exception { testdsa my=new testdsa(); my.run(); } public void run() { //数字{֐生成密钥 //W一步生成密钥对,如果已经生成q?本过E就可以跌,对用h讲myprikey.dat要保存在本地 //而mypubkey.datl发布给其它用户 if ((new java.io.File("myprikey.dat")).exists()==false) { if (generatekey()==false) { System.out.println("生成密钥对|"); return; }; } //W二?此用?//从文件中dU钥,对一个字W串q行{֐后保存在一个文?myinfo.dat)?//q且再把myinfo.dat发送出?//Z方便数字{֐也放q了myifno.dat文g?当然也可分别发? try { java.io.ObjectInputStream in=new java.io.ObjectInputStream(new java.io.FileInputStream("myprikey.dat")); PrivateKey myprikey=(PrivateKey)in.readObject(); in.close(); // java.security.spec.X509EncodedKeySpec pubX509=new java.security.spec.X509EncodedKeySpec(bX509); //java.security.spec.X509EncodedKeySpec pubkeyEncode=java.security.spec.X509EncodedKeySpec String myinfo="q是我的信息"; //要签名的信息 //用私钥对信息生成数字{֐ java.security.Signature signet=java.security.Signature.getInstance("DSA"); signet.initSign(myprikey); signet.update(myinfo.getBytes()); byte[] signed=signet.sign(); //对信息的数字{֐ System.out.println("signed({֐内容)="+byte2hex(signed)); //把信息和数字{֐保存在一个文件中 java.io.ObjectOutputStream out=new java.io.ObjectOutputStream(new java.io.FileOutputStream("myinfo.dat")); out.writeObject(myinfo); out.writeObject(signed); out.close(); System.out.println("{֐q生成文件成?); } catch (java.lang.Exception e) { e.printStackTrace(); System.out.println("{֐q生成文件失?); }; //W三? //其他人通过公共方式得到此户的公钥和文g //其他人用此户的公?Ҏ件进行检?如果成功说明是此用户发布的信? // try { java.io.ObjectInputStream in=new java.io.ObjectInputStream(new java.io.FileInputStream("mypubkey.dat")); PublicKey pubkey=(PublicKey)in.readObject(); in.close(); System.out.println(pubkey.getFormat()); in=new java.io.ObjectInputStream(new java.io.FileInputStream("myinfo.dat")); String info=(String)in.readObject(); byte[] signed=(byte[])in.readObject(); in.close(); java.security.Signature signetcheck=java.security.Signature.getInstance("DSA"); signetcheck.initVerify(pubkey); signetcheck.update(info.getBytes()); if (signetcheck.verify(signed)) { System.out.println("info="+info); System.out.println("{֐正常"); } else System.out.println("非签名正?); } catch (java.lang.Exception e) {e.printStackTrace();}; } //生成一Ҏ件myprikey.dat和mypubkey.dat---U钥和公? //公钥要用户发?文g,|络{方?l其它用?U钥保存在本? public boolean generatekey() { try { java.security.KeyPairGenerator keygen=java.security.KeyPairGenerator.getInstance("DSA"); // SecureRandom secrand=new SecureRandom(); // secrand.setSeed("tttt".getBytes()); //初始化随Z生器 // keygen.initialize(576,secrand); //初始化密钥生成器 keygen.initialize(512); KeyPair keys=keygen.genKeyPair(); // KeyPair keys=keygen.generateKeyPair(); //生成密钥l? PublicKey pubkey=keys.getPublic(); PrivateKey prikey=keys.getPrivate(); java.io.ObjectOutputStream out=new java.io.ObjectOutputStream(new java.io.FileOutputStream("myprikey.dat")); out.writeObject(prikey); out.close(); System.out.println("写入对象 prikeys ok"); out=new java.io.ObjectOutputStream(new java.io.FileOutputStream("mypubkey.dat")); out.writeObject(pubkey); out.close(); System.out.println("写入对象 pubkeys ok"); System.out.println("生成密钥Ҏ?); return true; } catch (java.lang.Exception e) { e.printStackTrace(); System.out.println("生成密钥对失?); return false; }; } public String byte2hex(byte[] b) { String hs=""; String stmp=""; for (int n=0;n<b.length;n++) { stmp=(java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length()==1) hs=hs+"0"+stmp; else hs=hs+stmp; if (n<b.length-1) hs=hs+":"; } return hs.toUpperCase(); } } 把他的公钥的信息及签名发l其它用?</pre> <p><br/></p> <p>4.PKIQ公钥基设施Q:</p> <img src ="http://www.aygfsteel.com/coolingverse/aggbug/165665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/coolingverse/" target="_blank">Stanley Sun</a> 2007-12-05 22:09 <a href="http://www.aygfsteel.com/coolingverse/archive/2007/12/05/165665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mylyn 插g使用手册http://www.aygfsteel.com/coolingverse/archive/2007/12/03/164910.htmlStanley SunStanley SunMon, 03 Dec 2007 08:38:00 GMThttp://www.aygfsteel.com/coolingverse/archive/2007/12/03/164910.htmlhttp://www.aygfsteel.com/coolingverse/comments/164910.htmlhttp://www.aygfsteel.com/coolingverse/archive/2007/12/03/164910.html#Feedback0http://www.aygfsteel.com/coolingverse/comments/commentRss/164910.htmlhttp://www.aygfsteel.com/coolingverse/services/trackbacks/164910.html安装完成之后打开window->show views-Task RepositoriesQ界面如下图Q?


    在空白处右键点击add task repositoryd知识库,如图:

    选中JiraQ下一步:


    server中填写Jira的地址(http://ycfd.3322.org:88/jira)Qlabel随便填写QUser ID和Password是你在Jira上注册的帐号和密码了Q填写完毕之后点Validate SettingQ验证成功之后点完成卛_?

    在添加完repository后,会弹出添加query界面。如图:

    选择create query using form后点击nextQ进入query讄界面Q如图:


    在project中选中fms后点击finish。这样就完成了各设|?br /> 之后打开tasklist视图Qwindow->show view->other->mylyn->task list

    点击OKQ后打开task list视图Q如图:


    在Task List中你可以看到你的目中的问题和Q务等Q双击Task会显CTask的详l情况:

    在Task List中还能新建Taskq提交到JiraQ这里就不多说了Q大家自己尝试一下?/p>

    Stanley Sun 2007-12-03 16:38 发表评论
    ]]>
    Mylyn 插g安装手册http://www.aygfsteel.com/coolingverse/archive/2007/12/03/164908.htmlStanley SunStanley SunMon, 03 Dec 2007 08:38:00 GMThttp://www.aygfsteel.com/coolingverse/archive/2007/12/03/164908.htmlhttp://www.aygfsteel.com/coolingverse/comments/164908.htmlhttp://www.aygfsteel.com/coolingverse/archive/2007/12/03/164908.html#Feedback0http://www.aygfsteel.com/coolingverse/comments/commentRss/164908.htmlhttp://www.aygfsteel.com/coolingverse/services/trackbacks/164908.htmlmylyn是一Ƒּ源的Zeclipse开发^台的d理lgQ可以制定自q本地d及在q程服务器(其中包括Bugzilla、Trac ?JIRA{)中的q程d。对于我们现在的目Q用mylyn可以方便我们直接的览在JIRA中的dQ而不必经常的dJIRAq_了。提高了大家的工作效率?

    ׃mylyn与在我们现在在项目中使用的eclipse开发^Cspringide插g有冲H问题,所以首先大安要把springide插g从eclipse中卸载。步骤如下:

    1.在eclipse安装目录下找C个名为links的文件夹Q在q个文g夹中删除Springide.link文g?

    2.启动eclipseQ不q与q_不同的是需要在eclipse启动命o中加?clean参数。可以直接加入到eclipse快捷方式的目标项中?

    此时eclipse会把springide插g卸蝲Q之后我们就可以安装mylyn插g了。在开始安装mylyn之前Q大安要下载附件中的如下三个文Ӟmylyn-2.1-e3.3.zipQmylyn-2.1-extras.zipQspringide_updatesite_2.0.1_v200708152145.zip

    步骤如下Q?

    1.讄本地插g归档Q进入help->software updates->find and install菜单后,选择search for new features to install后点击next

    q入install界面Q如下图Q?


    把下载的三个zip归档加入后,点击finish.

    2.在弹出的updatesH口中选中刚才加入的三个归档,q把springide->integrations->spring ide ajdt integrationsL后,如下?

    之后q入授权界面Q选择i accept后nextQ如图:

    3.在弹出的verificationH口中点击install all开始安装,如图Q?

    之后提示是否重启eclipseQ点L?



    Stanley Sun 2007-12-03 16:38 发表评论
    ]]>
    վ֩ģ壺 Ǩ| | ʲ| | | ɽ| »| | ¤| ֹ| | | | ̨ǰ| ʡ| Ƽ| ۽| ͨ| | | ɽ| | | ̶| ƽ| | ̨| | | | ˾| ׺| | | | ߺ| | | | ̷| |