自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KHOST的博客

记录自己的学习历程,大部分来自转载,如有侵权联系删除.......

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

原创 25道经典Java算法题

即使做web开发,也会遇到各种各种需要解决的算法问题,本文节选部分经典练手算法,并提供相关参考答案,希望对你有所帮助【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   //这是一个菲波拉契数列问题 public class test01 {    public...

2018-12-28 17:25:23 304

转载 Linux运维工程师的80个监控工具全集(上)

随着互联网行业的不断发展,各种监控工具多得不可胜数。这里列出网上最全的监控工具。让你可以拥有超过80种方式来管理你的机器。在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 日志监控工具 基础设施监控工具 监控和调试性能问题是一个艰巨的任务,但用对了正确的工具有时也是很容易的。下面是一些你可能听说过的工具,也有可能没...

2018-12-22 19:48:35 190

转载 Java并发系列 | AbstractQueuedSynchronizer源码分析之共享模式

通过上一篇的分析,我们知道了独占模式获取锁有三种方式,分别是不响应线程中断获取,响应线程中断获取,设置超时时间获取。在共享模式下获取锁的方式也是这三种,而且基本上都是大同小异,我们搞清楚了一种就能很快的理解其他的方式。虽然说AbstractQueuedSynchronizer源码有一千多行,但是重复的也比较多,所以读者不要刚开始的时候被吓到,只要耐着性子去看慢慢的自然能够渐渐领悟。就我个人经验...

2018-12-18 09:50:06 154

转载 Java并发系列 | AbstractQueuedSynchronizer源码分析之独占模式

在上一篇《Java并发系列[1]----AbstractQueuedSynchronizer源码分析之概要分析》中我们介绍了AbstractQueuedSynchronizer基本的一些概念,主要讲了AQS的排队区是怎样实现的,什么是独占模式和共享模式以及如何理解结点的等待状态。理解并掌握这些内容是后续阅读AQS源码的关键,所以建议读者先看完我的上一篇文章再回过头来看这篇就比较容易理解。在...

2018-12-18 09:49:59 164

原创 Java流及流操作示例

流此处的流(Stream)与io中的输入流(InputStream)与输出流(OutputStream)是不同的概念,与实时处理数据的流也是不同的概念,但它们也有相似之处。Stream是对集合类的增强,它将List、Map等集合作为数据源,串行或并行地操作集合类,这些操作包括遍历(foreach)、过滤(filter)、排序(sort)、匹配(match)、映射(map)、计数(count...

2018-12-17 10:19:08 319

原创 Spring AOP的实现原理

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring A...

2018-12-17 10:19:03 138

转载 33款可用来抓数据的开源爬虫软件工具

要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面...

2018-12-17 10:18:56 958

转载 Java并发系列 | AbstractQueuedSynchronizer源码分析之概要分析

学习Java并发编程不得不去了解一下java.util.concurrent这个包,这个包下面有许多我们经常用到的并发工具类,例如:ReentrantLock, CountDownLatch, CyclicBarrier, Semaphore等。而这些类的底层实现都依赖于AbstractQueuedSynchronizer这个类,由此可见这个类的重要性。所以在Java并发系列文章中我首先对Ab...

2018-12-17 10:18:50 172

原创 Linux 下实现 MySQL 数据库定时自动备份

备份是什么?     为什么要备份? 容灾方案建设 存储介质 光盘 磁带 硬盘 磁盘阵列 DAS:直接附加存储 NAS:网络附加存储 SAN:存储区域网络 云存储 这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样。 1、查看磁盘...

2018-12-17 10:18:45 207

原创 Java线程池实现原理与技术II

为了能够更好地控制多线程,JDK提供了一套Executor框架,帮助开发人员有效地进行线程控制。Executor框架无论是newFixedThreadPool()方法、newSingleThreadExecutor()方法还是ewCachedThreadPool()方法,其内部实现均使用了 ThreadPoolExecutor:    public static ExecutorServic...

2018-12-17 10:18:39 155

原创 Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享

一、Session共享使用tomcat-cluster-redis-session-manager插件实现插件地址见:https://github.com/ran-jit/tomcat-cluster-redis-session-manager该插件支持Tomcat7、Tomcat8、Tomcat9或者直接在附件中下载(版本为2.0.2,2017-11-27日前最新版本)h...

2018-12-17 10:18:34 545

转载 在Java中如何优雅地判空

判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。不过NullPointerException对于很多猿们来说,也是Exception家族中最亲近的一员了。为了避免NullPointerException来找我们,我们经常会进行如下操作。if (data != null) {    do s...

2018-12-17 10:18:27 511

原创 MySQL 5.7 多主一从(多源复制)同步配置

多主一从,也称为多源复制,数据流向:  主库1 -> 从库s 主库2 -> 从库s 主库n -> 从库s  应用场景   数据汇总,可将多个主数据库同步汇总到一个从数据库中,方便数据统计分析。 读写分离,从库只用于查询,提高数据库整体性能。  部署环境  注:使用docker部署mysql实例,方便...

2018-12-17 10:18:21 1347 1

转载 推荐几个IDEA插件,Java开发者撸码利器。

这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍。JRebel for IntelliJ一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署。收费的,破解比较麻烦。不过功能确实很强大。算是开发必备神器了。热部署快捷键是control+F9/command+F9。.ignoregit提交时过滤掉不需要提交的文件,很方便,有些本地文件是不需要提交到Git上的。...

2018-12-17 10:18:11 441

原创 redis,学会这8点

一、redis是什么redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。二、支持的语言三、redis的应用场景有哪些1、会话缓存(最常用)2、消息队列,比如支付3、活动排行榜或计数4、发布、订阅消息(消息通...

2018-12-15 09:37:07 202

转载 Java并发系列 | AbstractQueuedSynchronizer源码分析之条件队列

通过前面三篇的分析,我们深入了解了AbstractQueuedSynchronizer的内部结构和一些设计理念,知道了AbstractQueuedSynchronizer内部维护了一个同步状态和两个排队区,这两个排队区分别是同步队列和条件队列。我们还是拿公共厕所做比喻,同步队列是主要的排队区,如果公共厕所没开放,所有想要进入厕所的人都得在这里排队。而条件队列主要是为条件等待设置的,我们想象一下...

2018-12-15 09:34:09 166

转载 Java8之stream

本文讲述.stream()的内容,需要一些Lambda表达式的基础,之前也推送过关于Lambda表达式和Stream的相关内容,就看哪盘菜味道更好!一、初识stream先来一个总纲:东西就是这么多啦,stream是java8中加入的一个非常实用的功能,最初看时以为是io中的流(其实一点关系都没有),让我们先来看一个小例子感受一下:@Beforepublic void ini...

2018-12-15 09:32:59 272

转载 Java并发系列 | Semaphore源码分析

来源:劳夫子链接:cnblogs.com/liuyun1995/p/8474026.html Semaphore(信号量)是JUC包中比较常用到的一个类,它是AQS共享模式的一个应用,可以允许多个线程同时对共享资源进行操作,并且可以有效的控制并发数,利用它可以很好的实现流量控制。Semaphore提供了一个许可证的概念,可以把这个许可证看作公共汽车车票,只有成功获取车票的人才能...

2018-12-15 09:28:47 161

转载 Java并发系列 | CountDownLatch源码分析

来源:劳夫子链接:cnblogs.com/liuyun1995/p/8528988.html CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。它的内部提供了一个计数器,在构造闭锁时必须指定计数器的初始值,且计数器的初始值必须大于0。另外它还提供了一个countDown方法来操作计数器的值,每调用一次count...

2018-12-15 09:27:44 237

转载 Java并发系列 | CyclicBarrier源码分析

现实生活中我们经常会遇到这样的情景,在进行某个活动前需要等待人全部都齐了才开始。例如吃饭时要等全家人都上座了才动筷子,旅游时要等全部人都到齐了才出发,比赛时要等运动员都上场后才开始。在JUC包中为我们提供了一个同步工具类能够很好的模拟这类场景,它就是CyclicBarrier类。利用CyclicBarrier类可以实现一组线程相互等待,当所有线程都到达某个屏障点后再进行后续的操作。下图演示了这...

2018-12-15 09:26:00 185

原创 Java8新特性之日期-时间API

在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类。但使用Date类却有诸多的弊端,如:java.util.Date是非线程安全的,所有的日期类都是可变的;日期/时间类的定义并不一致,在java.util和java.sql的包下都含有Date类,在开发过程中极易出错; 日期类并不提供国际化,没有时区支持。为了解决以上问题,Java8在java.time...

2018-12-15 09:24:16 521

转载 Java并发系列 | ConcurrentHashMap源码分析

我们知道哈希表是一种非常高效的数据结构,设计优良的哈希函数可以使其上的增删改查操作达到O(1)级别。Java为我们提供了一个现成的哈希结构,那就是HashMap类,在前面的文章中我曾经介绍过HashMap类,知道它的所有方法都未进行同步,因此在多线程环境中是不安全的。为此,Java为我们提供了另外一个HashTable类,它对于多线程同步的处理非常简单粗暴,那就是在HashMap的基础上对其所...

2018-12-15 09:23:33 169

原创 Log4J日志配置详解

链接:cnblogs.com/ITtangtang/p/3926665.html一、Log4j简介Log4j有三个主要的组件:Loggers(记录器)、Appenders(输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、Loggers...

2018-12-15 09:21:18 250

原创 Java面试中遇到的坑

1.StringBuilder替代String拼接,面试中经常会问到String,StringBuilder,StringBuffer的区别。 解答:String类作为java语言中最常见的字符串类被广泛使用,如果在做大量字符串拼接效率时变得比较低,因为虚拟机需要不断地将对象引用指向新的地址。因此,一般方法内的私有变量推荐使用stringBuilder来完成,如果是多线程需要同步的...

2018-12-15 09:20:20 191

原创 Java泛型基础

Java泛型基础 1. 认识泛型  泛型是在JDK1.5之后增加的新功能.   泛型可以解决数据的安全性问题, 主要的原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型.   格式: 访问权限 class 类名称<泛型, ...="">{ 属性 方法} 对象的创建: 类名称&l...

2018-12-14 16:59:20 139

转载 Java并发面试题

多线程java中有几种方法可以实现一个线程? 继承Thread类; 实现Runnable接口; 实现Callable接口通过FutureTask包装器来创建Thread线程; 使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前面的三种方式)。 详情参见: ht...

2018-12-14 11:23:03 164

原创 面试题:Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点

面试题1.为什么使用消息队列?2.消息队列有什么优点和缺点?3.Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或...

2018-12-13 16:22:05 9615 6

原创 Synchronized 有几种用法?

我们都知道 Synchronized 是线程安全同步用的,大部分程序可能只会用到同步方法上面。其实 Synchronized 可以用到更多的场合,栈长列举了以下几个用法。1、同步普通方法这个也是我们用得最多的,只要涉及线程安全,上来就给方法来个同步锁。这种方法使用虽然最简单,但是只能作用在单例上面,如果不是单例,同步方法锁将失效。/** * 用在普通方法 */private s...

2018-12-13 09:54:28 709

转载 看MySQL慢查询日志

本文:   MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1、通用查询日志:记录建立的客户端连接和执行的语句。2、慢查询日志:记录所有执行时间超过longquerytime秒的所有查询或者不使用索引的查询一、通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令:1) sho...

2018-12-12 20:23:49 165

转载 CentOS系统启动流程

当我们按下开机键后,系统背后的秘密我们是否了解呢?这里,我带大家探索一下linux系统开机背后的秘密。  1.加电自检 主板在接通电源后,系统首先由POST程序来对内部各个设备进行检查,自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。 ...

2018-12-12 20:20:12 154

原创 所有常用端口作用

大家在学习计算机的时候,对于最常用的几个端口比如80端口肯定有很深的印象,但是对于其他一些不是那么常用的端口可能就没那么了解。所以,在一些使用频率相对较高的端口上,很容易会引发一些由于陌生而出现的错误,或者被黑客利用某些端口进行入侵。对于这件事情,大部分人都很头疼——最多可达65535个的端口,让人怎么记?别怕,小编专门给大家整理了一些比较常见端口信息,遇到问题,一查就好啦!一个计算机最多...

2018-12-12 20:17:53 5066

原创 Java核心数据结构(List、Map、Set)原理与使用技巧

JDK提供了一组主要的数据结构实现,如List、Map、Set等常用数据结构。这些数据都继承自java.util.Collection接口,并位于java.util包内。一、List接口最重要的三种List接口实现:ArrayList、Vector、LinkedList。它们的类图如下:可以看到,3种List均来自AbstratList的实现。而AbstratList直接实现了Li...

2018-12-12 20:14:33 584

原创 互联网常见的14个Java面试题

1. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 实现机制不同 synchronized通过java对象头锁标记和Monitor对象实现 reentrantlock通过CAS、ASQ(AbstractQueuedSynchronizer)和locksupport(用于阻塞和解除阻...

2018-12-12 18:54:47 137

原创 JVM面试题

-Xms 设置堆的最小空间大小5、Perm Space中保存什么数据?会引起OutOfMemory吗?加载class文件。会引起,出现异常可以设置 -XX:PermSize 的大小。JDK 1.8后,字符串常量不存放在永久带,而是在堆内存中,JDK8以后没有永久代概念,而是用元空间替代,元空间不存在虚拟机中,二是使用本地内存。详细查看Java8内存模型—永久代(PermGen)和元...

2018-12-07 13:53:09 182

原创 Java 中初始化 List 集合的 6 种方式!

List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天我给大家一一普及一下。1、常规方式List<String> languages = new ArrayList<>();languages.add("Java");languages.add("PHP");languages.add("Py...

2018-12-06 09:09:15 264

原创 HashMap 和 Hashtable 的 6 个区别

HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的。但你对这两者的区别了解有多少呢? 1、线程安全Hashtable 是线程安全的,HashMap 不是线程安全的。为什么说 HashTable 是线程安全的?来看下 Hashtable 的源码,Hashtable 所有的元素操作都是 synchroniz...

2018-12-05 19:05:08 140

原创 并发编程之死锁解析

在 Java 的并发编程中,有一个问题需要特别注意,那就是死锁,如果发生了死锁,基本就是重启,而重启将会丢失运行中的数据。所以,了解死锁的形成并排查死锁到预防死锁成了一个重要的问题。我们了解任何一个事情的步骤是:what,how,why,why not。1. 什么是死锁?我们还是直接写一段代码来看看:package hello;public class DeadLock {...

2018-12-05 19:03:34 268

原创 Java 异常处理基本规则,Java异常处理的基本规范

看了团队中原来代码中的异常处理,心碎了一地,稍微对照阿里巴巴的异常处理规范整理了一遍,准备分享一下,Java的异常处理规范&约束。一、运行异常的扑捉不要捕获   Java  类库中定义的继承自 RuntimeException 的运行时异常类,如:IndexOutOfBoundsException / NullPointerException ,这类异常由程序员预检查来规避,保证程...

2018-12-05 19:02:44 581

原创 基于Java内存模型:Synchronized和Volatile的比较

1.Java内存模型  1.Java内存模型1.Java内存模型   1)  Java虚拟机规范试图定义一种Java内存模型,来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。   2)Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存中和从内存中取出变量这样得底层细节。  3)Ja...

2018-12-05 19:00:15 227

转载 可以实现内网穿透的几款工具

首先说下内网穿透的原理。 NAPT原理 在NAT网关上会有一张映射表,表上记录了内网向公网哪个IP和端口发起了请求,然后如果内网有主机向公网设备发起了请求,内网主机的请求数据包传输到了NAT网关上,那么NAT网关会修改该数据包的源IP地址和源端口为NAT网关自身的IP地址和任意一个不冲突的自身未使用的端口,并且把这个修改记录到那张映射表上。最后把修改之后的数据包发送到请求的目标主机...

2018-12-05 18:36:39 1421

winSCPPortable交互

十分好用的文件上传下载工具,在与自己的服务器交互的时候可以用这个软件进行文件互传,不管时win下的还是Linux下的都十分方便

2018-07-03

pdf阅读器_福昕

东西好用,体积小巧,使用方便,插座简单,打开快速.........................................................

2018-07-03

FSCapture.rar

可以截图录屏取色,像素尺,体积小巧功能强大携带方便........

2018-07-03

空空如也

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

TA关注的人

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