java
文章平均质量分 80
学渣的第六感
热爱生活,永不放弃
展开
-
java 传参
java 传参这个问题,对于简单类型是直接值传递,复杂lei'yin原创 2014-06-08 10:50:03 · 840 阅读 · 0 评论 -
java io -- FilterInputStream 与 装饰者模式
在上一篇文章中讲了FileInputStream本文将介绍一个特殊的输入字节流:FilterInputStream,以及与之相随的一个经典的设计模式,装饰者模式。在之前的文章中提到,InputStream的读取是以byte为单位的,但是我们日常中经常会读写其他类型的数据,当然,我们可以把读取出来的字节进行转码,转成我们需要的数据,那么能不能直接读取字符,int等数据呢?能,只需要利用Dat原创 2016-10-15 23:50:52 · 15945 阅读 · 2 评论 -
java io -- FileInputStream
接上篇文章java io -- InputStream,本文将剖析InputStream中最常用的一个子类FileInputStreamFileInputStream是对一个文件抽象而成的数据流,我们这里先展示一下这个类的结构。图1 FileInputStream类可以看到,这个结构和InputStream大致一致,不过多了一些特性。首先这个类的构造函数,可以通原创 2016-10-15 23:20:50 · 3396 阅读 · 1 评论 -
java io -- InputStream
上篇文章java io-流简单介绍了流的概念,本文我们就关注于字节流。从java字节流说起,java的字节流有两种:输入流和输出流,我这里只分析输入流,输出流与输入流类似,只是方向相反。输入流,顾名思义,就是我们输入我们程序的字节流,也就是如果我们的程序需要输入时,我们从流中读取。输入流是一个抽象的概念,当我们读取文件时,就把文件抽象成一个输入流,当我们读取字节数组时,可以把这个字节数原创 2016-10-15 23:12:17 · 2690 阅读 · 1 评论 -
Java io --- 流(Stream)
1 流的概念在java中,流(stream)代表一个数据来源,或者一个数据目的地。Stream是对数据源的一种整体抽象,一个stream可以是一个文件,或者一个socket,在很多教程中,都提到可以将stream看成一个与目的数据源操之间的管道,我们利用这个管道从数据源中读取或者写数据,总之,只要我们获取到了一个流,我们对这个流的操作就会影响到流的另一端。图1和图2分别是利用了流读取和写数据。原创 2016-10-15 22:59:27 · 1073 阅读 · 0 评论 -
Java 集合类之Map探究
Java Map存在于java.util包中,是一个集合类,常见的集合类还有List。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。本文利用一张类图简述一个Map相关的组织结构。类图如下:类图说明:Map是一个顶级接口,从类图中可以看出主要包括了几个方法(部分)。SortedMap和ConcurrentMap接口继承自Map接口,从名字就能看出原创 2016-05-09 10:36:26 · 942 阅读 · 0 评论 -
Java集合类之List,Set探究
Collection是一个顶层的接口,在集合类中还有Map也属于顶层接口(参考Java集合类之Map探究),本文通过一张类图描述List和Set的基本结构。类图解析:Collection是一个顶层的接口,定义了一系列方法,List和Set是继承自Collection的接口。每个Collection都可以产生一个Iterator(参考Java iterator与ite原创 2016-05-09 11:19:04 · 953 阅读 · 0 评论 -
Java Proxy类深度探究
本文将利用Java Proxy类及代理模式 探究中的例子继续对Proxy进行探究,为了描述方便,本文现将场景描述一次。场景:有一个接口叫超市即Supermarket,所有的超市都要实现这个接口,超市这个接口有两个方法,buy()和sell(),buy()用来进货,sell()用来销售。常见的超市有Walmart(沃尔玛),Carrefour(家乐福)等。现在当地的管理部门要对超市进行监控,需要原创 2016-05-15 00:04:49 · 2201 阅读 · 0 评论 -
Java Proxy类及代理模式 探究
代理模式:为其他对象提供一种代理,并以控制对这个对象的访问本文通过一个超市的场景对代理模式进行探究,希望可以抛砖引玉,与大家分享。场景有一个接口叫超市即Supermarket,所有的超市都要实现这个接口,超市这个接口有两个方法,buy()和sell(),buy()用来进货,sell()用来销售。常见的超市有Walmart(沃尔玛),Carrefour(家乐福)等。现在突然有一个需求原创 2016-05-14 23:36:44 · 2095 阅读 · 0 评论 -
JAVA Class 类探究
Java 中所有的对象都是primitive 类型或者 reference类型。所有的reference类型都继承自Object类。对于任何继承自Object类的对象,jvm提供了一个Class类的实例,使得可以对运行时对象获取其类型信息。如下图所示:本文以一个继承自Fruit的Apple为例进行介绍,所有的示例部分都在最后的代码中。 Class 类 ,java.lang.Cl原创 2016-05-11 18:10:46 · 1347 阅读 · 0 评论 -
Java Comparator 和 Strategy模式
一引出问题场景:有五种水果,每个水果都有sweet(甜度)属性和sour(酸度)属性,我们现在需要对水果按照甜度排序。将所有水果置于一个ArrayList中,不采用Strategy时,对ArrayList进行封装,添加sort()方法,类图如下: 这种方法有两个主要问题1)sort()只能在这个类中应用,以后有其他需要排序的类时,需要重新实现排序2)如果需要更换排序算法,也原创 2016-04-29 10:52:30 · 1201 阅读 · 0 评论 -
Java array总结
1 Array是java中对对象序列最有效的存储和随机访问。 2 Array的大小的固定的,不能改变。 3 Array 和 ArrayListArrayList是对Array的一个改进,当增加时,新建一个更大的array,将数据进行拷贝。其他container(thinking in java中将其他集合类称为container)不能存储primitives类型,如int等原创 2016-04-28 15:19:12 · 554 阅读 · 0 评论 -
java volatile 探究
一 同步问题先看一个多线程的例子,地球人都知道,这样的代码一定会有问题public class Test { static int x = 0; private static int thread_num = 1000; public static void add (){ x++; } public static void main(String[] args) {原创 2016-04-13 13:36:47 · 540 阅读 · 0 评论 -
Java synchronized 探索
一 并发的需求 在java的开发中,经常会有多线程的使用,在多线程使用时,就不可避免要访问同一个变量,这时就需要对共享变量进行控制,防止对一个变量同时访问时出错,在java中有synchronized关键字及其他方法进行并行控制,这里对synchronized进行一个介绍,首先引入一个例子,说明并发控制的必要性。例:假设一家公司有n个部门,每个部门都要给一个人发工资,用一个int变量m原创 2016-04-12 10:51:35 · 552 阅读 · 0 评论 -
Java File类
File类的名字很有迷惑性,其实应该是叫做FilePath。File可以代表某个文件的文件名,或是某个文件夹,如果是文件夹,可以用list()方法查看每个文件的路径,并返回一个String数组,可以用来检测文件是否存在等。File 对象也可以用delete(),mkdirs()等方法。下面学渣用一个例子简述一下File原创 2014-06-20 17:21:23 · 767 阅读 · 0 评论 -
java io --- Reader类
在前几篇文章中一直讲的都是InputStream,这是操作字节流的类,然而我们在程序中往往要从文件等stream中读取字符信息,如果只用InputStream能否读取字符信息呢?当然可以。但是这涉及到了一个编码和解码的问题,传输双方必须才用同一种编码方式才能正确接收,这就导致每次在传输时,传输方需要做这么几件事:1)将需要传输的字符编码成指定字节2)传输字节接收方需要做这么几件事:原创 2016-10-16 17:45:52 · 23163 阅读 · 5 评论