自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第9条:总是要改写toString

此约定不是很重要。JDK中就有很多类是没有重写toString方法的。但是,还是有些类重写了该方法,比如java.lang.StringBuffer。

2013-02-28 21:45:44 516

原创 第8条:改写equals时总是要改写hashCode

int java.lang.Object.hashCode()Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided byjava.util.Hashtable. The general contra

2013-02-28 21:38:51 680

原创 第7条:在改写equals的时候请遵守通用约定

boolean java.lang.Object.equals(Object obj)Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation on non-null object references:

2013-02-28 21:28:43 755

原创 第6条:避免使用终结函数

时间关键的任务不应该由终结函数来完成。如果你为某个对象定义了finalize() 方法,JVM 可能不会调用它,因为垃圾回收器不曾释放过那些对象的内存。调用System.gc() 也不会起作用,因为它仅仅是给 JVM 一个建议而不是命令。根据 Java 文档,finalize() 是一个用于释放非 Java 资源的方法。但是,JVM 有很大的可能不调用对象的finalize() 方法,因此很难

2013-02-27 22:40:42 530

原创 第5条:消除过期的对象引用

JDK里的java.util.Vector类,其方法removeElementAt的代码如下: public synchronized void removeElementAt(int index) { modCount++; if (index >= elementCount) { throw new ArrayIndexOutOfBoundsException(

2013-02-27 22:19:28 532

原创 第4条:避免创建重复的对象

String s = new String("silly");上面的代码,会创建一个新的String实例,每次都是新的内存地址,应该改为: String s = "silly";测试如下: String s1 = new String("silly"); String s2 = new String("silly"); System.out.println(s1

2013-02-26 21:45:57 457

原创 第3条:通过私有构造方法强化不可实例化的能力

企图通过将一个类做成抽象类来强制该类不可被实例化,这是行不通的。例如:public abstract class Child {}public class Boy extends Child {} Child c = new Boy(); 抽象类Child可以被子类化,也可以被实例化为Boy。而且,别人可能以为Child类就是为了继承而设计的。 publi

2013-02-26 21:23:36 494

原创 第2条:使用私有构造方法强化singleton属性

第一种方法:public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { }}第二种方法:public class Elvis { private static final Elvis INSTANCE = new Elvis()

2013-02-26 21:08:34 498

原创 第1条:考虑用静态工厂方法代替构造方法

静态工厂方法的一个好处是,与构造方法不同,静态工厂方法具有名字。例如:BigInteger要产生一个素数,那么public static BigInteger java.math.BigInteger.probablePrime(int bitLength, Random rnd)比构造方法好,好在代码的可读性。 静态工厂方法的第二个好处是,与构造方法不同,他们每次被调用的

2013-02-25 21:27:11 739

原创 java设计模式——访问者模式

《大话设计模式》第二十八章package ch28;public abstract class Element { public abstract void accept(Visitor visitor);} package ch28;public abstract class Visitor { public abstract void visit

2013-02-22 22:27:04 656

原创 java设计模式——解释器模式

《大话设计模式》第二十七章package ch27;public abstract class Expression { public void interpret(PlayContext context) { if (context.getContext().length() == 0) { return; } else { String playKe

2013-02-22 21:47:03 916

原创 java设计模式——享元模式

《大话设计模式》第二十六章package ch26;public class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; }} package

2013-02-22 21:20:21 797

原创 java设计模式——中介者模式

《大话设计模式》第二十五章package ch25;public abstract class Country { protected UnitedNations mediator; public Country(UnitedNations mediator) { this.mediator = mediator; }} package ch2

2013-02-22 21:08:44 1823 1

原创 java设计模式——职责链模式

《大话设计模式》第二十四章package ch24;public class Request { private String requestType; private String requestContext; private int number; public int getNumber() { return number; }

2013-02-21 21:06:55 706

原创 java设计模式——命令模式

《大话设计模式》第二十三章package ch23;public class Receiver { public void action() { System.out.println("执行请求"); }} package ch23;public abstract class Command { protected Receiver rec

2013-02-21 20:58:48 773

原创 java设计模式——桥接模式

《大话设计模式》第二十二章package ch22;public abstract class HandsetSoft { public abstract void run();} package ch22;public class HandsetGame extends HandsetSoft { @Override public void

2013-02-21 20:35:39 942

原创 java设计模式——单例模式

《大话设计模式》第二十一章package ch21;/** * 单例模式 * @author Administrator * */public class Singleton { private static Singleton instance = null; private static final Object obj = new Object();

2013-02-20 20:39:27 484

原创 java设计模式——迭代器模式

《大话设计模式》第二十章迭代器模式太常见了。JDK中的例子如下:package ch20;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 迭代器模式 * @author Administrator * */public class Clie

2013-02-20 20:35:12 495

原创 java设计模式——组合模式

《大话设计模式》第十九章package ch19;public abstract class Company { protected String name; public Company(String name) { this.name = name; } public abstract void add(Company c); public ab

2013-02-20 20:26:46 1292

原创 java设计模式——备忘录模式

《大话设计模式》第十八章package ch18;public class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; }}

2013-02-20 20:18:41 491

原创 java设计模式——适配器模式

《大话设计模式》第十七章package ch17;public abstract class Player { protected String name; public Player(String name) { this.name = name; } public abstract void attack(); public abstrac

2013-02-20 20:08:22 500

原创 java设计模式——状态模式

《大话设计模式》第十六章package ch16;public class Work { private int hour; private State state; private boolean finish = false; public Work() { state = new ForenoonState(); } public int

2013-02-19 21:18:35 585

原创 java设计模式——抽象工厂模式

《大话设计模式》第十五章package ch15;public class User { private int id; private String name; public User(String name) { this.name = name; } public int getId() { return id; } pu

2013-02-19 21:04:13 594

原创 java设计模式——观察者模式

《大话设计模式》第十四章package ch14;public abstract class Observer { public abstract void update();} package ch14;import java.util.LinkedList;import java.util.List;public abstract cla

2013-02-19 20:26:37 480

转载 JDK里的设计模式Examples of GoF Design Patterns

http://stackoverflow.com/questions/1673841/examples-of-gof-design-patternsStructural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamRea

2013-02-18 22:26:52 625

原创 java设计模式——建造者模式

《大话设计模式》第十三章 package ch13;public abstract class Builder { public abstract void buildPartA(); public abstract void buildPartB(); public abstract Product getResult();}package ch13;

2013-02-18 22:23:43 526

原创 java设计模式——外观模式

《大话设计模式》第十二章package ch12;public class SubSystemOne { public void methodOne() { System.out.println("子系统方法1"); }} package ch12;public class SubSystemTwo { public void method

2013-02-18 22:10:42 432

原创 java设计模式——模板方法模式

《大话设计模式》第十章package ch10;public abstract class TestPaper { public abstract void answer1(); public abstract void answer2(); public abstract void answer3(); public void question1() {

2013-02-18 21:57:46 478

原创 java设计模式——原型模式

《大话设计模式》第九章package ch09;public class WorkExperience implements Cloneable { private String workDate = null; private String company = null; public String getWorkDate() { return workDate

2013-02-17 23:01:15 619

原创 java设计模式——工厂方法模式

《大话设计模式》第八章package ch08;public class LeiFeng { public void sweep() { System.out.println("扫地"); } public void wash() { System.out.println("洗衣"); } public void buyRice() {

2013-02-17 22:54:21 443

原创 java设计模式——代理模式

《大话设计模式》第七章package ch07;public abstract class Subject { public abstract void request();} package ch07;public class RealSubject extends Subject { @Override public void reque

2013-02-17 22:48:12 503

原创 java设计模式——装饰模式

《大话设计模式》第六章package ch06.b;public abstract class Component { public abstract void operation();} package ch06.b;public class ConcreteComponent extends Component { @Override p

2013-02-16 21:56:05 728

原创 java设计模式——策略模式

《大话设计模式》第二章package ch02;public interface Strategy { int compute(int money);} package ch02;/** * 七折 * @author Administrator * */public class ConcreteStrategy70 implement

2013-02-16 21:44:29 478 1

原创 java设计模式——简单工厂模式

《大话设计模式》第一章package ch01;public abstract class Operation { private double numberA = 0; private double numberB = 0; public double getNumberA() { return numberA; } public void setNumbe

2013-02-16 21:16:19 550

原创 自动生成C语言代码里的shellcode

花了点时间写代码来获取shellcode#!/bin/shobjdump -d $1 | awk -F ':|xor|mov|int' '{if(NR>7)print $2}' | sed 's/[ |\t]*$//g' | sed 's/\t/ /g' | sed 's/ /\\x/g' | sed 's/^/\"&/g' | sed 's/$/&\"/g'效果:[roo

2013-02-03 22:46:29 1929

原创 hello的shellcode

方法一,用mov,代码:;hello_mov.asmsection .data msg db "Hello, world!", 0xA len equ $ - msgsection .textglobal _start _start: mov edx, len mov ecx, msg

2013-02-03 16:48:10 990

原创 exit的shellcode

在linux下输入man 3 exit[root@localhost ~]# man 3 exit得到 NAME exit - cause normal process terminationSYNOPSIS #include void exit(int status);DESCRIPTION

2013-02-02 22:27:36 674

转载 DOS系统功能调用表(INT 21H)

AH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀 01键盘输入并回显 AL=输入字符02显示输出DL=输出字符 03异步通迅输入

2013-02-02 21:39:09 580

转载 Linux下的汇编语言之系统调用

即便是最简单的汇编程序,也难免要用到诸如输入、输出以及退出等操作,而要进行这些操作则需要调用操作系统所提供的服务,也就是系统调用。除非你的程序只完成加减乘除等数学运算,否则将很难避免使用系统调用,事实上除了系统调用不同之外,各种操作系统的汇编编程往往都是很类似的。在 Linux 平台下有两种方式来使用系统调用:利用封装后的 C 库(libc)或者通过汇编直接调用。其中通过汇编语言来直接调用系统

2013-02-02 21:30:42 942

原创 linux内核系统调用号

在文件/usr/include/bits/syscall.h里的是/* Generated at libc build time from kernel syscall list. */#ifndef _SYSCALL_H# error "Never use directly; include instead."#endif#define SYS__llseek

2013-02-02 21:25:03 1803

空空如也

空空如也

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

TA关注的人

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