摘要: 普通工厂设计模式中,随着每增加一个子类,必须修改工厂类,问题的根源在于,我们在工厂类中,通过new关键字,创建对象,这样随着子类的越来越多,修改次数越来越多,子类和工厂类的耦合性太大,我们需要解耦 我们可以通过反射进行子类和工厂类的解耦。 阅读全文
posted @ 2017-07-27 11:12 奔跑的经理 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 1.Comparable接口位于java.lang包下,Comparator位于java.util包下 2.这两个接口都可以用于对象数组的排序,如果一个类,定义的时候,就已经实现了Comparable接口,那么我们就是用Comparable方法进行对象数组的排序,使用这种方法,实现类必须重写 int 阅读全文
posted @ 2017-07-27 10:18 奔跑的经理 阅读(192) 评论(0) 推荐(0) 编辑
摘要: package com.arrays; import java.util.Arrays; public class TestArrays { public static void main(String[] args){ int[] data={1,230,3,50,40}; //使用二分查找之前一定要进行数组排序 Arrays.sort(data); int ind... 阅读全文
posted @ 2017-07-26 22:41 奔跑的经理 阅读(759) 评论(0) 推荐(0) 编辑
摘要: package com.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDate { public static void main(String[] args) { Date d=new Date(); ... 阅读全文
posted @ 2017-07-26 21:13 奔跑的经理 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 1.java接口中有一种空的接口叫标识接口,这种接口值起到标识作用。 2.要实现java对象克隆需要用到Object类的 protected Object clone() throws CloneNotSupportedException 方法,这个方法为protected限定,在本包中,或者不同包 阅读全文
posted @ 2017-07-26 12:19 奔跑的经理 阅读(339) 评论(0) 推荐(0) 编辑
摘要: StringBuffer类概述 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 2)线程安全的可变字符序列 3)StringBuffer和String的区别 前者长度和内容可变,后者不可变。 · 如果使用 阅读全文
posted @ 2017-07-25 11:01 奔跑的经理 阅读(6154) 评论(0) 推荐(0) 编辑
摘要: 构造块:直接写在类中的代码块 静态代码垮:使用static关键字声明的代码块 静态代码块先于构造块,构造方法执行,而且只在类加载时候执行一次,后面在类实例化的时候会先执行构造块,而且每 执行实例化一个对象,就会执行一次构造块,执行完构造块会执行构造方法。 输出结果如下: 阅读全文
posted @ 2017-07-02 13:57 奔跑的经理 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-06-30 11:30 奔跑的经理 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 如果重载的方法中带有可变形参的方法时,需要注意 另外,不建议使用重载的可变参数方法,因为它能降低代码的可读性!!! 阅读全文
posted @ 2017-06-30 10:29 奔跑的经理 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Java1.5之后可以定义形参个数可变的参数,从而可以为方法制定数量不定的参数。 type 方法名(type 形参名,type... 可变形参名) { 方法体 } 可变形参被当成一个数组进行处理。 阅读全文
posted @ 2017-06-30 07:35 奔跑的经理 阅读(610) 评论(0) 推荐(0) 编辑