
|--其他
Holmofy
奋斗中的小菜鸟
展开
-
Java SPI机制
SPI全称Service Provider Interface,是Java提供的一种让第三方实现或扩展的API。java平台中很多功能都是以这种方式提供接口给开发者调用的,最典型的如:JDBC,JDNI,JCE(Java加密扩展),JAXP等,看JDK源码或者第三方源码的时候会经常碰到SPI,所以我觉得很有必要写个笔记把SPI记录下来。定义SPI接口这里我就拿JDBC的数据库驱动作...原创 2018-02-12 18:15:03 · 546 阅读 · 0 评论 -
EffectiveJava读书笔记- 第4条:通过私有构造器强化不可实例化的能力
通过私有构造器强化不可实例化的能力上一条讲单例的时候已经提到了私有化构造器。单例模式这么搞是为了保证全局只有一个实例,而这一条规则是为了让工具类一个实例都无法创建。这样的例子在JDK中有很多:java.util.Collections,java.util.Arrays,java.util.concurrent.Executors,java.util.Objects,java.util.st...原创 2018-02-17 20:11:33 · 357 阅读 · 0 评论 -
EffectiveJava读书笔记- 第3条:用私有构造器或者枚举类型强化Singleton属性
用私有构造器或枚举类型强化Singleton属性单例模式(Singleton Pattern)无疑是笔试面试中被问得最多的问题之一。单例模式虽然看似简单,但是仍有很多东西值得思考。GOF是这么定义单例模式的: 确保一个类只有一个实例,并提供一个全局访问点。通常实现单例都需要我们私有化构造器,让对象无法在外部创建,同时提供一个外部访问的方法返回这个单例对象。通常单例分为两大...原创 2018-02-16 21:55:27 · 493 阅读 · 0 评论 -
EffectiveJava读书笔记- 第2条:遇到构造器有多个参数时要考虑用构建者模式
遇到构造器有多个参数时要考虑用建造者模式静态工厂方法和构造器都有一个局限性:当构造的对象有大量的可选参数时,你可能需要定义很多个静态工厂方法或者构造器。用setter方法替代多参数构造器的几个缺点书中提到多参数的构造器的一个替代方法,就是用JavaBean模式:使用无参构造器创建对象,然后调用setter方法设置每个必要参数以及一些可选参数。1. 构造的过程中,对象可能处于不一...原创 2018-02-13 17:09:43 · 266 阅读 · 0 评论 -
EffectiveJava读书笔记- 第1条:考虑用静态工厂方法代替构造器
考虑静态工厂方法代替构造器静态工厂方法相对于构造器的好处:1. 静态工厂方法有名字,相比构造器创建的对象更语义化最好的例子就是并发库中的Executors工具类了。Executors中有多个创建线程池的方法:public static ExecutorService newFixedThreadPool(int nThreads);public static Execut...原创 2018-02-12 23:30:26 · 320 阅读 · 0 评论 -
单轴快排(SinglePivotQuickSort)和双轴快排(DualPivotQuickSort)及其JAVA实现
快速排序使用的是分治思想,将原问题分成若干个子问题进行递归解决。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。单轴快排(SinglePivotQuickSort)单轴快速排序是快速排序最简单的实现。步骤如下:如果待排序的数组...原创 2017-05-04 13:11:21 · 11767 阅读 · 11 评论 -
Java Collection框架概述
集合接口概要:List (since 1.2)Vector(since 1.0):Stack(since 1.0):ArrayList(since 1.2):LinkedList(since 1.2):CopyOnWriteArrayList(since 1.5,concurrent):Map (since 1.2)Hashtable(since 1.0):Pro...原创 2017-05-05 16:52:59 · 1795 阅读 · 0 评论 -
关于Java
关于JavaJava既是编程语言又是平台。Java编程语言Java编程语言是一种高级语言,具有以下的几种特性:简单(相对于C/C++这类语言)面向对象(而且是纯面向对象)跨平台(只要该平台有JRE就可以运行Java程序)分布式(Java的RMI机制是目前分布式技术中最成熟的)高性能(Java是编译解释混合的语言,比Python,Javascript这类解释型语言效率高...原创 2017-05-17 22:30:58 · 492 阅读 · 0 评论 -
Java语言基础复习与巩固
八种基本数据类型基本数据类型的包装类包装类的缓存池Integer缓存池的自定义配置包装类中的其他工具方法基本数据类型的格式化输出Java中的数学运算Math类中的常量和最基本方法指数运算与幂运算三角函数运算产生伪随机数Java中的字符串Java字符串与CC字符串对比Java字符串的不可变性Java的字符串连接底层实现String字符串常量池的底层实现Stri...原创 2017-06-23 01:18:14 · 932 阅读 · 0 评论 -
JavaIO流复习与巩固--FileDescriptor与File
FileDescriptorFileDescriptor,顾名思义:“文件描述符”,用来表示开放文件、开放套接字。这个概念来自于*nux文件系统,Linux继承Unix “一切皆文件” 的概念: 文件类型 标记符 普通文件 - 目录文件(directory) d 字符设备文件(character) c 块设备文件(block) ...原创 2017-07-18 00:54:05 · 3253 阅读 · 0 评论 -
JavaIO怎么调用WindowsAPI的——从Native层剖析JavaIO文件读写
上一篇文章中列举了JavaIO中FileDescriptor和File类提供的一些文件操作,这些操作还只是对文件系统中的文件进行创建或删除操作。鉴于大一玩过Window编程(对Linux API不是很熟悉),所以这篇文章会从Windows C API去分析一下Java提供给我们的几个文件读写类。 建议结合着源代码看这篇文章(这篇文章就是记录我看源代码的过程,这里的java版本是1.8.0_...原创 2017-08-20 16:22:59 · 2018 阅读 · 0 评论 -
Java函数式编程与Lambda表达式
C++,Java,C#,Python等各个编程语言早已经支持lambda表达式了,作为即将从业的大学生,现在学习Java的函数式编程应该为时不晚。FunctionalInterface函数式接口四个最基本的函数式接口基本数据类型的函数式接口1double类型的函数式接口2int类型的函数式接口3long类型的函数式接口4boolean类型的函数式接口一元函数式接口用于类...原创 2017-08-22 15:54:59 · 6191 阅读 · 3 评论 -
Servlet3.0动态注册Servlet、Filter和Listener
文章转载自http://www.blogjava.net/yongboy/archive/2010/12/30/346209.html 感谢原作者的分享说实话,对servlet 3动态加载servlet的机制有些失望,本来期望着可以在运行时完成对servlet的注册和销毁,但现状是,只能在webapp启动在初始化时进行完成注册,可能是为了安全考虑吧.在Servlet3.0...转载 2017-11-18 17:51:05 · 2464 阅读 · 0 评论 -
NIO中的File文件操作
之前的两篇文章http://blog.csdn.net/holmofy/article/details/75269866, http://blog.csdn.net/holmofy/article/details/77429957分别对传统IO对文件的基本操作以及读写进行了介绍,从Java1.7开始Java在NIO中引入了新的文件操作API。这些API在java.nio.file以及它的子包jav...原创 2017-08-26 19:13:27 · 3552 阅读 · 0 评论 -
Java I/O流总结与巩固
字节流字节流就是每次以8位一个字节的方式执行输入输出。所有字节流都继承自InputStream或OutputStream,包括字符流在内的所有类型的I/O流都是基于字节流构建的。字节输入流InputStream字节输入流基本上都需要实现InputStream这个抽象类的方法: 方法摘要 备注 public abstract int read() thr...原创 2017-05-22 14:51:18 · 654 阅读 · 0 评论