关闭

J.U.C-Fork/Join框架

Fork/Join 框架本文主要介绍Fork/Join框架的基本原理、算法、设计思路与实现 1)什么是Fork/Join 框架 2)Fork/Join框架的算法 3)Fork/Join框架核心类以及它们之间的协作 4)Fork/Join使用实例 5)Fork/Join实现原理 什么是Fork/Join 框架Fork/Join 框架是Java7 提供的一个用于执行并行任务的...
阅读(28) 评论(0)

J.U.C-DelayQueue原理与应用

DelayQueue原理与应用前面刚写了一篇关于 PriorityQueue 原理与应用 的文章,其实是为分析DelayQueue服务的。DelayQueue是一个延迟队列,用一句话来说就是:DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed 元素。 本文主要围绕以下几点分析DelayQueue: 1) Dela...
阅读(46) 评论(0)

PriorityQueue 原理与应用

深入理解 PriorityQueue 优先队列最近在使用DelayQueue时候,发现其底层是基于PriorityQueue实现的,接着这个机会深入分析一下优先队列的实现原理,方便以后在最适合的地方应用。 本文主要的结构分为以下几点: 1)PriorityQueue的类继承关系 2)PriorityQueue的核心数据结构以及数据结构实现原理 3)PriorityQueue的核...
阅读(24) 评论(0)

JDK源码和框架源码解析博客地址导航

置顶一篇文章,主要是整理一下写过的JDK中各个类的源码及其他框架源码解析的文章,方便自己随时阅读也方便网友朋友们阅读与指正. Java基础Java集合框架 PriorityQueue 原理与应用 DelayQueue原理与应用 J.U.C 多线程与并发框架 Java并发之线程机制 Java并发之共享受限资源 Java并发之终结线程 Java并发之线程之间协作wait、notify、notifyAll...
阅读(43) 评论(0)

Mac下转发80端口数据到8080端口

Mac的80端口好像是被禁用的,但是我们调试程序又需要大量用到80端口,所以需要将 80端口数据转发到8080端口比如:访问网页时需要绑定hosts,如 127.0.0.1 www.xxxx.com此时需要将80端口数据转发到8080才能正常调试。具体步骤如下:#1. sudo vim /etc/pf.conf#2.在rdr-anchor “com.apple/* 后面加上如下这一行(代表将发到...
阅读(135) 评论(0)

Mac ch常用命令与管理

命令行清理内存$ purge 查看每个目录的占用硬盘大小:-d表示深度 sudo du -d 1 -hMAC下内存分析工具先安装 $brew install htop使用: $htop修改launchpad的图标大小# 运行“终端”程序,执行以下命令: # 1、调整每一列显示图标数量,7 表示每一列显示7个,在我的电脑上,7个个人觉得比较不错 defaults write com.apple...
阅读(110) 评论(0)

IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功

今天在IDEA下打包一个Java项目,准备打包成jar包直接执行,打包之后运行时候一直提示resource下资源文件找不到,但我又确实配置了的,而且在IDEA上可以运行,但是打包成jar包之后就运行不了了。后来百度,发现对于resource下文件(properties等配置文件)需要在POM文件中配置resources配置: <di...
阅读(134) 评论(0)

Hbase shell常用命令

hbase shell常用命令hbase shell命令 描述 alter 修改列族(column family)模式 count 统计表中行的数量 create 创建表 describe 显示表相关的详细信息 delete 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) delet...
阅读(56) 评论(0)

B树、B+树、LSM树以及其典型应用场景

前言动态查找树主要有:二叉查找树、平衡二叉树、红黑树、B树、B+树。前面三种是典型的二叉查找树,查找的时间复杂度是O(log2N)与树的深度有关系,那么降低树的深度也就可以提升查找效率。这时就提出了平衡多路查找树,也就是B树以及B+树。B树和B+树非常典型的场景就是用于关系型数据库的索引(MySQL)B树B树是一种平衡多路搜索树,B树与红黑树最大的不同在于,B树的结点可以有多个子女,从几个到几千个。...
阅读(200) 评论(0)

Spring 计划任务 Schedule

背景我们经常会碰到一些需要执行定时任务的场景,在SpringBoot中实现非常的简单,我们首先通过在配置类注解@EnableScheduling来开启计划任务的支持,然后在要执行计划任务的方法上注解@Scheduled来声明这是一个计划任务。实例计划任务执行类@Service public class ScheduledService { private static final Simple...
阅读(115) 评论(0)

Spring 多线程与异步编程

背景Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程的,Spring使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor,在实际开发中,现在的多线程都是异步非阻塞的,所以我们在配置类中需要加上@EnableAsync注解,开启对异步任务的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务。使用实例...
阅读(135) 评论(0)

Spring的Aware

背景Spring 容器的IOC最大优势就是我们的应用程序对容器是无感的,保持绝对的耦合,唯一的关联点就是注解。 但是我们在开发应用程序的时候又不可避免的需要用到Spring容器的所提供的资源,这时候Application就必须能够意识到Spring容器提供的各个机制的存在,这就是Spring Aware。使用了Aware之后,Application就和Spring耦合了,但是我觉得这也不是什么问题,...
阅读(122) 评论(0)

Spring4-@Enable** 注解的实现原理

背景在前面的工作中使用SpringBoot的时候,我碰到了很多的使用@Enable***注解的地方,使用上也都是加在@Configuration 类注解的类上面,比如: (1)@EnableAutoConfiguration 开启自动扫描装配Bean(2)@EnableScheduling 开启计划任务的支持(3)@EnableTransactionManagement 开启注解式事务的支持。...
阅读(203) 评论(0)

Spring中事务的实现原理

背景:最近的项目中需要用到Spring的事务管理相关的知识,以前也了解过Spring的事务管理,但是仅仅止步于会用,这一次借着这次机会,深入源码分析一下Spring是如何实现事务的。 前面已经有一篇文章讲过了如何在Spring中使用声明式事务,并对一些特性进行了讲解,具体如下:Spring事务管理-使用基础 这一篇文章从SpringBoot启动出发,到Spring实现事务管理,从源码角度,分...
阅读(148) 评论(0)

Spring-cache的抽象

背景前面已经分析了SpringBoot的一套starter和autoconfigure 的机制,具体参考:http://blog.csdn.net/u010853261/article/details/77961716 这篇博客。其实对于SpringBoot的starter机制,其实就是依据SpringBoot的约定大于配置的思想,启动SpringBoot时候,根据依赖的starter,就已经自动装...
阅读(109) 评论(0)

【大型分布式网站架构设计与实践】-系统稳定性

这部分主要涉及的内容: 在线日志分析 2.集群监控 流量控制 性能优化 Java应用故障的排查 1. 在线日志分析主要是cat、grep、less、wc、uniq等命令, 以及awk、shell脚本。2. 集群监控成熟稳定的系统一般都要对集群运行的机器哥哥指标进行收集,如系统的load、CPU利用率、IO繁忙程度、网络traffic、内存利用率、应用心跳。监控指标(...
阅读(124) 评论(0)

Spring的classpath和classpath*的区别

这一点很容易混淆,这里做一个记录: 使用classpath作为前缀: 比如当我使用 “classpath:mybean.xml” 表示在classpathz中装载资源mybean.xml. 使用classpath*:前缀: 比如使用”classpath*:mybatis/*mapper.xml” 会在classpathz中装载所有符合正则通配符的资源文件。...
阅读(125) 评论(0)

Spring的bean的生命周期

接触Spring时间越久,越觉得其设计思想对我们开发的影响之深,最近在开发项目时,组里一个师兄的项目设计就和Spring的bean生命周期设计有很多不谋而合之处,接着对项目理解,回顾了一下Spring的bean的生命周期。本文基于ApplicationContext中的bean的生命周期为例。生命周期流程图Spring bean的生命周期从创建Spring容器开始到Spring的容器销毁bean。最...
阅读(149) 评论(0)

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 引发的血案

故事背景今天在跑项目(SpringBoot+mybatis)时,当通过service调用DAO时,系统抛出了异常: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 很奇怪的异常,异常堆栈也没有关键的信息。从这句话大概的分析可以知道原因是:mybatis的Mapper接口不能够和XML映...
阅读(182) 评论(0)

Spring事务管理-使用基础

Spring提供的事物管理有两种: 编程式事物(使用TransactionTemplate,粒度控制在代码块,手动提交) 声明式事务(XML、注解, 粒度只能控制在public方法) 事务管理是基于数据源的,也就是说mybatis引用的数据源必须和DataSourceTransactionManager引用的数据源一致。这样事务管理才能生效。 Spring 事务特性。Spring所有的事务管理策略...
阅读(193) 评论(1)
352条 共18页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:190766次
    • 积分:5111
    • 等级:
    • 排名:第5998名
    • 原创:330篇
    • 转载:22篇
    • 译文:0篇
    • 评论:25条
    博客专栏
    最新评论