![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 58
leoYouthDream
不是狮子的狮子
展开
-
Map分析
java.util.Map1.Map接口和方法1.1覆盖了equal()和hashCode()|方法|说明| | |equal(Obejct o)|根据实际比较指定对象与Map的等价性| |hashCode()|返回次Map的哈希表|1.2Map的主要增减删除方法|方法|说明| | |clear()|删除所有映射| |remove(object)|删除指定的的key-value| |p原创 2017-05-24 14:46:26 · 516 阅读 · 0 评论 -
设计模式-----复杂模式
设计模式—–复杂模式复合模式, 在一个解决方案中结合两个或多个模式,比如MVC设计模式,结合图片分析一下MVC中的三大设计模式 背景 还是按照鸭子来进行背景设计,通过不断加入新的模式来使用多种模式解决问题,但是将这些模式结合使用并不代表这些模式有资格称为复合模式1.使用多种模式 一大波鸭子的叫声public interface Quackable { public void q原创 2017-09-17 22:46:25 · 555 阅读 · 0 评论 -
设计模式-----状态模式
设计模式—–状态模式状态模式 , 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 , 水有三种状态,通过不同方法可以在三种状态中进行转变;我们这里要做的就是实现这个转变的过程1.简单的实现,不是用状态模式public class InitialDemo {原创 2017-09-17 17:45:08 · 389 阅读 · 0 评论 -
设计模式-----模板方法模式
设计模式—–模板方法模式策略模式,在一个方法中定义一个算法的骨架,而将一些具体的步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤设计模式系列博客代码: https://github.com/liloqian/DesiginModeDemo 背景 , 我们的生活过程中,煮茶和咖啡的工作看起来不同,但是都可以分为下面4步,烧水,把茶或者咖啡放入水中,把咖啡或者原创 2017-09-16 17:15:12 · 264 阅读 · 0 评论 -
设计模式-----适配器模式
设计模式—–适配器模式适配器模式 , 将一个接口转化为另外一个接口,以符合客户的期望。实现让原本接口不兼容的类可以合作无间。看了下面的很清晰了设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 ,客户向我们预定100只鸭子和100只鸡,但是我们只有50只鸭子,鸡有很多,这么大一笔生意不做太可惜了? 我左思右想…我拿50只鸡去冒充鸭子不原创 2017-09-15 22:58:24 · 339 阅读 · 0 评论 -
设计模式-----命令模式
设计模式—–命令模式命令模式 , 将请求封装成对象,以便使用不同的请求,队列或日志来参数化其他对象,命令模式也支持可撤销的操作设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 现在有一个遥控器,上面有1个按钮,我们要根据不同的请求来控制不同的电器,比如说可以控制风扇,点灯等,这里我们就可以引入命令模式在面向对象的程序设计原创 2017-09-15 22:57:40 · 278 阅读 · 0 评论 -
设计模式 ----- 单件模式
设计模式 —– 单件模式单件模式,确保一个类只有一个实例额,并提供一个安全的全局访问点所有设计模式中最简单的一种,但是在软件开发中使用的很频繁 背景 , 在我们的程序设计过程中,经常会用到一个类的实现在整个程序中只有一个初始化一个实例,为什么会出现这种需求哪? 1.多个实例可能会出现在不同的线程中同时操作同一个设备,比如同时读写同一个配置文件,同时操作打印设备,都会产生数据的不确定性原创 2017-09-15 14:49:55 · 295 阅读 · 0 评论 -
设计模式-----工厂模式
工厂模式工厂方法模式,定义了一个创建对象的接口,单由于子类决定要实例化的类是哪一个。工厂方法把实例化推迟到子类抽象工厂模式,提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 , 我们是披萨厂家,要给我们的客户提供一个订餐系统,可以预定我们各种各样的披萨(捞蛤披萨,奶原创 2017-09-14 23:31:01 · 282 阅读 · 0 评论 -
设计模式-----装饰模式
装饰模式装饰模式,动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案,在Java JDK的io实现中使用了大量的装饰者模式设计模式系列博客博主源码: https://github.com/liloqian/DesiginModeDemo 背景 我们要帮星巴克提供一个自动打印咖啡信息和价格的软件,比如基础的浓缩咖啡,混合咖啡,每个基础咖啡加了什么调料(几分糖,几分原创 2017-09-14 16:32:59 · 269 阅读 · 0 评论 -
设计模式 ----- 策略模式
设计模式 —– 策略模式OOP设计必须具备 可复用 ,可扩充, 可维护 背景 有一个软件要描述好多鸭子,主要包括了游泳,什么外观,飞行的动作,我们该怎么设计。1使用继承public class DemoOne { //公共父类 abstract class Duck{ public void Duck(){} //所以鸭子的游泳行为都是一致原创 2017-09-12 22:02:30 · 231 阅读 · 0 评论 -
Java 提高(5)----- 泛型
泛型为什么使用泛型 在没有泛型的情况下,我们可能为一种数据类型写一个方法或者类,这大大增加代码量,当然我们也可以使用Object对象代替某种数据类型,但是这样get会需要强制类型转换,遇到错误只有在运行时才可以发现,在这种情况下我们需要使用泛型类定义一个简单的泛型public class Fruit<T> { private T data; public T getData()原创 2017-09-02 21:06:16 · 205 阅读 · 0 评论 -
Java 提高(6)----- 多线程
Java 提高(6)—– 多线程1.线程的状态 新创建线程 在new Thread(r)后该线程还没有运行,状态还是new 可运行线程 线程处于runable状态,可运行的线程可能在运行也可能没有在运行,当获得时间片就是运行否则就是没有运行 阻塞线程 当一个线程试图获取被其他对象持有的锁就会进入阻塞状态,这是同步阻塞;当运行sleep或者join这个线程也会进入阻塞状态,这时当s原创 2017-09-02 21:07:23 · 209 阅读 · 0 评论 -
Java 提高(4)----- 异常 Logger
异常 Logger推荐博客 http://blog.csdn.net/hguisu/article/details/6155636异常分类 所有的异常有Throwable(直接继承了Object)继承而来,有两个子类Error和ExceptionError , 描述了java运行时系统的内部错误和资源耗尽错误,应用程序不应该抛出这种类型的错误,当出现了这种错误,我们只能告诉使用者错误类型,安全的原创 2017-08-31 10:43:21 · 1850 阅读 · 0 评论 -
Java 提高(3)----- 类
Java 提高(3)—– 类Java类的方法 类的方法可以分为两种,一种是类方法,就是用static修饰的方法,在调用时可以直接用类名调用;另一种是对象方法,没有用static修饰方法,在调用时用对象调用,在同一个类一个方法调用另外一个方法时,如果调用的是非static方法,那默认使用this作为调用者方法不能独立定义,只能在类里定义从逻辑意义上看,方法要么属于该类本身,要不属于该类的一个对象原创 2017-08-29 22:39:40 · 198 阅读 · 0 评论 -
Java 提高(2)----- 类型转换
类型转换基本类型的类型转换 当我们传入的参数和要求的参数不一样时,如果从满足自动类型转换时会自动类型转换自动类型转换 一个表数范围小的可以向表数范围大的进行自动类型转换,如上图,可以从左边自动向右边转换public class AutoTraverse { private void f1(byte b){ System.out.println("byte "+b);原创 2017-08-29 22:37:23 · 220 阅读 · 0 评论 -
ArrayList分析
List接口的可调整大小的数组实现。实现了所有的可选列表操作,并允许所有的元素,包括 null。除了实现 List接口,这个类提供了操纵的阵列,用于内部存储列表的大小的方法。(这类大致相当于 Vector,除了它是不同步的。) public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess,原创 2017-05-22 20:53:12 · 427 阅读 · 0 评论 -
java creeper
java creeper 第三方jsoup解析包 , 学习了使用jsoup解析html后就简单写个小爬虫。1. jsoupjsoup的使用自己百度,google,使用非常简单2. 具体思路最终我们的目的是得到很多网页的html文件,从一个网站入口,解析得到全部的超链接,把全部的超链接加到工作队列中继续下载网页,下载完成一个网页就分析得到新的超链接,依次循环,程序没有做重复判断。3. 代码分原创 2017-07-20 16:59:23 · 344 阅读 · 0 评论 -
android Annotion
android Annotion标签(空格分隔): 未分类 在看书过程中发现了注解,注解对我们写代码是非常有用的,我自己想到了注解会不会影响程序的性能?主要分为三部分说一下我的疑问,首先仅仅保留在源码里面的注解肯定不会影响程序的性能,仅仅我们在ide中code时ide会干更多的工作;其次编译进入class文件的注解,在我看来会影响性能的,因为这部分注解不会进入虚拟机,那么虚拟机在加载的过程中会把原创 2017-08-11 21:35:07 · 314 阅读 · 0 评论 -
java 信息熵 加密
java 信息熵 加密 在阅读开源代码过程中,发现出现了好多crypto和digest类的代码,发现是加密方面的使用,以前也看过加密原理,但是似是而非没有理解,这次先记录一下java下使用已有的类来完成我们的加密,为后面的深入打下基础(先学会使用再学习原理 :) )1.MessageDigestjava.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如原创 2017-08-05 23:01:39 · 982 阅读 · 0 评论 -
Java 集合(1)----- List Set Queue Map
List Set Queue MapList–>(有序 可重复) List是Collection接口的一个子接口,存在的对象是有序的,List和set接口的区别是List中的元素可以重复(可以利用set去重)ArrayList动态数组,查询速度快,但是在中间位置插入速度慢,线程不安全Vector矢量队列,和ArrayList一样,是一个动态数组,由数组实现,但是线程安全的Stack使用数组原创 2017-08-21 21:14:42 · 288 阅读 · 0 评论 -
System.arraycopy() 浅拷贝 深拷贝
System.arraycopy() 浅拷贝 深拷贝 在分析ArrayList源码的时候,在clone()方法中对System.arraycopy()是如何拷贝数据的产生了疑问?网上的答案是浅拷贝,看不到代码的具体实现就做几个例子测试一下 答案 ,对System.arraycopy()确实是浅拷贝,不会进行递归拷贝,所以产生的结果是基本数据类型是值拷贝,对象只是引用拷贝基本数据类型原创 2017-08-22 15:06:07 · 7508 阅读 · 0 评论 -
深入理解java虚拟机(1)-----Java内存模型与内存溢出异常
Java内存模型与内存溢出异常 《深入理解java虚拟机》读书笔记,记录一下基本的理论知识,有些地方可能总结不是很清楚,感兴趣的可以阅读原书Java虚拟机在执行java程序时会把它所管理的内存划分为若干个不同的数据区域(如上图),除了红色里面的外面两部分区域堆和方法区是进程共有的,红色里面我画了2个线程,每个线程里面的三个区域是线程私有的,下面单独列出各个部分的特点线程私有的三个区域,程序计数原创 2017-08-26 10:11:17 · 282 阅读 · 0 评论 -
Java 集合(1)----- ArrayList 源码分析
Java—–> ArrayList Java Collection系列博客分析了我们日常使用过程中常用集合的常用方法源码 在阅读源码过程中遇到了一个问题, System.arraycopy()到底是怎么拷贝的?深拷贝还是浅拷贝? 根据实验的结果对基本数据类型是深拷贝,class对象是浅拷贝,根据网上各种博客加上个人的理解最后确认了System.arraycopy()就是浅拷贝,深拷贝是原创 2017-08-22 23:01:49 · 223 阅读 · 0 评论 -
深入理解java虚拟机(2)-----Java 垃圾收集器和内存分配策略
Java 垃圾收集器和内存分配策略 <深入理解java虚拟机>读书笔记 java和C++之间有一堵有动态内存分配和垃圾回收所构成的高墙,墙内的人想出去,强外的人想进来 —— 作者的这句话很经典主要围绕三个问题进行分析 - 那些内存需要回收? - 什么时候回收? - 如何回收?那些内存需要回收?java内存模型http://blog.csdn.net/che转载 2017-08-26 12:05:15 · 263 阅读 · 0 评论 -
深入理解java虚拟机(3)-----字节码文件格式和类加载
字节码文件格式和类加载1字节码结构*.java文件经过javac编译后得到*.class文件,称为字节码文件,字节码文件时构成各种平台虚拟机的关键基石,字节码文件包含了java虚拟机指令集和若干其他辅助信息,好多语言比如jRuby Groovy经过编译都会生成字节码文件在虚拟机上运行,所以字节码文件是虚拟机的重要基石 Class文件是一组以8字节为基础单位的二进制流,各个数据项目按照严格的顺序排原创 2017-08-27 16:14:45 · 3746 阅读 · 0 评论 -
Java 提高(1)----- java中的goto语句
java中的goto语句Java中的goto语句 在java中可以使用标签和continue,break组合形成goto的效果public class LabelDemo { public static void main(String[] args) throws InterruptedException { //标签 exit: wh原创 2017-08-28 23:07:16 · 6796 阅读 · 0 评论 -
JavaPoet
JavaPoet的简单了解JavaPoet是一个用来生成.java源文件的Java第三方库,在ButterKnife注解库中首次见到了这个工具,当做如注解或者数据库模式、协议格式等事情时,生成源文件就比较有用处。参考博客地址 http://www.jianshu.com/p/95f12f72f69a 官方github地址 https://github.com/square/javapoet1.配置原创 2017-09-11 19:45:56 · 402 阅读 · 0 评论