<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 周磊 閱讀(296) | 評論 (0)編輯 收藏
    再看看<effective java> ,對前半年寫的代碼進行一下反思
    慢慢看《Hadoop實戰中文版》,了解分布式系統
    認真閱讀《設計模式之禪》,加深對自己已經在實際項目中運用的模式的理解。
    閱讀《java解惑》的后半部分(2年前讀過前幾十條建議),了解編碼中的陷阱。
    posted @ 2012-06-29 15:07 周磊 閱讀(291) | 評論 (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 周磊 閱讀(314) | 評論 (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 周磊 閱讀(3361) | 評論 (0)編輯 收藏
    十進制轉成十六進制: 
    Integer.toHexString(int i) 
    十進制轉成八進制 
    Integer.toOctalString(int i) 
    十進制轉成二進制 
    Integer.toBinaryString(int i) 
    十六進制轉成十進制 
    Integer.valueOf("FFFF",16).toString() 
    八進制轉成十進制 
    Integer.valueOf("876",8).toString() 
    二進制轉十進制 
    Integer.valueOf("0101",2).toString() 

    有什么方法可以直接將2,8,16進制直接轉換為10進制的嗎? 
    java.lang.Integer類 
    parseInt(String s, int radix) 
    使用第二個參數指定的基數,將字符串參數解析為有符號的整數。 
    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 

    進制轉換如何寫(二,八,十六)不用算法 
    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進制數); 
    例如 
    String temp = Integer.toHexString(75); 
    輸出temp就為 4b 



    //輸入一個10進制數字并把它轉換成16進制 
    import java.io.*; 
    public class toHex{ 

    public static void main(String[]args){ 

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

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

    System.out.println ("它的16進制是:"+Integer.toHexString(input));//用toHexString把10進制轉換成16進制 
    posted @ 2012-04-29 12:10 周磊 閱讀(3170) | 評論 (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 周磊 閱讀(811) | 評論 (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 周磊 閱讀(4141) | 評論 (0)編輯 收藏
    http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
    posted @ 2012-03-19 09:55 周磊 閱讀(336) | 評論 (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 周磊 閱讀(5868) | 評論 (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 周磊 閱讀(1447) | 評論 (0)編輯 收藏
         摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1         <dl>  2  &nbs...  閱讀全文
    posted @ 2012-03-04 17:33 周磊 閱讀(2935) | 評論 (0)編輯 收藏
    org.apache.shiro.web.filter.mgt.DefaultFilter
    默認的內置攔截器
        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環境下過濾器結構分析

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

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

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


    posted @ 2012-02-26 13:08 周磊 閱讀(452) | 評論 (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 周磊 閱讀(873) | 評論 (0)編輯 收藏
    http://jautodoc.sourceforge.net/
    posted @ 2012-02-10 15:06 周磊 閱讀(197) | 評論 (0)編輯 收藏
    org.ralasafe.servlet.UserTypeInstallAction
    org.ralasafe.servlet.RalasafeController
    posted @ 2012-02-10 11:14 周磊 閱讀(133) | 評論 (0)編輯 收藏


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

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

    參數 

    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 參數默認值是68,之前調試的時候為了降低cms gc觸發周期,擴大了這個值,也就是old達到百分之80才觸發cms。但是長期運行隨著old區的膨脹,開始頻繁觸發concurrent mode failure 。具體原因可以查閱相關資料,降低整個值可以避免,concurrent mode failure觸發會暫停整個應用大大影響效率。
    posted @ 2012-02-07 12:43 周磊 閱讀(2848) | 評論 (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 周磊 閱讀(1178) | 評論 (0)編輯 收藏
    1重構改善既有代碼的設計  
       大概看了不少了也實踐了一些。主要是方法抽取的一些重構。感覺到現在來說做的項目什么設計啊都亂七八糟的,什么面向對象設計的,關系也都亂七八糟,總體來說我也是比較實用主義者,有些理論也只有一定情況才能試用,不過重構的話方法抽取啊這些還是很有用的,把方法寫的和注釋一樣,讀代碼就和讀注釋差不多,那么目前把這些重構原則用好也差不多了

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

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

    最后之所以這個讀書計劃沒有時間,主要是我覺得看書是為了更好的再工作中實踐,提高質量。用到什么了需要了就在這些里面去找方案,而不是要一口氣把書看完,那么也沒有太大的價值
    posted @ 2012-01-03 00:25 周磊 閱讀(193) | 評論 (0)編輯 收藏
        只有注冊用戶登錄后才能閱讀該文。閱讀全文
    posted @ 2012-01-03 00:07 周磊 閱讀(49) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 亚洲免费无码在线| 四虎在线免费播放| 亚洲乱码日产精品一二三| 国产三级免费电影| 成人A片产无码免费视频在线观看| 亚洲成AV人片在线观看无| 在线观看的免费网站| xxxxx做受大片视频免费| 亚洲欧洲精品视频在线观看| 免费一级毛片不卡不收费| 无码av免费一区二区三区| 亚洲国产成人久久精品软件| 亚洲国产精品无码中文字| 国内自产少妇自拍区免费| 91成人免费福利网站在线| 亚洲一级黄色大片| 亚洲三区在线观看无套内射| 毛片免费观看网址| 久久精品免费视频观看| 国产亚洲蜜芽精品久久| 亚洲永久中文字幕在线| 国产精品亚洲а∨无码播放| 国产成人一区二区三区免费视频| 桃子视频在线观看高清免费视频| WWW国产亚洲精品久久麻豆| 亚洲毛片一级带毛片基地| 日本红怡院亚洲红怡院最新 | 国产片免费福利片永久| 18禁美女裸体免费网站| 97超高清在线观看免费视频| 亚洲av永久无码天堂网| 亚洲卡一卡2卡三卡4麻豆| 亚洲中文字幕第一页在线| 免费看国产精品麻豆| 中文字幕无码视频手机免费看| 成人性生交大片免费看好| 亚洲精品黄色视频在线观看免费资源| 中文字幕无码精品亚洲资源网久久| 亚洲成在人天堂一区二区| 亚洲日本韩国在线| 免费一级毛片不卡不收费|