4 Al_assad

尚未进行身份认证

我要认证

脚踏实地,不吹水不装逼不讥讽

等级
TA的排名 4k+

Java 线程同步器:从 synchronized、Lock 到 StampedLock

Java 线程同步器:从 synchronized、Lock 到 StampedLock  synchronized 和 lock 的对比synchronized 关键字和 juc 中的 Lock 可以说是 Java 最为常用的线程同步器了,以下我们从多个角度来比较这两者的区别;首先我们先看一个实际例子中的两者代码的区别:一个线程共享对象 TimerBeanpubli...

2018-09-07 00:19:42

[转载]Java 线程 5 种状态下的线程中断

[转载]Java并发之线程中断原文章地址:https://blog.csdn.net/qq_35326718/article/details/78137108      前面的几篇文章主要介绍了线程的一些最基本的概念,包括线程的间的冲突及其解决办法,以及线程间的协作机制。本篇主要来学习下Java中对线程中断机制的实现。在我们的程序中经常会有一些不达到目的不会退出的线程,例如:我们有一个...

2018-09-04 19:28:25

JDK8 Stream 详细使用

JDK8 管道 Stream 详细使用介绍 Stream 的获取① 通过集合Collection获取List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));Stream<Integer> stream = list.stream();② 通过数组获取...

2018-09-03 23:58:53

JDK8 Stream 数据流效率分析

JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> 代表对象引用流,此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 ),Java 8 引入的的Stream主要用于取代部分Collection的操作...

2018-09-03 23:26:57

Java字节码反编译工具 jclasslib

Java 字节码反编译工具 在对 Java 代码执行过程效率分析过程中会很经常查看代码编译后的字节码,或者将字节码反编译后,查看Java底层对于原来代码的优化结果,当然 JDK 本身已经提供了 javap 反编译工具可以完成这一过程, 也有很多第三方工具可以提供更加方便的可视化功能,如 JD-GUI,jclasslib 等,以下介绍 IDEA(Intellij 大法好) 的 jclassl...

2018-09-01 18:21:38

postman 详细使用 (6):自动化测试 API newman 的基本使用

postman 自动化测试 API newman 的基本使用 postman 开放了应用程序中常用的 API -- newman 供外部程序调用,newman 基于 node.js ,除了可以直接在命令行中直接运行,还支持作为 module 在 node 代码中调用,newman 项目地址:https://www.npmjs.com/package/newman newman 可以...

2018-08-03 01:59:32

postman 详细使用(5):使用 xmysql 连接 MySQL 数据库

postman 使用 xmysql 连接 MySQL 数据库 postman 本身并没有提供数据库连接功能,如果需要 postman 连接数据库,有一种实现思路,就是为提供 Restful 风格的 HTTP 接口,再由 postman 去访问这一系列的 Rest API 来实现对数据库的访问; 如果需要实现连接 MySQL 数据库的 REST API ,实现的方式有很多,比如 Ja...

2018-08-03 01:49:05

postman 详细使用 (4):导入 csv、json 外部数据

postman 导入 csv、json 外部数据 postman 支持导入外部数据(csv 格式或 json 格式),使用外部数据循环执行某一组 collection ,这对于自动化测试是十分方便的,以下以一个例子来说明步骤: 假设要对 getHolidayByTimes 接口进行测试,该接口返回请求参数 startTime,stopTime 之间的假期时间,响应的 json 类似...

2018-08-03 01:42:51

postman 详细使用 (3):拦截重发 HTTP 请求

postman 拦截重发 HTTP 请求 类似于 Fiddler, postman 也可以实现对于 HTTP 请求的拦截,native app 和 chrome app 实现的方式不太一样,native app 是通过内建代理服务器实现的,chrome app 是通过 Postman Interceptor 插件实现的,以下分别介绍。 需要注意的是,根据官方文档的描述( https...

2018-08-03 01:34:50

postman 详细使用 (2):预处理脚本、断言

postman 预处理脚本、断言 postman 为每一个 HTTP 请求提供了 pre-request script 用于存放在该请求进行之前执行的脚本,tests 用于存放在该请求获取响应之后执行的脚本,一般用于根据响应信息进行断言测试;这里需要注意的是,postman 分为 native app、 chrome app 两个版本,native app 中的部分对象 chrome ...

2018-08-03 01:23:39

postman 详细使用 (1):发送 HTTP 请求 & Colletion 集合测试

postman 基本介绍 postman 是一款集 http 请求、http拦截、http 接口覆盖测试的软件,类似于 fiddler,postman 支持使用基于 node.js 沙箱运行的 javascript 脚本支持,同时其 newman 进一步开放了主要的 api ,供应 node 环境的 javascript 程序调用,可以十分方便地完成接口的自动化测试; postma...

2018-08-03 01:15:19

Git 合并多次 commit 、 删除某次 commit

Git 合并多次 commit 有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史,可以使用 rebase 的方法来合并多次 commit,主要步骤如下: 1. git log 查看当前的提交历史比如需要将以下 3 个 ”请假应用客户端代码优化“ 的 commit...

2018-07-21 16:12:17

Fiddler 反向代理调试:修改http请求、修改http响应

Fiddler 抓包调试 Fiddler 是一款功能强大的 http 抓包工具,对于 http 请求响应抓包调试十分实用,可以很方便查看 http 请求,http 响应的内容,修改 http 请求后重新发送,拦截 http 响应修改后重新响应; Fiddler 基本界面介绍以下是 fiddler 主界面的工具栏 其中“切换代理模式”,fiddler 有以下 2 种代...

2018-07-18 13:50:31

Ubuntu 更换 apt 镜像源

Ubuntu更换apt镜像源apt是Ubuntu系的包管理工具,一般默认使用ubuntu的官方源 http://archive.ubuntu.com/ 在国内下载的速度慢到让人想砸电脑,可以更换为国内的镜像源以提高apt的下载速度;国内镜像源推荐阿里OPSX源:https://opsx.alibaba.com/mirror网易163源:http://mirrors.16...

2018-05-08 00:25:04

Netty 支持 HTTP 协议

 Netty 支持 HTTP 协议对于 HTTP/HTTPS 协议的支持,Netty 提供以下的 codec 编解码器支持:HttpRequestEncoder对 HTTP 请求进行解码,用于服务端入站HttpResponseEncoder对 HTTP 响应进行解码,用于客户端入站HttpRequestDecoder对 HTTP 请求进行编码,用于客户端出站HttpResponseDecoder对...

2018-03-07 15:52:16

Netty 实现心跳发送机制

Netty 实现心跳发送机制处理空闲连接是一项常见的任务,为了能够及时的将资源释放出来,需要在服务端检测空闲连接和超时,常见的方法是通过发送信息来测试一个不活跃的链接,通常被称为“心跳”,然后在远端确认它是否还活着,Netty 提供了 IdleStateHandler 处理这个过程;以下是一个示例的实现控制器,在服务端每间隔 5s(设置为 5s 仅仅只是为了测试方便,实际开发中可以设置一个更长的事...

2018-03-07 15:50:43

Netty 使用 EmbeddedChannel 进行单元测试

Netty 使用 EmbeddedChannel 进行单元测试对于 Netty 的 ChannelHandler 进行单元测试,Netty 提供了 EmbeddedChannel 嵌入式通道来完成这一过程,主要使用该通道来测试数据的入站出站过程是否合法;该通道提供以下常用的 API:writeInbound 写一个入站消息到 EmbeddedChannel。 如果数据能从 EmbeddedChan...

2018-03-07 15:48:23

Netty(5):核心部件:Codec 编解码器

Netty Codec 编解码器Netty 对于解决数据从一种特定协议格式到另一种格式的转换(如二进制字节和POJO之间地转换),提供了 codecs (编解码器) 组件来处理的。使用 Netty 的 codecs ,可以很方便地为各种不同地协议编写编解码器;解码器:负责处理入站数据,将消息从字节或其他序列形式转成指定的消息对象;编码器:负责处理出站数据,将消息对象转化为字节或其他序列形式;消息被...

2018-03-05 22:20:13

Netty(4):核心部件: ChannelPipeline & ChannelHandler 处理链

ChannelHandlerChannel 生命周期Netty 的 Channel 含有以下 4 个生命周期:channelUnregistered   - channel已创建但未注册到一个 EventLoop.channelRegistered      - channel 注册到一个 EventLoop.channelActive             - channel 变为活跃状态(连...

2018-03-05 22:18:17

Netty(3):核心部件:Transport 传输

Netty 核心部件:Transport 传输功能JDK 中对于 NIO(java.nio)、OIO(java.net) 的网络编程 API 的差异很大,在进行程序移植时的难度比较大,而 Netty 对于 NIO、OIO 等提供了统一的 API 接口;如对于 01. Netty 主要部件介绍 & Hello World 实例 中的 Hello World 实例,使用 NIO Channel...

2018-03-05 22:14:17

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!