posts - 25,comments - 0,trackbacks - 0
http://hllvm.group.iteye.com/group/wiki?category_id=316 
posted @ 2012-07-08 10:17 周磊 阅读(288) | 评论 (0)编辑 收藏
再看看<effective java> ,对前半年写的代码进行一下反思
慢慢看《Hadoop实战中文版》,了解分布式系统
认真阅读《设计模式之禅》,加深对自己已经在实际项目中运用的模式的理解。
阅读《java解惑》的后半部分(2年前读过前几十条建议),了解编码中的陷阱。
posted @ 2012-06-29 15:07 周磊 阅读(283) | 评论 (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 周磊 阅读(303) | 评论 (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 周磊 阅读(3348) | 评论 (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 周磊 阅读(3160) | 评论 (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 周磊 阅读(802) | 评论 (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 周磊 阅读(4128) | 评论 (0)编辑 收藏
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
posted @ 2012-03-19 09:55 周磊 阅读(329) | 评论 (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 周磊 阅读(5861) | 评论 (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 周磊 阅读(1436) | 评论 (0)编辑 收藏
     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1         <dl>  2  &nbs...  阅读全文
posted @ 2012-03-04 17:33 周磊 阅读(2933) | 评论 (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 周磊 阅读(986) | 评论 (0)编辑 收藏
 

Shiro框架Web环境下过滤器结构分析

posted @ 2012-03-01 11:52 周磊 阅读(149) | 评论 (0)编辑 收藏
1 strtus2无法加载jar中的注解配置的action
2 spring3.1的cache标签报空值错误
posted @ 2012-02-28 23:27 周磊 阅读(154) | 评论 (0)编辑 收藏

介绍 Spring 3.1 M1 中的缓存功能- 中文版 (转)

posted @ 2012-02-27 10:29 周磊 阅读(113) | 评论 (0)编辑 收藏
最简单的一招是删除"c:/windows/java.exe",win7是在system32目录下,这样就可以修复了
如果不行继续删除
javaw.exe和javaws.exe


posted @ 2012-02-26 13:08 周磊 阅读(434) | 评论 (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 周磊 阅读(869) | 评论 (0)编辑 收藏
http://jautodoc.sourceforge.net/
posted @ 2012-02-10 15:06 周磊 阅读(193) | 评论 (0)编辑 收藏
org.ralasafe.servlet.UserTypeInstallAction
org.ralasafe.servlet.RalasafeController
posted @ 2012-02-10 11:14 周磊 阅读(129) | 评论 (0)编辑 收藏


http://www.hitb.com.cn/web/guest/bbs/-/message_boards/message/13822
posted @ 2012-02-09 19:52 周磊 阅读(168) | 评论 (0)编辑 收藏
SHOW VARIABLES LIKE '%char%'

http://database.ctocio.com.cn/82/12161582.shtml
posted @ 2012-02-09 15:49 周磊 阅读(154) | 评论 (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 周磊 阅读(2845) | 评论 (0)编辑 收藏