wthfeng的专栏

我的架构师成长之路 http://blog.wthfeng.com

排序:
默认
按更新时间
按访问量

AbstractQueuedSynchronizer整体解析

AbstractQueuedSynchronizer整体解析前言在此之前,我们深入源码分析过ReentrantLock系列,在那里就探讨过AbstractQueuedSynchronizer(下称AQS)类,称其是同步组件乃至整个并发包的基础类。这篇文章就深入AQS,从AQS的角度了解同步器以及R...

2017-12-10 23:11:57

阅读数:129

评论数:0

Wait/Notify通知机制解析

Wait/Notify通知机制解析前言我们知道,java的wait/notify的通知机制可以用来实现线程间通信。wait表示线程的等待,调用该方法会导致线程阻塞,直至另一线程调用notify或notifyAll方法才可另其继续执行。经典的生产者、消费者模式即是使用wait/notify机制得以完...

2017-12-09 22:49:04

阅读数:185

评论数:0

ElasticSearch笔记-5.X版本若干变化

写在前面:去年写的有关Elastic的一些知识是基于2.x版本的,目前最新的版本是5.6(2017-10),一些重要的API与用法已经发生改变。这篇文章在之前系列的基础上,重点从API角度讲讲变化的部分。

2017-10-15 11:36:15

阅读数:341

评论数:0

java8的内置函数式接口总结

java8引入了函数式的编程,在提高代码简洁和可读性的同时也 增强了程序并发执行的能力。这篇文章我们主要关注java8的函数式接口,以及其内置的若干函数式接口。

2017-10-02 10:56:57

阅读数:378

评论数:0

快速排序(QuickSort)算法介绍

算法简介快速排序(Quicksort)是对冒泡排序的一种改进算法。由C. A. R. Hoare在1960年提出。该算法使用广泛、效率很高,是最重要的排序算法之一。该算法的实现基本可分为以下几步:

2017-09-20 09:47:38

阅读数:466

评论数:0

java原生UrlConnection体系梳理

HTTP 协议是目前 Internet 上使用得最多、最重要的协议。该协议为典型的请求-响应模型。客户端建立连接并发送请求,服务端接受并处理请求,再发送应答,再由客户端接受并处理应答。浏览器是最常见的一种客户端,它将用户的交互行为作为http请求发送,并接受服务端的应答,再将应答内容展示,一般应答...

2017-09-18 09:21:57

阅读数:301

评论数:0

多级选择组件解决实践

问题描述这里的多级选择组件问题,指的是存在一个多级的选择组件,当点击某个节点时,该节点及其下的所有节点都要选中,若该节点并列的所有兄弟节点都已选中,则其父节点也要勾选,依此到最顶端节点。反选也类似逻辑。这个问题也符合平日的认知习惯。

2017-09-14 18:55:39

阅读数:119

评论数:0

ReentrantLock原理探究(二)

前言上篇ReentrantLock原理探究(一)介绍了ReentrantLock类的使用说明,详细解析了关于非公平锁的lock()过程。这篇我们继续分析。

2017-05-24 12:42:10

阅读数:336

评论数:0

java代理模式与JDK代理解析

前言代理模式是很常用的设计模式之一,一般可分为静态代理和动态代理两类。java利用反射也对动态代理提供了支持。今天我们就来学习学习。1. 定义 给某一个对象提供一个代理,并由代理对象控制对原对象的引用,称为代理模式。它是一种对象结构型模式。 即可理解为,某个对象实例(记为Subject)不方便...

2017-05-24 12:39:08

阅读数:225

评论数:0

ReentrantLock原理探究(一)

前言ReentrantLock类是synchronized语义的替代品,可以实现与其相同的功能,了解其实现原理对并发编程无疑是很有帮助的。其次,ReentrantLock 的实现基础AQS(AbstractQueuedSynchronizer)也是java并发编程中相当重要的一个类,所以无论如何,...

2017-05-21 10:16:32

阅读数:620

评论数:2

java获取方法参数名的若干实践

文章首发于我的个人博客网站梧桐和风的博客,欢迎关注。 前言我们知道java可以通过反射得到方法名、参数类型等信息。但我们似乎不能直接得到方法的参数名。而在一些场景中,比如构建自己的MVC框架时,我们也想像Spring MVC一样,根据参数名获取用户传来的数据。下面就来总结一下,都有哪些方法可以获得...

2017-05-15 13:40:23

阅读数:824

评论数:0

java多线程之线程通信

在多线程机制中,线程之间需要传输信息。一般有以下几种通信机制: 共享对象:通过在共享对象中设置信号量,多个线程通过读取、修改该信号量来通信。 wait/notify()方法:线程之间通过调用wait()、notify()方法实现线程等待、唤醒状态,从而达到线程通信的目的。 接下来我们分别看看这两种...

2017-05-11 13:23:35

阅读数:271

评论数:0

Latke源码解析(二)IOC部分

上篇 Latke源码解析(一)Servlet部分讲解了latke有关web 请求的servlet部分,这次深入了解一下它的Ioc部分内容。前言这部分有关Ioc和bean大量使用了javax.enterprise.context.spi 、JSR-330标准的jar包javax.inject以及操作...

2017-05-01 14:29:08

阅读数:365

评论数:0

深入Servlet工作机制

深入Servlet工作机制Servlet是java Web技术的基础,也是学习Web 框架原理绕不过去的部分。本章我们来学习学习。1. Servlet和Servlet容器什么时servlet?从概念上来说是这样的: Servlet是用java编写,遵守java servlet API的一些类,...

2017-04-29 21:22:22

阅读数:422

评论数:0

Latke源码解析(一)Servlet部分

最近研究java Web的MVC,发现一款轻量级的框架,官网描述为类似 Spring 但以 JSON 为主的 Java Web 框架。具体详情见latke github。由于此框架的mvc部分基于Servlet且是对servlet的轻量封装,相对Spring MVC较为简单,就以此框架来学习MVC。

2017-04-27 11:49:33

阅读数:749

评论数:0

java注解解析

java注解解析什么是注解什么是注解,注解就是一种描述源码的元数据。我们可以通过注解给类、方法或字段提供额外的信息以便了解更多信息。举个例子,java中常见的@Override就是一个注解。它的作用是提示由它修饰的方法是一个重写方法,如果父类没有这个方法编译器会报错。这样这个注解就给我们传达了重写...

2017-04-22 14:50:42

阅读数:187

评论数:0

Mac安装jekyll报错Operation not permitted - /usr/bin/sass

在Mac环境中安装jekyll时报错Operation not permitted - /usr/bin/sass,开始以为只是权限问题,于是sudo。结果还是不行。于是想到是不是非要使用root权限才能安装成功,给mac开启了root用户,竟然还是不行,真是奇怪了。在网上一搜还真有这问题,最终在...

2017-03-25 23:02:14

阅读数:1137

评论数:0

java 集合与数组的互转

在实际工作中,我们经常需要Collection类型与数组的互相转换,javaAPI也提供了相应的方法帮我们完成操作。

2017-03-11 14:42:49

阅读数:1387

评论数:0

java设计模式(3)观察者模式

观察者模式是行为型模式的一种,该模式的主要有2种角色:观察者和被观察者。可以把被观察者当做一个“主题”,一旦这个主题有更新,订阅该主题的观察者就能收到消息。因此,观察者模式又被称为“发布-订阅”模式。举个更通俗的例子,某类报纸比如《人民日报》和它的订阅者们。一旦有了新一期的《人民日报》,报社就会主...

2017-03-11 12:15:58

阅读数:139

评论数:0

Linux与Mac系统用SCP互传文件

linux系统之间,或者linux与mac之间可以使用scp命令互传文件(即上传或下载)。下面就以实例介绍一下这个命令。使用scp需要两台服务器都开启ssh服务,具体详见Linux 开启ssh服务 基本语法scp用法如下 基本格式: scp [可选参数] file_source file...

2017-03-10 15:53:27

阅读数:415

评论数:0

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