java
文章平均质量分 53
zengzhaoshuai
来自大山里的人
展开
-
JFreeChart中文乱码解决方案(方法汇总)
由于JFreeChart组件的版本、操作平台、JDK的设置等因素,在使用JFreeChart组件时可能会出现中文乱码的现象。遇到此问题时,可通过设置文字的字体来解决问题。在此提供以下两种解决此问题的方法。 [b][color=red] 一、设置主题的样式(强烈推荐)[/color][/b] 在制图前,创建主题样式并制定样式中的字体,通过ChartFactory的setChartThe...原创 2011-04-15 14:32:27 · 103 阅读 · 0 评论 -
java 实现数据结构之栈
在学数据结构课程时,对栈的最大特点是是后进先出(First In Last Out),对栈的操作主要是入栈和出栈,判断栈是否为空,计算栈的大小。 栈是一种数据结构,它代表只能在某一端进行插入、删除操作的特殊线性表。对栈而言,允许插入删除的一端是栈顶,另一端则称为栈底。[color=red]1.栈的顺序存储实现:[/color][code="java"]public class...2011-07-10 21:51:30 · 84 阅读 · 0 评论 -
深入JDK源代码之Arrays类中的排序查找算法
最近在暑假实习,没什么任务给我做,不是我不能做,而是还没那资格,毕竟才来了一周多。闲着无事,在网上看看国内的牛公司的招聘要求,想自己能达到他们的要求,准备研究下JDK中的常用类的源代码。今天就来看看java.util.Arrays类。这个类是个数组工具类。主要提供方法sort(),fill(),binarySearch(),还有数组复制等方法。打开源文件,刚超过4千行,不过包括很多注释,那...2011-07-22 09:58:01 · 75 阅读 · 0 评论 -
深入JDK源代码之ArrayList类
[code="java"] public class ArrayListextends AbstractListimplements List, RandomAccess, Cloneable, SerializableList[/code] [color=red][b]接口的大小可变数组的实现。[/b][/color]实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 Li...2011-07-22 11:19:36 · 84 阅读 · 0 评论 -
深入JDK源代码之Observer接口和Observable类实现观察者模式
[color=red][b]一、何为观察者模式?[/b][/color] 观察者模式(有时又被称为发布/订阅模式)是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。[color=red][b]二、使用它它有何好处?[/b][/color]...2011-07-25 11:46:08 · 159 阅读 · 0 评论 -
Java中的transient关键字
transient说明一个属性是临时的,不会被序列化。下面是一个Demo,name声明为 transient,不被序列化[code="java"]package com.zzs.tet;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;im...2011-07-25 14:36:51 · 91 阅读 · 0 评论 -
(转)Java中对象的深复制(深克隆)和浅复制(浅克隆)
[color=red][b]1.浅复制与深复制概念[/b][/color][color=red]⑴浅复制(浅克隆)[/color] 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。[color=red]⑵深复制(深克隆)[/color] 被复制对象的所有变量都含有与原...原创 2011-07-25 20:31:08 · 176 阅读 · 0 评论 -
深入JDK源代码之LinkedList类
[code="java"]public class LinkedListextends AbstractSequentialListimplements List, Deque, Cloneable, SerializableList [/code] 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列...2011-07-26 09:09:08 · 57 阅读 · 0 评论 -
深入JDK源代码之定时操作Timer类和TimerTask类实现
Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。该功能和TimerTask配合使用。TimerTask类用于实现由Timer安排的一次或重复执行的某个任务。[color=cyan]每一个Timer对象对应的是一个线程[/color],因此计时器所执行的任务应该迅速完成,否则会延迟后续的任务执行。 [color=red][b] 一...2011-07-26 14:45:46 · 117 阅读 · 0 评论 -
利用GoogleTranslate API翻译文档和文本
首先下载从[url]http://code.google.com/p/google-api-translate-java/[/url]下载最新的,目前最新的是google-api-translate-java-0.94.jar. 利用谷歌翻译提供的API可以实现文件和文本翻译[code="java"]/** * 2010-10-10 * GoogleTranslate...原创 2011-04-03 20:08:19 · 610 阅读 · 0 评论 -
MemCached安装配置和使用实例
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。 [b][color=red]Memcached是什么?[/color][/b]Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 [b][color=red...原创 2011-04-10 16:23:14 · 74 阅读 · 0 评论 -
JFreeChart中文乱码的解决方法(补充方法二)
使用JFreeChart绘制图表的时候,如果使用默认的字体会导致图标中的汉字显示为乱码。解决方法如下: JFreeChart是用户使用该库提供的各类图标的统一接口,JFreeChart主要由三个部分构成:title(标题),legend(图释),plot(图表主体)。三个部分设置字体的方法分别如下: [b][color=red]1.Title[/color][/b] Tex...原创 2011-04-12 21:36:30 · 183 阅读 · 0 评论 -
(转)Java回调实现
Java回调实现轮询:过10分钟就到女朋友宿舍前面去看她有没有回来。没回来我就再去打游戏。 监听:我搬个凳子坐到她宿舍前,直到她回来。 回调:在她门口贴个条子:回来后请打电话至:011-1231313 Java的接口支持提供了一种获得回调的等价功能的机制。其技巧是:定义一个简单的接口,并在该接口中声明我们要调用的方法。其特点是:一个实例持有一个接口的引用 有个这...原创 2011-12-08 14:38:24 · 93 阅读 · 0 评论 -
Java定时调度 Timer类和TimerTask类
Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。该功能和TimerTask配合使用。TimerTask类用于实现由Timer安排的一次或重复执行的某个任务。每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否则会延迟后续的任务执行。 [color=red]Timer类方法摘要[/color] [code=...2011-07-10 15:38:59 · 108 阅读 · 0 评论 -
Calendar类add()与roll()方法的区别
[color=red][b]JDK API中对这两个方法的说明如下:[/b][/color]abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 abstract void roll(int field, boolean up) 在给定的时间字段上添...2011-07-06 22:45:59 · 394 阅读 · 0 评论 -
Date和Calendar类及日期操作的常用用法
[b][color=red]1.计算某一月份的最大天数[/color] [/b][code="java"]Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); //year 为 int time.set(Calendar.MONTH,i-1);//注意,Calendar...原创 2011-07-06 22:25:04 · 234 阅读 · 0 评论 -
Google搜索结果API被封之后的解决之道
前段时间,由于开发需要使用google的搜索结果,结果怎么弄都报错连接超时,结果后来去官方去查看究竟,结果坑爹呀,google公司在2010年的11月1日就关闭了Webservice基于Soap的API,只提供Ajax访问。下面的这个是解决这个困境的方法:[code="java"]package com.zzs.search;import java.io.BufferedR...2011-06-08 17:03:26 · 822 阅读 · 0 评论 -
java 利用label标记退出多重循环
[size=medium]学过C语言的都知道,有个goto关键字,利用goto关键字可以跳出多重循环或跳到某个运行点。java中保留了goto关键字,但是没有goto的功能,主要是考虑到安全性吧。不过java跳出多重循环我们可以使用label标记,在多重循环的最外面一个循环前加上label: ,在需要的跳出的地方写break label就OK了,需要说明这里的label也可以换成其他的单词,只...2011-09-10 09:16:48 · 350 阅读 · 0 评论 -
jdbc连接mysql oracle sql server数据库的连接字符串
[size=large]jdbc连接mysql oracle sql server数据库的连接字符串,记下免得以后忘记[/size][code="java"]//SQL ServerClass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();conn = DriverManage...原创 2011-09-13 10:41:50 · 168 阅读 · 0 评论 -
java 实现undo和redo操作链表的一种实现
今天在iteye论坛逛,发现有这么一道笔试题目:[size=large][b]实现一个可以增加一个节点、删除某个区间的节点、修改某个节点、undo和redo的链表。[/b][/size] 有个网友atomduan给这道题目的一种实现形式,现在我在他的代码上加了注释,利于理解。[code="java"]import java.lang.reflect.Method;import j...原创 2011-09-14 10:32:25 · 516 阅读 · 0 评论 -
java 实现数据结构之线性表
[b][color=red]应用程序后在那个的数据大致有四种基本的逻辑结构:[/color][/b] [list][*]集合:数据元素之间只有"同属于一个集合"的关系[*]线性结构:数据元素之间存在一个对一个的关系[*]树形结构:数据元素之间存在一个对多个关系[*]图形结构或网状结构:数据元素之间存在多个对多个的关系[/list][color=red][b]对于数据...2011-09-14 11:44:15 · 163 阅读 · 0 评论 -
java 实现数据结构之队列
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作。[color=red]1.队列的顺序存储结构及实现[/color][code="java"]public class SequenceQueue{ private int DEFAULT_SIZE = 10; //保存数组的长度。 private int capa...原创 2011-09-14 15:27:48 · 96 阅读 · 0 评论 -
java实现排序算法之选择排序(直接选择排序、堆排序)
常用的选择排序算法有两种:直接选择排序和堆排序。[color=red][b]一、直接选择排序(Straight Select Sorting)[/b][/color] 也是一种简单的排序方法,它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R{1}~R[n-1]中选取最小值,与R[1]交换,...., 第i次从R[i-1]~R[n-1]中选取最小值,与...2011-09-14 20:44:16 · 107 阅读 · 0 评论 -
java实现排序算法之交换排序(冒泡排序、快速排序)
交换排序的主体操作是对数组中的数据不断进行交换操作。交换排序主要有冒泡排序和快速排序。[color=red][b]一、冒泡排序[/b][/color] 冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相...2011-09-14 21:28:54 · 108 阅读 · 0 评论 -
java实现排序算法之插入排序(直接插入排序、折半插入、shell排序)
插入排序主要包括直接插入排序、shell排序和折半插入等几种排序。这篇文章主要说明直接插入排序、shell排序和折半插入三种排序的java实现。[color=red][b]一、直接插入排序[/b][/color] 直接插入排序(straight insertion sort)的作法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两...2011-09-15 09:29:41 · 137 阅读 · 0 评论 -
java syncronized关键字详解
synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。 [color=red][b] 1. synchronized 方法:[/b][/color]通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如: [code="java"]public synchronized void ac...原创 2011-06-15 15:52:07 · 117 阅读 · 0 评论 -
String,StringBuffer和StringBuild 区别
在不考虑线程安全的前提下,StringBuild性能最高,StringBuffer次之,String比较差.[color=red][b]为什么StringBuffer的性能比String高?[/b][/color]主要原因在于String类是不可变类,任何对String引用指向的字符串作出的修改都会导致生成新的字符串(对象),而对StringBuffer的修改则不会导致新对象的产生。大家都知道...原创 2011-06-15 21:11:05 · 61 阅读 · 0 评论 -
java 实现文件复制的两种方式
文件复制首先我们要考虑的是用字符流还是文件流操作呢? 若我们考虑的仅仅是文本之类的复制,字符流要好些。但是不可能总是文本文件吧,有可能是声音,图像,视频等等,所以使用字节流操作比较好。 [b] [color=red]复制的两种方式[/color][/b] 1.将源文件中的内容全部读取到内存中,并一次性写入到目标文件 2.不将源文件中的内容全部读取到...2011-07-03 10:32:31 · 88 阅读 · 0 评论 -
利用微软翻译API替代被停用谷歌翻译API
众所周知,谷歌已经不支持翻译API1版本了,现在提供了API2的版本,主要是面对企业级用户,需要收费的。无奈之下使用微软提供的翻译API。 一、首先去[url]http://code.google.com/p/microsoft-translator-java-api/[/url],下载相关jar文件,这里有对微软翻译api的详细使用有作详细介绍。[img]http://dl.i...2012-02-13 13:37:05 · 661 阅读 · 0 评论