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

          State of the Lambda

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

          jdk快點(diǎn)出吧lambdba把,一直用op4j和lambdbaj這些jar包很蛋疼。。
          posted @ 2012-06-27 11:47 周磊 閱讀(317) | 評(píng)論 (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) | 評(píng)論 (0)編輯 收藏
          十進(jìn)制轉(zhuǎn)成十六進(jìn)制: 
          Integer.toHexString(int i) 
          十進(jìn)制轉(zhuǎn)成八進(jìn)制 
          Integer.toOctalString(int i) 
          十進(jìn)制轉(zhuǎn)成二進(jìn)制 
          Integer.toBinaryString(int i) 
          十六進(jìn)制轉(zhuǎn)成十進(jìn)制 
          Integer.valueOf("FFFF",16).toString() 
          八進(jìn)制轉(zhuǎn)成十進(jìn)制 
          Integer.valueOf("876",8).toString() 
          二進(jìn)制轉(zhuǎn)十進(jìn)制 
          Integer.valueOf("0101",2).toString() 

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

          進(jìn)制轉(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進(jìn)制數(shù)); 
          例如 
          String temp = Integer.toHexString(75); 
          輸出temp就為 4b 



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

          public static void main(String[]args){ 

          int input;//存放輸入數(shù)據(jù) 
          //創(chuàng)建輸入字符串的實(shí)例 
          BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); 
          System.out.println("請(qǐng)輸入一個(gè)的整數(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進(jìn)制是:"+Integer.toHexString(input));//用toHexString把10進(jìn)制轉(zhuǎn)換成16進(jìn)制 
          posted @ 2012-04-29 12:10 周磊 閱讀(3173) | 評(píng)論 (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) | 評(píng)論 (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容器中啟動(dòng)
                      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) | 評(píng)論 (0)編輯 收藏
          http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
          posted @ 2012-03-19 09:55 周磊 閱讀(339) | 評(píng)論 (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下需要有這兩個(gè)文件:spring-handlers及spring-schemas

          posted @ 2012-03-15 15:21 周磊 閱讀(5872) | 評(píng)論 (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) | 評(píng)論 (0)編輯 收藏
               摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1         <dl>  2  &nbs...  閱讀全文
          posted @ 2012-03-04 17:33 周磊 閱讀(2937) | 評(píng)論 (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) | 評(píng)論 (0)編輯 收藏
           

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

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

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

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


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


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

          http://database.ctocio.com.cn/82/12161582.shtml
          posted @ 2012-02-09 15:49 周磊 閱讀(159) | 評(píng)論 (0)編輯 收藏
          項(xiàng)目運(yùn)行了一段時(shí)間后大量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)試的時(shí)候?yàn)榱私档蚦ms gc觸發(fā)周期,擴(kuò)大了這個(gè)值,也就是old達(dá)到百分之80才觸發(fā)cms。但是長(zhǎng)期運(yùn)行隨著old區(qū)的膨脹,開始頻繁觸發(fā)concurrent mode failure 。具體原因可以查閱相關(guān)資料,降低整個(gè)值可以避免,concurrent mode failure觸發(fā)會(huì)暫停整個(gè)應(yīng)用大大影響效率。
          posted @ 2012-02-07 12:43 周磊 閱讀(2849) | 評(píng)論 (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) | 評(píng)論 (0)編輯 收藏
          1重構(gòu)改善既有代碼的設(shè)計(jì)  
             大概看了不少了也實(shí)踐了一些。主要是方法抽取的一些重構(gòu)。感覺到現(xiàn)在來說做的項(xiàng)目什么設(shè)計(jì)啊都亂七八糟的,什么面向?qū)ο笤O(shè)計(jì)的,關(guān)系也都亂七八糟,總體來說我也是比較實(shí)用主義者,有些理論也只有一定情況才能試用,不過重構(gòu)的話方法抽取啊這些還是很有用的,把方法寫的和注釋一樣,讀代碼就和讀注釋差不多,那么目前把這些重構(gòu)原則用好也差不多了

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

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

          最后之所以這個(gè)讀書計(jì)劃沒有時(shí)間,主要是我覺得看書是為了更好的再工作中實(shí)踐,提高質(zhì)量。用到什么了需要了就在這些里面去找方案,而不是要一口氣把書看完,那么也沒有太大的價(jià)值
          posted @ 2012-01-03 00:25 周磊 閱讀(194) | 評(píng)論 (0)編輯 收藏
              只有注冊(cè)用戶登錄后才能閱讀該文。閱讀全文
          posted @ 2012-01-03 00:07 周磊 閱讀(49) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 静安区| 安吉县| 邓州市| 新宾| 开原市| 嘉黎县| 黄大仙区| 沙洋县| 新兴县| 克山县| 恩施市| 钦州市| 沁水县| 深水埗区| 颍上县| 贵溪市| 铜山县| 沽源县| 台江县| 江门市| 龙江县| 民和| 宜昌市| 怀安县| 兴安县| 板桥市| 确山县| 志丹县| 高青县| 礼泉县| 景谷| 文成县| 汕尾市| 丰台区| 富阳市| 兰西县| 灌南县| 建瓯市| 永康市| 盐城市| 扎鲁特旗|