<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 25,comments - 0,trackbacks - 0
    http://hllvm.group.iteye.com/group/wiki?category_id=316 
    posted @ 2012-07-08 10:17 周磊 閱讀(300) | 評論 (0)編輯 收藏
    再看看<effective java> ,對前半年寫的代碼進行一下反思
    慢慢看《Hadoop實戰(zhàn)中文版》,了解分布式系統(tǒng)
    認(rèn)真閱讀《設(shè)計模式之禪》,加深對自己已經(jīng)在實際項目中運用的模式的理解。
    閱讀《java解惑》的后半部分(2年前讀過前幾十條建議),了解編碼中的陷阱。
    posted @ 2012-06-29 15:07 周磊 閱讀(293) | 評論 (0)編輯 收藏

    State of the Lambda

    http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html 

    jdk快點出吧lambdba把,一直用op4j和lambdbaj這些jar包很蛋疼。。
    posted @ 2012-06-27 11:47 周磊 閱讀(317) | 評論 (0)編輯 收藏
    spring配置該方法只讀了。

    <bean id="txProxyTemplate" abstract="true"
           class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
           <property name="transactionManager" ref="transactionManager"/>
           <property name="transactionAttributes">
               <props>
                  <prop key="affirm*">PROPAGATION_REQUIRED</prop>
                  <prop key="gen*">PROPAGATION_REQUIRED</prop>
                   <prop key="save*">PROPAGATION_REQUIRED</prop>
                   <prop key="update*">PROPAGATION_REQUIRED</prop>
                   <prop key="create*">PROPAGATION_REQUIRED</prop>
                   <prop key="process*">PROPAGATION_REQUIRED</prop>                               
                   <prop key="delete*">PROPAGATION_REQUIRED</prop>               
                   <prop key="remove*">PROPAGATION_REQUIRED</prop>
                   <prop key="send*">PROPAGATION_REQUIRED</prop>
      <prop key="upload*">PROPAGATION_REQUIRED</prop>               
                   <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
               </props>
           </property></bean>

    posted @ 2012-05-24 09:59 周磊 閱讀(3364) | 評論 (0)編輯 收藏
    十進制轉(zhuǎn)成十六進制: 
    Integer.toHexString(int i) 
    十進制轉(zhuǎn)成八進制 
    Integer.toOctalString(int i) 
    十進制轉(zhuǎn)成二進制 
    Integer.toBinaryString(int i) 
    十六進制轉(zhuǎn)成十進制 
    Integer.valueOf("FFFF",16).toString() 
    八進制轉(zhuǎn)成十進制 
    Integer.valueOf("876",8).toString() 
    二進制轉(zhuǎn)十進制 
    Integer.valueOf("0101",2).toString() 

    有什么方法可以直接將2,8,16進制直接轉(zhuǎn)換為10進制的嗎? 
    java.lang.Integer類 
    parseInt(String s, int radix) 
    使用第二個參數(shù)指定的基數(shù),將字符串參數(shù)解析為有符號的整數(shù)。 
    examples from jdk: 
    parseInt("0", 10) returns 0 
    parseInt("473", 10) returns 473 
    parseInt("-0", 10) returns 0 
    parseInt("-FF", 16) returns -255 
    parseInt("1100110", 2) returns 102 
    parseInt("2147483647", 10) returns 2147483647 
    parseInt("-2147483648", 10) returns -2147483648 
    parseInt("2147483648", 10) throws a NumberFormatException 
    parseInt("99", throws a NumberFormatException 
    parseInt("Kona", 10) throws a NumberFormatException 
    parseInt("Kona", 27) returns 411787 

    進制轉(zhuǎn)換如何寫(二,八,十六)不用算法 
    Integer.toBinaryString 
    Integer.toOctalString 
    Integer.toHexString 


    例二 

    public class Test{ 
       public static void main(String args[]){ 

        int i=100; 
        String binStr=Integer.toBinaryString(i); 
        String otcStr=Integer.toOctalString(i); 
        String hexStr=Integer.toHexString(i); 
        System.out.println(binStr); 





    例二 
    public class TestStringFormat { 
       public static void main(String[] args) { 
        if (args.length == 0) { 
           System.out.println("usage: java TestStringFormat <a number>"); 
           System.exit(0); 
        } 

        Integer factor = Integer.valueOf(args[0]); 

        String s; 

        s = String.format("%d", factor); 
        System.out.println(s); 
        s = String.format("%x", factor); 
        System.out.println(s); 
        s = String.format("%o", factor); 
        System.out.println(s); 
       } 




    其他方法: 

    Integer.toHexString(你的10進制數(shù)); 
    例如 
    String temp = Integer.toHexString(75); 
    輸出temp就為 4b 



    //輸入一個10進制數(shù)字并把它轉(zhuǎn)換成16進制 
    import java.io.*; 
    public class toHex{ 

    public static void main(String[]args){ 

    int input;//存放輸入數(shù)據(jù) 
    //創(chuàng)建輸入字符串的實例 
    BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("請輸入一個的整數(shù):"); 
    String x=null; 
    try{ 
    x=strin.readLine(); 
    }catch(IOException ex){ 
    ex.printStackTrace(); 

    input=Integer.parseInt(x); 
    System.out.println ("你輸入的數(shù)字是:"+input);//輸出從鍵盤接收到的數(shù)字 

    System.out.println ("它的16進制是:"+Integer.toHexString(input));//用toHexString把10進制轉(zhuǎn)換成16進制 
    posted @ 2012-04-29 12:10 周磊 閱讀(3173) | 評論 (0)編輯 收藏
    http://linbin007.iteye.com/blog/809759
    -noverify 
    -javaagent:D:/jrebel.jar
    -Drebel.dirs=E:\workspace\WantWant\webapp\WEB-INF\classes
    posted @ 2012-03-26 15:27 周磊 閱讀(814) | 評論 (0)編輯 收藏

    Class search path

    The default ClassPool returned by a static method ClassPool.getDefault() searches the same path that the underlying JVM (Java virtual machine) has. If a program is running on a web application server such as JBoss and Tomcat, the ClassPool object may not be able to find user classes since such a web application server uses multiple class loaders as well as the system class loader. In that case, an additional class path must be registered to the ClassPool. Suppose that pool refers to aClassPool object:

      pool.insertClassPath(new ClassClassPath(this.getClass())); 

    This statement registers the class path that was used for loading the class of the object that this refers to. You can use any Class object as an argument instead ofthis.getClass(). The class path used for loading the class represented by that Class object is registered.

    You can register a directory name as the class search path. For example, the following code adds a directory /usr/local/javalib to the search path:

      ClassPool pool = ClassPool.getDefault(); pool.insertClassPath("/usr/local/javalib"); 

    The search path that the users can add is not only a directory but also a URL:

      ClassPool pool = ClassPool.getDefault(); ClassPath cp = new URLClassPath("www.javassist.org", 80, "/java/", "org.javassist."); pool.insertClassPath(cp); 

    This program adds "http://www.javassist.org:80/java/" to the class search path. This URL is used only for searching classes belonging to a package org.javassist. For example, to load a class org.javassist.test.Main, its class file will be obtained from:

      http://www.javassist.org:80/java/org/javassist/test/Main.class 

    Furthermore, you can directly give a byte array to a ClassPool object and construct a CtClass object from that array. To do this, use ByteArrayClassPath. For example,

      ClassPool cp = ClassPool.getDefault(); byte[] b = a byte array; String name = class name; cp.insertClassPath(new ByteArrayClassPath(name, b)); CtClass cc = cp.get(name); 

    The obtained CtClass object represents a class defined by the class file specified by b. The ClassPool reads a class file from the given ByteArrayClassPath if get() is called and the class name given to get() is equal to one specified by name.

    If you do not know the fully-qualified name of the class, then you can use makeClass() in ClassPool:

      ClassPool cp = ClassPool.getDefault(); InputStream ins = an input stream for reading a class file; CtClass cc = cp.makeClass(ins); 

    makeClass() returns the CtClass object constructed from the given input stream. You can use makeClass() for eagerly feeding class files to the ClassPool object. This might improve performance if the search path includes a large jar file. Since a ClassPool object reads a class file on demand, it might repeatedly search the whole jar file for every class file. makeClass() can be used for optimizing this search. The CtClass constructed by makeClass() is kept in the ClassPool object and the class file is never read again.

    The users can extend the class search path. They can define a new class implementing ClassPath interface and give an instance of that class to insertClassPath() inClassPool. This allows a non-standard resource to be included in the search path.





    package com.cloud.dm.util;

    import java.io.File;
    import java.lang.reflect.Field;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;

    import javassist.ClassClassPath;
    import javassist.ClassPool;
    import javassist.CtClass;
    import javassist.CtMethod;
    import javassist.CtNewMethod;
    import javassist.bytecode.DuplicateMemberException;

    import org.apache.commons.lang3.StringUtils;

    public class Struts2GetterSetterGen {
        private static ClassPool pool = ClassPool.getDefault();

        public static void init() throws Exception {
            URL url = Struts2GetterSetterGen.class.getResource("/");
            List<File> resultList = new ArrayList<File>();
            FileSearcher.findFiles(url.getFile(), "*Action.class", resultList);
            for (File object : resultList) {
                String className = StringUtils.substringBetween(object.toString(),
                        "classes\\", ".class").replaceAll("\\\\", ".");
                CtClass ct = null;
                pool.insertClassPath(new ClassClassPath(Class.forName(className))); //在servlet容器中啟動
                ct = pool.get(className);
                Field[] fs = Class.forName(className).getDeclaredFields();
                for (Field f : fs) {
                    genGetter(ct, f);
                    genSetter(ct, f);
                }
                ct.writeFile(url.getPath()); // 覆蓋之前的class文件
            }
        }

        private static void genGetter(CtClass ct, Field field) throws Exception {
            String string = "public " + field.getType().getName() + " get"
                    + StringUtils.capitalize(field.getName()) + "() {return "
                    + field.getName() + "; }";
            CtMethod m = CtNewMethod.make(string, ct);
            try {
                ct.addMethod(m);
            } catch (DuplicateMemberException e) {
            }
        }

        private static void genSetter(CtClass ct, Field field) throws Exception {
            String string = "public void set"
                    + StringUtils.capitalize(field.getName()) + "("
                    + field.getType().getName() + " " + field.getName() + "){this."
                    + field.getName() + " = " + field.getName() + "; }";
            CtMethod m = CtNewMethod.make(string, ct);
            try {
                ct.addMethod(m);
            } catch (DuplicateMemberException e) {
            }
        }
    }


    posted @ 2012-03-22 15:22 周磊 閱讀(4147) | 評論 (0)編輯 收藏
    http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
    posted @ 2012-03-19 09:55 周磊 閱讀(340) | 評論 (0)編輯 收藏


    org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/xxx


    META-INF下需要有這兩個文件:spring-handlers及spring-schemas

    posted @ 2012-03-15 15:21 周磊 閱讀(5873) | 評論 (0)編輯 收藏
     1 package com.cloud.dm;
     2 
     3 import java.util.Collections;
     4 import java.util.Comparator;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 import com.google.common.collect.Lists;
     9 import com.google.common.collect.Maps;
    10 
    11 public class TreeListTest {
    12     public static void main(String[] args) {
    13         List<Map<String, Object>> list = Lists.newArrayList();
    14         Map<String, Object> map = Maps.newHashMap();
    15         map.put("key", 201101);
    16         Map<String, Object> map2 = Maps.newHashMap();
    17         map2.put("key", 200010);
    18         Map<String, Object> map3 = Maps.newHashMap();
    19         map3.put("key", 201103);
    20         list.add(map);
    21         list.add(map2);
    22         list.add(map3);
    23         System.out.println(list);
    24         Collections.sort(list, new Comparator<Map<String, Object>>() {
    25             @Override
    26             public int compare(Map<String, Object> o1, Map<String, Object> o2) {
    27                 System.out.println(o1.get("key").toString().compareTo(o2.get("key").toString()));
    28                 return o1.get("key").toString().compareTo(o2.get("key").toString());
    29             }
    30         });
    31         System.out.println(list);
    32     }
    33 }
    34 
    posted @ 2012-03-13 18:13 周磊 閱讀(1449) | 評論 (0)編輯 收藏
         摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1         <dl>  2  &nbs...  閱讀全文
    posted @ 2012-03-04 17:33 周磊 閱讀(2939) | 評論 (0)編輯 收藏
    org.apache.shiro.web.filter.mgt.DefaultFilter
    默認(rèn)的內(nèi)置攔截器
        anon(AnonymousFilter.class),
        authc(FormAuthenticationFilter.class),
        authcBasic(BasicHttpAuthenticationFilter.class),
        logout(LogoutFilter.class),
        noSessionCreation(NoSessionCreationFilter.class),
        perms(PermissionsAuthorizationFilter.class),
        port(PortFilter.class),
        rest(HttpMethodPermissionFilter.class),
        roles(RolesAuthorizationFilter.class),
        ssl(SslFilter.class),
        user(UserFilter.class);

      anno 允許匿名訪問,

    Filter that allows access to a path immeidately without performing security checks of any kind.

    This filter is useful primarily in exclusionary policies, where you have defined a url pattern to require a certain security level, but maybe only subset of urls in that pattern should allow any access.

    For example, if you had a user-only section of a website, you might want to require that access to any url in that section must be from an authenticated user.

    Here is how that would look in the IniShiroFilter configuration:

    [urls]
    /user/** = authc

    But if you wanted /user/signup/** to be available to anyone, you have to exclude that path since it is a subset of the first. This is where the AnonymousFilter ('anon') is useful:

    [urls]
    /user/signup/** = anon
    /user/** = authc
    >

    Since the url pattern definitions follow a 'first match wins' paradigm, the anon filter will match the /user/signup/** paths and the /user/** path chain will not be evaluated.

    posted @ 2012-03-03 23:52 周磊 閱讀(987) | 評論 (0)編輯 收藏
     

    Shiro框架Web環(huán)境下過濾器結(jié)構(gòu)分析

    posted @ 2012-03-01 11:52 周磊 閱讀(153) | 評論 (0)編輯 收藏
    1 strtus2無法加載jar中的注解配置的action
    2 spring3.1的cache標(biāo)簽報空值錯誤
    posted @ 2012-02-28 23:27 周磊 閱讀(158) | 評論 (0)編輯 收藏

    介紹 Spring 3.1 M1 中的緩存功能- 中文版 (轉(zhuǎn))

    posted @ 2012-02-27 10:29 周磊 閱讀(118) | 評論 (0)編輯 收藏
    最簡單的一招是刪除"c:/windows/java.exe",win7是在system32目錄下,這樣就可以修復(fù)了
    如果不行繼續(xù)刪除
    javaw.exe和javaws.exe


    posted @ 2012-02-26 13:08 周磊 閱讀(454) | 評論 (0)編輯 收藏

    http://blog.csdn.net/luotangsha/article/details/7016613

    http://www.cnblogs.com/freeliver54/archive/2011/12/30/2307129.html

    posted @ 2012-02-10 18:11 周磊 閱讀(875) | 評論 (0)編輯 收藏
    http://jautodoc.sourceforge.net/
    posted @ 2012-02-10 15:06 周磊 閱讀(199) | 評論 (0)編輯 收藏
    org.ralasafe.servlet.UserTypeInstallAction
    org.ralasafe.servlet.RalasafeController
    posted @ 2012-02-10 11:14 周磊 閱讀(135) | 評論 (0)編輯 收藏


    http://www.hitb.com.cn/web/guest/bbs/-/message_boards/message/13822
    posted @ 2012-02-09 19:52 周磊 閱讀(174) | 評論 (0)編輯 收藏
    SHOW VARIABLES LIKE '%char%'

    http://database.ctocio.com.cn/82/12161582.shtml
    posted @ 2012-02-09 15:49 周磊 閱讀(159) | 評論 (0)編輯 收藏
    項目運行了一段時間后大量concurrent mode failure    (gc 日志文件下載/Files/b1412/concurrent_mode_failure.rar

    參數(shù) 

    SET CATALINA_OPTS= -Xms1024m -Xmx1024m -Xmn350m  -server -noclassgc -XX:+PrintGCDetails -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=20  -XX:+UseConcMarkSweepGC   -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseFastAccessorMethods -Xloggc:"%CATALINA_HOME%"/webapps/dm/tomcat_gc.log

    XX:CMSInitiatingOccupancyFraction 參數(shù)默認(rèn)值是68,之前調(diào)試的時候為了降低cms gc觸發(fā)周期,擴大了這個值,也就是old達(dá)到百分之80才觸發(fā)cms。但是長期運行隨著old區(qū)的膨脹,開始頻繁觸發(fā)concurrent mode failure 。具體原因可以查閱相關(guān)資料,降低整個值可以避免,concurrent mode failure觸發(fā)會暫停整個應(yīng)用大大影響效率。
    posted @ 2012-02-07 12:43 周磊 閱讀(2849) | 評論 (0)編輯 收藏
    http://sheng.iteye.com/blog/407279

      1 # $Id: $
      2 # please keep these sorted and up to date
      3 # Translator\uff1a \u788e\u77f3\u5934<http://sheng.javaeye.com wdmsyf@yahoo.com>
      4 
      5 about_dialog_image=aboutgcviewer.png
      6 about_dialog_title=\u5173\u4e8e <\u7ffb\u8bd1: http://sheng.javaeye.com>
      7 button_ok=\u786e\u8ba4
      8 button_cancel=\u53d6\u6d88
      9 
     10 fileopen_dialog_title=\u9009\u62e9GC\u65e5\u5fd7\u6587\u4ef6
     11 fileopen_dialog_read_file_failed=\u8bfb\u6587\u4ef6\u5931\u8d25\u3002
     12 fileopen_dialog_add_checkbox=<html>\u589e\u52a0\u6587\u5230<br>\u5f53\u524d<br>\u7a97\u53e3.</html>
     13 fileopen_dialog_hint_add_checkbox=<html>\u6b64\u9879\u9009\u4e2d\u65f6\uff0c\u4f1a\u5728\u5f53\u524d\u7a97\u53e3\u589e\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0c\u800c\u4e0d\u662f\u65b0\u5f00\u4e00\u4e2a\u7a97\u53e3\u6765\u6253\u5f00\u6587\u4ef6.</html>
     14 fileexport_dialog_title=\u5bfc\u51faGC\u65e5\u5fd7\u6587\u4ef6
     15 fileexport_dialog_csv=\u9017\u53f7\u5206\u9694\u6587\u4ef6 (*.csv)
     16 fileexport_dialog_txt=\u7eaf\u6587\u672c\u6587\u4ef6 (*.txt)
     17 fileexport_dialog_error_occured=\u53d1\u751f\u9519\u8bef.
     18 fileexport_dialog_write_file_failed=\u5199\u6587\u4ef6\u5931\u8d25.
     19 fileexport_dialog_confirm_overwrite=\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u8986\u76d6\u5417?
     20 urlopen_dialog_title=\u6253\u5f00GC URL
     21 urlopen_dialog_add_checkbox=\u589e\u52a0\u4e00\u4e2aURL\u5230\u5f53\u524d\u7a97\u53e3.
     22 urlopen_dialog_hint_add_checkbox=<html>\u6b64\u9879\u9009\u4e2d\u65f6\uff0c\u4f1a\u5728\u5f53\u524d\u7a97\u53e3\u589e\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0c\u800c\u4e0d\u662f\u65b0\u5f00\u4e00\u4e2a\u7a97\u53e3\u6765\u6253\u5f00\u6587\u4ef6.</html>
     23 
     24 
     25 main_frame_menu_file=\u6587\u4ef6
     26 main_frame_menu_mnemonic_file=F
     27 main_frame_menuitem_open_file=\u6253\u5f00\u6587\u4ef6
     28 main_frame_menuitem_mnemonic_open_file=O
     29 main_frame_menuitem_hint_open_file=\u6253\u5f00\u4e00\u4e2a\u6587\u4ef6
     30 main_frame_menuitem_open_url=\u6253\u5f00URL
     31 main_frame_menuitem_mnemonic_open_url=U
     32 main_frame_menuitem_hint_open_url=\u6253\u5f00\u4e00\u4e2aURL
     33 main_frame_menuitem_recent_files=\u6700\u8fd1\u7684\u6587\u4ef6
     34 main_frame_menuitem_mnemonic_recent_files=F
     35 main_frame_menuitem_hint_recent_files=\u6253\u5f00\u4e00\u4e2a\u6700\u8fd1\u4f7f\u7528\u8fc7\u7684\u6587\u4ef6
     36 main_frame_menuitem_add_file=\u589e\u52a0\u4e00\u4e2a\u89c6\u56fe
     37 main_frame_menuitem_mnemonic_add_file=A
     38 main_frame_menuitem_hint_add_file=\u589e\u52a0\u4e00\u4e2agc\u89c6\u56fe\u5230\u5f53\u524d\u7a97\u53e3
     39 main_frame_menuitem_refresh=\u5237\u65b0
     40 main_frame_menuitem_mnemonic_refresh=R
     41 main_frame_menuitem_hint_refresh=\u91cd\u65b0\u8f7d\u5165\u5f53\u524d\u6587\u4ef6
     42 main_frame_menuitem_watch=\u76d1\u89c6
     43 main_frame_menuitem_mnemonic_watch=W
     44 main_frame_menuitem_hint_watch=\u76d1\u89c6\u5f53\u524d\u6587\u4ef6\uff0c\u5982\u679c\u6709\u53d8\u5316\u65f6\u91cd\u65b0\u8f7d\u5165
     45 main_frame_menuitem_export=\u5bfc\u51fa
     46 main_frame_menuitem_mnemonic_export=E
     47 main_frame_menuitem_hint_export=\u5bfc\u51fa\u5f53\u524d\u6587\u4ef6
     48 main_frame_menuitem_exit=\u9000\u51fa
     49 main_frame_menuitem_mnemonic_exit=X
     50 main_frame_menuitem_hint_exit=\u9000\u51faGCViewer
     51 
     52 main_frame_menu_view=\u67e5\u770b
     53 main_frame_menu_mnemonic_view=V
     54 
     55 main_frame_menuitem_antialias=\u6297\u952f\u9f7f
     56 main_frame_menuitem_mnemonic_antialias=A
     57 main_frame_menuitem_hint_antialias=\u5728\u6e32\u67d3\u7ebf\u6761\u65f6\u4f7f\u7528\u6297\u952f\u9f7f\u529f\u80fd(\u53ef\u80fd\u4f1a\u5f71\u54cd\u6e32\u67d3\u901f\u5ea6) 
     58 
     59 main_frame_menuitem_show_data_panel=\u6570\u636e\u9762\u677f
     60 main_frame_menuitem_mnemonic_show_data_panel=D
     61 main_frame_menuitem_hint_show_data_panel=\u663e\u793a\u5f53\u524d\u6587\u6863\u8be6\u7ec6\u6570\u636e\u7684\u6570\u636e\u9762\u677f
     62 
     63 main_frame_menuitem_full_gc_lines=\u5168GC\u7ebf
     64 main_frame_menuitem_mnemonic_full_gc_lines=F
     65 main_frame_menuitem_hint_full_gc_lines=\u663e\u793a\u6bcf\u4e00\u6b21\u5168\u5783\u573e\u6536\u96c6\u7ebf
     66 main_frame_menuitem_inc_gc_lines=\u589e\u91cfGC\u7ebf
     67 main_frame_menuitem_mnemonic_inc_gc_lines=I
     68 main_frame_menuitem_hint_inc_gc_lines=\u663e\u793a\u6bcf\u6b21\u589e\u5783\u573e\u6536\u96c6\u7ebf
     69 main_frame_menuitem_gc_times_line=GC\u65f6\u95f4\u7ebf
     70 main_frame_menuitem_mnemonic_gc_times_line=L
     71 main_frame_menuitem_hint_gc_times_line=\u663e\u793a\u6807\u8bc6\u5783\u573e\u6536\u96c6\u6240\u8017\u65f6\u95f4\u7684\u7ebf
     72 main_frame_menuitem_gc_times_rectangles=GC\u65f6\u95f4\u77e9\u5f62
     73 main_frame_menuitem_mnemonic_gc_times_rectangles=R
     74 main_frame_menuitem_hint_gc_times_rectangles=\u663e\u793a\u6807\u8bc6\u5783\u573e\u6536\u96c6\u6d88\u8017\u65f6\u95f4\u7684\u77e9\u5f62
     75 main_frame_menuitem_total_memory=\u603b\u5806\u5927\u5c0f
     76 main_frame_menuitem_mnemonic_total_memory=T
     77 main_frame_menuitem_hint_total_memory=\u5df2\u5206\u914d\u603b\u5185\u5b58\u5927\u5c0f
     78 main_frame_menuitem_used_memory=\u5df2\u4f7f\u7528\u5806\u5927\u5c0f
     79 main_frame_menuitem_mnemonic_used_memory=U
     80 main_frame_menuitem_hint_used_memory=\u6b63\u5728\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f
     81 main_frame_menuitem_tenured_memory=\u7ec8\u751f\u4ee3\u5806\u5927\u5c0f
     82 main_frame_menuitem_mnemonic_tenured_memory=E
     83 main_frame_menuitem_hint_tenured_memory=\u7ec8\u751f\u4ee3(tenured generation)\u5bf9\u8c61\u6240\u5360\u7528\u5185\u5b58\u5927\u5c0f
     84 main_frame_menuitem_young_memory=\u65b0\u751f\u4ee3\u5806\u5927\u5c0f
     85 main_frame_menuitem_mnemonic_young_memory=Y
     86 main_frame_menuitem_hint_young_memory=\u65b0\u751f\u4ee3(young generation)\u5bf9\u8c61\u6240\u5360\u5185\u5b58\u5927\u5c0f
     87 
     88 main_frame_menu_window=\u7a97\u53e3
     89 main_frame_menu_mnemonic_window=W
     90 main_frame_menuitem_arrange=\u6392\u5217
     91 main_frame_menuitem_mnemonic_arrange=G
     92 main_frame_menuitem_hint_arrange=\u6392\u5217\u6240\u6709\u7a97\u53e3
     93 
     94 main_frame_menu_help=\u5e2e\u52a9
     95 main_frame_menu_mnemonic_help=H
     96 main_frame_menuitem_about=\u5173\u4e8eGCViewer
     97 main_frame_menuitem_mnemonic_about=A
     98 main_frame_menuitem_hint_about=\u663e\u793a\u5173\u4e8eGCViewer\u7684\u4fe1\u606f
     99 
    100 data_panel_tab_pause=\u6682\u505c
    101 data_panel_tab_summary=\u6982\u8981
    102 data_panel_tab_memory=\u5185\u5b58
    103 data_panel_acc_pauses=\u7d2f\u8ba1\u6682\u505c
    104 data_panel_acc_fullgcpauses=\u7d2f\u8ba1\u5168GC
    105 data_panel_acc_gcpauses=\u7d2f\u8ba1GC
    106 data_panel_avg_pause=\u5e73\u5747\u6682\u505c
    107 data_panel_avg_fullgcpause=\u5e73\u5747\u5168GC
    108 data_panel_avg_gcpause=\u5e73\u5747GC
    109 data_panel_min_pause=\u6700\u5c0f\u6682\u505c
    110 data_panel_max_pause=\u6700\u5927\u6682\u505c
    111 data_panel_total_time=\u603b\u65f6\u95f4
    112 data_panel_footprint=\u6700\u5927\u5206\u914d\u5185\u5b58\u6570
    113 data_panel_footprintafterfullgc=\u5168GC\u540e\u5185\u5b58\u5e73\u5747\u503c
    114 data_panel_slopeafterfullgc=\u5168GC\u5761\u5ea6(Slope full GC)
    115 data_panel_slopeaftergc=GC\u5761\u5ea6(Slope GC)
    116 data_panel_footprintaftergc=GC\u540e\u5185\u5b58\u5e73\u5747\u503c
    117 data_panel_throughput=\u541e\u5410\u91cf
    118 data_panel_freedmemory=\u91ca\u653e\u5185\u5b58
    119 data_panel_freedmemorypermin=\u91ca\u653e\u5185\u5b58/\u5206\u949f
    120 data_panel_freedmemorybyfullgc=\u5168GC\u91ca\u653e\u5185\u5b58
    121 data_panel_avgfreedmemorybyfullgc=\u5168GC\u5e73\u5747\u91ca\u653e\u5185\u5b58
    122 data_panel_freedmemorybygc=GC\u91ca\u653e\u5185\u5b58
    123 data_panel_avgfreedmemorybygc=GC\u5e73\u5747\u91ca\u653e\u5185\u5b58
    124 data_panel_avgrelativepostgcincrease=GC\u540e\u5185\u5b58\u5e73\u5747\u589e\u91cf
    125 data_panel_avgrelativepostfullgcincrease=\u5168GC\u540e\u5185\u5b58\u5e73\u5747\u589e\u91cf
    126 data_panel_performance_fullgc=\u5168GC\u6027\u80fd
    127 data_panel_performance_gc=GC\u6027\u80fd
    128 
    129 action_zoom=\u7f29\u653e
    130 action_zoom_hint=\u7f29\u653e
    131 
    132 datareaderfactory_instantiation_failed=\u65e0\u6cd5\u8bc6\u522b\u6587\u4ef6\u683c\u5f0f.
    133 datawriterfactory_instantiation_failed=\u4e0d\u652f\u6301\u7684\u6587\u4ef6\u683c\u5f0f:
    134 
    135 timeoffset_prompt=\u65e5\u5fd7\u5f00\u59cb\u65f6\u95f4:
    136 
    137 datareader_parseerror_dialog_message=GCViewer\u5728\u89e3\u6790\"{0}\"\u65f6\u9047\u5230\u95ee\u9898:
    138 datareader_parseerror_dialog_title=\u89e3\u6790{0}\u51fa\u9519
    139 
    打包到 gcviewer-1.2X.jar 的 com\tagtraum\perf\gcviewer 路徑下即可,注意文件名必須是 localStrings_zh.properties
    posted @ 2012-01-11 13:22 周磊 閱讀(1179) | 評論 (0)編輯 收藏
    1重構(gòu)改善既有代碼的設(shè)計  
       大概看了不少了也實踐了一些。主要是方法抽取的一些重構(gòu)。感覺到現(xiàn)在來說做的項目什么設(shè)計啊都亂七八糟的,什么面向?qū)ο笤O(shè)計的,關(guān)系也都亂七八糟,總體來說我也是比較實用主義者,有些理論也只有一定情況才能試用,不過重構(gòu)的話方法抽取啊這些還是很有用的,把方法寫的和注釋一樣,讀代碼就和讀注釋差不多,那么目前把這些重構(gòu)原則用好也差不多了

    2Head_First
     設(shè)計模式的比較出名的書籍,場景將的很細(xì)致了,還是那句話,目前的項目都沒有那么嚴(yán)格和大規(guī)模的設(shè)計,不過很多小的模塊自己能用一些簡單的設(shè)計模式也不錯,就算沒有真正需要擴展和一些性能的要求,提高了代碼可讀性也算不錯了了。單例,工廠這些就不多說了,太普遍。現(xiàn)在享元也用了下,這次做自定義協(xié)議實現(xiàn)時候用的xml和命令對象的轉(zhuǎn)換參照了commons beanutils 中convertUtils類型轉(zhuǎn)換的設(shè)計,后來看了這書發(fā)現(xiàn)有點類似的命令模式。對于模式各方褒貶不一,我理解現(xiàn)在我這個階段寫代碼能基本復(fù)用易讀差不多了,能參考一些模式的思想吧代碼結(jié)構(gòu)優(yōu)化好就行,模式不是用來生搬硬套的教條,只要你這個代碼結(jié)構(gòu)能應(yīng)對這個系統(tǒng)的需求變化就行。

    3Java敏捷開發(fā)
     看這本主要還是看一些重構(gòu)和提高代碼可讀性的一些東西,變量方法命令等等。

    最后之所以這個讀書計劃沒有時間,主要是我覺得看書是為了更好的再工作中實踐,提高質(zhì)量。用到什么了需要了就在這些里面去找方案,而不是要一口氣把書看完,那么也沒有太大的價值
    posted @ 2012-01-03 00:25 周磊 閱讀(194) | 評論 (0)編輯 收藏
        只有注冊用戶登錄后才能閱讀該文。閱讀全文
    posted @ 2012-01-03 00:07 周磊 閱讀(49) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 国产午夜亚洲不卡| 亚洲电影免费在线观看| 成人au免费视频影院| 亚洲美女aⅴ久久久91| 88xx成人永久免费观看| 亚洲第一福利网站| 免费国产黄网站在线观看可以下载| 中文字幕亚洲天堂| 香蕉免费一级视频在线观看| 亚洲日本中文字幕一区二区三区| 亚洲精品偷拍视频免费观看| 久久乐国产精品亚洲综合| 国产偷伦视频免费观看| 337p日本欧洲亚洲大胆色噜噜| 在线永久看片免费的视频| 精品久久亚洲中文无码| 德国女人一级毛片免费| 美女扒开尿口给男人爽免费视频| 免费在线观看你懂的| 亚洲中文字幕无码一去台湾 | 粉色视频免费入口| 亚洲精品成人a在线观看| 中文字幕在线成人免费看| 亚洲综合精品香蕉久久网97| 成人无码区免费A片视频WWW| 亚洲国产精品嫩草影院| 国产亚洲一区区二区在线 | 一级黄色毛片免费看| 国产成A人亚洲精V品无码性色| 91精品手机国产免费| 亚洲av无码日韩av无码网站冲| 亚洲成人高清在线| 久久国产免费观看精品3| 亚洲性无码AV中文字幕| 国产免费AV片在线观看播放| 亚洲av无码精品网站| 成年人在线免费看视频| 成人毛片100免费观看| 亚洲国产日韩在线成人蜜芽| 四虎亚洲国产成人久久精品| 最近免费中文字幕mv电影|