
ThinkingInJava
文章平均质量分 80
cutter_point
这个作者很懒,什么都没留下…
展开
-
Java IO最详解
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比转载 2015-08-03 10:00:15 · 547 阅读 · 0 评论 -
【ThinkingInJava】54、对List操作中本质的部分进行测试还有Queue中的操作测试性能比较
package Lesson17Containers;//: containers/TestParam.java// A "data transfer object."public class TestParam { public final int size; public final int loops; public TestParam(int size, int l原创 2015-05-22 08:00:28 · 604 阅读 · 0 评论 -
【ThinkingInJava】40、Java泛型 extends T和 super T
泛型中和 差别和含有JAVA5.0的新的概念。由于它们的外表导致了很多人误解了它们的用途: 1.首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过Listextends T>吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List来表示?所以不是一个集合,而是T的某一种子类的意思,记住是一种,单一的一种,问题来了,由于连哪一种转载 2015-05-18 18:43:17 · 679 阅读 · 0 评论 -
【ThinkingInJava】39、对于<?>和原生类型的判断
package Lesson15_generices;//: generics/CovariantArrays.javaclass Fruit {}class Apple extends Fruit {}class Jonathan extends Apple {}class Orange extends Fruit {}public class CovariantArrays原创 2015-05-18 08:30:40 · 969 阅读 · 0 评论 -
【ThinkingInJava】38、泛型数组转化,传递一个类型标识
/*** 书本:《Thinking In Java》* 功能:泛型数组转化,传递一个类型标识* 文件:GenericArrayWithTypeToken.java* 时间:2015年4月19日10:05:43* 作者:cutter_point*/package Lesson15_generices;import java.lang.reflect.Array;public c原创 2015-05-18 08:28:24 · 799 阅读 · 0 评论 -
【ThinkingInJava】37、关于泛型数组
/*** 书本:《Thinking In Java》* 功能:由于有了擦除,数组运行的时候类型就只能是Object[]。如果我们立即将其转型为T[],那么在编译期该数组的实际类型就将会丢失,* 而编译器可能会错过某些潜在的错误检查。所以我们最好在集合内部使用Object[],然后当你使用数组元素的时,添加一个对T的转型。* 文件:GenericArray2.java* 时间:2015年4原创 2015-05-18 08:25:10 · 864 阅读 · 2 评论 -
【ThinkingInJava】36、关于set的小工具
我们想颜色的static方法EnumSet.range()换入某个范围的第一个元素和最后一个元素,然后它返回一个set,包含该范围内的所有元素package Lesson15_generices.watercolors;public enum Watercolors { ZINC, LEMON_YELLOW, MEDIUM_YELLOW, DEEP_YELLOW, ORANG原创 2015-05-18 08:19:07 · 535 阅读 · 0 评论 -
【ThinkingInJava】34、java的动态代理(2)
/*** 书本:《Thinking In Java》* 功能:java的动态代理,在动态代理上所做的说有调用都会被重定位到单一的调用处理器上* 文件:SimpleDynamicProxy.java* 时间:2015年4月16日15:15:11* 作者:cutter_point*/package Lesson14TypeInformation;import java.lang.re原创 2015-05-18 08:10:29 · 462 阅读 · 0 评论 -
【ThinkingInJava】35、用java实现堆栈功能
/*** 书本:《Thinking In Java》* 功能:用java实现堆栈功能* 文件:LinkedStack.java* 时间:2015年4月17日14:23:34* 作者:cutter_point*/package Lesson15_generices;public class LinkedStack{ private static class Node {原创 2015-05-18 08:14:37 · 666 阅读 · 0 评论 -
【ThinkingInJava】52、理解hashCode
/*** 书本:《Thinking In Java》* 功能:理解hashCode,使用散列的目的在于:想要使用一个对象来查找另一个对象* 文件:SlowMap.java* 时间:2015年5月4日08:01:00* 作者:cutter_point*/package Lesson17Containers;import java.util.AbstractMap;import j原创 2015-05-21 08:32:21 · 611 阅读 · 0 评论 -
【ThinkingInJava】51、散列与散列码
/*** 书本:《Thinking In Java》* 功能:散列与散列码* 文件:Groundhog.java* 时间:2015年5月3日09:42:54* 作者:cutter_point*/package Lesson17Containers;public class Groundhog{ protected int number; //保护类型,继承之后还是保护类型原创 2015-05-21 08:29:22 · 732 阅读 · 0 评论 -
【ThinkingInJava】48、java中Collection的各种操作
/*** 书本:《Thinking In Java》* 功能:java中Collection的各种操作* 文件:CollectionMethods.java* 时间:2015年5月1日10:08:16* 作者:cutter_point*/package Lesson17Containers;import java.util.List;import java.util.Array原创 2015-05-21 08:23:12 · 431 阅读 · 0 评论 -
【ThinkingInJava】49、List的各种功能方法
/*** 书本:《Thinking In Java》* 功能:List的各种功能方法* 文件:Lists.java* 时间:2015年5月1日18:19:02* 作者:cutter_point*/package Lesson17Containers;import static net.mindview.util.Print.*;import java.util.ArrayLi原创 2015-05-21 08:25:03 · 476 阅读 · 0 评论 -
【ThinkingInJava】31、对pet进行计数(3)
我们不在使用前面那种笨拙的方式,n个instanceof来判断了/*** 书本:《Thinking In Java》* 功能:为了对pet进行计数,我们做一个能跟踪各种不同类型的Pet的数量的工具,用map。这里使用动态instanceof()* 文件:PetCount3.java* 时间:2015年4月14日09:25:29* 作者:cutter_point*/pack原创 2015-05-17 08:24:54 · 996 阅读 · 0 评论 -
【ThinkingInJava】27、关于class对象引用的各种关于class的方法
/*** 书本:《Thinking In Java》* 功能:关于class对象引用的各种关于class的方法* 文件:ToyTest.java* 时间:2015年4月12日19:21:32* 作者:cutter_point*/package Lesson14TypeInformation.toys;import static net.mindview.util.Print.*;原创 2015-05-17 07:58:53 · 903 阅读 · 0 评论 -
【ThinkingInJava】55、对set中的操作测试性能比较
/*** 书本:《Thinking In Java》* 功能:对set中的操作测试性能比较* 文件:SetPerformance.java* 时间:2015年5月5日08:28:23* 作者:cutter_point*/package Lesson17Containers;import java.util.*;public class SetPerformance{ //原创 2015-05-22 08:05:19 · 556 阅读 · 0 评论 -
【ThinkingInJava】56、查询出文件路径下所有的文件
/*** 书本:《Thinking In Java》* 功能:查询出文件路径下所有的文件* 文件:DirList.java* 时间:2015年5月5日20:41:36* 作者:cutter_point*/package Lesson18IO;import java.io.File;import java.io.FilenameFilter;import java.util.A原创 2015-05-22 08:08:20 · 550 阅读 · 0 评论 -
【ThinkingInJava】59、执行线程的时候我们可以设定相应的优先级
/*** 书本:《Thinking In Java》* 功能:执行线程的时候我们可以设定相应的优先级* 文件:SimplePriorities.java* 时间:2015年5月7日15:17:09* 作者:cutter_point*/package Lesson21Concurency;import java.util.concurrent.ExecutorService;im原创 2015-05-23 08:38:49 · 776 阅读 · 0 评论 -
【ThinkingInJava】61、临界区,同步控制块
/*** 书本:《Thinking In Java》* 功能:临界区,同步控制块* 文件:CriticalSection.java* 时间:2015年5月8日15:36:46* 作者:cutter_point*/package Lesson21Concurency;import java.util.ArrayList;import java.util.Collections;原创 2015-05-23 08:54:59 · 544 阅读 · 0 评论 -
【ThinkingInJava】62、生产者与消费者
/*** 书本:《Thinking In Java》* 功能:生产者与消费者:* 请考虑这样一个人饭店,它有一个厨师和一个服务员。这个服务员必须等待厨师准备好膳食。当厨师准备好时,他会通知服务员,之后服务员上菜,然后返回继续等待。* 文件:Restaurant.java* 时间:2015年5月8日18:23:01* 作者:cutter_point*/package Lesson原创 2015-05-23 09:01:21 · 782 阅读 · 0 评论 -
【ThinkingInJava】41、捕获转换
/*** 书本:《Thinking In Java》* 功能:捕获转换* 文件:CaptureConversion.java* 时间:2015年5月19日07:52:43* 作者:cutter_point*/package Lesson15_generices;public class CaptureConversion{ static void f1(Holder hol原创 2015-05-19 08:00:56 · 1028 阅读 · 0 评论 -
【ThinkingInJava】64、银行出纳员仿真
/*** 书本:《Thinking In Java》* 功能:对象随机地出现,并且要求由数量有限的服务器提供随机数量的服务时间。* 每个银行顾客要求一定数量的服务时间,这是出纳员必须花费在顾客身上,以服务顾客需求的时间单位的数量。服务时间的数量对每个顾客来说都是不同的,并且是随机确定的。* 另外,你不知道在每个时间间隔内有多少顾客会到达,因此这也是随机确定的:* 文件:BankT原创 2015-05-23 09:12:52 · 1304 阅读 · 0 评论 -
【ThinkingInJava】63、哲学家进餐问题
/*** 书本:《Thinking In Java》* 功能:哲学家进餐问题* 作为哲学家,他们很穷,所以他们只能买五根筷子。他们围坐在桌子周围,每人之间放一根筷子。当一个哲学家要就餐的时候了,这个哲学家必须同时得到左边* 和右边的筷子。如果一个哲学家左边或右边的筷子已经有人在使用筷子了,那么这个哲学家就必须等待,直至可以得到必须的筷子* 文件:Chopstick.java*原创 2015-05-23 09:05:30 · 940 阅读 · 0 评论 -
【ThinkingInJava】60、在线程之上插入一个线程
/*** 书本:《Thinking In Java》* 功能:在线程之上插入一个线程* 文件:Joining.java* 时间:2015年5月8日10:33:55* 作者:cutter_point*/package Lesson21Concurency;import static net.mindview.util.Print.*;class Sleeper extends原创 2015-05-23 08:47:28 · 535 阅读 · 0 评论 -
【ThinkingInJava】58、在线程运行中返回得到相应的返回值
/*** 书本:《Thinking In Java》* 功能:在线程运行中返回得到相应的返回值* 文件:CallableDemo.java* 时间:2015年5月7日14:52:11* 作者:cutter_point*/package Lesson21Concurency;import java.util.ArrayList;import java.util.concurren原创 2015-05-23 08:31:57 · 473 阅读 · 0 评论 -
【ThinkingInJava】42、装饰器设计模式
/*** 书本:《Thinking In Java》* 功能:装饰器设计模式* 装饰器模式使用分层对象来动态透明的向单个对象添加责任。装饰器指定包装在最初的对象周围的所有对象都具有相同的基本接口* 某些事物是可装饰的,可以通过将其他类包装在这个可装饰对象的四周,来将功能分层。* 装饰器是通过使用组合和形式化结构(可装饰物/装饰器层次结构)来实现的,而混型是基于继承的* 文件原创 2015-05-19 08:07:10 · 646 阅读 · 0 评论 -
【ThinkingInJava】44、数据生成器
//: net/mindview/util/Generator.java// A generic interface.package net.mindview.util;public interface Generator { T next(); } ///:~/*** 书本:《Thinking In Java》* 功能:数据生成器--策略设计模式* 文件:CountingG原创 2015-05-19 08:29:41 · 1014 阅读 · 0 评论 -
【ThinkingInJava】43、与动态代理混合的装饰器模式
//: net/mindview/util/TwoTuple.javapackage net.mindview.util;public class TwoTuple { public final A first; public final B second; public TwoTuple(A a, B b) { first = a; second = b; } public原创 2015-05-19 08:07:58 · 833 阅读 · 0 评论 -
【ThinkingInJava】46、把数组反序排列
//: net/mindview/util/Generated.javapackage net.mindview.util;import java.util.*;public class Generated { // Fill an existing array: public static T[] array(T[] a, Generator gen) { re原创 2015-05-19 08:33:31 · 593 阅读 · 0 评论 -
【ThinkingInJava】45、用java标准库里面的静态函数调用,复制数组
/*** 书本:《Thinking In Java》* 功能:用java标准库里面的静态函数调用,复制数组* 文件:CopyingArrays.java* 时间:2015年4月30日07:42:44* 作者:cutter_point*/package Lesson16Arrays;import static net.mindview.util.Print.*;import j原创 2015-05-19 08:33:12 · 586 阅读 · 0 评论 -
【ThinkingInJava】57、批量修改文件的名字
/*** 书本:《Thinking In Java》* 功能:批量修改文件的名字* 文件:Restaurant.java* 时间:2015年5月9日09:20:13* 作者:cutter_point*/package Lesson18IO;import java.io.File;public class ChangeName{ public void isDirOrNot原创 2015-05-22 08:09:20 · 731 阅读 · 0 评论 -
【ThinkingInJava】53、为了提高速度,我们使用散列
/*** 书本:《Thinking In Java》* 功能:为了提高速度,我们使用散列* 散列的价值在于速度:散列使得查询得以快速进行。由于瓶颈位于键的查询速度,因此解决方案之一就是保持键的排序状态,* 然后使用Collections.binarySearch()进行查询* 文件:SimpleHashMap.java* 时间:2015年5月4日08:01:00* 作者:cu原创 2015-05-21 08:37:30 · 563 阅读 · 0 评论 -
【ThinkingInJava】50、使用特定的set
/*** 书本:《Thinking In Java》* 功能:使用特定的set* 文件:TypesForSets.java* 时间:2015年5月2日11:05:43* 作者:cutter_point*/package Lesson17Containers;import java.util.HashSet;import java.util.LinkedHashSet;impo原创 2015-05-21 08:26:32 · 506 阅读 · 0 评论 -
【ThinkingInJava】17、匿名类的工厂方法
/*** 书本:《Thinking In Java》* 功能:匿名类的工厂方法* 文件:Factories.java* 时间:2015年4月3日17:42:03* 作者:cutter_point*/package Lession10innerclasses;import static net.mindview.util.Print.*;interface Service /原创 2015-04-30 21:08:46 · 666 阅读 · 0 评论 -
【ThinkingInJava】10、完全解耦,策略设计模式
/*** 书本:《Thinking In Java》* 功能:完全解耦,策略设计模式* 这里apply.process()方法可以接受任何类型的processor,并将其应用到一个Object对象上,然后打印结果* 文件:Apply.java* 时间:2015年4月2日16:50:55* 作者:cutter_point*/package Lesson9Interfaces.c原创 2015-04-17 15:50:24 · 1324 阅读 · 0 评论 -
【ThinkingInJava】14、适配器设计模式 (2)
/*** 书本:《Thinking In Java》* 功能:适配器设计模式* 文件:FilterAdapter.java* 时间:2015年4月2日20:52:07* 作者:cutter_point*/package Lesson9Interfaces.interfaceprocessor;import Lesson9Interfaces.filters.BandPass;i原创 2015-04-21 08:24:49 · 663 阅读 · 0 评论 -
【ThinkingInJava】1、几个练习题
1、---------------------/** * 功能:练习1:(2)创建一个类,它包含一个int域和一个char域,他们都没有被初始化,将他们的值打印 * 出来,以验证Java执行了默认初始化 * 时间:2014年7月26日17:06:48 * 作者:cutter_point */package Lesson2EveryThingIsAnObject;publ原创 2015-04-09 21:02:17 · 625 阅读 · 0 评论 -
【ThinkingInJava】9、继承与清理
/*** 书本:《Thinking In Java》* 功能:继承与清理* 文件:Frog.java* 时间:2015年4月1日19:38:22* 作者:cutter_point*/package Lesson8Polymorphism;import static net.mindview.util.Print.*;class Characteristic{ privat原创 2015-04-16 15:19:03 · 750 阅读 · 0 评论 -
【ThinkingInJava】13、适配器设计模式
/*** 书本:《Thinking In Java》* 功能:适配器设计模式* 文件:Processor.java* 时间:2015年4月2日20:36:59* 作者:cutter_point*/package Lesson9Interfaces.interfaceprocessor;public interface Processor { String name(); O原创 2015-04-20 07:57:49 · 687 阅读 · 0 评论 -
【ThinkingInJava】6、测试自己的输出类库
/*** 书本:《Thinking In Java》* 功能:定制工具库,用于System.out.println的简化* 文件:Print.java* 时间:2014年10月7日19:45:31* 作者:cutter_point*/package net.mindview.util;import java.io.*;import javax.print.attribute.原创 2015-04-14 10:31:17 · 735 阅读 · 0 评论