java
文章平均质量分 71
柠檬2312
Coding事,匠人心,手艺人。
展开
-
TreeSet底层解析和Collections解析
集合框架中的接口 ,TreeSet底层解析,Collections详解,SortedSet接口实现原创 2017-11-07 21:31:40 · 354 阅读 · 0 评论 -
设计模式----策略模式(Strategy Pattern)
策略模式(Strategy Pattern)中体现了两个非常基本的面相对象设计的原则: 1. 封装变化的概念 2. 编程中使用接口,而不是对接口的实现策略模式的定义 : - 定义一组算法,将每个算法都封装起来,并且 使它们之间可以互换。 - 策略模式使这些算法在客户端调用它们的时候 能够互不影响地变化策略模式的意义 - 策略模式使开发人员能够开发出由许多可替换 的部分组成的软件,并且各个原创 2017-11-09 17:09:28 · 172 阅读 · 0 评论 -
设计模式---代理模式(Proxy)(动态代理)
动态代理Java动态代理类位于java.lang.reflect包下,一般主要 涉及到以下两个类: (1)Interface InvocationHandler接口:该接口中仅定义了 一个方法 public object invoke(Object obj,Method method, Object[] args) 在实际使用时,第一个参数obj一般是指代理类,代理实例的方法被调用 第二个参数m原创 2017-11-13 17:17:12 · 330 阅读 · 0 评论 -
注解(Annotation)详细解析
Annotation工作方式:从java5.0以来,提供了一个真实的annotation功能:允许开发者定义、使用自己的额annotation类型,此功能由一个定义annotation类型的语法和一个描述annotation声明的语法,读取annotation的API,一个使用annotation修饰的Class文件,一个annotation处理工具apt组成。annotation**并不会直接影响原创 2017-11-14 20:32:20 · 1079 阅读 · 0 评论 -
小项目----DVD管理系统
做了一个DVD的管理系统,包含了增删改查\借出和归还等功能和日期与字符串的装换问题,使用了最简单的java基础知识,封装了方法,属性,实现了基本的功能。这个系统同样适用于图书馆管理系统,里面也实现了借出和归还的功能。下面给大家分析一下这个系统:用例1:数据初始化用例2:实现菜单切换用例3:实现查看DVD信息用例4:实现新增DVD信息用例5:实现删除DVD信息用例6:实现借出DVD业务处理原创 2017-11-20 09:57:37 · 1043 阅读 · 0 评论 -
设计模式----装饰模式
装饰模式又名包装(Wrapper)模式 • 装饰模式以对客户端透明的方式扩展对象 的功能,是继承关系的一个替代方案 • 装饰模式以对客户透明的方式动态的给一 个对象附加上更多的责任。换言之,客户 端并不会觉得对象在装饰前和装饰后有什么不同。• 装饰模式可以在不创造更多子类的情况下, 将对象的功能加以扩展。• 装饰模式把客户端的调用委派到被装饰类。 装饰模式的关键在于这种扩展完全是透明的。• 装饰模式原创 2017-11-22 09:50:43 · 182 阅读 · 0 评论 -
IO流总结(1)
IO流这块知识点比较多而且琐碎,今天我就来总结一下IO流的知识点。File类File类的直接父类是Object类。下面的构造方法可以用来生成File 对象: - File(String directoryPath) - File(String directoryPath, String filename) - File(File dirObj, String filename) 这里,di原创 2017-11-22 18:58:18 · 263 阅读 · 0 评论 -
IO流总结(2)----字节流
字节流文件输入输出流==FileInputStream和FileOutputStream==Java提供了一系列的读写文件的类和方法。在Java 中,所有的文件都是字节形式的。Java提供从文 件读写字节的方法。而且,Java允许在字符形式 的对象中使用字节文件流。两个最常用的流类是FileInputStream和 FileOutputStream,它们生成与文件链接的字节流。 为打开文件,你只需创原创 2017-11-22 20:16:43 · 237 阅读 · 0 评论 -
IO流总结(3)----字符流
由于Java采用16位的Unicode字符,因此需 要基于字符的输入/输出操作。从Java1.1 版开始,加入了专门处理字符流的抽象类 Reader和Writer,前者用于处理输入,后 者用于处理输出。这两个类类似于 InputStream和OuputStream,也只是提供 一些用于字符流的规定,本身不能用来生 成对象 Java程序语言使用Unicode来表示字符串和字符, Unicode使用两个原创 2017-11-22 20:41:09 · 230 阅读 · 0 评论 -
synchronized锁和static synchronized锁
synchronized关键字:当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),那么将该对象的锁释放掉,其他线程才有可原创 2017-11-23 11:24:13 · 489 阅读 · 0 评论 -
设计模式----单例模式(singleton)
单例模式分为两种:饿汉式、懒汉式既然是单例模式,那么就只有一个实例,那么构造方法就是私有的,就需要创建一个对象,而且也需要是私有的,但是需要调用所以要设置成静态的,然后提供一个方法拿到这个私有的对象。 一个类只会生成唯一的一个对象。单例模式:饿汉式1.私有构造方法 2.创建私有的静态对象 3.创建一个公共公开的方法,返回该私有对象public class Single1 { private原创 2017-11-10 16:49:16 · 145 阅读 · 0 评论 -
设计模式----工厂模式
在看工厂模式之前我们先了解一下面相对象的原则。面向对象设计的基本原则 - OCP开闭原则:一个软件的实体应当对扩展开放,对修改关闭。 - DIP依赖倒转原则:要针对接口编程,不要针对实现编程 - LOD迪米特法则:只与你直接的朋友通信,而避免和陌生人通话。工厂模式实现了创建者和调用者的分离,下面我用汽车类的例子来介绍。详细分类 - 简单工厂模式 - 工厂方法模式 - 抽象工厂模式简单原创 2017-11-10 18:28:34 · 173 阅读 · 0 评论 -
java三大特性
java最大的特点就是面向对象、可跨平台。Java的三大特性分别是继承(Inheritance)、封装(encapsulation )、多态。(polymorphism )。继承继承就是子类继承父类的属性和方法。就是生活中的儿子继承了父亲,是现实生活中的例子在java语言中的一个抽象。java是单继承的,表示一个类智能从另一个类继承,(被继承的类叫做父类(基类base class),继承的类叫做子类原创 2017-11-07 19:46:03 · 838 阅读 · 0 评论 -
Java中的String类解析
1.相等性的比较(==) (1)对于原生数据类型来说,比较的是左右两边的值是否相等 (2)对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。2.Object 类的tostring方法返回的是一个哈希code值,而string类重写了tostring方法,默认调用tostring方法。 API (Application Programming In原创 2017-11-08 15:02:38 · 201 阅读 · 0 评论 -
Map接口实现类HashMap、Map.Entry接口
来谈谈集合中的Map接口,它常用的实现类为HashMap。 Map接口除了类集,Java 2还在java.util中增加了映射。 映射(map)是一个存储关键字和值的关联 或者说是关键字/值对的对象。给定一个关 键字,可以得到它的值。关键字和值都是 对象。关键字必须是唯一的。但值是可以 重复的。有些映射可以接收null关键字和 null值。而有的则不行Map接口映射唯一关键字到值。关键字(ke原创 2017-11-08 17:00:49 · 1937 阅读 · 0 评论 -
java中Map和Set的底层分析
1.HashSet底层是使用HashMap实现的。当使用add方法将对象添加到Set当中时,实际上是将该对象作为底层所维护的Map对象的key,而value则都是同一个Object对象(该对象我们用不上);其他的都是通过定义的HashMap对象实现的。2.HashMap的底层,loadFactor负载因子为0.75,数据结构中的哈希表有关。通过散列函数也就是哈希原创 2017-11-08 17:56:15 · 3964 阅读 · 0 评论 -
Abstract详解
今天来介绍一下抽象类。我们用动物类来看,上代码:public class Animal { String name; public Animal() { // TODO Auto-generated constructor stub } public void sleep() { System.out.println("闭上眼睛就睡觉");原创 2017-11-09 16:22:50 · 602 阅读 · 0 评论 -
内部类
来说一说内部类,内部类一共分为四种,分别是静态内部类局部内部类成员内部类匿名内部类静态内部类类的成员 1. 成员变量 2. 成员方法 3. 构造方法 4. 代码块 5. 静态代码块 6. 内部类按照内部类声明方式 1. 静态内部类 - static - 属于类:类比于静态变量 静态方法,没有外部类的引用(不需要对象)(直接使用外部类的this也就是意味着不原创 2017-11-11 09:14:20 · 146 阅读 · 0 评论 -
反射机制(Reflection)详细解析(1)
我们来谈谈反射,这个知识点有些难度,不好理解,我介绍的详细一些,尽量细致,不对的地方往大家指正。我们平时编的代码和接触到的都是在java编译环境中的,而在java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的 这种动态获取类的信息以及动态调用对象的方法的功能来自于java语言的反射机制。java反射机制的功能 - 在运行原创 2017-11-11 14:08:31 · 710 阅读 · 0 评论 -
设计模式----代理模式(Proxy)(静态代理模式)
代理模式(Proxy)代理模式分为静态代理和动态代理,有代理对象叫做静态代理,没有代理对象叫做动态代理代理模式的作用是:为其他对象提供一个代理以控制对这个对象的访问。 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色: - 抽象角色:声明真实对象和代理对象的共同接口 - 代理对象:代理对象角色内部含有对真实对象的原创 2017-11-13 13:54:22 · 213 阅读 · 0 评论 -
反射机制(Reflection)(2)
继续来谈谈反射机制要想使用反射,首先需要获得待处理类或对象所对应的Class对象。2. 获取某个类或某个对象所对应的Class对象的常用的3种方式: - 使用Class类的静态方法forName,Class.forName(“java.lang.String”); - 使用类的.class语法:String.class; - 使用对象的getClass()方法: String s原创 2017-11-12 14:16:45 · 168 阅读 · 0 评论 -
Map接口实现类HashMap、Map.Entry接口
来谈谈集合中的Map接口,它常用的实现类为HashMap。Map接口除了类集,Java 2还在java.util中增加了映射。 映射(map)是一个存储关键字和值的关联 或者说是关键字/值对的对象。给定一个关 键字,可以得到它的值。关键字和值都是 对象。关键字必须是唯一的。但值是可以 重复的。有些映射可以接收null关键字和 null值。而有的则不行Map接口映射唯一关键字到值原创 2018-09-17 12:26:12 · 435 阅读 · 0 评论