自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超威半导体

失望-痛苦-分裂-自省-領悟-覺醒-重生

  • 博客(296)
  • 资源 (24)
  • 收藏
  • 关注

原创 Linux批量kill进程

经常会遇到的情况是某个进程需要强制被杀掉,但是相关进程启动了很多子进程,就必须要把所有ps aux出来的进程kill掉,如果一个一个kill费时费力,之前就遇到一个线上mysql连接池满导致需要批量kill进程,止损非常重要,因此效率必须提升,这就必须要使用awk。 例如批量kill mysqlps aux | grep mysql |awk '{print $2}' | xargs kil

2018-01-22 10:11:09 472

原创 Hadoop安装pdsh localhost Connection refused

本地安装hadoop单机模式的时候需要启动namenode。我使用的是hadoop 3.0,配置文件如下: site-core.xmlconfiguration> property> name>fs.defaultFSname> value>hdfs://localhost:9000value> property>configuration>

2018-01-21 15:12:52 2410

原创 Python爬虫实战

爬虫是一个获取网络资源的好方法,之前或多或少有些接触,但是没时间去实战,最近抽时间把python学习了一下,python的网络编程是出了名的方便,一些库也十分的方便。所以这次就尝试写了写。爬虫本质上就是模拟浏览器去获取网站能够触及到的资源,这里就涉及到三个部分:html基础(前端)网络协议http基础python基础这三个部分构成了爬虫的主要技术基础,任何一个网页都脱离不了三个元素,html

2017-12-27 22:35:04 1612

原创 前中序重建二叉树python实现

## 输入某二叉树的前序遍历和中序遍历的结果,# 请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。# 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},# 则重建二叉树并返回。# -*- coding:utf-8 -*-class TreeNode: def __init__(self, x):

2017-12-06 20:48:25 695

原创 分布式系统的常见问题

不好意思最近实在是有点太忙了,将近一个月没更新博客,其实前几天我是有发表一篇关于HSF框架的源码解析,后来由于一些原因不得不删除。其实HSF也跟Dubbo类似,解决了分布式系统中的一系列问题。分布式带来的优势就是能够将复杂业务拆分成多个服务的组合,就如同controller-service-dao中的service接口部署在不同的机器上,service不就是服务的抽象么。让不同的团队维护不同的ser

2017-11-26 19:42:12 5615 3

原创 设计模式之过滤器模式

时候我们需要在一堆对象的集合里找到我们需要的对象,这种情况如果比较简单的过滤,我们可以简单的用if-else去判断,如果这种过滤是比较具有复用性质的过滤条件,例如在所有用户里筛选出成年人,还有就是在增加过滤条件的时候要去加if语句,不是特别的灵活,这个时候可以尝试用过滤器模式去解决问题。值得一提的是与过滤器模式比较像的类似于责任链模式,它是解决了请求和处理请求的对象之间的解耦,侧重在于解耦

2017-10-31 13:51:57 502

原创 设计模式之桥梁模式

前言:上一篇提到了关于并发编程的学习计划,计划赶不上变化,最近在熟悉新的业务,其实也学习到很多先进的供应链相关的东西,但是很多可能比较敏感不太方便放到博客上来,所以关于并发编程这块东西得过阵子才能更新,很久没更新设计模式相关的东西了,这次来谈谈我对桥梁模式的理解吧。模式描述:桥梁模式是结构型设计模式,它解决的问题就是多维度多变化的类爆炸性问题,意思就是很多对象是多个维度去组合,我们不需要把这种组

2017-10-22 21:26:02 383

原创 学习总结以及近期安排

最近因为新工作需要熟悉业务和开发工具花了不少时间,博客更新稍微有点滞后,希望各位粉丝继续支持,我会坚持更新,并且争取能够体现出文章的差异性和提供一些比较深入的理解文章。从去年到现在陆陆续续看了一些书,大概有这么基本是我仔细阅读的《spring技术内幕》《spring 企业级开发实战》《Gof设计模式》《深入理解Java虚拟机》《大型网站技术架构》,然后还大概阅读了《springboot

2017-10-14 11:58:55 545 1

原创 Optional源码分析和使用

平时在写代码的时候总要做很多非空的判断,Jdk8提供了一个类Optional可以更优雅的使用非空判断,它的源码并不是特别的多,我们可以线来分析下源码:public final class Optional<T> { // 构造值为null的Optional private static final Optional<?> EMPTY = new Optional<>(); //

2017-09-30 16:21:46 706

原创 Inteilj IDEA快捷键

之前一直使用Eclipse,一来是习惯了,二来也是觉得Eclipse社区力量更强大还免费。比较符合开源分享的精神。但是现在团队都使用IDEA。所以需要快速的熟悉起来,最大的问题就是快捷键的问题,IDEA 也是比较推荐用各种快捷键来操作,cmd + ,可以快速打开偏好设置,虽然可以用keymap设置自己熟悉的快捷键,但是强烈建议还是学会IDEA自己默认的快捷键,因为IDEA的相关的资料没Ecplise

2017-09-28 16:10:38 1089

原创 高级Java工程师要求

最近在面试高级Java工程师,想谈谈我心中高级Java工程师的样子:简历部分: 不知道为什么拿到的绝大部分的工程师的简历是没有照片的,我不知道为什么,难道认为公司主要看能力而照片会分散注意力么,那为什么还要写性别,民族,籍贯什么的,这些都工作价值很大么,那就只能说明不够,所以说一张整洁大方的照片是加分项,至少在我面前是这样的,邮箱不要用QQ邮箱,不要问为什么。不同阶段简历肯定不同,应届生的简历应

2017-09-15 15:27:37 5263 3

原创 再谈设计模式之建造者模式

我总喜欢隔一段时间就来学习学习设计模式,每当业务代码写得感觉有点累的时候就喜欢考虑一下是否可以优化一下结构,尤其是当写到重复性的代码,总想着把它复用起来,一种情况是在开发之前就设计好可复用的模块,另一种是被动的在项目当中写到重复的代码的时候再去考虑代码的重构达到良好的复用。而复用的两种方式主要是继承和组合,当然在大部分情况下,设计原则指引我们更多采用组合的方式,其实各有各的优势,继承有更明确的类之间

2017-09-15 14:44:57 472

原创 spring boot启动过程

spring已经成为实时上的J2EE标准,spring boot并没有提供太多新的特性,而是发现了大部分的模板配置,没必要重复的配置,而且现在脚本语言大行其道,并且微服务的诞生让更多项目的构建和部署,spring这些大量的配置文件带来很多不必要的工作量。spring boot顾名思义能够自动化的启动一个应用。以spring-boot-starter-web为例,它其实就是引入了一个组合pom.xml

2017-08-22 17:25:58 508

原创 spring boot的ActiveMQ使用

消息队列能够有效的降低系统请求峰值,也能够达到解耦的效果。spring boot对MQ也有比较好的支持。本文演示spring activeMQ的使用,首先在linux安装ActiveMQ:wget https://archive.apache.org/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.tar.gz然后解压找到 bin下面的脚本启动消息中间

2017-08-03 19:10:29 711

原创 spring boot 缓存@EnableCaching

很多时候系统的瓶颈都在一些比较复杂的IO操作,例如读取数据库,如果一些比较稳定的数据,一般的解决方案就是用缓存。spring boot提供了比较简单的缓存方案。只要使用 @EnableCaching即可完成简单的缓存功能。缓存的实现有多种实现,ConcurentHashMapCache , GuavaCache, EnCacheCache等多种实现,spring boot 有默认的实现。本文不深入源

2017-08-02 22:51:29 39636 9

原创 一个Linux命令Java实现

太久没写数据结构算法了,不知道是想考我数据结构还是考API的熟练程度呢。有点紧张,磕磕碰碰写完了,如果时间充足,我想把整个linux的命令的参数都放进函数参数,有限时间很多代码健壮性并没考虑到,例如流的打开关闭。 /** * 评测题目: 实现以下shell脚本的功能(不使用Stream.api, 题目中awk表示取第三列) cat /Users/micro/jyxb_gitLab/logs

2017-08-02 20:02:15 923

原创 Java MD5加密

看了下加密原理,感觉也不难一下没找到更好的API,自己写个:import java.security.MessageDigest;/** * @author micro * @date 2017年8月1日 * @description : */public class MD5Utils { public static String md5(String content){

2017-08-02 16:22:58 254

原创 Dubbo与spring-boot使用

背景介绍互联网公司与传统公司的信息化一个很大的不同就是架构更加偏向分布式,并非这个比较高级或则是某个人的偏好,而是由于业务基因所决定,因为传统公司往往需求是明确的,开发结束就能够长期稳定运行,互联网公司就不一样,大多都是从一个小的产品迭代而来,需求往往不明确,所以像传统公司按照需求来评估硬件资源变的不现实,分布式开发开辟了另一个横向扩展 scale out的思路用分布式集群达到提供强大服务的方式。

2017-07-19 12:08:20 1708

原创 spring-boot使用mongoDB

spring-boot的高度自动化有利有弊,好处就是利用约定大于配置大大降低了很多常规配置,只需要配置关键的东西即可。但是缺点就是很多情况下如果报错,很难查找,加上国内的springboot的文档并不多,这次我在spring boot 中使用了mongoDB做存储。 首先添resources下面加配置文件: application.yamlspring : application :

2017-07-12 16:54:18 1505

原创 CentOS 7 安装MySQL

自己搭建MySQL服务,网上教程很多,这个比较简单使用,引用了简书 九尾的分享 : http://www.jianshu.com/p/17fb10320d63wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rp

2017-07-09 22:23:40 458

原创 docker无法启动问题

我在centOS7内执行docker run,报错如下:/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint xxxx (4509dc5c1fe2ad23848f6098edb0f6df694c001179ea4c8fa86633

2017-07-09 13:26:05 6172 2

原创 spring-data-jpa实体继承

spring-jpa中我们要将SQL映射到对象,尤其是在spring boot这种高度自动化的环境下使用,大量的最优目录结构与命名规则可以大大降低配置,约定大于配置贯穿其中。例如我们定义查询dao,继承JpaRepository即可。然后返回的对象,我们可以定义model:@Entity @Table(“user_tab_name”) class User extends BaseUser {

2017-07-08 14:54:56 5897

原创 spring-boot使用profile环境切换

spring-boot是一个大大减少配置的环境,平时我们开发应用是要把开发环境和测试环境的配置给分开,我们可以在spring-boot中去使用profile轻松完成环境的切换。文件的命名规范application-{profile}.properties 其中profile就是环境的名称,application-dev.properties与application-pub.properties.

2017-07-05 19:22:40 5437

原创 Java线程池并发执行多个任务

Java在语言层面提供了多线程的支持,线程池能够避免频繁的线程创建和销毁的开销,因此很多时候在项目当中我们是使用的线程池去完成多线程的任务。 Java提供了Executors 框架提供了一些基础的组件能够轻松的完成多线程异步的操作,Executors提供了一系列的静态工厂方法能够获取不同的ExecutorService实现,ExecutorService扩展了Executors接口,Executo

2017-06-28 23:14:11 33546 6

原创 Java内部抛出异常外部不能catch问题分析

今天在论坛看到一篇关于异常处理的文章,异常处理机制详解开头就搬出了这样一个例子:public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try {

2017-06-11 21:35:15 6204 3

原创 Spring容器加载Bean源码分析

关于面向对象中接口的作用spring的核心就是控制反转与依赖注入容器,整个容器内对象的依赖关系被容器管理,而这种具体的依赖关系可以通过很多方式,面向对象设计的设计就是面向接口编程,因为接口是定义规范,接口的具体实现不关心,给调用方使用的只是一个黑盒,而这个黑盒的具体表现就是一个接口,就像我们平时使用的物理接口,我们并不关心接口内的电路构造,我只关心这是哪种接口,我的设备是否可以使用而已。关于spri

2017-06-11 12:29:00 513

原创 springMVC文件上传源码

springMVC是流行的web框架,它不仅轻量灵活还提供了一系列可扩展的功能,这次我们分析一个http上传请求在spring框架中的处理源码,其实本博客更多是博主自学总结使用,上篇spring源码的博文被推送到首页让博主手从若惊,一方面为自己的努力得到认可兴奋,另一方面则是担忧自己学识浅薄怕误人子弟,分析不一定面面俱到,因此我给自己的规定是尽量到自己不确定的细节不去猜测而更多客观描述,把一个生动具

2017-06-03 13:33:40 728

原创 springMVC容器加载源码分析

springmvc是一个基于servlet容器的轻量灵活的mvc框架,在它整个请求过程中,为了能够灵活定制各种需求,所以提供了一系列的组件完成整个请求的映射,响应等等处理。这里我们来分析下springMVC的源码。 首先,spring提供了一个处理所有请求的servlet,这个servlet实现了servlet的接口,就是DispatcherServlet。把它配置在web.xml中,并且处理我们

2017-05-24 15:54:29 2236

原创 spring中ApplicationListener源码分析

最近做一个功能,需要在整个服务器容器加载完成就触发执行,这个时候我只需要实现ApplicationListener即可。spring的这个接口就是给一个观察的入口,可以在各个阶段去触发相应的操作。不难看出这就是典型的设计模式之观察者模式。这次我们以观察者的观点去分析一下ApplicationListener。/** * Interface to be implemented by applicat

2017-05-06 21:30:47 2399

原创 node.js脚手架搭建

我是主攻后端的开发人员,但是项目人手紧缺,我的经历刚好是做过node.js后端,所以我们前后端的分离工作就交到我的头上来了,这次我们采用node.js。前端的使用和后端果然还是很多不同的。node.js在系统中处的作用我的理解就是分离前后端,后端更多提供一个数据服务,传统的后端可能就是MVC,在我看来C就是控制器,主要的工作就是在参数的校验和数据与视图的整合。这个部分是可以交给前端去做的,让后端与视

2017-05-05 17:01:30 7634

原创 AOP自定义校验功能模块

上一篇博客写了用AOP去完成参数校验的功能,但是作为一个比较通用的解决方案,如果要添加新的校验规则,最好是不需要修改原有的代码。前一篇博客在注解里把校验规则给写死了,这是不灵活的。拦截到了请求之后我们可以定制具体的校验方案。想想之前学的设计模式之策略模式不就是在一系列相同步骤当中封装了容易变化的部分么。因此这次我们采用策略模式来设计校验工具。 首先定义一个策略接口:最开始的思路是这样的,用一个拦截

2017-04-19 15:53:48 927

原创 AOP完成参数校验

在业务逻辑层做了太多参数校验,其实这样的代码似乎很重要,但是又有太多重复的逻辑在里面,如果发现代码当中重复的部分很多说明内聚性很差,Aop切面编程就是把相同的逻辑剥离出来单独变化,运行时生成动态代理织入到代码里,这次我结合注解完成了一个参数校验的切面。 原先的参数都会这样去处理:if(StringUtils.isBlank(mobile) || StringUtils.isBlank(nickNa

2017-04-18 16:38:39 1210 2

原创 shell编程笔记

#!/bin/bashecho "hello shell"a=20b=20echo "$a"if [ $a != $b ];thenecho "a is not equals to b"fiif [ $a = $b ];thenecho "a is equals to b"fifor skill in micro learn unix shelldoecho "Hello t

2017-04-12 11:58:24 340

原创 设计模式之中介者模式

好久没更新设计模式系列的文章了,最近工作有些变动,无论如何都不能停止学习。在产品中发挥更大的价值。设计模式一直是我非常重视的一块内容,如果说数据结构算法是编程的内功,那设计模式就是架构师的内功。 中介者模式是行为模式的一种,它主要是封装了通信的关心的复杂性,如果很多同事之间都有消息的传递。这个时候如果再增加新的同事,那通信开销会成倍增加。 扩展的困难性导致我们想到可以用一个中介类类维护这种复

2017-03-27 20:18:17 350

原创 多线程自增运算的原子性与可见性分析

很多程序的复杂性都是由于并发引起的,如果在并发情况下,如果对象是无状态那可以很好的运行,无论是在单线程还是多线程环境下都没问题,但是很多时候对象的状态是需要上下文维护的,因此在并发情况下就很容易导致不一致性的情况。我们先看下面一个例子:class File { private int num; public void incr() throws InterruptedException

2017-03-23 16:41:15 2043

原创 BeanFactoryPostProcessor的使用

spring容器中Bean的加载包含一系列的过程,bean的启动过程主要是org.springframework.context.support.AbstractApplicationContext.refresh() 方法。主要阶段包含:// Prepare this context for refreshing. prepareRefresh();

2017-03-22 15:39:31 1813

原创 多线程写入文件笔试题

四个线程t1,t2,t3,t4,向4个文件中写入数据,t1只能写入1,t2只能写入2,t3只能写入3,t4只能写入4,对4个文件A,B,C,D写入如下内容: A:123412341234….. B:234123412341…. C:341234123412…. D:412341234123…. 怎么实现同步可以让线程并行工作? CSDN上一个多线程题目,我的解决方案如下:package

2017-03-16 11:54:24 604

原创 利用Java内置锁与并发包多线程交替打印字符串

最近遇到一个关于多线程的面试题感觉挺有意思的,题目是这样的:三个线程A,B,C 依次交替打印ABBCCCAAAA… 直到打印到长度为200停止,分别统计每个线程打印多少次.乍看好像并不难,但是其实涉及到的问题还是比较多的,主要就是线程间的通信。首先我们思考一下单线程的写法: // 单线程执行 int sizeA = 0; int sizeB = 0;

2017-03-13 17:12:42 1451

原创 MySQL与Spring事务管理

数据库事务是保证在并发情况下能够正确执行的重要支撑,MySQL常见的数据库引擎中支持事务的是InnoDB,事务就是一系列操作,正确执行并提交,如果中途出现错误就回滚。事务要保证能够正常的执行,就必须要保持ACID特性,这在前面的文章当中有提到,本文也偏重spring的事务管理配置demo因此不做过多的概念介绍,网上的资料已经比较丰富。这是HeidiSQl截图查看不同引擎的特性: 数据库的事务的隔离

2017-03-02 20:08:21 4374 1

原创 堆排序

排序算法中堆排序是比较复杂的一种,因为它利用到了树结构,它是一种选择排序,与普通的选择排序不同,普通的选择是每次遍历数组去选择最大或最小的数,堆排序是利用完全二叉树结构.堆排序是一种不稳定的排序.时间复杂度为:平均O(nlog2n),最坏 O(nlog2n),最好情况 O(nlog2n),空间复杂度O(1) 排序思想:其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。其中每个结点

2017-02-22 17:57:39 387

Alfred 4.0.4 破解版

Alfred 是 Mac 系统上一款专注于效率提升的著名应用,它能帮你快速打开网页、快速进行自定义搜索、查看剪贴板历史、快速查询单词等等。

2021-04-27

Alfred 3.3.dmg

mac x 快捷键神器你懂的。直接安装好,再安装破解工具自动破解。

2019-07-16

matplotlib下载

matplotlib官网下载一般比较慢。。。我这里备份一下,原链接https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz/download

2018-05-19

linux就该这么学

linux

2017-03-29

毕业设计,NoSQL

博主NoSQL毕业设计,暂不开放下载

2016-08-23

大型网站技术架构

《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。, 《大型网站技术架构:核心原理与案例分析》不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。

2016-07-14

jar源代码查看工具

经常遇到问题,找不到源代码,这个工具可以查看jar的源码

2016-06-28

mybatis-generator工具

希望你们喜欢,我博客有教程。

2016-05-12

bootstrap-typeahead.js

bootstrap 实时查询typeahead js插件。

2016-01-27

zookeeper 3.4.6

流行的负载均衡与容灾解决方案zookeeper

2016-01-27

bootstrap模板

bootstrap完整模板,包含css,js,image等等

2016-01-27

自动生成entity mapper工具包

修改相应参数生成entity mapper.xml与mapper.java

2015-12-01

sourceTree产品证书

source的产品证书 导入即可 亲测有效

2015-11-28

springg mvc jar

spring mvc jar provided by micro_hz

2015-09-25

自定义注解实现过滤实例

参考我日志,mysql与自定义注解的实现。源代码。

2015-08-24

Spring与Struts

两个实例,主要是action的配置和bean的配置

2015-08-13

jsp+servlet+tomcat+mysql项目

十分简单的一个jsp+servlet+mysql的一个项目。主要是为了熟悉怎么流程。

2015-08-07

mysql-connector.jar包

mysql-connector很常用的jar包,连mysql数据库用的。

2015-08-06

Struts2 2.3.24开发文档

struts2开发文档,补充jar包的内容。

2015-08-04

Struts2 2.3.24jar包

struts2开源框架的jar包。不含开发文档。

2015-08-04

spring4.1.7开发文档

spring开源框架的开发文档,补充jar包的内容说明。

2015-08-04

spring-4.1.7 jar包

spring开发框架jar包。不含有开发文档。

2015-08-04

mybatis-3.2.7

mybatis的jar包,轻松获得dao层的开发,轻量级的orm封装。

2015-08-04

空空如也

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

TA关注的人

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