刘成

我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。...

Spring AOP用法详解

什么是AOP AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需 要为分散...

2018-12-16 10:43:35

阅读数:31

评论数:0

SLF4J源码解析(一)

提出问题 阅读源码之前,首先提几个问题 SLF4J是如何整合不同的日志框架的 Class Path中为什么只能有且仅有一种日志框架的binding 这段文字摘录自官网:In your code, in addition to slf4j-api-1.8.0-beta2.jar, you s...

2018-12-15 14:19:56

阅读数:5

评论数:0

全面解析Java HashMap类

HashMap也是一个常用的Java集合框架类,它涉及大量的知识,包括数组、链表、红黑树等,以及一些高效而巧妙的计算,并且这个类已经被改进了几个版本,不同版本之间也有一些差异,这里都是基于JDK8的源代码。像通常的源代码翻译一样,看看能否回答以下问题?(有些地方真的很难翻译,看看就知道了。) 问...

2018-12-15 10:26:50

阅读数:20

评论数:0

Java第三方支付接入案例(支付宝)

开源项目链接 Kitty 开源权限管理系统 项目地址:https://gitee.com/liuge1988/kitty 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 注册沙箱账号 到蚂蚁金服注册开发者账号,注册地址:h...

2018-12-14 19:03:37

阅读数:23

评论数:0

Java NIO之Selector

这篇文章来介绍一下另一个比较重要的概念----Selector。我们知道系统线程的切换是消耗系统资源的,如果我们每一个连接都用一个线程来管理,资源的开销会非常大,这个时候就可以用Selector。通过Selector可以实现一个线程管理多个Channel,如下图:   Selector使用 ...

2018-12-14 14:30:06

阅读数:11

评论数:0

Linux 驱动程序入门

驱动是具有入口和出口的一组方法的集合,这一组方法才是驱动的核心内容。 对于字符设备驱动程序,最核心的就是 file_operation 结构,这个结构实际上是提供给虚拟文件系统 [ VFS ] 的文件接口,它的每一个成员函数一般都对应一个系统调用。用户进程利用系统调用对设备文件进行诸如读和写操作时...

2018-12-13 15:14:03

阅读数:18

评论数:0

Java内存模型详解

一、Java内存模型 硬件处理 电脑硬件,我们知道有用于计算的cpu、辅助运算的内存、以及硬盘还有进行数据传输的数据总线。在程序执行中很多都是内存计算,cpu为了更快的进行计算会有高速缓存,最后同步至主内存,大概的交互如下图 为了使处理器内部的运算单元能够被充分的利用,处理器可能会对输入...

2018-12-13 14:57:20

阅读数:11

评论数:0

Java并发数据结构的基础

Java的并发能力的基础是Park()和unPark()方法、易失性变量、同步化、CAS操作和AQS队列。进入这些知识点并不容易。本节中提到的与锁相关的知识并不特别完整,还有许多细节我还没有完全理解,因此让我们稍后讨论关于锁的更多细节。 线程阻塞原语 Java的线程阻塞和唤醒是通过不安全的类公...

2018-12-13 14:34:29

阅读数:40

评论数:0

系统架构中为什么要引入消息中间件?

“在本文的开头,我们将讨论消息中间件的高频访问问题,它也将涵盖MQ中间件的一些常见技术问题。如果面试官看了你的简历中使用MQ中间件的经历,可能会有以下问题:在你的公司的生产环境中使用了什么消息中间件?为什么要将消息中间件引入系统?引入消息中间件的优点和缺点是什么?好,让我们逐一分析。 一、你们公...

2018-12-13 12:15:41

阅读数:27

评论数:0

Java重点基础:反射机制

一、什么是反射? Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。 二、反射的三种方式 这里需要跟大家说一下,所谓反射其实是获取类的字节码...

2018-12-13 11:13:55

阅读数:12

评论数:0

从源代码的角度理解Java设计模式的装饰模式

一、装饰模式介绍 修饰符模式定义:不改变原始对象的附加函数比生成子类更灵活。 适用场景:动态的给一个对象添加或者撤销功能。 优点:它能够在不改变原有对象的情况下动态扩展函数,使扩展函数按照期望的顺序执行,达到不同的效果。 缺点:更多的类,使程序复杂 类型:结构型。 类图: 源码分...

2018-12-12 13:40:04

阅读数:29

评论数:2

String居然还能这样玩!

Java 11 增加了一系列的字符串处理方法,如以下所示。 // 判断字符串是否为空白 " ".isBlank(); // true // 去除首尾空格 " Javastack ".stri...

2018-12-12 13:32:37

阅读数:10

评论数:1

你不可不知的Java引用类型之ReferenceQueue源码详解

定义 引用队列是用于存储要回收的引用对象的引用队列。 说明 对于软引用、弱引用和虚拟引用,如果希望在垃圾收集器回收对象以进行其他处理时得到通知,则需要使用引用队列。 当垃圾收集器扫描要回收的对象时,将对应的引用包装器类(引用对象)放入其注册的引用队列队列中。可以从队列中获得相应的对象信息,...

2018-12-11 21:35:11

阅读数:13

评论数:0

浅析Java中的四种线程池

1.使用线程池的好处    2.JUC中几种常用的线程池 java.util.concurrent包下的Executors工厂类,提供了一系列的线程池的创建方法,其构造方法如下: public ThreadPoolExecutor(int corePoolSize,       ...

2018-12-11 19:20:35

阅读数:8

评论数:0

基于Java实现红黑树的基本操作

首先,在阅读文章之前,我希望读者对二叉树有一定的了解,因为红黑树的本质就是一颗二叉树。所以本篇博客中不在将二叉树的增删查的基本操作了。 有随机数节点组成的二叉树的平均高度为logn,所以正常情况下二叉树查找的时间复杂度为O(logn)。但是,根据二叉树的特性,在最坏的情况下,比如存储的是一个有序...

2018-12-11 15:00:41

阅读数:478

评论数:0

Java如何实现哈夫曼编码

哈夫曼树 既然是学习哈夫曼编码,我们首先需要知道什么是哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。   哈夫曼编码 在日常计算...

2018-12-08 20:04:03

阅读数:26

评论数:0

volatile关键字全面解析

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。 下面我们以一次假想的面试过...

2018-12-08 14:22:41

阅读数:22

评论数:0

从Spring到SpringBoot构建WEB MVC核心配置详解

理解Spring WEB MVC架构的演变 基础Servlet架构 核心架构:前端控制器 Spring WEB MVC架构 认识Spring WEB MVC 传统时代的Spring WEB MVC 怎么讲呢?就是很传统的使用Spring Framework WEB MVC的...

2018-12-07 19:33:04

阅读数:26

评论数:0

Java注解(annotation)机制

前言 jdk1.5引入了注解机制(Annotation),用于对java里面的元素(如:Class、Method、Field等等)进行标记。同时,java的反射类库也加入了对Annotation的支持,因此我们可以利用反射来对特殊的Annotation进行特殊的处理,增强代码的语义。 本文主要...

2018-12-07 16:23:47

阅读数:9

评论数:0

Java并发之谈谈对AQS的理解

一、写在前面 这篇文章,我们来聊聊面试的时候比较有杀伤力的一个问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首先,很多人还真的连AQS是什么都不知道,可能听都没听说过。或者有的人听说过AQS这...

2018-12-06 17:17:59

阅读数:35

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭