java基础
iteye_8770
这个作者很懒,什么都没留下…
展开
-
java小数点处理BigDecimal.setScale使用
BigDecimal.setScale用于格式化小数点setScale(1)表示保留以为小数,默认用四舍五入方式setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4setScale(1,BigDecimal.ROUND_HALF_UP)...原创 2011-06-16 18:13:23 · 414 阅读 · 0 评论 -
MappedByteBuffer小结
java的内存映射文件有如下特点: 1,使用虚拟内存,因此分配(map)的内存大小不受JVM的-Xmx参数限制,但是也是有大小限制的,首先他理论上不能超过Integer.MAX_VALUE也就是32位操作系统的2G,其次,其实际值在不用操作系统还不一样,在win7 32位操作系统下,他不能超过1.5G,具体多少,没测出来,也不知道什么原因。 2, 对应读大文件,当文件超出1.5G限...2012-07-28 17:27:31 · 438 阅读 · 0 评论 -
卸载JDK导致applet不能显示
最近做测试,需要卸载JDK,卸载后发现JAVA UPDATE不能卸载,于是就在注册表把相关的信息删除,然后就发现IE中的JAVA WEB不见了,每次打开APPLET的网页时都提示下载JDK,但有每次都不能安装,超郁闷。后来用360强力卸载JAVA UPDATE,无果。最后搞了 Windows Install Clean Up来删除多有JDK相关的安装,然后重新安装JDK和JRE,IE中的J...原创 2011-11-09 17:59:13 · 145 阅读 · 0 评论 -
将JAR打包成EXE,并且生成安装文件
桌面程序项目完成后,需要将项目打包成安装包在WINDOWS下运行,用户安装后直接运行EXE即可运行JAVA写的系统。我使用了JSMOOTH 0.9.9.7来将JAR生成EXE,然后再用inno setup 5.0将EXE,绿色的JRE,MYSQL打包成安装包,用户安装时执行选择安装路径就可以完成所有安装,安装后弹出配置界面让用户选择是否在本地安装MYSQL还是使用远程的MYSQL,然后...原创 2011-11-10 15:21:11 · 162 阅读 · 0 评论 -
在文件中间插入数据
目前没有什么好方法能直接在文件中间插入数据.都是采用先将插入位置之后的所有原文件数据读取出来,然后再这个位置写入新的数据,然后再在后面补上原来的内容...原创 2011-11-10 15:55:36 · 603 阅读 · 0 评论 -
B/S系统打印
B/S系统打印都很费劲,到目前我还没找到一个完善的方法,以下是我知道的方法: 1、使用windows.print 将所有数据输出到页面,然后调用windows.print()方法,可以使用onbeforeprint和 onafterprint调整网页,如隐藏按钮等。用户按打印即可。 这个方法只能满足简单的需求,无法满足复杂的报表打印,发票打印等,而且打印时会有页眉...原创 2011-11-10 17:00:46 · 317 阅读 · 0 评论 -
多线程笔记
1、synchronized以线程为单位,不是以调用为单位,通过线程中,如果这个线程已经获得了锁,则这个线程中的所有函数都获得锁,可以进入这个锁锁定的范围,也就是reentrancy。如 public class A {public synchronized add(){};} public class B extends A{public synchronized add(){s...原创 2011-11-28 10:47:57 · 83 阅读 · 0 评论 -
基本类型的初始化值
各基本类型在没初始化时,默认如下值boolean init=falseint init=0float init=0.0double init=0.0long init=0char init= String init=null原创 2011-11-28 11:05:49 · 101 阅读 · 0 评论 -
JVM内存解析
参考:http://vanadiumlin.iteye.com/blog/1267857原创 2011-11-28 17:10:36 · 67 阅读 · 0 评论 -
JVM内存分析工具
参考jvm内存分解: http://liangpzhmz.blog.163.com/blog/static/101716295200961321333915/ http://blog.csdn.net/fenglibing/article/details/6298326 http://blog.csdn.net/fenglibing/article/details/...原创 2011-11-28 17:17:51 · 82 阅读 · 0 评论 -
Permanent会被GC
http://fallenlord.blogbus.com/logs/57543373.html 字符串字面量在编译期就会被编译器直接植入.class文件常量池中,并在运行期被JVM当做常量加载,所有存储超过一个字节大小的基本类型都会被编译器优化成这样,这点用javap反编译看下汇编如何压栈的就知道了。关键问题是,常量池在运行期是放在堆里的还是放在栈里的?——答案是都不在...原创 2012-04-23 17:27:09 · 86 阅读 · 0 评论 -
jstat 详解
jstat 详解jstat 1. jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。 其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。 2.jstat -gccapacity pid ...原创 2012-07-28 12:56:31 · 290 阅读 · 0 评论 -
NIO的内存映射文件一些问题
见http://yipsilon.iteye.com/blog/298153 我觉得mappedbytebuffer更适用于文件较小,但是有些字节需要反复读取得情况 大约是这样的,对于计算一个大文件的MD5来说,每个字节都只读取一次,映射到内存应该是不会快的。对于特别小的文件,javadoc是这么说的:引用For most operating systems, mapp...原创 2012-07-28 12:51:26 · 104 阅读 · 0 评论 -
spring javamail使用
spring提供了java mail插件,很方便发送邮件。1、spring配置文件增加如下配置[code="java"] true 25000 ...2011-04-20 16:11:08 · 261 阅读 · 0 评论 -
打包成jar后的文件读取问题
打包成JAR后的配置文件读取方式和没打包的不一样,为了兼容两种模式,1、spring配置文件中引用属性文件方法[code="java"]bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> ...原创 2011-06-16 18:22:07 · 562 阅读 · 0 评论 -
自定义jtable单元格编辑器
jtable每行每列的单元格的编辑器都可以自定义,方法如下:继承 DefaultCellEditor 然后重新 [code="java"]public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column){...原创 2011-06-16 18:35:53 · 856 阅读 · 0 评论 -
自定义jtable单元格显示方式
自定义jtable显示方式,需要继承DefaultTableCellRenderer然后重写[code="java"]public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int colum...原创 2011-06-16 18:41:31 · 239 阅读 · 0 评论 -
监听jtable单元格内容改变事件
对话框监听jtable内容是否改变,改变后,在用户退出时提示是否保存很有用,方法如下:[code="java"]table.getModel().addTableModelListener(new TableModelListener() { @Override public void tableChanged(TableModelEvent e) {...2011-06-16 18:45:57 · 3102 阅读 · 1 评论 -
jtable选中指定的行和选中事件监听
选中行table.getSelectionModel().setSelectionInterval(startRowIndex, endRowIndex);监听选择事件[code="java"]table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ @Overri...2011-06-16 18:49:23 · 8034 阅读 · 4 评论 -
java计算两个日期间隔方法
[code="java"]SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = null; try{ d1 = formatter.parse(input); }catch(ParseException e){ out.println("unparseable...原创 2011-06-24 16:55:18 · 118 阅读 · 0 评论 -
SimpleDateFormat在多线程下不安全
在工具类中有2个时间格式化和字符串转换成时间的函数,使用了类静态变量SimpleDateFormat,具体代码如下:[code="java"]public class Utils{ public static SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");public static Stri...原创 2011-07-05 13:42:22 · 108 阅读 · 0 评论 -
wait和notify使用方法
原则是:调用wait的对象必须是synchronized中的对象,而调用notify/notifyAll的对象也必须是synchronized中的对象[code="java"]public static Thread thread;synchronized(thread){ thread.wait();//不能是其他对象wait,必须是synchronized中指定的对象...原创 2011-07-05 13:47:33 · 113 阅读 · 0 评论 -
多线程下谨慎对待基类(抽象类)中的成员变量
有这么个需求:做开发一套在oracle和mysql中做业务数据复制,其中具体的业务还没确定,目前需要开发一套框架,需要在业务确定后,只需做少了开发即可实现,我使用了ibatis+spring,以后扩展时,只需增加ibatis的配置文件即可,而配置文件中的每个ID都是由以下规则生成:业务识别码+新增/删除等统一的后缀。如下结构:1、DAO部分[code="java"]...2011-07-06 22:13:33 · 797 阅读 · 0 评论 -
java运行时获取java类所在目录的properties文件
[code="java"]public final class Config{ private static String fileSeparator = System.getProperty("file.separator"); static { try { InputStream in = null; String current...2011-04-20 15:36:39 · 135 阅读 · 0 评论 -
JAVA使用HttpUrlConnection实现自动上传文件
首先,实现自动上传文件方式有很多种,其中就有SOCKET,RMI,HTTP等,考虑到服务器本身是个网站服务器,使用SOCKET和RMI需要单独开发端口,HTTP则可以直接融合到网站中,也没有特殊的要求,所以采用了HTTP方式。HTTP方式又有好几种,其中就有hessian和HttpUrlConnection。使用...2012-05-14 12:04:24 · 602 阅读 · 0 评论