首页
学习
活动
专区
工具
TVP
发布

博岩Java大讲堂

java基础知识--集合、日志、多线程、jvm、io
专栏作者
47
文章
79887
阅读量
43
订阅数
Java-SPI机制
Java--SPI机制 SPI全称为Service Provider Interface,是JDK内置的一种服务提供发现机制。简单来说,它就是一种动态替换发现机制。例如:有个接口想在运行时才发现具体的实现类,那么你只需要在程序运行前添加一个实现即可,并把新加的实现描述给JDK即可。此外,在程序的运行过程中,也可以随时对该描述进行修改,完成具体实现的替换。 Java提供了很多服务提供者接口(Service Provider Interface,SPI),允许第三方为这些接口提供实现。常见的SPI有JDBC、J
贾博岩
2018-06-13
1K0
Java集合--Set(深入学习)
1 Set集合主要源码分析 上一篇,我们介绍了Java集合框架中的Set集合,主要讲了HashSet和TreeSet这两个实现类。本篇,依旧对这两个实现类进行学习,通过学习源码来深入地了解。 1.1 HashSet源码分析(基于JDK1.7.0_75) HashSet基于HashMap,底层方法是通过调用HashMap的API来实现,因此HashSet源码结构比较简单,代码较少。 成员变量: 在HashSet中,有两个成员变量比较重要--map、PRESENT; 其中,map就是存储元素的地方,实际是一个H
贾博岩
2018-05-11
8580
Java日志体系(commons-logging)Java日志系统学习
Java日志系统学习 作为一名Java开发者,日志是我们工作中经常接触到的一项技术。对于Web应用而言,日志的重要性不言而喻,是必不可少的一部分;日志提供了丰富的记录功能,例如程序运行时的错误信息,描述信息,状态信息和执行时间信息等。 在实际生产环境中,日志是查找问题的重要来源,良好的日志格式和记录可以帮助Developer快速定位到错误的根源,找到问题的原因; 尽管对于现在的应用程序来说,日志至关重要,但是在JDK最初的版本当中并不包含日志记录的API和实现,直到JDK1.4后才被加入;因此,开源社区在此
贾博岩
2018-05-11
1.5K0
Java集合--Queue(Java中实现2)
1.1 Deque源码(基于JDK1.7.0_45) 本票中,我们来看看Deque源码,在Queue基础上,又增加了哪些功能? Deque接口,是一个实现了双端队列数据结构的队列,即在头尾都可进行删除和新增操作; //接口Deuque: public interface Deque<E> extends Queue<E> { //将指定元素添加到双端队列的头部(如果队列满了,则抛出异常) void addFirst(E e); //将指定元素添加到双端队列的头部(如果队列满了,
贾博岩
2018-05-11
1.4K0
Java集合--Queue(Java中实现1)
1.2 Java中的实现 上一篇,阐述了队列的实现结构,通过图片的形式让大家有了更进一步的了解。 接下来,我,我们来看看队列在Java具体是如何成仙了,来看下Queue的代码!!! 在Java中,Ar
贾博岩
2018-05-11
1.2K0
关于Java泛型"擦除"的一点思考
头次写博客,想说的东西不难,关于泛型的疑问,是前一阵在学习jackson中遇到的。 下面就把我所想到的、遇到的,分享出来。 泛型是JDK1.5后的一个特性,是一个参数类型的应用,可以将这个参数声明在类、接口、方法中,就像我们方法中定义的局部变量一样;在工作中,我们常在List,Map,Set等集合对象中使用,或者我们自己声明的类中使用。 说到泛型,就不得说起“擦除”这个概念,相比于c#来说,java的泛型只存在于程序的源码中,在编译后的class文件中不存在,这个过程就是--泛型"擦除";所以,对于new
贾博岩
2018-05-11
1.4K0
Java虚拟机--Java发展史Java虚拟机
Java虚拟机 从今开始,笔者开始向大家讲解JAVA虚拟机的知识,有没有很兴奋!!!! 对于JAVA开发者来说,虚拟机再熟悉不过,每天的工作中都会接触,但是总有一种“近在眼前,却又远在天边”的感觉。 而笔者要写的这一系列文章,就是想帮助大家去除这样的困惑,让大家明白虚拟机是什么,做了哪些事情,哪些机制跟我们的开发息息相关。 既然学习虚拟机,那么关于Java的相关历史还是有必要去了解的,在本章节中,笔者将会先介绍Java的发展历史,再说说Java虚拟机的发展历史! 接下里,就让我们开始第一章节的学习吧。 Ja
贾博岩
2018-05-11
1.4K0
Java集合--非阻塞队列(ConcurrentLinkedQueue实现原理)
ConcurrentLinkedQueue实现原理 上文,笔者介绍了非阻塞队列的基础知识,对于其代表类ConcurrentLinkedQueue做了个简单阐述。 本篇,我们就继续对ConcurrentLinkedQueue进行学习,来看看ConcurrentLinkedQueue的底层实现! 链表结点 在ConcurrentLinkedQueue中,元素保存在结点中,对外以元素形式存在,对内则以结点形式存在。 每一个结点中,都有指向下一个结点的指针,依次向后排列,形成链表结构。 在ConcurrentLin
贾博岩
2018-05-11
1.4K0
Java虚拟机--虚拟机发展史
Java虚拟机介绍 上一节中,我们介绍了Java的发展历史,从Java1.0说到了Java1.9,从1995年说到了2017年,在这20余年的发展过程中,Java在全世界得到了广泛普及,成为了世界上使用人数最多的编程语言。 值得表明的是,Java的高速发展离不开底层技术的支持,离不开Java的核心--虚拟机。在这20多年的发展中,Java虚拟机也随着Java的版本不断的迭代,更新。 从1996年初,Sun公司发布的Java1.0开始,虚拟机就走进了历史的舞台。在发展的过程中,有的虚拟机一经出现便得到众多关注
贾博岩
2018-05-11
1.4K0
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档