java
文章平均质量分 70
aguangs
这个作者很懒,什么都没留下…
展开
-
Java对象的初始化顺序(转)
Java对象的初始化顺序有这样的一段代码: public class Test { static{ System.out.println("静态块"); } { System.out.println("初始化模块"); } public Test() { System.out.println("构造方法"); } public static void show(){ Syste...原创 2010-08-13 15:23:16 · 80 阅读 · 0 评论 -
Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着 java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。这些...原创 2010-08-13 15:25:27 · 82 阅读 · 0 评论 -
java常量池[转]
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 3. String str=”kvill”; String str=new ...原创 2010-08-19 23:35:35 · 79 阅读 · 0 评论 -
性能优化
(1)jdbc性能优化jdbc程序的性能主要由两个因素决定,一是数据库本身的性质,另一个是与数据库相对独立的jdbc应用程序接口(api)的使用.这里说的是如何正确使用jdbc编程接口,以获得更好的性能.jdbc主要优化有:1.选择正确的jdbc驱动程序2.Connention的优化 使用连接池来管理Connection对象3.Statement的优化 使用批量更新等4.Result的优化 正...原创 2011-04-14 16:10:40 · 121 阅读 · 0 评论 -
双缓冲技术
我们很多用Java中的g.drawImage()方法导入图像时,如果我们将当前窗口转变成非当前窗口状态,再从非当前窗口恢复到当前窗口状态,有时,某些绘制好的图像会消失,除非我们重新刷新窗口,显示才会恢复正常。此外,当我们移动窗口或者其他的窗口在上移动的时候,图像会有些闪烁。这是怎么一回事呢?这就要涉及到Canvas中的paint方法的绘图机制了。产生这种现象的主要原因是:1、由于在显示所绘制的...原创 2010-08-20 21:00:42 · 113 阅读 · 0 评论 -
打造绚丽的Swing slider
我们大多数的时候,都在抱怨Swing界面简陋,其实说这话的大多数和我一样都是一个Swing的新手,或者说是一个桌面开发的新手,诸如瑞星那样的应用其实可见也没几个是原生态的Windows的桌面控件,先不谈我们可以选择look&feel来改变我们的主题,甚至实现office2007的那样的效果,Swing本身的MVC模式就为我们提供了无限的可能;在上一篇文章中我们实现了按钮的改头换面,其实那种...原创 2010-08-20 22:18:04 · 175 阅读 · 0 评论 -
swing paint
Swing中实现paint()的3个要素是调用3个分离的回调方法:◆paintComponent()◆paintBorder()◆paintChildren()Swing部件的子类,如果想执行自己的绘画代码,应该把自己的绘画代码放在paintComponent()方法的范围之内。(不要放在paint()里面)。...原创 2010-08-20 22:41:29 · 383 阅读 · 0 评论 -
paint repaint paintComponent update
其实java里设置属性后会导致重绘的,只不过由于这个重绘事件也被放在事件派发线程里的,因此就导致了事件派发线程被Idle了,要避免这种情况,将这个堵塞动作放到另外的线程里面完成。 repaint是出发重绘动作,当调用repaint后,会通知repaintManager增加一个重绘区域,repaintManager在一定条件下会合并一些重绘区域,然后派发一个绘制动作到事件派发...原创 2010-08-20 22:44:25 · 236 阅读 · 0 评论 -
网络爬虫
package com.heaton.bot;import com.heaton.bot.*;import java.net.*; /** * The SpiderWorker class performs the actual work of * spidering pages. It is implemented as a thread * that is created by the spi...原创 2010-08-20 23:41:36 · 98 阅读 · 0 评论 -
Java中移位操作符的运算规则
Java中的移位,如果是short,char,byte的话,都会转换成int的形式再进行移位的。试看:1.) byte a = 27;// 转换成int为 00000000000000000000000000011011 byte b = -1;转换成int为 11111111111111111111111111111111int g = a >> 1;// 有符号...原创 2010-08-21 23:37:33 · 78 阅读 · 0 评论 -
深入理解按位异或运算符
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0例如:10100001^00010001=10110000按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数-任何数取反(3) ...原创 2010-08-21 23:40:11 · 129 阅读 · 0 评论 -
使用JDBC时Class.forName()的作用[转]
使用JDBC时,我们都会很自然得使用下列语句: java 代码 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; String user = ""; ...原创 2010-08-22 01:25:32 · 92 阅读 · 0 评论 -
xml和java Bean的直接转换,Xmap
最近项目中用到了xml和java bean的转换 用到xml的时候我们需要遍历解析。。。然后将解析的值放入声明好的java bean,过程很痛苦,结果很美好 我们能不能直接从xml转化到java bean呢,或者直接成java bean转化到xml呢? 答案是OK的 使用jar包:org.heibo.xbean 写个小例子 XML Xml代码 <?xml version=...原创 2010-08-22 11:25:53 · 107 阅读 · 0 评论 -
用ASM为类动态增加属性
通过程序修改 .class 文件! 下面这个是用 ASM 工具为 Student 类添加一个 public String 类型的 address 属性: 1,需要添加属性的原始类:Student.java Java code public class Student { private int age; private String name; pub...原创 2010-08-22 11:34:57 · 508 阅读 · 0 评论 -
JFC 中绘制方法 paint(Graphics g) 和 paintComponent(Graphics g) 的区别(转)
AWT 和 Swing 中组件的绘制方式不同,绘制方法的实现也有区别。AWT 中组件重绘时先调用 update(Graphics g) 清除以前绘制的,再调用 paint() 方法里进行绘制,所以在 AWT 组件里重绘时,只要简单的覆写 paint() 方法就可以了。而在Swing 中,组件绘制 paint() 方法会依次调用 paintComponent(),paintBorder(),...原创 2010-08-23 09:07:05 · 223 阅读 · 0 评论 -
基于的Swing图形界面开发工具的实现案例(转自WilliamChen)
对于未知技术的原理,我总喜欢自己想像它是如何实现的。我上学时互联网搜索技术还没有怎么流行。大家学习新技术的方法,总是第一去查教科书,第二去找论 文,第三去问师兄。而我想知道的技术往往都是教科书上找不到,论文中很少提及的,师兄们很少去想的事情。于是很多时候就自己想像它们是如何实现的。 图形界面设计技术对我来说就是这样。我很早以前就对这种技术很感兴趣,但是能够查找到的资源很少。我常常自己冥想图...原创 2010-08-23 09:20:12 · 330 阅读 · 0 评论 -
netbeans添加新组件
Tools -> Palette Manager -> Swing/AWT Components 会打开 Palette Manager 对话框原创 2010-08-23 10:09:17 · 347 阅读 · 0 评论 -
Swing框架之Renderer之一
Swing组件根据其所操作的数据类型分为两种,一种是标量数据类型的组件,一类是复合数据类型的组件。标量数据类型的组件操作的是基本类型的数据,如字符串、布尔、数字等,此类型组件包括JTextField、JCheckBox、JLabel、JButton等。复合数据类型的组件操作的是诸如向量、矩形和非线形等类型的数据。向量数据类型的组件有JComboBox、JList,矩形数据类型的组件有JTable,...原创 2010-08-23 10:54:48 · 108 阅读 · 0 评论 -
AWT和Swing中的绘画[转]
Painting in AWT and SwingGood Painting Code Is the Key to App PerformanceBy Amy Fowler在图形系统中, 窗口工具包(windowing toolkit)通常提供一个框架以便相对容易地创建一个图形用户接口(GUI),在正确的时间、正确的屏幕位置显示一个正确的图像位。AWT (abstract windowin...原创 2010-08-23 12:51:06 · 150 阅读 · 0 评论 -
编程实践笔记{Java 线程 并发处理 Webservice}
1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变量是final类型的 c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易.3, 编写多线程程序, 首先保证它是正确的, 其次再考虑性能.4, 无状态或只读对象永远是线程安全的.5, 不要将一个共享变量裸露在多线程环境下(无同步或不可变性保护)6, 多线程环境下的...原创 2010-08-23 22:47:09 · 114 阅读 · 0 评论 -
Java JDK1.5 线程池使用[转]
java线程池Java JDK1.5 线程池使用一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue<...原创 2010-08-23 22:58:15 · 82 阅读 · 0 评论 -
java.util.concurrent包(并发编程常用工具类)
转 http://fhd001.iteye.com/blog/480295java.util.concurrent 软件包 java.util.concurrent 的描述 在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类,没有这些类,这些功能会很难实现或实现起来冗长乏味。下面简要描述主要的组件。另请参阅 locks ...原创 2010-08-23 23:01:03 · 243 阅读 · 0 评论 -
Java 理论与实践: 线程池与工作队列
详细 http://www.ibm.com/developerworks/cn/java/j-jtp0730/index.html#main原创 2010-08-23 23:03:50 · 62 阅读 · 0 评论 -
annotation(注解) 详解
Annotation(注解)Annotation对于程序运行没有影响,它的目的在于对编译器或分析工具说明程序的某些信息,您可以在包,类,方法,域成员等加上Annotation.每一个Annotation对应于一个实际的Annotation类型.1 限定Override父类方法@Override java.lang.Override是J2SE5.0中标准的Annotation类型之一,它...原创 2010-08-23 23:09:47 · 226 阅读 · 0 评论 -
内部类之匿名内部类
匿名内部类必须extends类或implements接口,否则编译器不认识.它是没有类名的,在定义时显示的是它所继承的父类或 接口的名字.一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。例:public class Parce16{ public Contents cont(){ return new Cont...原创 2010-08-23 23:12:16 · 102 阅读 · 0 评论 -
内部类之局部内部类
局部内部类1 在局部内部类前不能用修饰符public和private,protected. 2 可以定义与外部类同名的变量 如果内部类没有与外部类同名的变量,在内部类中可以直接访问外部类的实例变量 如果内部类中有与外部类同名的变量,直接用变量名访问的是内部类的变量,用this.变量名访问的也是内部类变量. 用外部类名.this.内部类变量名访问的是外部类变量...原创 2010-08-23 23:13:54 · 113 阅读 · 0 评论 -
重写方法声明异常的问题
重写方法声明异常的问题========================================================================================在讲这个问题之前,先说一下重载与重写. 关于重载怎么区分就不说了,这里只想说明:不仅可以在同一个类中重载多个方法,而且可以在子类中 继续重载. 关于重写,只能是子类中重写父类中的方...原创 2010-08-23 23:15:55 · 233 阅读 · 0 评论 -
String关于intern()方法
关于String的intern()方法,我们先看看API的说明:返回字符串对象的规范化表示形式。 一个初始为空的字符串池,它由类 String 私有地维护.当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。 它...原创 2010-08-23 23:20:30 · 89 阅读 · 0 评论 -
带标签的break与continute
标签语句是在某个语句前面加上个标识符以及一个冒号 . 标签在 break 与 continue 语句中会被使用到 . Break+ 标签 : 跳出标签所标注的那个语句 , 然后去执行后续语句 . Continue+ 标签 : 停止 continue 语句的后续语句的执行 , 跳到标签所标注的语句去执行下一循环 . 测试代码 /** ...原创 2010-08-23 23:22:20 · 219 阅读 · 0 评论 -
原子量
所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题,但这样太麻烦。Java5之后,专门提供了用来进行单变量多线程并发安全访问的工具包java.util.concurrent.atomic,其...原创 2010-08-27 23:13:03 · 205 阅读 · 0 评论 -
synchronized
在多线程的情况下,由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 s...原创 2010-08-27 23:37:25 · 76 阅读 · 0 评论 -
用RMI开发基于Java的企业分布式应用
摘 要 由于Java具有跨平台、代码可移植性、安全高效等广泛而强大的功能,因而在开发网络分布式应用的时候,可以用它自身的机制实现分布式计算,一种基于Java的远程方法调用(RMI)为我们开发企业分布式应用提供了行之有效的解决方案。 关键词 Java RMI 企业分布式应用 概述 随着电力企业信息化建设的不断深入和发展,企业内部和企业与企业之间对信息、对数据的交换量大大增加,这些信息与数据越...原创 2010-08-28 16:20:54 · 135 阅读 · 0 评论 -
RMI vs Socket 比较
RMI技术比较socket的网络编程主要有以下几个方面: 第一、.RMI是面向对象的,而后者不是。 第二、.RMI是与语言相绑定的。比如当你使用Java RMI技术的时候,客户端与服务器端都必须使用Java开发。而socket的网络编程是使用独立于开发语言的,甚至独立于平台。基于socket的网络编程,客户端与服务器端可以使用不同开发语言和不同的平台。 第三、从网络协议栈的观点来...原创 2010-08-28 16:24:51 · 149 阅读 · 0 评论 -
面试题1
1. interface 和 abstract 的区别?abstract 可不可以继承 interface, interface 可不可以继承 interface?答案:一个是接口,一个是虚函数 java中的接口相当C++中纯虚函数 也就是一个也不实现,具体是在子类中实现,这体现了多态性 同时java接口也是java实现多重继承的一个方法 1.interface的所有函数...原创 2010-08-30 21:15:10 · 99 阅读 · 0 评论 -
java.lang.OutOfMemoryError总解
1).java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space 从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Cl...原创 2010-08-31 08:54:42 · 76 阅读 · 0 评论 -
JAVA文件中获取该项目的相对路径
在JAVA文件中获取该项目的相对路径1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。 相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录...原创 2010-08-31 12:13:45 · 832 阅读 · 0 评论 -
synchronized 与lock
JDK 5.0 为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。例如,java.util.concurrent.lock 中的类 ReentrantLock 被作为 Java 语言中 synchronized 功能的替代,它具有相同的内存语义、相同的锁定,但在争用条件下却有更好的性能,此外,它还有 synchronized 没有提供的其他特性。这是否意味着我们应当忘记 synchron...原创 2010-09-02 16:16:11 · 86 阅读 · 0 评论 -
请教一个关于java多线程的问题
如果一个线程进入了一个同步块或者同步方法,在执行的过程中如果抛出了异常,那这个线程会不会释放被同步对象上的锁?这个问题问的好。 如果你用的是jdk1.4或者以下版本,用的是synchronized同步块,那么如果一个线程调用同步方法的时候出现了异常,那么不会释放锁,会进入死锁状态。jdk1.5以上的版本引入了新的处理方法:lock。Lock是一个接口,它位于Java 5.0新增的java.ut...原创 2010-09-02 17:11:43 · 108 阅读 · 0 评论 -
Java线程:新特征-条件变量
条件变量是Java5线程中很重要的一个概念,顾名思义,条件变量就是表示条件的一种变量。但是必须说明,这里的条件是没有实际含义的,仅仅是个标记而已,并且条件的含义往往通过代码来赋予其含义。这里的条件和普通意义上的条件表达式有着天壤之别。条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newConditi...原创 2010-09-02 17:41:00 · 74 阅读 · 0 评论 -
(转)深入研究ReentrantLock(重入锁)之引出话题篇
关键字: 线程 转自:http://www.crabone.com/index.php/2009/05/30/291.html 一直以来都想好好研究下ReentrantLock,她的独到魅力令我屡试不爽,无奈网上实在是没有太多的资料可以参考,于是自己开始深入研究它的内部实现机制,经过数天的研究,终于有点心得体会升华了,记录之…… synchronized原语和Reentrant...原创 2010-09-02 22:31:03 · 111 阅读 · 0 评论