![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JaveEE
kingmax54212008
这个作者很懒,什么都没留下…
展开
-
Kafka为什么速度那么快?
Kafka为什么速度那么快?Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基...原创 2020-01-23 13:02:14 · 221 阅读 · 0 评论 -
大数组的排序
大数组的排序之前有一个同事问我,如何对一个非常大的数组进行排序,最开始的思路是:化整为零 合并排序。但实际上具体的一些细节还是有待商榷,因此 这里写一篇文章来具体来总结一下。问题假如一个数组中有1亿个数字,那么要对这个数组从小到大进行排序,我们该如何操作!思路其实对于这种数据量比较大的问题,思路基本上都是一致的:首先,化整为零,对于那么大的一个数据,我们肯定不能直接对其...原创 2020-01-20 12:54:07 · 2578 阅读 · 0 评论 -
【LeetCode】101. Symmetric Tree 解题分析【java版】
【LeetCode】101. Symmetric Tree 解题报告Subject出处:https://leetcode.com/problems/symmetric-tree/Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For examp...原创 2020-01-03 21:10:33 · 207 阅读 · 0 评论 -
jmap使用方法及原理
jmap使用方法及原理在这篇文章中:1. jmap常用命令 1. jmap -heap 2. jmap -histo[:live] 3. jmap -clstas 4. jmap -finalizerinfo 5. jmap -dump:<dump-options> 6. jmap -F 2. 与jvm通信方式attach机制 3. jmap操...原创 2019-12-24 11:40:18 · 6663 阅读 · 1 评论 -
这才是真正的Git——Git内部原理揭秘!
这才是真正的Git——Git内部原理揭秘!本文以一个具体例子结合动图介绍了Git的内部原理,包括Git是什么储存我们的代码和变更历史的、更改一个文件时,Git内部是怎么变化的、Git这样实现的有什么好处等等。通过例子解释清楚上面这张动图,让大家了解Git的内部原理。如果你已经能够看懂这张图了,下面的内容可能对你来说会比较基础。视频链接:https://www.bilibi...原创 2019-12-19 10:34:55 · 167 阅读 · 0 评论 -
使用java Spring实现读写分离( MySQL实现主从复制)
使用java Spring实现读写分离( MySQL实现主从复制) 我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案,其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库; 那么,对我们的要求是:1、读库和写库的数据一致;2、写数据必须写到写库;3、读数据必...原创 2018-11-04 16:05:22 · 665 阅读 · 0 评论 -
聊聊cglib动态代理遇到的坑
简介cglib是另外一种动态代理的方法,他和jdk动态代理的实现是有区别的,我们在之前见过jdk动态代理类是必须实现了接口的,而cglib不需要实现接口,但是必须保证类不含有final关键字,否则是无法代理的。 本文是从个人不小心遇到的cglib的死循环问题从而展开的分析。cglib案例下面我们来展示一个cglib的死循环案例。首先是要被代理的类,还是和常规的一样,声明自己的方法就行,...原创 2018-11-09 19:49:42 · 8456 阅读 · 2 评论 -
java动态代理机制--那些让你面试脱颖而出的技能
retrofit是一个解耦性非常高的网络请求框架,最近在研究的时候发现了动态代理这个非常强大且实用的技术,这篇文章将作为retrofit的前置知识,让大家认识:动态代理有哪些应用场景,什么是动态代理,怎样使用,它的局限性在什么地方?动态代理的应用场景1. AOP—面向切面编程,程序解耦简言之当你想要对一些类的内部的一些方法,在执行前和执行后做一些共同的的操作,而在方法中执行个性化操作的...原创 2018-11-09 18:12:37 · 154 阅读 · 0 评论 -
二叉树基本操作java实现及遍历浅析
前言这段时间复习数据结构,从二叉树开始看,到后面是二叉排序树,平衡树,红黑树等,看完树还要看图,然后是排序和查找算法。今天把实现了的二叉树的代码总结一下,理理思路。 数据结构中,二叉树的遍历分为三种方式:前序,中序,后序。所谓前中后,我觉得就是根节点的遍历顺序,如果根节点第一个访问就是前序,第二个访问就是中序,最后一个访问就是后序。而遍历的手段有两种–递归和非递归。 我写的是java代码,在...原创 2018-11-03 07:01:20 · 220 阅读 · 0 评论 -
Java IO 编程(BIO、NIO、AIO完整实例代码)
本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上代码讲解。 源码地址: https://github.com/kkman2008/java-IO.git 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工...原创 2018-10-30 11:30:21 · 646 阅读 · 0 评论 -
git的rebase、reset、merge
我认为对于git初学者来说最令人困惑的是主要命令根据参数或上下文有多种用途,其中一些用法没有通过命令的名称来描述。合并(Merge)合并不同的分支(不同的历史,更确切地说) 如果不需要合并,则快进 ; 有效地将分支头重新定位到后代提交 不需要结果的git pull变基(Rebase)重放一组提交,就像它们是基于另一个父级一样 交互式地用于历史清理:重新排序和压缩相关的提交 应...原创 2018-10-31 07:21:09 · 745 阅读 · 0 评论 -
Kafka集群配置---Windows版
Kafka集群配置---Windows版 Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的。今天我们仅实现Kafka集群的配置。前言最近研究kafka,发现网上很多关于kafka的介绍都是基于Linux操作系统的。虽然这些服务最后都是配置Linux上的。但是我们平时使用的大多都是Windows系统。所以研究很是吃力。经过借...原创 2018-10-25 15:33:38 · 747 阅读 · 0 评论 -
Springboot的web项目jar发布
关于可执行Springboot web jar发布: I) jar发布, 直接在IDEA中, Maven Project-> LifeCycle->package 如果没有此选项,把plugin配置上,对应的manven build组件。 发布过程会重新run一遍project, 然后,run 一边所有的Unit Test下的所...原创 2018-09-29 08:13:40 · 894 阅读 · 0 评论 -
mysql的explain详解
MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。EXPLAIN Output Columns列名 说明 id 执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置 select_t...原创 2018-11-05 09:33:39 · 293 阅读 · 0 评论 -
Spring - 基于Java的配置
到目前为止,您已经了解了我们如何使用XML配置文件配置Spring bean。如果您对XML配置感到满意,那么实际上不需要了解如何继续使用基于Java的配置,因为您将使用任一可用配置获得相同的结果。基于Java的配置选项使您可以在没有XML的情况下编写大部分Spring配置,但是在本章中介绍的基于Java的注释很少的帮助下。@Configuration&@Bean Annotations...原创 2018-11-08 13:54:55 · 774 阅读 · 0 评论 -
Spring事务传播行为详解.【事务传播行为,看这一篇文章就够了】
Spring事务传播行为详解前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确...原创 2018-11-08 18:58:27 · 307 阅读 · 0 评论 -
Java 8 – 从一个 Stream中过滤null值
复习一个Stream 包含 null 数据的例子.Java8Examples.java package com.mkyong.java8; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; ...原创 2019-02-18 16:41:56 · 47118 阅读 · 1 评论 -
使用Mapstruct来进行PO与VO之间的映射
更多参考: https://juejin.im/entry/5b228c2651882574b15882bahttps://blog.csdn.net/u014175005/article/details/72792839 使用Mapstruct来进行PO与VO之间的映射 区别与mvc模型的 mvvm模型,将模型对象与视图对象view model分离开,来做到与底层model...原创 2018-12-15 17:00:21 · 828 阅读 · 0 评论 -
一次服务器CPU占用率高的定位分析
一次服务器CPU占用率高的定位分析 背景:通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的。幸亏由于我们的服务进程由多个相同worker(线程)调度承担的,所以除了CPU占用率高之外,并没有对服务造成影响。随着上次我们找到那个吃IO的罪犯,这次我们要追捕的是潜伏在团体中的特务,更加惊险刺激哟!系统环境用top命令很容易定位到是谁占用...原创 2018-11-26 19:26:54 · 358 阅读 · 0 评论 -
一分钟掌握Spring中bean的生命周期!
一分钟掌握Spring中bean的生命周期!在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例.Spring 中bean 的生命周期短暂吗?在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean...原创 2018-11-18 07:22:21 · 157 阅读 · 0 评论 -
面试小结之JVM篇
最近面试一些公司,被问到的关于Java虚拟机的问题,以及自己总结的回答。Java内存区域是如何划分的?Java堆:线程共享的,唯一目的就是用于存放对象实例,是垃圾收集器管理的主要区域; Java虚拟机栈:线程私有的,每个方法在执行的同时都会创建一个栈帧用于存储局部变量等,局部变量表存放了编译器可知的各种基本数据类型和对象引用; 本地方法栈:和虚拟机栈类似,不过它是为Native方法服务...原创 2018-11-17 06:16:41 · 256 阅读 · 0 评论 -
直播平台整体架构
直播平台整体架构 ---无忧无虑的写代码,也是种幸福。 --- 视频直播链路视频流转换成不同清晰度不同的端,不同的网络环境,需要不同码率,以保流畅播放器的基本实现SDK在播放器上做层管理视频相关技术细节 消息发送流程不同消息通道的优劣对比 心跳及房间结构用户按需分桶固定分桶与按需分桶对比 关键词...原创 2018-11-20 18:16:31 · 19967 阅读 · 0 评论 -
自定义Druid的拦截器
自定义Druid的拦截器 Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQ...原创 2018-11-19 06:58:49 · 8239 阅读 · 3 评论 -
ThreadPoolExecutor线程池解析与BlockingQueue的三种实现
ThreadPoolExecutor线程池解析与BlockingQueue的三种实现 目的主要介绍ThreadPoolExecutor的用法,和较浅显的认识,场景的使用方案等等,比较忙碌,如果有错误还请大家指出ThreadPoolExecutor介绍ThreadPoolExecutor的完整构造方法的签名如下ThreadPoolExecutor(int corePool...原创 2018-11-19 06:32:50 · 453 阅读 · 0 评论 -
IDEA整合日志框架Log4j2+Slf4j详细配置过程
IDEA整合日志框架Log4j2+Slf4j详细配置过程日志框架这么多,他们之间到底是什么关系呢?笼统的讲就是slf4j是一系列的日志接口,而log4j2、logback是具体实现了接口功能的日志框架。现在的主流日志接口都使用slf4j,而日志的实现就见仁见智了,至于他们的关系请自行百度,此处选择log4j2作为实现框架。网上看到的教程要么对代码没有解释,对新手不友好;要么时间比较久远,跟不上...原创 2018-09-21 18:39:34 · 4056 阅读 · 0 评论 -
java日志框架log4j详细配置及与slf4j联合使用教程
java日志框架log4j详细配置及与slf4j联合使用教程注: 更让你理解facade门面模式,更让你理解jvm的run anyway一、log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <d...原创 2018-09-21 18:30:50 · 301 阅读 · 0 评论 -
分布式会话session的一些方式总结
分布式session中一般会通过,Ngnix、application server、session持久化(此处讲Redis)共同发挥作用。1.粘性Session 通过ip_hash, 每次访问只访问当前服务器。2.服务器Session复制 配置tomat的配置文档中的distributable节点。3.Session服务器 通过Spring Session配置,对...原创 2018-09-16 23:21:35 · 1113 阅读 · 0 评论 -
Eclipse上安装GIT插件EGit及使用
一、Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装) EGit插件地址:http://download.eclipse.org/egit/updates OK,随后连续下一步默认安装就...原创 2018-09-12 18:28:54 · 154 阅读 · 0 评论 -
android.app.Fragment与android.support.v4.app.Fragment区别
在做项目时,同事把基础fragment类中的android.support.v4.app.Fragment改成了android.app.Fragment,导致了一些问题,今天特别来标注一下:强烈推荐使用android.support.v4.app.Fragment,不过依然要了解为什么?? 1.最低支持版本不同android.app.Fragment 兼容的最低版本是android...原创 2018-09-11 14:40:07 · 6632 阅读 · 0 评论 -
一眼看懂,Spring注解@Component、@Repository、@Service、@Controller区别
talk is cheap, show me the code:从源码级别来看, @Repository、@Service、@Controller是@Component的别名。 参看源码: @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @inte...原创 2018-09-08 08:03:37 · 4490 阅读 · 0 评论 -
FastJSON使用心得——如何解析带中文或者数字key的数据
今天群里有人怎么快速解析带中文key或者数字key的json数据,示例数据格式如下: { "姓名": "张三", "年龄": 12 }最开始以为没办法使用快速解析了 只能一个个的按照键值对来取 后来感觉阿里巴巴的大牛应该早就考虑到了这些问题于是百度了一下 发现果然有解决办法 直接用注解就好了,实体类写法如下:[java] view plain copypublic cla...原创 2018-03-18 08:46:54 · 1932 阅读 · 0 评论 -
Spring的三种装配bean的方式
Java中的Spring三种装配bean的方式创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质spring有如下三种装配bean的方法在XML中进行显式配置在Java中进行显式配置隐式的bean发现机制和自动装配显式配置工作最常用的是隐式配置,因为自动扫描非常方便,但是有些情况下只能使用显式的手动配置。比如引入一些第三方库,要想让spring管理这个bean。不可能修改它的...原创 2018-03-15 16:40:49 · 2913 阅读 · 0 评论 -
java webservice实例教程
最近在学习web services,网上先关的资料不多,讲的都是很基础,例子也很简单,自己动手敲了敲在这里和大家分享一下,希望能对初学者有所帮助。 Web Services服务器端开发服务器端开发用的是XFire,版本是1.2.6,XFire现在已经成apache下面的一个项目CXF的一部分了,老早就不更新版本了,XFire过不过时我是不知道,不过还有一些人在用。开发环境是:IDEA,Tomcat...原创 2018-03-15 15:12:55 · 1307 阅读 · 0 评论 -
springMVC:HandlerInterceptor拦截器的使用
1.使用背景Web项目中需要判断http接口用户Post上来的数据是否合法,如果不合法要另做处理,用户Post上来的数据是Json形式的,我们用了@RequestBody标记自动将json形式的提交封装为一个Model对象,这样一来,我们就不能判断在自动封装过程中是否出现了异常,此时便想起了springMVC中的interceptor,用于处理请求之前,做一些处理,我们可以取消@RequestBo...原创 2018-02-18 08:43:07 · 553 阅读 · 1 评论 -
iframe 点击左侧导航列表 右侧出现对应界面
HTML 代码结构如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body>&原创 2018-02-16 22:34:20 · 5910 阅读 · 1 评论 -
关于WEB-INF目录不提供外部访问及JSP引用 js,css 文件路径问题
在 web 项目开发过程中,我们常常使用到 JSP,以及对静态资源,js,css 等引用,但是我们应该把这些资源文件放在哪个目录下面咧,怎么引用。当然如果是前后端分离的项目倒不用考虑这些。WEB-INF:出于安全性的考虑,这个目录是禁止外部直接访问的,所以 JSP 页面放在这个目录及其子目录下面是起到保护作用的。在 jsp 页面中少不了的是对 js,css 文件的引用,那么我们引用的时候又有两种方...原创 2018-02-15 16:18:10 · 500 阅读 · 0 评论 -
Redis之事务功能使用实现与分析
Redis 通过 MULTI 、 DISCARD 、 EXEC 和 WATCH 四个命令来实现事务功能, 本章首先讨论使用 MULTI 、 DISCARD 和 EXEC 三个命令实现的一般事务, 然后再来讨论带有 WATCH 的事务的实现。因为事务的安全性也非常重要, 所以本章最后通过常见的 ACID 性质对 Redis 事务的安全性进行了说明。事务事务提供了一种“将多个命令打包, 然...原创 2018-09-16 23:35:18 · 1725 阅读 · 0 评论 -
Android 上下文菜单:给ListView注册ContextMenu后获取被长按item的position
Android 上下文菜单:给ListView注册ContextMenu后获取被长按item的position 版权声明:本文为博主JZHowe原创文章,转载请务必注明出处。 https://blog.csdn.net/JZhowe/article/details/54565097Android中的ContextMenu又称上下文菜单,当长按某个View时,调出上下文菜单。 在Andro...原创 2018-09-17 10:14:37 · 1844 阅读 · 2 评论 -
使用IntelliJ IDEA 配置Maven (to 李琳老师)
核心配置包括两个:1. maven本身的安装与配置 2. idea中的maven配置。备注: maven为jar包在线管理工具,同时也是编译工具。 可以任意集成到你的IDE中。-------------------------以下具体参考配置步骤:1. 下载Maven 官方地址:http://maven.apache.org/download.cgi解压并新建一个本...原创 2018-09-17 11:13:30 · 149 阅读 · 0 评论 -
最全Java日志框架详解
最全Java日志框架详解 在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J、SLF4J。这些日志记录框架各有各的特点,各有各的应用场景。...原创 2018-09-21 18:23:51 · 12190 阅读 · 2 评论