- 博客(117)
- 收藏
- 关注
原创 BufferedReader传进BufferedReader
package package2;import java.io.BufferedReader;import java.io.FileReader;import java.io.Reader;public class Test{ public static void main(String[] args)throws Exception { Reader reader1=ne
2014-05-21 11:24:53
736
原创 【使用反射判断一个Object对象是不是数组,并且遍历数组】
package jingtianxiaozhi; import java.lang.reflect.Array; //使用反射判断一个Object是不是数组,并遍历数组public class Test { public static void main(String[] args) { int[] a=new int[]{1,2,3};
2014-05-07 08:44:37
4544
原创 【正则表达式】
正则表达式:符合一定规定的表达式。作用:用于专门操作字符串。特点:实际上就是一些特定的符号来表示一些代码操作。好处:简化书写,提高开发效率。弊端:符号定义越多,正则越长,阅读性越差。下面是正则表达式的一些规则。[0-9]可以用\d来代替{0,1}可以用?代替匹配:校验手机号小程序:手机号段13、15、18package c
2014-05-04 12:57:30
779
原创 【列出一个字符串的全字符组合】
编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符例如:原始字符串是"abc",打印得到下列所有组合情况"a" "b" "c" "ab" "bc" "ca" "ba" "cb" "ac""abc" "acb" "bac" "bca" "cab" "cba"import java.util.ArrayList;import java.util.List;
2014-04-10 22:41:03
1457
原创 【顺时针打印矩阵】
写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 从昨天下午开始做
2014-04-08 20:09:10
663
原创 【银行管理系统】先实现一个普通窗口为普通客户服务,快速Vip类比
银行业务调度系统模拟实现银行业务调度系统逻辑,具体需求如下:Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。Ø 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。Ø 异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户 :普通客户 :快速客户 = 1 :
2014-04-06 14:23:06
2073
原创 【重构】小小领悟
重构前的代码,用switch代码块public enum CustomerType { Common, Quick, VIP; @Override public String toString() { switch (this) { case Common: return "普通"; case Quick: return "快速"; case VIP:
2014-04-06 14:06:36
492
原创 【角标越界异常】ArrayIndexOutOfBoundsException和StringIndexOutOfBoundsException
import java.util.ArrayList;import java.util.List;public class test { public static void main(String[] args) {// Listcustomers=null;//NullPointerException Listcustomers=new ArrayList();//Inde
2014-04-06 13:08:00
1860
原创 安全的ArrayList
package com.xiaozhi.thread;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) throws IOException {// List
2014-04-04 22:25:55
744
原创 【简洁版:My类加载器】
MyClassLoader.javapackage com.xiaozhi.myclassloader;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.i
2014-04-04 20:18:46
551
原创 【面向对象】谁直接拥有数据,谁就对外提供操作这些数据的方法。
球从一根绳子的一段移动到了另一端:点在绳子上,显然绳子应该提供一个nextPoint()方法。供小球调用。两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子:石头变成石刀,这个方法显然不能再石头本身上,应该是有一个石刀工厂,提供把石头变成石刀的方法。石刀有一个砍树的方法把树变成木材。椅子工厂有一个把木材变成椅子的方法。
2014-04-04 19:40:25
782
原创 【交通灯管理系统】
交通灯管理系统 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: Ø 异步随机生成按照各个路线行驶的车辆。例如: 由南向而来去往北向的车辆 ---- 直行车辆 由西向而来去往南向的车辆 ---- 右转车辆 由东向而来去往南向的车辆 ---- 左转车辆 。。。 Ø 信号灯忽略黄灯,只考虑红灯和绿灯。
2014-04-04 19:15:17
790
原创 【实现AOP功能的封装与配置】
工厂类BeanFactory负责创建目标类或代理类的实例对象,并通过配置文件实现切换。其getBean方法根据参数字符串返回一个相应的实例对象,如果参数字符串在配置文件中对应的类名不是ProxyFactoryBean,则直接返回该类的实例对象,否则,返回ProxyFactoryBean对象的getProxy方法返回的代理类。AopFrameworkTest.javapackage com.
2014-04-01 12:27:20
655
原创 【重点:动态代理】创建一个类MyProxyManger调用getProxy即可以创建一个代理类
代码实现import java.lang.reflect.Constructor;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.ArrayList;import java.util.
2014-03-31 19:22:49
678
原创 【动态代理】使用构造方法创建代理类、使用 newProxyInstance.newProxyInstance()创建代理类
原理图:1、代理构架图:2、动态代理的工作原理——————————————————————————————————————————————一、通过Proxy的getProxyClass()方法得到代理类的Class对象通过Class对象反射出所有构造函数以及参数然后通过Class对象反射出所有方法以及参数import java.lang.refl
2014-03-31 15:51:02
1606
原创 【类加载器的高级问题——改变servlet的类加载器】
1、编写一个能打印自己的类加载器名称和当前类加载器的父子结构关系链的Servlet,正常发布后,能看到打印结果,第一个加载器是WebAppClassLoader。2、把该Servlet的class文件打成jar包,放到ext目录下,重启tomcat,发现报找不到HttpServlet的错误。3、把servlet-api.jar也放到ext目录下,问题解决,打印结果为Wx
2014-03-30 16:36:26
1153
原创 【自己动手写类加载器2】覆盖findClass(String name)方法,删除bin目录下的加密的class文件
1、要想实现自己的类加载器能够加载类,需要覆盖findClass(String name)方法,因为类加载器的loadClass(String name)方法最终调用的还是findClass(String name)。2、由于类加载器使用的委托机制,先看父类AppClassLoader能不能加载再看自己的类加载器能不能加载,所以要把原目录下刚才拷贝的class字节码文件删除,让自己
2014-03-30 11:04:00
1094
原创 【自己动手写类加载器1】实现加密功能:生成加密class文件,复制到bin目录下,AppClassLoader加载出错
首先写一个过会加载器用来加载的类:package com.xiaozhi.myclassloader;public class ClassLoaderAttachment { @Override public String toString() { return "hello heima"; }}测试类:package com.xiaozhi.tes
2014-03-29 21:01:42
795
原创 【类加载器】————类加载器之间的父子关系以及管辖范围【委托机制】
1、得到和修改本类的加载器CLASSPATH指定的所有jar或目录采用AppClassLoader加载器加载package com.xiaozhi.loader;public class LoaderTest { public static void main(String[] args) { System.out.println(LoaderTest.class.
2014-03-29 13:01:16
2570
1
原创 【注解】学习自己写注解【@Retention,决定注解存在的时期,@Target决定注解使用的地方】
1、@SuppressWarnings@deprecated@override的介绍没加@SuppressWarnings(“deprecation”)注解,编译时会提示使用了过时的APIpublic class Test { public static void main(String[] args) { System.runFinalizersOnExit(tr
2014-03-28 20:02:55
2340
原创 【TCP简单聊天实现】
客户端import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;
2014-03-28 15:24:19
905
原创 【hashCode的作用】导致内存泄露
package com.xiaozhi.hashset; import java.util.HashSet; public class Test { //我们以为我们删除了,其实我们没有删除,导致内存泄露, public static void main(String[] args) { HashSetpersons=new HashSe
2014-03-25 16:58:41
574
原创 【编译时 和 运行时】
编译时报错,newInstance返回的是一个Object类型,赋给一个String类型。package com.xiaozhi.box;import java.lang.reflect.Constructor;public class Test { public static void main(String[] args) throws Exception { Constr
2014-03-23 23:35:06
452
原创 【Class】(1)一共有两种对象,Class对象,实体类对象。(2)Class对象可以得到实体类的所有方法属性
类是用来描述一类事物的共性人的对象有:张三 李四 王五Class的对象有:Math.class Date.class Person.class一个类的字节码载入内存后,第二次载入的时候会判断内存中是否已经载入,如果已经载入,那么第二次载入的字节码和第一次载入的字节码是同一个字节码。package com.xiaozhi.box;public class Test
2014-03-23 21:55:54
1834
原创 【自动装箱、自动拆箱】享元设计模式:对于小的整数,装箱装成的对象都是同一个
package com.xiaozhi.box;public class Test { public static void main(String[] args) { //自动装箱 Integer integer1=13; Integer integer2=13; //自动拆箱 System.out.println(integer1+2); //享元设计模式
2014-03-23 21:21:30
527
原创 【程序这样写真别扭】new 一个匿名抽象类 带构造函数参数
抽象类package com.xiaozhi.wan;public abstract class FuLei { private String name; public FuLei(String name) { super(); this.name = name; } public abstract void hello(); }Test.javapackag
2014-03-23 13:13:52
543
原创 【好用的枚举】Enumeration,现在switch支持枚举类型
package com.xiaozhi.enumration;public class Test { public static void main(String[] args) { }}//没有枚举以前是这样做的//class Grade {// private Grade(){}// public Grade A=new Grade();// public Gr
2014-03-23 12:27:20
677
原创 【BeanUtils】操作JavaBean
Person.classpackage com.xiaozhi.beanutils;import java.util.Date;public class Person { private String name; private String password; private int age; private Date birthday; public Date getBi
2014-03-23 11:17:53
478
原创 【内省】introspector操作JavaBean
person.javapackage com.xiaozhi.introspector;//该类共有5个属性public class Person { private String name; private String password; private int age; public void setAb(int a){ } public String getNam
2014-03-22 22:47:53
461
原创 【反射】就是把java类中的各个成分映射成相应的java类
要反射的类package com.xiaozhi.reflect;import java.io.InputStream;import java.util.List;public class Person { private String name; private int password; public Person() { System.out.println("
2014-03-17 23:49:42
2120
原创 【可变参数】数组赋给可变参数,采取的策略是【拆】,简单数据类型数组看成是一个对象
int...args可以看成是int[]args,当传进来的参数是2,3,4时,自动封装成数组付给args。也可以直接传入一个数组。package com.itheima.xiaozhi;public class VariableParameter { //可以把可变参数看成是一个数组 public static void main(String[] args) { System
2014-03-16 23:22:51
734
原创 【TCP】s.shutdownOutput();这行代码的牛逼之处
s.shutdownOutput();//关闭客户端的输出流。相当于给流中加入一个结束标记-1.
2014-03-09 16:19:38
13567
2
原创 【TCP】使用TCP协议写一个可以上传文件的服务器和客户端。
上传客户端:package com.xiaozhi.jingtian.tcp;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;public class UploadClient { public static
2014-03-08 20:04:16
3279
原创 【UDP】
发送端:package com.xiaozhi.udp;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class SendClient { public static void main(String[] args) throws
2014-03-08 20:00:00
562
原创 【算法】n个小孩围成一圈,数到5出列,求最后剩下的人
n个小孩围成一圈,数到5出列,求最后剩下的人package jingtianxiaozhi;import java.io.FileNotFoundException;import java.io.PrintStream;import java.util.ArrayList;import org.omg.PortableInterceptor.SYSTEM_EXCEPTI
2013-11-18 11:05:16
1482
原创 【并行计算作业】java多线程技术求1000000以内的素数
CountDownLatchpackage jingtianxiaozhi;import java.util.concurrent.CountDownLatch;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concur
2013-11-18 10:25:33
3643
原创 Exchanger:线程交换数据
package jingtianxiaozhi;import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ExchangerTest { public static void m
2013-11-18 00:07:22
729
原创 CountDownLatch:倒计时计数器
可以实现一个人(也可以是多个人)等待其他所有人都来通知他,这犹如一个计划需要多个领导都签字后才能继续向下实施。还可以实现一个人通知多个人的效果,类似裁判一声口令,运动员同时开始奔跑。用这个功能做百米赛跑的游戏程序不错哦package jingtianxiaozhi;import java.util.concurrent.CountDownLatch;import j
2013-11-17 23:49:30
748
原创 CyclicBarrier公共屏障点:一个同步辅助类,它允许一组线程互相等待
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrierpoint)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的barrier。package jingtianxiaozh
2013-11-17 23:18:28
765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人