- 博客(39)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 高级JAVA开发 技术栈知识点总结
高级JAVA开发 面试知识点总结写在前面MQRedis分布式系统 和 Dubbo写在前面“金三银四”对于今年(2019)的互联网行业行情并不适用,面试遇到种种困难的同时也意识到个人技术水平不足,下面对近期学习做个总结,方便自己以后查阅,最好能帮助到和我一样是传统行业出身想跳槽到互联网行业的同学。以下知识点大多搜罗于大牛博客和“中华石杉”老师的视频,谢谢你们的文章和经验让我快速成长,谢谢!我会...
2019-05-16 18:24:32
3622
1
原创 利用javaagent修改字节码实现aop
利用javaagent实现aop起因:在用seata AT模式时想在全局事务提交后触发事件,解析undo_log执行一些操作,比如异步写入es。由于seata没有提供代码切入点,那么只能在项目中建一个和框架代码相同的包,再拷贝框架中的类源码放到包下,重写其中的源码,classpath优先加载原则达到覆盖原类目的。这种做法实属不够『优雅』。那么怎么才能做到无声无息的对源码做到增强呢?想到spring aop,但是源代码是new出来的,并且不受spring工厂托管,那么这条路走不通了。又想到利用Cla
2020-07-07 12:55:25
1854
原创 高级JAVA开发 分布式事务部分
高级JAVA开发 分布式事务部分『分布式事务』中的相关概念2PC(Two Phase Commitment Protocol)XATCC3PC参考和摘自:分布式事务的4种模式『分布式事务』中的相关概念2PC(Two Phase Commitment Protocol)2PC是两阶段提交协议的缩写。事务管理器分两个阶段来协调资源管理器,第一阶段准备资源,也就是预留事务所需的资源,如果每个...
2020-07-04 18:03:51
2469
1
原创 记一次开发组内课题 【 24G ng log 统计域名、uri访问次数top10,最终程序使用内存64M、花费时间16s】
组内发布一个课题:给一个4核、4G内存的环境,分析统计ng log 中访问域名和uri数量的top10在没有OOM并结果正确的前提下,比拼处理速度。在大神帮助下、我的程序轻松夺冠。程序很简单,在写了多版程序后分析程序效率瓶颈、如何更省内存、如何避免发生GC等问题,过程经历难能可贵,写一篇帖子记下来。ng log 格式:[02/Sep/2019:00:00:03 +0800] - 47.91...
2019-10-21 11:33:27
355
原创 记一个sql面试题:成绩表内有多人多科目的成绩,查询平均成绩前百分之二十的同学
故意把学生id和score id数据不连续。第一种:第二种:-- 建表sqlCREATE TABLE `subject_score` ( `id` int(11) NOT NULL, `score` int(255) DEFAULT NULL, `student_id` int(11) DEFAULT NULL, `subject_id` int(11) DEFAUL...
2019-09-04 15:49:16
4250
原创 高级JAVA开发 Spring部分(源码解析)
高级JAVA开发 Spring部分Spring源码解析步骤2:初始化BeanFactory,并进行XML文件读取。参考和摘自:《spring源码深度解析(第2版)》 郝佳Spring Bean的生命周期 —附详细流程图及测试代码Spring源码解析基于spring 5.0.x版本。spring-context包提供了多种context以供使用,常见的例如:AnnotationConfi...
2019-08-26 17:53:48
2376
原创 高级JAVA开发 JVM部分
高级JAVA开发 JVM部分运行时数据区运行时数据区程序计数器(Program Counter Register):当前线程执行的字节码的行号指示器。线程私有,此区域没有OOMError。线程正在执行Java方法:记录正在执行的虚拟机字节码指令地址线程正在执行Native方法:计数器值为空(Undefined)。Java虚拟机栈:线程私有,生命周期与线程相同。方法在执行时创建...
2019-05-29 15:06:37
933
原创 高级JAVA开发 Java基础部分
高级JAVA开发 Java基础部分ThreadLocal 以及内存泄漏问题ThreadLocal 以及内存泄漏问题分析如有不正确之处,请回帖或联系我:guosheng.tan@foxmail.com随便找一个应用ThreadLocal的例子:在使用时,声明一个本地ThreadLocal变量并重写initialValue()方法,就可以为每个线程提供一个本地变量存储的功能。那么,它是怎么实...
2019-05-20 18:01:56
1072
原创 高级JAVA开发 分布式系统部分
高级JAVA开发 分布式系统分布式系统分布式系统接口的幂等性分布式锁Redis 普通实现基于Redis的分布式锁框架:Redisson、RedLock基于zookeeper的分布式锁分布式系统Session共享分布式事务两阶段提交/XA协议三阶段提交/TCC机制(Try、Confirm、Cancel)本地消息表分布式系统参考和摘自:中华石杉 《Java工程师面试突击第1季》分布式系统接口的...
2019-05-16 18:20:47
2558
原创 高级JAVA开发 Dubbo部分
高级JAVA开发 分布式系统和Dubbo分布式系统 和 DubboDubbo架构&框架设计Dubbo的网络通信协议&序列化负载均衡策略集群容错Dubbo的SPI(Service Provider Interface)& Filter分布式系统 和 Dubbo参考和摘自:中华石杉 《Java工程师面试突击第1季》Dubbo 官网文档Dubbo架构&框架设计...
2019-05-15 16:11:48
538
原创 高级JAVA开发 Redis部分
高级JAVA开发 Redis部分Redis缓存的作用、为什么要用缓存Redis和Memcached区别Redis五种数据类型和使用场景Redis线程模型(为什么Redis是单线程的但是还可以支撑高并发)Redis过期策略、内存回收策略(内存淘汰机制)Redis的高可用架构(主从replication、哨兵、cluster集群)Redis的持久化机制(RDB、AOF)使用缓存带来的问题以及处理办法缓...
2019-05-15 02:20:16
1298
原创 高级JAVA开发 MQ部分
高级JAVA开发 MQ部分MQMQ的作用、为什么要用MQ常见的MQ的优缺点使用MQ带来的问题以及处理办法MQ带来的问题列举消息重复消费(幂等)问题消息丢失问题消息顺序性问题消息过期丢失、大量积压等问题如何保证MQ高可用性RabbitMQ高可用以及部署模式如何开启镜像集群模式kafka的高可用性MQ参考和摘自:中华石杉 《Java工程师面试突击第1季》ActiveMQ—知识点整理消息总线真...
2019-05-15 02:18:43
8144
原创 JS中typeof、Object.prototype.toString.call、constructor
console.log("-----------typeof o------------"); console.log("null\t\t\t", typeof null); console.log("{}\t\t\t\t", typeof {}); console.log("[]\t\t\t\t", typeof
2018-01-31 11:32:45
331
转载 常用 Git 命令清单
转载自 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html作者: 阮一峰日期: 2015年12月 9日我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git
2016-08-04 22:35:45
286
转载 很全的mvn介绍
转自http://buzhucele.iteye.com/blog/12180041.前言 Maven,发音是[`meivin],"专家"的意思。它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven,所以对maven进行了一些深入的学习。写这个学习笔记的目的,一个是为了自己备忘,二则希望能够为其他人学习使用maven 缩短
2016-08-04 21:45:01
391
转载 maven parent
5.2.parentartifactId父项目的artifact标识符groupId父项目的group标识符version父项目的版本relativePath父项目的pom.xml文件的相对路径。默认值为../pom.xml。maven首先
2016-08-04 21:13:36
2617
转载 maven 学习总结
1、关于Maven最近学了一些maven方面的知识,感觉这个工具挺好用,为防遗忘现总结一下。Maven是一个项目管理工具,它可以通过一段描述信息来管理项目的构建、报告和文档的软件项目管理工具。它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Managem
2016-08-04 21:12:52
290
转载 maven setting.xml配置说明
setting.xmlxml version="1.0" encoding="UTF-8"?> settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/
2016-08-04 21:07:10
221
转载 Maven入门--概念与实例
关键名词 Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。 POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每
2016-08-04 21:03:53
187
转载 Maven那点事儿(Eclipse版)
前言: 由于最近工作学习,总是能碰到Maven的源码。虽然平时工作并不使用Maven,但是为了学习一些源码,还是必须要了解下。这篇文章不是一个全面的Maven解析,而是一个简单的介绍,包括Eclipse中如何使用Maven,如何利用Maven工程学习。 循序渐进,你将会学到下面的知识: maven的相关书籍! 什么是maven? 如何在eclips
2016-08-04 20:52:08
245
转载 maven学习(上)- 基本入门用法
一、下载及安装1.1 下载maven 3.1.1先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本文中是C:\Java\maven-3.1.1) 2.1 配置环境变量系统环境变量里,添加MAVEN_HOME(或M2_HOME),其值为C:\Java\maven-3.1.1,然后PA
2016-08-04 20:43:16
398
转载 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variabl
转载自 http://www.cnblogs.com/sprinng/p/5141233.html1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk, 添加 -Dmaven.multiModuleProjectDirectory=$M2_HOME-Dm
2016-08-04 19:46:55
230
转载 java中queue的使用(转载)
转载自 http://www.cnblogs.com/end/archive/2012/10/25/2738493.htmlQueue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Qu
2016-08-03 18:23:57
217
转载 CountDownLatch(转载)
转载自 http://www.iteye.com/topic/1002652CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。主要方法 public CountDownLatch(int count); public void countDown(); public void aw
2016-08-03 15:28:31
208
转载 spring事务PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED区别(转载)
解惑 spring 嵌套事务 在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition 接口中的定义 Java代码 收藏代码[java] view plain copy
2016-07-31 23:31:35
712
转载 HashMap 面试(转载)
转载自 : http://blog.csdn.net/java_kider/article/details/51305425HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或
2016-07-29 23:20:03
243
转载 HashMap实现原理分析 (转载)
转载自 : http://blog.csdn.net/vking_wang/article/details/141665931. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易
2016-07-29 22:54:35
228
转载 Spring3核心技术之事务管理机制(转载)
文章转至http://zhou137520.iteye.com/blog/1675199Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案。 http://jinnianshilongnian.iteye.com/blog/1496953 Spring提供了许多内置事务管理器实现,常用的有以下几种: DataSourceTransacti
2016-07-29 21:43:04
195
转载 Spring中bean的scope详解(转载)
转载自 http://blog.csdn.net/fhx007/article/details/7016694如何使用spring的作用域:这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称 prototype), Spring2.0以后,
2016-07-29 20:55:14
209
转载 Java程序员们最常犯的10个错误(转载)
本文由 ImportNew - 林林 翻译自 programcreek。欢迎加入翻译小组。转载请见文末要求。1.将数组转化为列表将数组转化为一个列表时,程序员们经常这样做:1List list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayLis
2016-07-24 21:09:22
348
转载 HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap(转载)
本文由 ImportNew - 唐小娟 翻译自 Programcreek。欢迎加入翻译小组。转载请见文末要求。Map是最重要的数据结构。这篇文章中,我会带你们看看HashMap, TreeMap, HashTable和LinkedHashMap的区别。1. Map概览Java SE中有四种常见的Map实现——HashMap, TreeMap, Hashtable和Lin
2016-07-24 20:59:29
296
转载 SpringMVC处理请求流程(转载)
转载自 http://www.tuicool.com/articles/7RjiiySpringMVC处理请求流程一、SpringMVC简介是一种基于JAVA实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。解析:1、MVC架构模式的思想:将Web层进行指责解耦2、基于请求驱动:请求-相应模型3、框架的目的:简化开发
2016-07-24 20:43:58
854
转载 Spring 中bean 的生命周期(转载)
转载自: http://developer.51cto.com/art/201104/255961.htm在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线
2016-07-24 16:39:55
189
转载 @Transactional spring 配置事务 注意事项(转载)
转载自 http://blog.itpub.net/273449/viewspace-1057345/@Transactional spring 配置事务 注意事项1. 在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。2. @Transactiona
2016-07-22 19:33:45
256
转载 Spring事务配置的五种方式 spring里面事务的传播属性和事务隔离级别 (转载)
Spring事务配置的五种方式前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和
2016-07-20 11:51:19
251
转载 CGLib动态代理(转载)
实战CGLib系列文章本篇介绍通过MethodInterceptor和Enhancer实现一个动态代理。一、首先说一下JDK中的动态代理:JDK中的动态代理是通过反射类Proxy以及InvocationHandler回调接口实现的,不了解的同学请参考我的这篇Blog:Java动态代理详解 http://shensy.iteye.com/blog/1698197 但是
2016-07-19 16:13:00
207
转载 Java动态代理详解(转载)
Java动态代理详解说到动态代理,顾名思义就是动态的代理(真是废话)。关于代理:想必大家都并不陌生,GOF的23种设计模式之一(结构型模式)。这里暂不多做介绍,有兴趣的可以关注我关于设计模式的文章。什么是动态代理:说起动态,其实不如先说什么是静态。所谓静态代理,个人理解为自己手写的代理类,或者用工具生成的代理类,或者别人帮你写的代理类(没说一样...)。总之,就是程
2016-07-19 15:48:37
256
转载 Spring AOP 详解(转载)
转载自 http://pandonix.iteye.com/blog/336873/此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求
2016-07-19 15:24:36
216
转载 Java并发编程:volatile关键字解析(转载)
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模
2016-07-18 17:09:12
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人