- 博客(50)
- 资源 (16)
- 收藏
- 关注
转载 java Comparator
再举个简单例子然后用程序实现。如公司要将员工进行排序(不要说领导排在前面),假设我们的需求比较复杂。先进行姓排序,谁的姓拼音靠前,谁就排前面。然后对名字进行排序。恩.如果同名,女性排前头。如果名字和性别都相同,年龄小的排前头。ok,一个也不算复杂的需求。 如果对java比较熟悉的会知道java.util.Comparator 接口。要实现里面的函数 int compare(Object o
2012-03-07 10:48:19
1621
转载 Java的ResourceBundle
Java的ResourceBundle是一个很好用的工具,可以很方便的用来实现软件的国际化和本地化功能。因为ResourceBundle能够按照一定的规则,自动寻找目录下符合某个文化和地区的资源文件(.properties文件)。通过为不同的文化和地区提供不同的资源文件,然后让java自动根据规则来读取这些资源文件,实际上就完成软件的本地化工作。 先看一个小例子,建立一个te
2012-03-07 10:32:41
583
转载 为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失
我好土,真的。学用了四五年的JAVA,还从没用过 wait/notify,也不清楚它跟synchronized 关键字 相比有什么好处。今天查了些资料,终于明白了:wait/notify 机制是为了避免轮询带来的性能损失。 为了说清道理,我们用“图书馆借书”这个经典例子来作解释。 一本书同时只能借给一个人。现在有一本书,图书馆已经把这本书借了张三。
2012-02-25 01:33:41
443
原创 java synchronized总结
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个sy
2012-02-24 18:07:23
323
转载 Java多态性详解——父类引用子类对象
面向对象编程有三个特征,即封装、继承和多态。 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。 继承是为了重用父类代码,同时为实现多态性作准备。那么什么是多态呢? 方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关
2012-02-23 23:36:15
469
转载 java的class文件格式分析
1. ClassFile 基本定义Classfile 是一个连续的8 位字节二进制流,数据项按照顺序存储在class 文件中,相邻项没有间隔,占多字节空间的项时,高位在前。ClassFile 文件格式是固定的,按照顺序名称长度描述备注majic4 个字节魔数 :0xCAFEBABE
2012-02-23 12:46:49
375
转载 java中Class.forName的作用
Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 A a = (A)Class.forName("pacage
2012-02-23 11:20:02
281
转载 深入Java核心 Java内存分配原理精讲
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据
2012-02-23 10:58:53
240
转载 java.util.Arrays类
在java.util 中的Arrays 数组类容纳着一系列静态方法可简化我们对数组的操作,总共有四个函数。sort()可对数组排序binarySearch()用于在排好序的数组中查找一个元素。equals()用于比较两个数组是否相等fill()将一个值复制到一个位置,如果是对象数组则将引用复制到每一个位置。asList()把数组转变成一个List 容器。 public
2012-02-22 17:50:43
524
转载 Java自定义注释@interface的用法
一、什么是注释 说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源代码的。在J2SE5.0中可以自定义注释。使用时在@后面跟注释的名字。
2012-02-22 16:50:39
731
转载 很牛的求职经历
引言:工作刚刚落实,论文也刚完成,终于有时间对自己的求职历程及求职经验进行总结了。应同学要求,最近准备书写系列文章“我的求职历程及经验分享”,请大家关注,谢谢!(一):求职历程总结2007年1月10日,随着在三方协议上郑重签下自己的名字,我的求职历程终于划上了一个圆满的句号。在这三个月漫长而艰辛的过程中,我付出了很多,经历了很多,也收获了很多。这一路走来,要感谢的人太多太多
2012-02-22 16:19:44
4625
转载 Decorator模式
一、应用场景:假设我们已经存在这样的一个程序:1).该程序从一个列表中拿出所有的用户名单,然后逐个向用户发送一句信息。2).现在我们又增加了一个新的需求:在发送之前检查一下该用户是否存在于黑名单中,如果是的话则不发送给该用户。3).是否进行检查则动态根据用户的当时需要来决定。二、需求分析:从上面的情况分析,如果我们采用继承的方式,重新编写一个带有过滤功能的发
2012-02-22 11:11:24
366
转载 Adapter模式
GOF《设计模式》一书对Adapter模式是这样描述的: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。 这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求:1) 为都有“显示”(display)行为的点、线、正方形分别创建类。2) 客户对
2012-02-22 10:35:47
262
转载 Java设计模式简单介绍
Java设计模式有23种,这些设计模式可以分为三大类:创建型模式、结构型模式、行为型模式。创建型模式:抽象工厂模式、建造者模式、工厂方法、原型模式、单例模式。结构型模式有:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式行为型模式:观察者模式、模板方法模式、命令模式、状态模式、职责链模式、解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式
2012-02-22 10:23:10
388
转载 Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程
2012-02-22 00:47:10
269
转载 Windows快捷键大全
一、常见用法: F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放入回收
2012-02-21 11:11:03
382
转载 COMMAND 模式
COMMAND 模式——《敏捷软件开发 原则、模式与实践(c#版)》第21章描述 COMMAND模式是最简单、最优雅的模式之一。 如图1-1所示,COMMAND模式简单的几乎可笑。该模式仅由一个具有唯一方法的接口组成,这似乎很荒谬?代码1-1 给出了图1-1对应的代码。 图1-1 COMMAND 模式代码清单 1-1 Co
2012-02-20 18:37:11
1517
转载 策略模式-6(研磨设计模式)
3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,
2012-02-20 17:39:13
447
转载 Template Method Pattern 模版方法模式
今天我要在这里介绍的是C#设计模式中的模版方法模式。 问题:现在有一家汽车生产商需要一个管理汽车生产的管理软件。其中在该系统中有一个管理组装汽车的子模块。该模块要能根据不同的汽车类型来组装相应的汽车。汽车的被组装部分分别是汽车的车盖,车地盘,后备箱,车胎。现在来试着实现下该过程。 根据上面的描述,我在这里选择里跑车和商务车来进行演示。跑车的车盖,车地盘,后备箱,车胎均
2012-02-20 17:38:00
1003
转载 java访问控制权限一句话描述版
(1)私有的:用关键字private修饰,只有本类可见。(2)默认的:不用访问控制符关键字修饰,在本类、本包可见,不同包的子类都不可见。(3)受保护的:用关键词protected修饰,在本类、本包、所有子类中可见。(4)公共的:用关键字public修饰,对一切情况皆可见。public修饰的内容限制最小,也可以说是没有限制,可以在其他任何位置访问,在实际项目开发中,一般用来修
2012-02-19 16:00:56
466
转载 Linux命令:killall - 杀死指定名字的进程
用途说明killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,这真是一个太好用的命令了。常用参数格式:killall 杀死指定名字的进程。实际上是向名字为的所
2012-02-17 13:19:17
2956
转载 如何准备雅思考试
雅思考试在中国骤然火爆,是近两年的事。有两方面的原因。第一,赴英联邦国家留学,别无选择,必过雅思。第二,由于申请人数激增,加拿大移民局采用雅思考试成绩衡量技术移民类申请者的英文能力,作为免面试的参考依据。雅思考试成绩理想者,极有可能免去面试一关,省去不少麻烦与煎熬。但问题的关键在于,面对对于大部分考生来说仍相当陌生的考试制度,考生应针对其目前的英文实力,作一客观现实的分析和评估。在此基础上,制定扎
2012-02-17 10:38:32
908
转载 内部类有哪些好处?
第一个好处:隐藏你不想让别人知道的操作,也即封装性。public interface Contents {int value();}public interface Destination {String readLabel();}public class Goods {private class Content implements Contents {pri
2012-02-16 23:49:26
7591
转载 【BAT教程】实例及学习【入门篇】
什么叫批处理: 顾名思义,批处理就是把一批或者说是一条条命令放在一个文本里,然后批量执行!执行这一批命令的文件的扩展名是BAT或者CMD,把任何一批命令放入在有这样扩展名的文件里,执行时里面的命令就会一条条的执行完,当然我们还可以在其中加入一些逻辑判断的语句,让里面的命令在满足一定条件时执行指定的命令。 从更广义的角度来看,unix的shell脚本以及其它操作系
2012-02-16 18:08:17
570
转载 Linux Shell编程基础
linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题。只要举一些例子就可以了: alias l='ls -l' ;用 l 代替 ls -l 命令(Xenix 下就有类似的 l 命令)
2012-02-16 17:46:00
217
转载 linux shell单引号 双引号 解释
在脚本中执行变量替换时最容易犯的错误就是由于引用错误。为防止引用时产生误解,shell有一下引用类型双引号“”:可引用除$、`、\外任意字符或字符串,最好在反馈文本字符串时全使用双引号单引号‘’:可引用引号里所有字符(包括引号) $ A=‘a’ $ echo $A 输出结果为 a $ echo “$A”
2012-02-16 13:47:17
559
转载 内部类
从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论。其实任何优秀的语言特性用得不好就是滥用,内部类用得不好就会导致代码像迷宫一样,导致出现毫无重用的综合征。1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。几种内部类的共性:A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。B、内部类不能用
2012-02-16 01:25:58
222
转载 [转]Java中Runnable和Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限,下面看例子:package org.thread.demo;class MyThread extend
2012-02-13 23:48:21
196
转载 定时自动启动任务crontab命令用法
每个操作系统都有它的自动定时启动程序的功能,Windows有它的任务计划,而Linux对应的功能是crontab。crontab简介crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρόνος),原意是时间。 通常,cr
2012-02-13 11:18:40
616
转载 关于工作后定居城市的思考以及房价预测(天涯原创)
我们在一个城市工作,会衡量自己是否适合在这里待下去,“是否要定居于此”这样的问题一般要到工作5年之后才在犹豫不觉中有了一点去留的潜意识倾向。而随着物价高涨以及房价的飙升,很多职场人士在一个城市工作10年甚至15年后也没有做出定居于此的决心。当然这里还有其他很多原因,包括现在这份工作的发展前途,在这座城市中的人际关系,所在地的生活习惯,以及户口子女教育父母赡养等等考量,但无论如何现在其中最大的决定性
2012-02-11 16:11:38
21719
转载 策略模式
一、概念策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strate
2012-02-10 14:41:00
292
转载 依赖倒置原则
本文译自Robert C. Martin于1996年发表的文章,将分为三部分贴在这里。原文可参看http://www.objectmentor.com/resources/articles/dip.pdf。这是我给《C++报导》“工程笔记”专栏的第三篇文章。这个专栏的文章专注于C++和OOD的使用,及软件工程方面的问题。我将努力写一些编程方面的,对处在战壕中的软件工程师直接有用的文章。这些
2012-02-10 14:40:09
375
转载 Java 值传递 引用传递
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。先看基本类型作为参数传递的例子:public class Test1 { public static void main(String[] args) {
2012-01-19 17:13:52
784
转载 到底什么时候用指针或是引用
1.问题提出:当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileName,...)与 DateType ExampleFun(CString strFileName,...)解答之前,我们先来看2个基本的概念:形参和实参。->通俗的讲:形参是形式上的参数,实参是实
2012-01-19 15:55:40
1259
转载 引用与指针的区别
引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的 内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个 内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。 指针,指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的 内存空间。 二者区
2012-01-19 11:38:24
497
1
转载 组合和聚合是有很大区别的
组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上: 比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象也同时消亡(没有任何一个引用指向它,成了垃圾对象),这种情况叫做组合,反之b所指向的对象还会有另外的引用指向它,这种情况叫聚合。 在实际写代码时组合方式一般会这样写: A类的构造方法里创建B类的对象,也就是说,当A类的一个对象产生时,B类的对象随
2012-01-19 11:15:35
557
转载 深入理解C++的动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:class B{}class
2012-01-13 19:45:41
248
转载 java动态绑定静态绑定
首先是方法的参数是父类对象,传入子类对象是否可行然后引出Parent p = new Children();这句代码不是很理解,google的过程中引出向上转型要理解向上转型又引出了动态绑定从动态绑定又引出了静态绑定 程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定
2012-01-13 18:50:50
402
转载 Java项目经验
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1、掌握项目开发的基本步骤2、具备极强的面向对象的分析与设计技巧3、掌握用例驱动、以架构为核心的主流开发方法没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如
2012-01-11 18:24:53
763
原创 编程的内功
编程就好比练功,如果学习.net,mfc,vb等具体的语言和工具是外功(招式),对基础的学习就是内功,只注重招式而内功不扎实是不可能成为高手的。很多人会认为《射雕英雄传》中马玉道长什么都没有教郭靖,马道长教的表面看来是马步冲权实则都是内功心法,郭靖拜师洪七之后开始练习降龙十八掌凭借的就是这深厚的内功,吞食蝮蛇宝血又加上练习了周博通传授的九阴真经和外加功夫双手互博技之后,终于练就行走江湖的武功
2012-01-06 18:25:28
3881
2
JAVA程序员面试指南
2012-09-09
Java夜未眠
2012-09-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人