- 博客(175)
- 资源 (9)
- 收藏
- 关注
原创 Java2020面试题
1、讲一下GC的过程2、什么样的对象会被老年代回收3、为什么要设置S0,S1区4、什么样的对象可以作为GC roots5、多线程的异步调用怎么实现的6、讲讲你最常用的单例模式 (我答的双重检测)7、双重检测的INSTACNE为什么要用voliate修饰8、voliate怎么保证可见性的9、Sychonized的作用是什么10、Sychonized 和 lock的区别11、排序算法以及时间复杂度12、讲讲代理模式13、网络编程有了解吗,讲讲TCP/UDP的区别14、为什么UDP速率比
2020-07-23 09:06:43 668
原创 MyBatis多租户隔离插件开发
在SASS的大潮流下,相信依然存在很多使用一个数据库为多个租户提供服务的场景,这个情况下一般是多个租户共用同一套表通过sql语句级别来隔离不同租户的资源,比如设置一个租户标识字段,每次查询的时候在后面附加一个筛选条件:TenantId=xxx。这样能低代价、简单地实现多租户服务,但是每次执行sql的时候需要附加字段隔离,否则会出现数据错乱。此隔离过程应该自动标识完成,所以我今天借助于My...
2019-12-28 12:22:32 1509
原创 spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerEx
前提:redis服务器已经运行,且端口号,服务器地址都已经配置正常,但任然抛出无法获取连接异常原来的代码如下:@Bean public JedisConnectionFactory connectionFactory(){ JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFact...
2019-11-28 19:48:59 639
原创 ELK环境搭建
1.ELK版本下载路径:https://www.elastic.co/downloads/past-releases, 必须版本一致,不然会出现不兼容情况2.下载ELK的包:下载地址:https://www.elastic.co/downloads下载最新版的、linux服务器能使用的。右键复制链接地址,wget就可以下载,如:wgethttps://artifacts.elast...
2019-11-01 11:17:41 172
原创 JAVA面试
面试题模块介绍说了这么多,下面进入我们本文的主题,我们这份面试题,包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所...
2019-10-27 18:13:06 190
原创 SQL进行优化
一、为什么要对SQL进行优化我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。二、SQL优化的一些方法1.对查询进行优化,应尽量避免全表扫描...
2019-10-27 11:56:48 168
原创 SPRINGBOOT启动流程及其原理
Spring Boot、Spring MVC 和 Spring 有什么区别?分别描述各自的特征:Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等;但他们的基础都是Spring 的ioc和 aop,ioc提供了依赖注入的容器,aop解决了面向切面编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MV...
2019-10-24 09:50:16 34915 8
原创 海量数据处理
何谓海量数据处理?所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树,针对空间,无非就一个办法:大而化小,分而治...
2019-10-14 20:35:33 252
原创 微信红包的设计实现
红包功能的设计实现是一个很有趣的话题,主要的功能是P个人抢总金额M的N个红包,满足先抢的N个人能抢到红包。如果这是一个leetcode的算法题目难度应该是easy,只要保证Ni抢到的金额区间在[0.01,2倍剩余金额平均值)就能ac。将算法带入到真实的工程实现,问题就要复杂得多,如果达到微信的量级,明显要考虑的有以下几点。拆红包 高并发读 并发写 网络流量峰值 对账 降级 ...
2019-08-29 14:21:03 3256
原创 JAVA头条、百度面经
头条面经一面(60分钟)Redis 里的有序列表底层实现 Redis 集群、哨兵机制 消息中间件的选型问题,为什么要用 MQ Linux 中能否删除一个正在运行的文件 Linux 常用的命令,如何排查 bug JVM 垃圾回收如何解决对象循环引用的问题,垃圾回收算法 TCP 的四次挥手的详细过程,为什么会有 CLOSE_WAIT 和 TIME_WAIT 输入一个 url...
2019-08-13 08:56:03 392
原创 数据排序算法
冒泡排序要点冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到...
2019-08-02 15:00:56 664
转载 JAVA架构学习
面试资料:链接在这:链接:https://pan.baidu.com/s/1oc12C5FnETfGc5JW49Uz9w提取码:jpj6鲁班学院Java高级课程大纲(VIP)https://www.processon.com/view/link/5c88be8fe4b0afc744100f33#map并发编程专题JAVA内存模型(JMM)java当中的线程...
2019-07-03 09:16:30 366
转载 逃逸分析
什么是逃逸分析?关于 Java 逃逸分析的定义:逃逸分析(Escape Analysis)简单来讲就是,Java Hotspot 虚拟机可以分析新创建对象的使用范围,并决定是否在 Java 堆上分配内存的一项技术。逃逸分析的 JVM 参数如下: 开启逃逸分析:-XX:+DoEscapeAnalysis 关闭逃逸分析:-XX:-DoEscapeAnalysis ...
2019-06-21 10:12:41 2696
转载 秒杀系统的设计
什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。 秒杀一般是访问请求数量远远大于库存数量,只有少部分...
2019-06-19 19:53:11 156
转载 JAVA试题
作者:享学课堂 Java架构链接:https://zhuanlan.zhihu.com/p/66941420来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。 String类能被继承吗,为什么。 String,Stringbuffer,StringBuilder的区别。 Array...
2019-06-03 17:45:08 374
转载 Java实现堆排序(大根堆)
堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。1. 若array[0,...,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下: 任意一节点指针 i:父节点:i==...
2019-05-31 16:24:04 1634
转载 关于链表的面试问题(判断一个单链表中是否有环)
上个月去CVTE面试安卓工程师时,面试官问了一道关于链表的算法问题,判断一个单链表中是否有环,当时我没仔细思考,没考虑到可能有子环的。首先链表结点声明如下:struct ListNode{ int key; ListNode * next;};思路:如果一个单链表中有环,用一个指针去遍历,永远不会结束,所以可以用两个指针,一个指针一次走一步,另一个指针...
2019-05-31 14:51:01 252
转载 idea推送工程到github
IDEA配置GIT注:此方法可用于配置gitlab也可用于配置github1.在github中创建一个账号:https://github.com/join?source=header-home2.下载并安装git:https://git-scm.com/downloads3.安装成功后打开Git Bash,输入下列命令,设置git全局用户名和邮箱4.在IDEA中设置Git,...
2019-05-16 10:48:10 235
转载 eclipse Web工程导入IDEA
相信很多同学在工作中都会遇到将一个Eclipse的Web项目导入IDEA的情景,这里浅谈一下具体的操作流程一:Import Project,选择要导入的项目二:选择以Eclipse模型的方式导入一路向西,哦,不,一路向下~:选择JDK的版本,我这里之前已经配置好了,如果没有,可以在左侧点击+进行配置可以看到,项目已经导入到IDEA中了,这里的 .idea, .iml 都是ID...
2019-05-07 14:18:14 188
转载 判断一个树是否为二叉查找树
一开始还以为这个问题很简单,平时练习的时候也没有多在意,直到。。。百度二面后一个算法加面以及字节跳动视频面都出现了这个问题,才发现并不是想象中的那么简单。找了别人的几篇博客看了看,发现别人好像都有过总结。。就有点尴尬,想来想去还是记录下来吧,敲一遍印象更深。。。【我只是代码的搬运工】———————————————– 我是正文分割线————————————————–1. 二叉查找树定义?...
2019-04-28 15:55:18 652
转载 Java面试
Java多线程线程池的原理,为什么要创建线程池? 线程的生命周期,什么时候会出现僵死进程; 什么实现线程安全,如何实现线程安全; 创建线程池有哪几个核心参数? 如何合理配置线程池的大小? synchronized、volatile区别、synchronized锁粒度、模拟死锁场景、原子性与可见性;JVM相关JVM内存模型,GC机制和原理;GC分哪两种;什么时候会触发Ful...
2019-04-22 14:18:05 208
转载 Java校招面试
以下不作为Java学习路径,只是汇总的校招Java后台开发面试考点(因为还有笔试考点,后面结合在一起给大家学习路径),后续会为大家更新10w+字数的Java校招面试题库,还有其他岗位的相关题库和资料,想要什么岗位的可以留言哦~本篇根据各个公司的面试问的问题的大数据进行总结,后面还会更新面试中考察所占比例,当然,本文只包括技术面,不包括hr面或者一些其他谈人生理想的附题目一、J...
2019-04-01 10:36:08 2402 1
原创 java面试书单
编程之法 https://legacy.gitbook.com/book/wizardforcel/the-art-of-programming-by-july/details白话经典算法之七大排序 链接:https://pan.baidu.com/s/13b4sQZksDFb_M4kkwrsrpg 密码:2po6一.计算机网络系列(4本):1.《TCP/IP卷一》 2.《计算机网络:自顶向...
2019-03-29 13:48:25 262
转载 归并排序
归并排序(Merge Sort):归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排序而言,这些算法有所谓的最好与最坏情况。而归并排序的时间复杂度是固定的,它是怎么做到的?两个有序数组的合并:首先来看归并排序要解决的第一个问题:两个有序的数组怎样合成一个新的有序数组:比如数组1{ 3,5,7,8 }数组2为{ 1,4,9,10 }:首先那...
2019-03-11 14:45:27 211
转载 海量数据处理面试题
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名 :-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题...
2019-03-06 14:14:25 319
转载 秒杀系统架构分析与实战
秒杀系统架构分析与实战互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。作者:来源:陶邦仁|2016-01-06 10:10收藏分享1 秒杀业务分析 正常电子商务流程(1)查询商品;(2)...
2019-03-01 16:05:43 151
转载 Spring AOP的实现原理
AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring A...
2019-02-26 17:27:01 148
转载 JAVA2019面经分享
作者:公众号:算法修炼笔记学习资料篇Java Java核心知识 入门:《Head First Java》 进阶:《Java编程思想》、《Effective Java》 JVM 《深入理解Java虚拟机》 Java并发与多线程 面试:《Java并发编程的艺术》(适合在时间紧张的时候,准备面试) 进阶:《Java并发编程实战》(想深入学习,用这本)...
2019-02-18 17:50:59 544
转载 分布式之数据库和缓存双写一致性方案解析
2018-06-15 10:06:51引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷...
2019-02-13 18:41:43 178
转载 Java蚂蚁金服面试
之前面了阿里中间件的提前批,不过没走流程。同期还面了蚂蚁中间件的两轮面试,被告知不走流程就不能面了,所以也没面完。 后来走了蚂蚁金服财富事业群这边的流程。前几天刚刚面完HR。 正好今天分享一下面经,大家可以多交流交流哈。1:蚂蚁中间件(面了三次,两次一面,一次二面)2:蚂蚁财富(1+2+交叉+HR)1一面蚂蚁金服中间件一号机一面:自我介绍1Java中...
2019-01-29 11:20:15 359
转载 JVM调优
前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的运行情况,特别是jvm内存的情况,一直没有一个统一的标准来给到各个应用服务的owner。经过618大促之后,和运维的同学讨论了下,希望将线上服务器的jvm参数标准化,可以以一个统一的方式给到各个应用,提升线上服务器的稳定性,同时减少大家都去调整jvm参数的时间。参考了之前在淘宝天猫工作的公司的经历:经过大家讨论,根据j...
2019-01-18 14:43:56 226
转载 如何设计一个秒杀系统
什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。 秒杀一般是访问请求数量远远大于库存数量,只有...
2019-01-17 10:41:32 131
转载 秒杀系统架构分析与实战
秒杀系统架构分析与实战 年底了,该给自己写个总结了,一个六年女Java程序员的心声 >>> #0 系列目录#秒杀系统架构 秒杀系统架构分析与实战#1 秒杀业务分析#正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是...
2018-12-27 18:54:40 184
转载 IntelliJ Idea 常用快捷键
IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!) 1. -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 例如要输入for(User user : users)只需输入user.for+Tab 再比如,要输入Date birthday = us...
2018-12-20 14:16:39 144
转载 Dubbo面试题
想往高处走,怎么能不懂 Dubbo?Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过去面试遇到的一些问题,总结给大家,希望对大家能有所帮助。1、Dubbo是什么?Dubbo是阿里巴巴开源...
2018-12-19 16:02:34 216
转载 JAVA知识进阶
这里有一份面试题相关总结,涉及高并发、分布式、高可用相关知识点,在此分享给大家,希望大家能拿到一份理想的 Offer!知识点会陆续更新在 GitHub 上,觉得还算凑和的话可以 star 关注一下噢~高并发架构消息队列为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点? 如何保证消息队列的高可...
2018-12-05 11:07:14 519
转载 Redis面试刁难大全
Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是...
2018-08-15 22:14:58 1209
转载 微服务架构
近期参加一些业界的技术大会,“微服务架构”的话题非常之火,也在一些场合聊过服务化架构实践,最近几期文章期望用通俗易懂的语言聊聊了个人对服务化以及微服务架构的理解,希望能给大伙一些启示。如果有遗漏,也欢迎大家补充。 一、互联网高可用架构,为什么要服务化?【服务化之前高可用架构】在服务化之前,互联网的高可用架构大致是这样一个架构:(1)用户端是浏览器browser,APP客户端...
2018-08-07 19:53:14 187
转载 高并发和高可用
一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 响应时间:系统对请求做出响应的时间。例如系统处理一...
2018-08-07 19:48:22 6789
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人