自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 给Java类填入默认值

项目背景:录接口数据。当时的原材料是Java源代码,产出是RAP文档。在可预见的未来,Controller代码中接收一个VO,返回一个VO。OK,就是这两个对象,我先把它们序列化成JSON,然后在RAP中导入。过程中发现需要填各种数据类型的默认值。我们都知道,任何复杂的对象都是由基本数据类型构成的。所以,这个程序理想状态比较简单,只需要将VO的所有域中是基本数据类型的直接填值,其它类型递归处理...

2016-03-22 12:11:38 3310

原创 Log4j学习

这不是一篇细致的总结,只是几个零星的知识点。 Logger之间的继承关系与类继承关系保持一致,根Logger由getRootLogger()来获得。 Logger的输出级别:Debug < Info < Warn < Error <Fatal Logger.setLevel(Level level)设置Logger级别。只有当Logge...

2012-12-20 18:03:13 97

原创 Java异常处理

正确关闭资源的方式: Object src = new Object(); Object desc = null; ObjectOutputStream oos = null; ObjectInputStream ois = null; try { oos = new ObjectOutputStream(new FileOutputStream(...

2012-12-17 14:31:28 88

原创 Switch和for表达式细节

程序在其它地方使用enum值时,通常应该使用枚举名作为限定,即【枚举名.枚举值】;但在case分支中访问枚举值时不能使用枚举类名作为限定。 大部分时候,如果循环体只包含一条语句,那么就可以省略循环体的花括号;但如果循环体只包含一条局部变量定义语句,那依然不可以省略循环体的花括号。例: for (int i = 0; i < args.length; i++) { ...

2012-12-09 11:09:41 123

原创 访问一个类的静态field

当某个线程视图访问一个类的静态field时,根据该类的状态可能出现如下4种情况: 该类尚未被初始化:当前线程开始对其执行初始化。该类正在被当前线程执行初始化:这是对初始化的递归请求。(只能使用前面定义的静态变量)该类正在被其它线程执行初始化:当前线程暂停,等待其他线程初始化完成。(这里可能造成死锁)这个类已经被初始化:直接得到该静态field的值。(保存在Permanent代...

2012-12-09 10:56:07 149

原创 多线程与同步

继承Thread类来创建线程类,重写run()方法作为线程执行体的坏处: 线程类继承了Thread类,无法再继承其它类;因为每条线程都是一个Thread子类的实例,因此多个线程之间共享数据比较麻烦。当程序调用线程对象的run()方法时,与调用普通Java对象的普通方法并无任何区别,因此绝对不会启动一条新线程。 Java语法规定,任何线程进入同步方法、同步代码块之前,必须...

2012-12-08 21:10:20 116

原创 String对正则表达式的支持

支持正则表达式的方法:boolean matches(String regex)String replaceAll(String regex, String replacement)String replaceFirst(String regex, String replacement)String[] split(String regex)String[] split(...

2012-12-08 19:08:20 120

原创 泛型的类型擦除

当把一个具有泛型信息的对象赋给另一个没有泛型信息的变量时,所有在尖括号之间的类型信息都将被丢弃。这种擦除不仅会擦除使用该Java类时传入的类型实参,而且会擦除所有的泛型信息,也就是擦除所有尖括号里的信息。import java.util.ArrayList;import java.util.List;public class ErasureTest { publ...

2012-12-08 18:55:05 92

原创 System.identityHashCode(Object obj)

System提供的identityHashCode()静态方法用于获取某个对象唯一的hashCode值,这个identityHashCode()的返回值与该类是否重写了hashCode()方法无关,只有当两个对象相同时,它们的identityHashCode值才会相等。...

2012-12-08 16:16:01 157

原创 Java内存回收

  基本上,可以把JVM内存中的对象引用理解成一种有向图,把引用变量、对象都当成为有向图的顶点,将引用关系当成图的有向边,有向边总是从引用端指向被引用的Java对象。因为Java所有对象都是由一条一条线程创建出来的,因此可以把线程对象当成有向图的起始顶点。采用有向图来管理内存中的对象具有较高的精度,但缺点是效率较低。当一个对象在堆内存中运行时,根据它在对...

2012-12-08 11:07:45 94

原创 Java集合框架

Java集合框架 HashMap和HashSetHashMap在底层将key-value对当成一个整体进行处理,这个整体就是一个Entry对象。HashMap底层采用一个Entry[]数组来保存所有的key-value对,当需要存储一个Entry对象时,会根据Hash算法来决定其存储位置(indexFor方法);当需要取出一个Entry时,也会根据Has...

2012-12-06 15:27:09 83

原创 Java内存分配

变量可大致分为局部变量和成员变量。局部变量分为形参、方法内的局部变量和代码块内的局部变量(后两者必须显示初始化),作用时间短暂,它们都被储存的方法的栈内存中。类内定义的变量被称作成员变量,根据有无被static关键字修饰分为非静态变量(实例变量)和静态变量(类变量)。Static只能修饰在类里定义的成员部分,包括成员变量、方法、内部类、初始化块、内部枚举类,不能修饰外部类,不能修饰局部变量、局...

2012-11-30 23:44:33 72

原创 Java数组

小小的数组,知识还真不少! Java数组是静态的,与之相对的是JavaScript的动态数组。 提到Java数组,往往会提到两个概念:数组变量和数组对象。数组变量只是一个引用变量,而数组对象就是保存在堆内存中的连续内存空间。对于数组变量来说,它并不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。对数组对象的初始化有以下两种方式:l  静态...

2012-11-28 10:00:46 64

原创 对云存储的一点认识

云存储是在云计算概念上延伸和发展出来的一个新的概念。关于云计算我在培训机构听说过,但没有参与到那个项目组,现在想起来很可惜。今天,就根据百度百科和前不久校长的一次讲座对云存储谈一二百字的认识。首先,先谈谈云计算的本质。相对于现代计算机将并行计算转化为串行计算的本质而谈,云计算恰恰将计算机一贯的串行计算转化为并行计算。这其中不免涉及到不止一台服务器完成计算,因此在云计算的概念里网络也包含在内...

2012-05-26 15:28:22 847

原创 标准模板库STL

STL的最主要的两个特点:数据结构和算法的分离,非面向对象本质。访问对象是通过象指针一样的迭代器实现的;容器是象链表,矢量之类的数据结构,并按模板方式提供;算法是函数模板,用于操作容器中的数据。由于STL以模板为基础,所以能用于任何数据类型和结构。  我们常用到的STL容器有vector、list、deque、map、multimap、set和multi...

2012-03-10 23:48:19 79

原创 邻接矩阵表示图的深度优先算法-堆栈实现

 对于邻接矩阵表示的图做深度优先搜索用递归的方式实现起来代码简介,也好说明问题。递归函数是:void DFSM(MGraph *G,int i) { int j; printf("深度优先遍历结点: 结点%c/n",G->vexs[i]); //访问顶点vi visited[i]=TRUE; for(j=0...

2012-03-02 11:08:56 481

原创 从Excel导入到MySQL

这个项目是一个Java项目。项目需求如下:1.需导入的数据文件是Excel文件,使用jxl.jar包解析;2.表结构是给定的,在导入时需要判断数据文件是否与表结构吻合。 jxl.jar是一套纯Java的API,具有良好的跨平台性。http://baike.baidu.com/view/1327707.htm中有对jxl.jar包的全部介绍和基本操作及示例代码。 JDBC(J...

2012-03-01 23:31:57 103

差分法求数据压缩

课程设计名称:差分法求数据压缩题目:一数据文件中存放着若干个8位有符号数(补码),其相邻两数之间差值不超过-8至7。对这种变化缓慢的数据可采用差分方法进行压缩。即第一个数据不变,其后的数据取与前一数据的差值并用4位二进制补码表示,两个差值拼成一个字节,前一个差值放在高4位,后一个差值放在低4位。 例如: 原数据(X[n]):0x23,0x27,0x2A,0x29,0x22,…… 压缩后(Y[n])...

2011-12-26 07:11:23 754

原创 用Java实现信号量机制

操作系统课上讲过,信号机制最开始是用无限循环实现的,信号量只是一个int型整数。wait(S) { while(s<=0) { ; // no-op } S--;}signal(S) { S++;} 后来,将信号定义为结构体,由value和进程两部分组成。typedef struct { int ...

2011-04-26 17:13:33 581 1

原创 神奇的paint方法

胡老师曾讲过:做过画板项目后,界面那个东东就可以随心所欲了……最近,学校做CPU调度算法的作业,要求图形化界面。我想到用paint来画一画,效果如下:心得如下:用paint画东东,就像用PS画图一样。什么“前景色”、“背景色”、“图层”等等的概念要自己实现。例如,要先draw背景色再draw前景色。还有一些阴影、发光点等我能想到的大概都是这样。有时会遇到纠结的问题,Math...

2010-11-12 00:11:26 120

重回压缩

之前用Huffman编码做过一个压缩小程序。当时的Huffman树半自适应的,需要对源文件扫描两遍。这次是完全自适应的,只需要对源文件扫描一次就可以生成压缩文件,并且压缩文件中不会含编码表。具体关于原理的东西实在网上搜的文档(附件中有),C++的源代码网上也有。以下是我的代码:(代码有错,代码有错,我是按那个文档并且参照C++的源代码做的,杯具杯具,路漫漫……)package cn.cls...

2010-11-02 14:10:09 68

继承的例子

最近学校留作业,因为用不惯NetBean,还是用JCreator编写代码。写着写着无意中搞出一个继承,不知道这样子是好还是坏。自我感觉在添加组件时挺方便的,希望路过的高手指点: /** * @(#)MainFrame.java * * * @author * @version 1.00 2010/10/20 */import javax.swing.*;i...

2010-10-21 12:48:26 95

JSP+Servlet的一些些编写方式

1.Servlet内处理自己要处理的错误写法是:returnError(request, response);本人刚在书上看到它时总是敲不对,一小时后恍然大悟:原来那应该是Servlet里的一个方法,唉~~~~ 2.form里的参数写法是:<input type="hidden" nam="paraName" value="paraValue" />原来...

2010-10-14 11:05:55 82

二分搜索递归实现代码中return的去留问题

二分搜索有两种常见的实现方法:递归实现、迭代实现。其中递归实现的代码量是最少的(但计算机执行的代码却很多哦)。 public static int binarySearch(int a[], int x, int left, int right) { if (left > right) { return -1; } else { ...

2010-10-11 01:52:22 157

类之间的关系

这是本人系统学习设计模式之前的一篇记录类之间的关系的文章。首先感谢老师透彻的讲解,在这里我只做一些复习工作: 一、关联关系关联关系在英文中用万能动词have可以形象的说明。据我们对英文的了解,用到have的时候大致可以分为两种:1)I have blue eyes.    2)I have a girlfriend.对于第一种,我和蓝眼睛是整体和部分的关系;第二种则不是...

2010-09-08 16:57:35 97

条件语句精简代码

<script type="text/javascript">document.domain = "iteye.com";</script>附件是我2010-2011年的课表,下面一行代码是就是那个条件语句。var handleId = (diff%2 < 1) ? "single" : "plural"; 你可能疑

2010-08-31 16:18:54 105

ACM赛后感想

        我这次参加的是2010的ACM大赛,这是我第一次参加这种比赛,没能通过校赛,早早出局。惨败总能给人许多启示,我也感想颇多,终于在比赛日过后大约一周的时候记录下我在比赛整个过程中的一些所感所想。        老实说,我有个坏习惯,那就是习惯于临时抱佛脚。临到热身赛那天,连 C++的基本语句都没搞懂。赛前在网上搜罗了很多关于ACM的资料,可惜大部分只是看看文件名就塞到“ACM大赛...

2010-05-01 20:44:43 141

端口扫描器

这个小项目主要是练习了在事件侦听中使用代码低耦合,但是这篇总结中还会记录一些实际代码中技巧性的东西。 首先说明低耦合的设计模式。所谓低耦合,意思就是减少java代码的不同模块间的相互依赖性,提高程序代码的可扩展性。java中,通过定义一个事件侦听的接口,统一处理对某一类事件的侦听。例如,在我的端口扫描器中定义了如下一个接口:/** * 端口扫描时侦听消息的接口 * * @a...

2010-04-19 21:55:27 99

24位真彩BMP格式

BMP文件格式分析有很多,官方的资料已经通通涵盖在那份附件里了。这里具体些两个我遇到的问题...No.1 BMP文件中低位在前。在读超过两个字节表示的数据时要格外小心一点:比如一个四字节的数据,共32位。这32位是一个整体,不能分成4个8位来看。以下是我的代码:/** * 读取位图文件中的数字型标签 * @param dins 数据输入流对象 * @param tagLen 该...

2010-04-19 00:27:37 381

java中错误与异常的总结

这里是对java中错误与异常的总结。 Exception类是Java中的异常类,它继承了java.lang包下的Throwable类,它本身之下也有庞大的继承体系,稍后做详细说明。Error也继承了java.lang包下的Throwable类,其实二者的区别在本人理解看来就是Exception是可挽回的,而Error则是fatal的,只是程度上的区别。为什么有理由这么说呢?jdk中有一...

2010-04-13 01:02:16 221

文件存取

首先说一下文件的概念。文件,是在逻辑上具有完整意义的一组相关的一组相关信息的集合。它可以是一组相关的字节流集合,也可以是一组相关的记录集合,通常被保存在外储存器上。 这里再啰嗦一点关于文件名的概念(因为这里是初学者最头疼的地方)。不同的操作系统,关于文件名的说法会略有不同。我们熟悉的Windows下文件名分为两部分:文件主名;文件扩展名。通常文件主名有一个特点,那就是见名知意;而文件扩...

2010-04-08 01:46:42 141

寻路——连线

      本人初学Java,这个算法(呵呵,这个小东西也叫算法的话:我们数据结构老师讲的哦“你们现在学的算法其实都不是算法”)是在做连连看时用到的。      连连中如果把连线规则定义为无限拐点,那么连通这两个节点的工作就和在迷宫中已知起点终点寻路的工作一样了。因此,在写这个算法之前主要参考了两种算法:一种是递归算法,一种是A星寻路算法。不说别的了,先奉上我写的伪码:  public...

2010-03-22 01:43:43 144

空空如也

空空如也

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

TA关注的人

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