
java
文章平均质量分 80
neu_张康
站在巨人的肩膀上努力攀爬!(Keep Java开发工程师一枚,目前在职状态,工作原因博客已不再维护)
展开
-
java中的equals与==的区别
equals是Object类的公共方法,方法内部是用==实现的。但是很多类都重写了equals方法,例如基本数据类型的封装类和String类,重写后比较的是对象的值或者内容是否相同。而==是比较地址,但是基本数据类型,==比较的是两个变量的值是否相同,对于两个引用数据类型而言,==比较的是它们的地址是否相同。equals方法比较内容public class CSDN { public stati...原创 2018-03-06 19:44:59 · 328 阅读 · 0 评论 -
Java观察者模式(Observer)
一、定义观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。主要应用在java的AWT事件机制。二、角色抽象主题角色(Subject):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类...原创 2018-08-10 17:21:20 · 482 阅读 · 0 评论 -
Java装饰者模式(Decorator)
一、定义装饰模式的设计理念主要是以对客户端透明的方式动态扩展对象的功能,是继承关系的一个替代(继承会产生大量的子类,而且代码有冗余)。装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。装饰模式把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展完全是透明的(装饰模式的透明性要求客户端程序不应该将对象声明为具体构件类型或具体装饰类型,而应该全部声明为抽象构件类型),装饰模式的应用在...原创 2018-08-09 22:57:28 · 13925 阅读 · 5 评论 -
Java中IO流讲解(一)
一、概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于操作流的类都在IO包中流按流向分为两种:输入流,输出流流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符流 : 字符流只能操作纯字符数据,比较方便。二、字节流字节流的抽象父类:InputStream和OutputStream,由于抽象类是不能直接new对象的...原创 2018-06-16 23:15:05 · 956 阅读 · 0 评论 -
Java中TreeMap集合讲解
1.TreeSet介绍TreeSet是一个有序集合,可以以任意顺序将元素插入到集合中,在对集合进行遍历的时候,每个元素将自动按照排序后的顺序呈现。底层使用的是二叉树(更具体点是红黑树)实现,对于元素之间排序,如果不指定自定义的比较器Comparator,那么插入的对象必须实现Comparable接口。如果指定了自定义的比较器Comparator,优先使用Comparator去对元素进行排序。比较规...原创 2018-06-06 20:40:09 · 11718 阅读 · 3 评论 -
Java中File类的使用介绍
1、创建File对象的几种方式import java.io.File;public class MyFile { public static void main(String[] args) { File file1 = new File("a.txt"); // 相对路径 File file2 = new File("E:\\image\\1.jpg"); ...原创 2018-06-12 22:47:07 · 3301 阅读 · 0 评论 -
Java的9种基本数据类型以及封装类
Java的9种基本数据类型以及封装类基本类型大小(单位/字节)默认值封装类byte1(byte)0Byteshort2(short)0Shortint40Integerlong80LLongfloat40.0fFloatdouble80.0dDoubleboolean-falseBooleanchar2'\u0000'Charactervoid--Void...原创 2018-03-06 17:10:52 · 425 阅读 · 0 评论 -
Java中HashMap底层原理源码分析
在介绍HashMap的同时,我会把它和HashTable以及ConcurrentHashMap的区别也说一下,不过本文主要是介绍HashMap,其实它们的原理差不多,都是数组加链表的形式存储数据,另外本文所介绍的都是JDK1.8版本的。在介绍之前,先看下Map家族的继承体系图:其中,TreeMap是基于树实现的,其他三个都是哈希表结构。HashMap和Hashtable的主要区别是:1. Hash...原创 2018-03-09 14:55:15 · 4415 阅读 · 6 评论 -
Java中的String,StringBuilder,StringBuffer的区别
String字符串常量-JDK1.0StringBuilder字符串变量线程不安全JDK1.0StringBuffer字符串变量线程安全JDK1.5三者区别String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。如...原创 2018-03-08 11:35:29 · 2195 阅读 · 0 评论 -
java中ArrayList、LinkedList、Vector的区别
ArrayList、LinkedList、Vector这三个类都实现了List接口。ArrayList是一个可以处理变长数组的类型,可以存放任意类型的对象。ArrayList的所有方法都是默认在单一线程下进行的,因此ArrayList不具有线程安全性。LinkedList可以看做为一个双向链表,LinkedList也是线程不安全的,在LinkedList的内部实现中,并不是用普通的数组来存放数据的...原创 2018-03-08 10:48:19 · 1231 阅读 · 0 评论 -
Java策略模式(Strategy)
一、定义定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。(Java的TreeSet集合中,构造方法可传入具体的比较器对象以实现不同的排序算法。就是利用的策略模式)策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中, 从而使得它们可以相互替换,使用策略模式可以把行为和环境分割开来。二、意义策略模...原创 2018-08-10 17:40:56 · 935 阅读 · 0 评论