自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构师专栏

专注于后台技术

  • 博客(128)
  • 收藏
  • 关注

原创 GC优化——对象复用

Java虚拟机的自动内存管理让程序员从频繁出错的内存操作中解放了,不需要像C++一样,每次new之后必须显示的调用delete进行内存释放操作。虽然,我们不用再操心内存泄露这样的bug,因为垃圾收集器可以很好的把垃圾对象清理掉。但是出于性能的考虑,最好不要肆无忌惮的创建对象,在可以复用对象的情况下尽量复用,这样可以减少对象内存的分配,降低gc的频率,有效的优化gc。        在程序运行的

2011-12-19 18:29:14 3448 1

原创 通过python在两台linux服务器间传递文件

通过python -m SimpleHTTPServer可以开启一个http服务器,默认端口是8000,-m选项指示python将module作为脚本运行。这样就可以共享一台linux上的某个文件夹,在对应的文件夹下运行上面的命令,其他linux主机就可以通过http访问这个目录,进行下载。可以用curl http://220.193.1.101:8000/a.tx

2011-10-26 12:45:13 4554 1

原创 windows下通过jconsole/jvisualvm监控linux下jvm状态

Linux下要监控的java进程需要配置参数:-Djava.rmi.server.hostname=192.168.1.101   # Linux主机的ip,在windows输入的ip地址-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=8888    # 通信的端口,windows下输入

2011-10-25 21:34:05 6640 3

转载 eclipse.ini配置eclipse的启动参数

Eclipse的启动由$ECLIPSE_HOME/eclipse.ini控制,如果$ECLIPSE_HOME 没有被定义,则Eclipse安装目录下的默认eclipse.ini会生效。eclipse.ini是一个文本文件,其内容相当于在Eclipse运行时添加到 Ecli

2011-10-18 17:06:42 36107 1

原创 Linux下获得本机ip

java版private InetAddress getLocalIp() throws SocketException{ Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()){ NetworkInterface ni = e.nextEleme

2011-09-30 14:41:38 3119

原创 windows下Nginx和PHP的安装与配置

一.软件准备1.Nginx:http://nginx.org/download/nginx-1.0.4.zip2.php:http://windows.php.net/download/php-5.2.17-Win32-VC6-x86.zip 这里需要注意一下,如果使用Apache或Nginx运行php,要选择VC6的线程安全版本,使用IIS选择VC9版本。所以这里使用前者。3.Run

2011-07-08 13:55:19 2648

原创 类似位图的数据结构BitsSet

      此数据结构最主要用途是对整数进行计数,通过将集合中每个元素指定为1,2或4个bit,以降低空间复杂率。实际使用的是int数组,通过位操作实现将1个int划分为多个包含1,2或4个bit的元素。当元素包含1个bit时退化为位图。      类似于Map,对整数进行计数。将1个int划分成32/(2^n)个包含 2^n 个bit的元素,从而实现对BitsMap的下标进行[0,2^(n+1) )的计数。例如,n=0,则1个int包含32个元素,每个元素包含1个bit。BitsMap中对应每个元素的值为

2011-05-30 16:05:00 1476

原创 插入集--按照顺序插入元素,得到排序集合

在之前的项目中,用到了插入集,具体的需求就是:在稀轴排花中,每个排花方法都有一个评价(方法优劣),找出最优的10个排花方法。插入集就是根据插入排序,在添加元素时,先搜索它的最终位置,然后插入,当所有元素插入完毕后,得到一个排序的集合。适用于的模型:在N个数中找出最大或最小的K个(K个元素需要排序)。只需要设定插入集的容量为K并且定长,然后遍历这N个元素,将他们添加进插入集,最后得到一个排好序的集合

2011-05-06 14:47:00 5374

原创 算法:用小数表示分数

<br />题目要求:用小数形式表示形如N/D这样的分数,N是分子,D是分母。如果是循环小数,将循环节放置在括号中,例如:1/3=0.33333333...=0.(3),123/444=0.27702702702...=0.27(702),4/5=0.8<br /> <br />import java.util.ArrayList;import java.util.Scanner;import static java.lang.System.*;/** * 用小数表示分数N/D,如果出现循环

2011-05-05 16:29:00 1829

原创 Effective Java-Item15

第15条 使可变性最小化      相对于可变对象,不可变对象只拥有一个状态(即初始化对象时的状态),这样的对象更好理解,在出现bug时也容易调试,因为它自始至终都没有变化。在并发环境下,不可变对象不需要线程同步(这就是为什么Erlang——这个为并发而生的语言——中的变量只能被赋值一次),它们是线程安全的,可以被自由的共享。      不可变类的缺点就是每个值都需要一个单独的对象,所以就

2011-05-04 15:11:00 1178

原创 Effective Java-Item13和Item 14

第13条 最小化类和成员的可访问性    降低类和成员的可访问性就是进行信息隐藏或者叫做封装,这可以保证模块之间持有对方最少的信息,降低模块之间的耦合度,使得模块可以独立的开发、测试、优化。这一点也符合面向对象设计原则中的最少知识原则。在实际开发过程中,尽可能使用最小的访问级别可以很好的做到信息隐藏。    类的访问级别按访问性由高到底分别为:    公开(public):可以被任何包

2011-05-03 15:49:00 1266

原创 rails3.0.5 连接MySQL5.1需要注意的问题

<br />1. mysql库的设置<br /> <br />rails3使用bundler管理gems,类似于Maven管理java库的依赖关系。所以一个项目需要的所有gems必须通过bundler来声明,即使系统中包含该gems。如果不进行设置,进行migration时会报错:!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql2'<br />只要让rails包含mysql gem就可以了,方法是在rails项目根目录下的GemFil

2011-04-06 14:19:00 2161

原创 Object.clone()方法

      Object.clone()方法用于对象的拷贝,它会把在堆上的对象所占用的内存空间拷贝一份然后返回,这样就形成一个新的对象(个人理解)。因为每个对象所占的空间内都有一个指向其类数据的指针,也就是指向方法区中类数据(这个类数据可以通过Class对象进行访问,可以简单、直接的理解为就是指向代表其类的Class对象)。JVM会通过这个指针来判断一个对象的类型,由于把整个对象空间拷贝,所以拷贝的对象的类指针也指向相同的类对象,这就确保了obj.clone().getClass()==obj.getCla

2011-03-30 22:27:00 6845 1

原创 字符集编码

<br />     之前在进行网络编程、web开发时经常遇到文本的字符集编码问题,当时也没有深入的了解这方面知识,最近正好研究了一下这方面的东西,争取从本质上搞懂它。<br />     在计算机中任何信息、数据都是以二进制的形式存储的,文本字符串也不例外。所有的字符构成字符集(Character Set),而最终每个字符都对应一个整数,所以说在计算机中存在一个字符集到一组整数的映射,这个映射可以称作编码字符集(Coded Character Set),例如,ASCII、Unicode、GB2312等等都

2011-03-27 15:37:00 1224

原创 理解构建者模式(Builder)

      构建者模式用于构造对象,适合于:当构造对象时需要大量的可选参数。在这方面静态工厂方法和构造器都不是很擅长,因为在这种情况下原本不想设置的参数,也必须传递值。随着参数的增加,这种问题会更加严重,尤其是当参数中包含相同的数据类型时,使用者必须详细阅读API才能防止误传参数。      对于大量可选参数的情况,通常习惯使用重叠构造器或者是使用JavaBeans模式。      场景:考虑使用一个类表示食品的营养成分标签。包含如下几个必需域:每份的含量、每罐的含量以及每份的卡路里;还包含多个可选域:总脂

2011-01-13 10:54:00 2118

原创 麒麟远创面试题3:二叉树中求两个节点的最低公共祖先节点

题目要求:求二叉树中两个节点p,q的最低公共祖先节点

2011-01-11 20:54:00 5048

原创 麒麟远创面试题2:关于重载

麒麟远创面试题2

2011-01-11 17:14:00 2332

原创 麒麟远创面试题1:随机播放CD

题目要求:一个CD机,有一个专门存放CD的CD仓。现在,CD仓中存有n张CD,要求这个CD机可以随机播放这n张CD一次,即要保证每张CD都会播放一次且仅播放一次      在面试之前上网查过麒麟的面试题,其中有这道题,但是当时没在意,也没有仔细想如何做。面试的时候,想到了一个算法,基于分治算法,应该可以很好的解决这个问题。      算法思想:把cd仓看成是一个大小为n的数组a,题目的要求是随机访问a中n个元素一次且仅一次。可以基于分治法将这个问题划分成两个子问题,解决完子问题后再合并子问题。划分子问题如下

2011-01-11 16:10:00 4374 1

原创 服务提供者框架(Service Provider Framework)

<br />      服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就试用了服务提供者框架。<br />      服务提供者的组件:<br />      Service Interface:服务接口,通过抽象统一声明,由服务提供者实现。<br />      Provider Registration API:服务提供者注册API,用于系统注册服务提供者,

2011-01-08 19:52:00 2783

原创 扩展JLabel实现图像的裁剪

      这个组件的功能:      1. 对图片进行裁剪      2. 为每副图像维持一个裁剪操作栈      3. 裁剪的撤销,重做      4. 裁剪时可以遮掩图像,以突出显示裁剪矩形边框      5. 设置遮掩的颜色,裁剪边框的颜色      原理:JLabel持有一个剪裁矩形框,和一个遮掩矩形框。并为JLabel添加MouseListener监听器实现开始裁剪和结束裁剪,MouseMotion事件监听器实现设置裁剪矩形边框的大小。直接上代码:/* * To change this te

2010-07-03 11:00:00 1845

转载 Ext报错:Permission denied to access property 'dom' from a non-chrome context

转载:http://www.cnblogs.com/lwjacky/archive/2009/11/02/1594508.html  这几天在做Ext的时候,用firefug调试程序的时候老是提示错误,错误信息如下:Permission denied to access property 'dom' from a non-chrome context上网google了一下,

2010-07-01 11:15:00 2808

原创 ExtJs-ComboBox的几个问题

1. 假设ComboBox的配置对象中,设置了transform属性,例如: combo: new Ext.form.ComboBox({ typeAhead: true, triggerAction: 'all', lazyRender: true, listClass: 'x-combo-list-small', mode: 'local', store: new Ext.data.Arra

2010-06-30 11:16:00 3883 1

原创 ExtJs报错:targetNode is undefined

出错点在: targetNode.appendChild(this.wrap); 这行。出现这种情况的原因可能有两个:1.是TreePanel中的树节点有相同的id2.就是accordion布局的panel中的TreePanel有相同的id

2010-06-30 10:01:00 2731

原创 Poi创建Excel(入门级)

      通过Poi操作Excel十分方便,将一个Excel抽象为一个Workbook,一个表单页抽象为Sheet,表单中的一行抽象为Row,一行中的一个单元格可以抽象为Cell。HSSF对应的是97-03格式(.xls),XSSF对应的是07格式的(.xlsx)。      Workbook的获取有以下几种方式:      1.可以通过WorkbookFactory,工厂方法         Workbook wb=WorkbookFactory.create(new FileInputStream(f

2010-06-24 13:29:00 4246

原创 服务器端文件路径问题

      服务器端程序经常要读取服务器端文件,比如:数据库配置文件,属性文件等。这时文件路径的读取不再像桌面应用时,只要简单的new File("").getAbsolutePath()就可以获取当前类的运行路径,因为这些类是运行在Tomcat服务器上的,如果采用上述方法得到的路径是%Tomcat root%/bin,而要读取的文件必须在相应的应用的文件夹下,这种方法不可取。

2010-06-18 14:44:00 5318

原创 Ajax动态加载JavaScript文件

      开发应用程序时,经常需要实现模块的按需加载:当用户点击该模块或使用模块功能前才进行加载。采用模块按需加载可以大幅度节省系统资源,对于富客户端尤甚。在用启用该模块功能时,通过Ajax请求相应的JavaScript文件,然后执行该文件进行模块的加载。这里要使用JavaScript的全局函数eval,下面对其进行介绍eval( code )参数 code: 字符串,含有要计算的JavaScript表达式或要执行的语句返回值 计算code得到的值,如果存在的话异常SyntaxError: 说

2010-06-17 21:30:00 4653

原创 XML那点事儿

一. XML简介      XML(Extensible Markup Language,可扩展标记语言)是一个用于构造其他语言的元语言。XML描述了创造这些语言的规则,每种语言都互不相同,但都使用标签来标记内容。XML定义的语言的一个例子是XHTML,相当于是XML的词汇。              

2010-06-08 21:04:00 1543

转载 Antlr

 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://dreamhead.blogbus.com/logs/1583119.html时过境迁, Antlr 3.0已经发布了,请阅读更新后的版本——《探索Antlr(Antlr 3.0更新版)》。简介Antlr(ANother Tool for Language Recognition)是一个工具,它为我们构造自

2010-05-29 17:29:00 1478

原创 Tomcat编译jsp生成Servlet文件的存放位置

Tomcat将jsp编译成servlet后的文件存放在/work/Catalina目录下,例如jsp文件/webapps/hh/h.jsp,编译后/work/Catalina/localhost/hh/org/apache/jsp/h_jsp.javaservlet文件和.class文件都在同一目录下。     控制台报的异常行数是指编译过后的servlet文件,而不是你原来的jsp文

2010-03-03 21:51:00 6808

原创 链表的插入排序

相对于在数组上进行插入排序,链表的插入排序效率会更高一点,更形象(因为的确是插入的)。假设序列a[0..n-1],a[0..j]是已排序的子序列,a[j+1]是待插入的元素。那么数组的插入排序时,不仅需要元素的比较,还要进行元素移动。而链表的插入排序时,仅仅需要通过比较找到插入位置,然后执行插入即可。所以,链表的排序中,插入排序是相对效率较高的排序 void List::insertSort(

2010-01-18 20:09:00 2483

转载 jar打包

java如何打JAR包(转) jar 应用 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar -help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新

2010-01-06 11:26:00 1052

原创 Poi处理Excel时公式不能更新的问题

     使用Poi处理Excel时,发现如果使用Poi编辑了某个单元格A,另一个单元格B是公式并且依赖于这个单元格A,则必须打开Excel,使单元格A获得焦点,然后再移开焦点才能使公式有效。     解决方法是,Poi中提供了org.apache.poi.ss.usermodel.FormulaEvaluator这个接口,实现对公式的更新。其中HSSFFormulaEvaluator, XS

2010-01-06 10:59:00 13582 3

原创 Java操作Excel

     最近搞一个项目需要操作Excel,google了一下,发现有两个第三方开源类库,分别是Jexcel和Poi。粗略地看了一下,jexcel内容不庞大,觉着我只是用一些基本的excel读写功能,它应该能满足要求。下面简要的介绍一下这两个类库。     jexcel:在用jexcel的过程中发现读的速度比较慢,操作也让人很不舒服。而且当excel的格式有问题时,总是无法写入。在网上搜了一下

2010-01-06 10:25:00 1628

原创 日期处理

       java中经常需要处理日期数据,也就是将Date类对象调转化为字符串进行存储、显示等。这里可以Date类的toString()方法,转化为字符串。但是这种方式将生成一个极其复杂的字符串类似于Wed Jan 06 09:35:41 CST 2010,并且想要把这个字符串在转化为Date对象比较麻烦。      还好sun公司提供了java.text.DateFormat这个类,对日

2010-01-06 09:21:00 955

原创 Extjs报错:'this.config[...].width' 为空或不是对象

1、grid:js出错:this.config[...].width 为空或不是对象 ,原因:autoExpandColumn只能是id

2009-10-27 17:02:00 1876 1

原创 Java事件模型学习(2)--实现自己的事件

       当程序的某个模块被调用的时刻不确定,就类似于等待某个事件的发生。这时,可以定义自己的事件进行相应的处理。比如,等待用户的一次输入等。Java的事件模型依赖于委托,通过回调方法进行相应的事件处理。在事件源中,会有fireXXXEvent()就是激活相应的事件,其中会遍历事件源的监听器队列,调用相应监听器的事件处理的回调方法。当某个事件发生时,事件源会调用fireXXXEvent()。实

2009-09-25 20:30:00 2371 1

原创 Android study(1)--Intent

      Intent是Android OS的重要对象,它用于协调各个组件并用来传递异步消息。Intent是一种运行时绑定机制,能够在程序运行的过程中连接两个不同的组件。通过Intent,每个应用程序可以向Android系统发送表达某种请求的消息,Android根据消息的内容选择恰当的组件来响应。      Intent包含6中基本信息,分别为:目标组件名称,Action(动作),Data(

2009-09-10 21:43:00 1166

原创 让JLabel换行显示

JLabel可以解析html,调用setText("abc def ");结果显示为          abc        def

2009-08-31 09:54:00 3493

原创 (JDialog)对话框实现数据交换

      对话框分为模式对话框和无模式对话框。模式对话框就是在弹出对话框后,父组件阻塞直到完成对话框的操作,父组件被激活。无模式对话框就是对话框与父组件并行运行。         JDialog(Dialog owner, String title, boolean modal)     其中modal为true即为模式对话框,false为无模式对话框。只要将要在对话框中显示的内容(可以

2009-08-23 19:55:00 6439

转载 TableCellEditor焦点离开数据丢失问题

http://sailing8036.spaces.live.com/blog/cns!69d05dfd4294f487!513.entry?sa=48687762很多人抱怨Swing的TableCellEditor如果输入数据后,忘记敲回车键就去点击其他按钮或者组件使的editor的焦点离开,会导致输入数据丢失的情况。 一种解决方法是对editor增加focusListener在

2009-08-18 10:21:00 2204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除