显示标签为“学习java”的博文。显示所有博文
显示标签为“学习java”的博文。显示所有博文

2014年3月7日星期五

double四舍五入并保留两位小数的方法

搜了好多double 保留两位小数的方法,就这个靠谱
转自:http://glblong.blog.51cto.com/3058613/1312340

1.只要输出结果
1
2
double x1 = 0.026;
System.out.println(String.format("%.2f", x1));


2.数据转换
1
2
3
4
5
6
7
8
9
10
11
//方案一:
get_double = (double)(Math.round(result_value*100)/100.0)
//方案二:
DecimalFormat df = new DecimalFormat("#.##");
get_double = Double.ParseDouble(df.format(result_value));
//方案三:
get_double = Double.ParseDouble(String.format("%.2f",result_value));
//方案四:
BigDecimal bd = new BigDecimalresult_value();
BigDecimal  bd2 = bd.setScale(2,BigDecimal  .ROUND_HALF_UP);
get_double = Double.ParseDouble(bd2.ToString());




3.只保留两位小数(不含四舍五入)
1
2
double d = 13.4324;
d=((int)(d*100))/100;

2012年6月1日星期五

Hello JSF



基于一个已有的网络工程

拷贝JSF 和支持的jars包到WEB-INF/lib目录

jsf-impl.jar  

jsf-api.jar

jstl.jar  

standard.jar

配置web.xml以使用Faces Servlet

  <servlet>  

        <servlet-name>Faces Servlet</servlet-name>  

        <servlet-class>  

            javax.faces.webapp.FacesServlet  

        </servlet-class>  

        <load-on-startup>1</load-on-startup>  

    </servlet>  

  

    <servlet-mapping>  

        <servlet-name>Faces Servlet</servlet-name>  

        <url-pattern>*.faces</url-pattern>  

    </servlet-mapping>  

创建faces-config.xml


<?xml version="1.0"?>  

 <!DOCTYPE faces-config PUBLIC  

 "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"  

 "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">  

  

 <faces-config>  

    <navigation-rule>  

        <from-view-id>/index.jsp</from-view-id>  

        <navigation-case>  

            <from-outcome>login</from-outcome>  

            <to-view-id>/welcome.jsp</to-view-id>  

        </navigation-case>  

    </navigation-rule>  

  

   

 </faces-config>

在JSP页面中增加 JSF taglib的引用


<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  

 <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>  

 

创建后台bean


package com.capinfo.bean;


public class UserBean {


private String name;  

 

    public void setName(String name) {  

        this.name = name;  

    }  

  

    public String getName() {  

        return name;  

    }  

}



后台bean 在JSF controls中注册(faces-config.xml)

 <managed-bean>  

        <managed-bean-name>user</managed-bean-name>  

         <managed-bean-class>  

             com.capinfo.bean.UserBean  

         </managed-bean-class>  

        <managed-bean-scope>session</managed-bean-scope>  

    </managed-bean>  

增加JSF tags使之与后台bean交互

<f:view>  

        <h:form>  

            <h3>请输入您的名称</h3>  

            名称: <h:inputText value="#{user.name}"/><p>  

            <h:commandButton value="送出" action="login"/>  

        </h:form>  

    </f:view>  



基于一个已有的网络工程
拷贝JSF 和支持的jars包到WEB-INF/lib目录
jsf-impl.jar  
jsf-api.jar
jstl.jar  
standard.jar
配置web.xml以使用Faces Servlet
  <servlet>  
        <servlet-name>Faces Servlet</servlet-name>  
        <servlet-class>  
            javax.faces.webapp.FacesServlet  
        </servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
  
    <servlet-mapping>  
        <servlet-name>Faces Servlet</servlet-name>  
        <url-pattern>*.faces</url-pattern>  
    </servlet-mapping>  
创建faces-config.xml

<?xml version="1.0"?>  
 <!DOCTYPE faces-config PUBLIC  
 "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"  
 "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">  
  
 <faces-config>  
    <navigation-rule>  
        <from-view-id>/index.jsp</from-view-id>  
        <navigation-case>  
            <from-outcome>login</from-outcome>  
            <to-view-id>/welcome.jsp</to-view-id>  
        </navigation-case>  
    </navigation-rule>  
  
   
 </faces-config>
在JSP页面中增加 JSF taglib的引用

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  
 <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>  
 
创建后台bean

package com.capinfo.bean;

public class UserBean {

private String name;  
 
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getName() {  
        return name;  
    }  
}


后台bean 在JSF controls中注册(faces-config.xml)
 <managed-bean>  
        <managed-bean-name>user</managed-bean-name>  
         <managed-bean-class>  
             com.capinfo.bean.UserBean  
         </managed-bean-class>  
        <managed-bean-scope>session</managed-bean-scope>  
    </managed-bean>  
增加JSF tags使之与后台bean交互
<f:view>  
        <h:form>  
            <h3>请输入您的名称</h3>  
            名称: <h:inputText value="#{user.name}"/><p>  
            <h:commandButton value="送出" action="login"/>  
        </h:form>  

CGLIB 代理类 效率

昨天看《Spring 3.x企业应用开发实战》

作者建议将<aop:config>中的proxy-target-class设置为true,默认是false.

也就是<aop:config proxy-target-class="true">

 

理由是:当为false时,spring使用java jdk的java.lang.reflect包中提供的方式来生成代理类

当为true时,spring使用CGLIB包中提供的方式来生成代理类

而代理类执行效率,CGLIB生成的代理类要比jdk生成的代理类高10倍

而生成代理类效率,jdk是CGLIB的8倍

 

所以在使用单例模式的bean ,建议使用CGLIB生成代理类

 

如果使用CGLIB生成代理类,必须引入CGLIB的jar包

 

至于作者怎么得到10倍 8倍的结论,想google一下,结果:


 

2012年5月22日星期二

让Map根据put的顺序排序

org.apache.commons.collections.map 
Class ListOrderedMap

java.lang.Object org.apache.commons.collections.map.AbstractMapDecoratororg.apache.commons.collections.map.ListOrderedMap

All Implemented Interfaces:
java.io.Serializable, java.util.Map, IterableMapOrderedMap

就这个类可以让我们的Map也能像List一样有序了

 

 

参考:http://blog.csdn.net/zxr85/article/details/6274051

2012年4月25日星期三

JVM类加载器

java 虚拟机 类加载器有三种

1 根加载器 

   这个加载器不是用java写的,而是C++,所以用java代码访问不到

   它负责加载jre核心类库 

 

2 扩展加载器 ExtClassLoader

    继承自ClassLoader

   它负责加载ext目录下的类

 

3 程序加载器 AppClassLoader 

    继承自ClassLoader

    它负责加载ClassPath下的类

2010年7月30日星期五

ssh远程登陆tomcat

用ssh远程登陆客户端登陆linux
进入tomcat/logs/文件夹下
键入指令:tail -f catalina.out

退出:Control-Z

2010年7月9日星期五

java.lang.StackOverflowError

java.lang.StackOverflowError
堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。

99%递归没有出口,查吧

2010年6月30日星期三

用dom4j生成xml


01 import java.io.File;
02 import java.io.FileOutputStream;
03 import java.io.IOException;
04
05 import org.dom4j.Document;
06 import org.dom4j.DocumentHelper;
07 import org.dom4j.Element;
08 import org.dom4j.io.OutputFormat;
09 import org.dom4j.io.XMLWriter;
10
11
12 public class SoaToXML {
13
14   
15     public static void execute(int userType,int bianhao){
16         Document document = DocumentHelper.createDocument();
17         document.setXMLEncoding("utf-8");
18         Element root = document.addElement("condition");
19         root.addElement("type").setText(String.valueOf(userType));
20         root.addElement("bianhao").setText(String.valueOf(bianhao));
21         String text = document.asXML();
22         printTest(text);
23         String path="soa_to_xml.xml";
24         if(writeFile(document, path)){
25             printTest("生成xml成功");
26         }else{
27             printTest("生成xml出错");
28         }
29     }
30     public static boolean writeFile(Document document, String fileName) {
31         try {
32
33             if (fileName == null || fileName.trim().equals("")) {
34                 return false;
35             }
36             String path = "f:/" + fileName;
37
38             OutputFormat format = OutputFormat.createPrettyPrint();
39             XMLWriter output = new XMLWriter(new FileOutputStream(
40                     new File(path)), format);
41
42
43             output.write(document);
44             output.close();
45             return true;
46         } catch (IOException e) {
47             e.printStackTrace();
48
49             return false;
50         }
51     }
52     public static void printTest(String content) {
53         System.out.println(content);
54
55     }
56     /**
57      * @param args
58      */
59     public static void main(String[] args) {
60         SoaToXML.execute(0, 1);
61
62     }
63
64 }

2010年6月11日星期五

java面试题


01 import java.util.*;
02 public class Test{
03     public static void main(String[] args){
04         new Child().m();
05     }
06 }
07 class Person{
08     public Person(){
09         System.out.println("Person");
10         m();
11     }
12     public void m(){
13         System.out.println("Person m");
14     }
15 }
16 class Child extends Person{
17     public Child(){
18         System.out.println("Child");
19         super.m();
20     }
21     public void m(){
22         System.out.println("Child m");
23     }
24 }
25
26  输出:
27 //Person
28 //Child m
29 //Child
30 //Person m
31 //Child m

知识点:构造方法调用顺序
方法重载
显式调用父类构造方法必须放在第一行

2009年12月11日星期五

java.lang.InstantiationException

java.lang.InstantiationException

在Struts creating form bean的时候遇到这个异常

在form bean 中加一个无参的构造函数就Ok了

2009年11月5日星期四

J2EE For Weblogic开发中Weblogic.xml文件的配置 (转)

http://www.blogjava.net/zhhp1314520/articles/Weblogic_deploy.html

weblogic Server允许通过设置weblogic应用程序扩展描述符(weblogic.xml)配置jsp容器,
该文件通常位于web应用程序的web-inf目录下。一般不通过修改weblogic文件直接配置,
而是通过控制台配置该文件,在Deploments-->web Application-->defaultWebApp中配置。
可在开发和生产环境中配置不同的信息。
主要配置信息:
compilerSupportsEncoding //true--支持使用字符集
encoding //指定jsp文件的默认字符集,如gb2312;
vervose //是否将调试信息输出到浏览器和日志;
keepgenerated //是否让编译jsp文件产生的.java文件持续存在;
Page Check Seconds //正数--在以秒为单位的时间间隔检查jsp文件是否发生了修改,如果是则重新编译;
           0--在每一个请求检查jsp;
           -1--不对jsp文件进行检查。
Precompile //true--在weblogic服务器启动时自动编译所有的jsp。
Debug Enable //true--是否允许调试。

Weblogic .xml

<? xml version="1.0" encoding="GB2312" ?>
<! DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
< weblogic-web-app >
     <!--
         为web.xml所定义角色赋值
         如果是Weblogic 8.1 SP2 或者之前的版本,可以不定义security-role-assignment
         如果是SP3,必须手工添加所有principal(角色或角色组);
         详细介绍请参考 PAFA3开发设计指南 文档 。
      -->
     < security-role-assignment >
         <!-- role-name 必须跟web.xml中security-role标记下的role-name取值相同 -->
         < role-name > pafaDemoUser </ role-name >
         <!-- principal-name 必须是UM中定义的角色或者角色组,不能是用户 -->
         < principal-name > r_usermanager_rm_user </ principal-name >
         < principal-name > p_g_rmtest03_myopr </ principal-name >     
         < principal-name > Administrators </ principal-name >     
     </ security-role-assignment >

     < jsp-descriptor >
         < jsp-param >
             < param-name > pageCheckSeconds </ param-name >
             < param-value > 1 </ param-value >
         </ jsp-param >
         < jsp-param >
             < param-name > compilerSupportsEncoding </ param-name >
             < param-value > true </ param-value >
         </ jsp-param >
         < jsp-param >
             < param-name > encoding </ param-name >
             < param-value > GB2312 </ param-value >
         </ jsp-param >
         < jsp-param >
             < param-name > verbose </ param-name >
             < param-value > true </ param-value >
         </ jsp-param >
         < jsp-param >
             < param-name > printNulls </ param-name >
             < param-value > false </ param-value >
         </ jsp-param >
         < jsp-param >
             < param-name > keepgenerated </ param-name >
             < param-value > true </ param-value >
         </ jsp-param >
     </ jsp-descriptor >
</ weblogic-web-app >