2014年1月23日

动态代理终极版

摘要: 1.首先是一个公共接口1 public interface Speak{2 public void sayHello(); 3 }2.以及一个该接口的子类1 public class MySpeak implements Speak{2 public void sayHello(){3 System.out.println("HelloWorld!"); 4 } 5 }3.下面我们可以创建对该接口子类对象具体操作的InvocationHandler子类了 1: public class SpeakHandler implements Inv... 阅读全文

posted @ 2014-01-23 02:50 GoBackHome 阅读(196) 评论(0) 推荐(0)

2014年1月22日

反射机制

摘要: 在java运行时获取任意一个类的属性、方法、构造函数,并可以修改属性、调用方法、创建对象,这种动态获取类的信息以及动态调用对象的方法的功能来自于java语言的反射机制。Reflection是java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection API取得任意一个已知名称的class的内部信息。一般而言,开发者社群说到的动态语言,大致认同的一个定义是:“程序在运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点来看,Perl,Python,Ruby是动态语言,C++、java、C#不是动态语言。尽管在这样的定义与分类下java不是动 阅读全文

posted @ 2014-01-22 21:18 GoBackHome 阅读(305) 评论(0) 推荐(0)

深入JVM之类的加载器

摘要: 类加载器有两种:—java虚拟机的自带加载器根类加载器(Bootstrap)扩展类加载器(Extension)系统类加载器(AppClassLoder)—自定义的类加载器java.lang.ClassLoder的子类用户可以定制类的加载方式 阅读全文

posted @ 2014-01-22 18:22 GoBackHome 阅读(139) 评论(0) 推荐(0)

深入JVM之类的加载过程

摘要: 类的加载—连接—初始化加载:查找并加载类的字节码文件,从硬盘到内存.类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,加载的.class文件的方式主要有:从本地系统中直接加载,通过网络下载.class文件,从zip、jar等归档文件中加载.class文件,从专有数据库中提取.class文件,将java源文件动态编译成.class文件。类的加载的最终产物就是位于堆内存中的Class对象。Class对象封装了类在方法区内的数据结构,并且向java程序员提供了访问方法区 阅读全文

posted @ 2014-01-22 15:46 GoBackHome 阅读(182) 评论(0) 推荐(0)

模拟银行业务系统逻辑

摘要: 面向对象的关键:你不能首先考虑这个程序需要实现什么,你必须要首先思考这个程序要模拟什么也就是说,你必须要先通过在实际生活中的思维方式,把整个业务流程模拟出来然后再对整个业务流程进行抽象。 需求如下:1. 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。2.有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。3.异步随机生成各种类型的客户,生成各类型用户的概率比例为:VIP客户 :普通客户 :快速客户 = 1 :6 :3。4.客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理 阅读全文

posted @ 2014-01-22 00:31 GoBackHome 阅读(593) 评论(0) 推荐(0)

2014年1月21日

复制文件到新目录并改名

摘要: 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.FilenameFilter; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io.OutputStream; 8 9 10 /**11 * 需求:12 * 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java... 阅读全文

posted @ 2014-01-21 18:51 GoBackHome 阅读(2069) 评论(0) 推荐(0)

利用递归删除一个带内容的目录

摘要: 1 /* 2 删除一个带内容的目录。 3 删除原理: 4 在window中,删除目录从里面往外删除的。 5 6 既然是从里往外删除。就需要用到递归。 7 8 9 10 */11 import java.io.*;12 class RemoveDir13 {14 public static void main(String[] args) 15 {16 17 File dir = new File("d:\\testdir");18 removeDir(dir);19 }20 21 public stati... 阅读全文

posted @ 2014-01-21 18:30 GoBackHome 阅读(397) 评论(0) 推荐(0)

利用递归复制文件夹

摘要: 思路:1.定义两个静态字符串成员变量,分别关联源路径和目标路径2.在main方法里判断源路径是否存在exists()3.在main方法里判断目标路径是否存在exists() 如果存在删除已存在的路径,否则直接创建路径4.遍历获取源路径下的文件和目录 如果是文件执行复制文件方法copyFile()复制文件方法采用缓冲的字节流+字节数组实现 否则定义两个字符串变量 关联:源路径+遍历到目录的名字 目标路径+遍历到目录的名字 将两个变量再作为源目录和目标目录传入复制文件夹方法copyDirectiory()5.复制文件夹方法会用到递归 首先还是新建目标目录 ... 阅读全文

posted @ 2014-01-21 18:04 GoBackHome 阅读(1041) 评论(0) 推荐(0)

正则表达式

摘要: 概念:符合一定规则的表达式.作用:用于专门操作字符串.特点:用一些特定的符号来替换一些代码,简化书写,正则表达式,主要一些特殊符号的使用.好处:可以简化对字符串的复杂操作.弊端:符号定义越多,正则越长,阅读性越差.功能:1.匹配:String matches()方法,用规则匹配整个字符串,只要有一处不符合规则,匹配结束,返回false.2.切割:String split();3.替换:String replaceAll(regex,str),如果regex中有定义组,可以在第二参数中通过$符号获取正则表达式中的已有的组。 阅读全文

posted @ 2014-01-21 02:39 GoBackHome 阅读(138) 评论(0) 推荐(0)

读取键盘录入

摘要: 1 /* 2 3 通过键盘录入一行数据并打印其大写. 4 5 */ 6 import java.io.*; 7 8 class TransStreamDemo 9 {10 public static void main(String[] args) throws IOException11 {12 //获取键盘录入对象。13 //InputStream in = System.in;14 15 //将字节流对象转成字符流对象,使用转换流。InputStreamReader16 //InputStreamR... 阅读全文

posted @ 2014-01-21 02:30 GoBackHome 阅读(332) 评论(0) 推荐(0)

导航