自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Al_assad的博客

念念不忘,必有回响

  • 博客(344)
  • 资源 (3)
  • 收藏
  • 关注

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

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

2018-09-07 00:19:42 935

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

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

2018-09-04 19:28:25 1201

原创 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 12764 10

原创 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 17624 12

原创 Java字节码反编译工具 jclasslib

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

2018-09-01 18:21:38 2008

原创 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 3401

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

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

2018-08-03 01:49:05 9742 7

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

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

2018-08-03 01:42:51 33662 6

原创 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 10851 2

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

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

2018-08-03 01:23:39 5099

原创 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 4540 2

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

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

2018-07-21 16:12:17 36681 1

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

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

2018-07-18 13:50:31 9023 1

原创 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 16512 2

原创 Netty 支持 HTTP 协议

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

2018-03-07 15:52:16 1897 1

原创 Netty 实现心跳发送机制

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

2018-03-07 15:50:43 4007

原创 Netty 使用 EmbeddedChannel 进行单元测试

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

2018-03-07 15:48:23 2827

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

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

2018-03-05 22:20:13 785

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

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

2018-03-05 22:18:17 1206

原创 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 1773

原创 Netty(2):核心部件:Buffer 缓冲器

Netty 核心部件:Buffer 缓冲器JDK NIO 提供了 ByteBuffer 作为字节数据容器,但是实际使用过程会比较繁琐,特别是读写切换;Netty 提供了自己的缓冲区实现 BytedBuf ,用于简化字节缓冲区的使用;JDK ByteBuffer 和 Netty ByteBuf 一个很大的区别是:JDK ByteBuffer 有 4 个索引(mark、position、limit、c...

2018-03-05 22:11:48 845

原创 Netty(1):主要部件介绍 & Hello World 实例

Netty 简介※以下系列笔记总结自《Netty in Action》(Norman Maurer),和 Netty 4.x 官方技术文档;Netty 是一个高性能、高拓展性、非阻塞的 Java 异步网络通信框架,Netty IO 传输部分是基于 Java NIO 的,同时对 NIO 复杂的 API 进行了进一步的封装,使得编写高性能的 Java 异步网络通信程序更将简单方便;Netty 简化了 ...

2018-03-05 22:08:45 1036

原创 Spring DAO(6): 集成 MongoDB(spring-data-mongo)

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlSpring 集成 MongoDB如果在 Java 项目中直接使用 MongoDB 提供的驱动,需要进行大量的 Document 对象和 POJO 之间的转换,其中很大部分需要手工编写代码,这个过程很繁琐,Spring 子项目 Spring Data MongoDB 提供了一种 Sp...

2018-02-22 02:07:02 1060

原创 MongoDB JDBC 基本使用

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlJava 连接 MongoDBMongoDB 提供了一系列的驱动用于支持各种语言连接 mongodb 数据库,包括:Java,Python,C++,Scala,PHP 等,完整的驱动列表:https://docs.mongodb.com/manual/applications/dri...

2018-02-22 02:04:57 19906 6

原创 MongoDB(8)集群技术:副本集 & 分片

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlMongoDB 副本集MongoDB 副本集是将数据同步在多个服务器的过程,复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性,同时还允许从硬件故障和服务中断中恢复数据。mongodb 的复制至少需要两个节点。其中一个是主节点,负责处...

2018-02-22 02:03:01 2981

原创 MongoDB(7)索引管理

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlMongoDB 索引索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构;使用索引的优点:索引通常能够极大的提高查询的效率,这是由于索引储存在内存中,同时索引本身的遍历效率必普通集合更高;使用索引带来的代价:额外的操作开销,...

2018-02-22 02:01:00 587

原创 MongoDB(6)数据聚合 & 管道操作

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.html管道操作mongodb 的数据聚合过程通常会配合管道操作,mongodb 的管道操作概念类似于 LInux 中的管道概念,mongodb 的聚合管道将 mongodb 文档在一个管道处理完毕后将结果传递给下一个管道处理,管道操作是可以以此重复的;mongodb 管道使用 aggreg...

2018-02-22 01:55:25 881

原创 MongoDB(5)文档 CRUD 操作

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlMongoDB 文档 CRUD 操作查询文档基本使用mongodb 查询文档的语法如下: db.collection_name.find(query, projection)           # 以压缩格式返回数据db.collection_name.find(query, pr...

2018-02-22 01:52:37 479

原创 MongoDB(4)数据库 & 集合操作

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.html数据库操作查看数据库 # 查看当前mongo下的所有数据库> show databases  > show dbs创建数据库  # 连接,创建 testdb 数据库> use testdb此时已经创建了 testdb 数据库,但是如果使用 show dbs 指令并不...

2018-02-22 01:51:32 592

原创 MongoDB(3)维护操作:连接 & 用户管理 & 备份

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.html启动/关闭 mongodb 服务启动服务mongodb 服务的启动方式由 2 种,直接通过指定启动参数启动,和通过配置文件启动,这两种方式可以混合使用; # 指定启动参数启动 mongodb$ mongod --dbpath=/usr/bin/mongodb-3.6.2/data -...

2018-02-22 01:49:53 515

原创 MongoDB(2)基本概念 & 文档引用

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlMongoDB 基本概念以下是部分SQL术语概念和MongoDB 术语概念的对照:SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/...

2018-02-22 01:46:42 570

原创 MongoDB(1)简介 & 安装配置

MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlMongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源 NoSQL 数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=...

2018-02-22 01:43:09 590

原创 Java 客户端连接 Memcached & Spring 集成

Memcached Memcached 安装配置 & 基本指令Java 客户端连接 Memcached & Spring 集成Java 客户端连接 Memcached目前连接 Memcahed 服务的 Java 客户端主要有以下 3 种方案:Memcached Client for JavaSpyMemcahedXMemcached其中 Memcahed 是比较早期,使用广泛的技术...

2018-02-12 17:18:52 550

原创 Memcached 安装配置 & 基本指令

Memcached Memcached 安装配置 & 基本指令Java 客户端连接 Memcached & Spring 集成Memcached 简介Memcached是一个开源、高性能、分布式内存对象缓存系统,同样是一个内存 key-value 数据库,常常用在各种缓存业务上,与 redis 相比,memcached 虽然不支持那么丰富的 value 数据类型,也不支持数据持久化...

2018-02-12 17:17:30 662

原创 Spring 集成 Reids(Spring-data-redis)

Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Spring 集成 Reids(Spring-data-redis)如果要在 Spring 中集成 Redis,可以直接装载 Jedis 的 JedisPoolFactory ,需要自己封装...

2018-02-12 02:20:06 1157

原创 Redis(4)客户端连接:Java

Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Redis 客户端连接:JavaRedis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:客户端...

2018-02-12 02:18:21 842

原创 Redis(3)常用维护操作

Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Redis 连接密码设置可以为一个 redis-server 实例设置终端密码,设置了密码后,终端必须通过密码验证才可以连接 redis;127.0.0.1:6379> config ...

2018-02-12 02:16:09 1026

原创 Redis(2)基本键值操作

Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Redis 键值基本操作以下只介绍 Redis 常用的键值操作指令,完整指令参见:http://www.redis.cn/commands.htmlkey 操作从终端对 Redis 进行基本...

2018-02-12 02:10:46 1500

原创 Redis(1)安装 & 配置

Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Redis 简介Redis 是一个遵循 BSD 协议的开源高性能 key-value 数据库,不同于 mongoDB,Redis 的数据是存储在内存中的,数据的读写数据极快,广泛应用在各种 ...

2018-02-12 02:06:43 524

原创 Ehcache 3.x 快速使用

Ehcache 3.X快速使用简介Ehcache 是一个开源的高性能缓存,拥有很高的拓展性和伸缩性,广泛使用各种 Java 项目中(如 Hibernate 默认使用 Ehcache作为二级缓存),在目前基于 Java 的缓存方案里,几乎是性能最高的实现,目前新版本的 Ehcache 3.X 通过支持 Terracotta 改善了2.X 版本体验不佳的分布式缓存支持;Ehcahe 3.X 和 Eha...

2018-02-09 22:52:58 14076

psi-prob 3.0RC1

psi-prob 3.0RC1,是已经停止维护的lambda prob的一个分支,上传版本为2016-12的最新版本,支持Tomcat 7+,8,9版本,直接在github下载速度简直无以言语,可以直接在官方的页面查看版本信息:https://github.com/psi-probe/psi-probe/releases

2017-07-29

Github客户端

直接上Github下载客户端网速简直

2017-03-13

uJavaActors包和源代码

基于Java实现的简易Actor包,全部源码只用1200多行,可以用于研究Actor在Java的实现,来源:https://github.com/ggrandes-clones/j-javaactors-ibm

2017-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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