- 博客(42)
- 收藏
- 关注
原创 2024年经典题(持续更新)
Spring事务传播机制基于数据库链接来做的,一个数据库链接一个事务,如果传播机制配置为需要新开一个事务,那么实际上就是建立一个数据库链接,在新的数据库上执行SQL。是一种通过配置方法管理事务的方法,通过注解和XML配置声明哪些方法需要事务管理从而将事务管理逻辑与业务逻辑分离,简化了代码复杂度,提高代码可读性和可维护性。创建容器完成后,就会获取启动Tomcat的Bean,并创建Tomcat对象,并绑定端口然后启动。舒适化链接数,最大连接数,最大空闲链接数,最小空闲连接数,最大等待时间,无效链接清楚。
2024-11-11 09:33:59 252
原创 2024年场景题(持续更新)
APPid,商户密钥,支付宝公钥,服务器异步通知地址,页面跳转通知地址,签名,字符编码格式,网关,RSA算法(订单号,订单名称,金额,订单描述)编码UTF8编码。使用redis缓存,将一定数量的商品数量缓存到redis里,客户没抢到一个删除一个数量。Top命令监控cpu运行状态,top Hp pid ,命令占用CPU最高线程,解决方案:增加服务器内存,优化数据结构,合理设置过期策略,监控和调优。分批次导入,异步处理,缓存机制,优化数据库操作。内存溢出问题,性能问题,解决异步插入,分批插入。
2024-11-11 09:33:27 88
原创 2024年面试题
此时,消费者无法看到这条消息。配置管理:配置信息管理,数据库链接信息,FPS地址端口等,分布式部署时,把成勋配置信息保存在ZK的Znode节点,当你需要修改配置,znode会发送变化,可以通过改变ZK中某个节点目录的内容,利用watcher通知各个客户端从来更改配置。使用全局唯一ID,在配合redis做消费记录,生产者发送消息会分配一个全局ID,在每次消费者开始消费前,先去redis中查询有没有消费记录,如果有不进行处理,如果没有在处理,然后将这个ID存入redis中设置过期日期。
2024-11-11 09:32:28 189
转载 带你搞懂Kafka为何如此之快
首先来说一下我们为什么要使用消息系统在没有使用消息系统之前,许多传统的系统业务对于消息的处理一般会采用串行方式或者并行方法;例如,你去网站注册一个账号,网站服务器对我们的注册操作进行处理,下面是串行跟并行的处理方式。串行方式:用户注册例子:用户注册,将注册信息记录到数据库后,发送注册消息邮件,再发送注册短信验证,每个过程消耗50毫秒,一共就需要150毫秒并行方式:并行方式与串行方式不同的就是,在数据库记录完注册的信息之后,发送消息跟发送邮件的动作是同步完成,而不是根据..
2021-05-24 11:57:55 254
转载 生产环境Linux服务器上Mysql安装和导入数据(视频版)
生产环境Linux服务器上Mysql安装和导入数据(视频版)引言:很多新手同学不会用linux安装MySQL,看文档就是做不出来。如何在阿里云 Linux CentOS7 快速安装Mysql ?教你用简单的方式搞定!p.sPC端观看更佳!详细请看下方【视频教程】!1简介:阿里云 Linux CentOS7快速安装Mysql 安装Mysql 5.7 (注意,Mysql和系统务必保持一致,不然存在不一致) 开启mysql远程连接 (...
2021-01-26 17:00:29 253
原创 使用HttpClient发送post请求时传递json格式的参数
java // 接口测试-处理json格式的post请求 public static String doPostJson(String url,String json) { // 创建连接池 CloseableHttpClient closeableHttpClient = HttpClients.createDefault(); ResponseHandler<String> responseHandler = new BasicRespo..
2021-01-11 12:47:14 2856
转载 spring aop 概念
image一、AOP的基本概念:1、什么是aop:AOP(Aspect Oriented Programming)称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。 在不改变原有的逻辑的基础上,增加一些额外的功能。代理也是这个功能,读写分离也能用aop来做。AOP可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP...
2020-06-28 11:27:50 705
转载 JAVA8十大新特性详解
一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); }}Formula接口在拥有calculate方法之外同时还定义了sqrt方法,实现了Formula接口的子类只需要实现
2020-06-28 11:23:23 165
转载 如何画好一张架构图?
什么是架构图?如何画好一张架构图,要做好这件事情首先要回答的就是什么是架构图。我们日常工作中经常能看到各种各样的架构图,而且经常会发现大家对架构图的理解各有侧重。深入追究到这个问题,可能一下子还很难有一个具象的定义,如果我们把这个问题进行拆分(如下图)理解起来就会容易一点。架构图 = 架构 + 图按照这个等式,我们可以把问题转换: 架构是什么? 图是什么? 图是什么?这个比较容易回答,图是一种信息的表达方式,所以架构图,即表达“架构”的图,...
2020-06-28 11:18:18 359
转载 微信支付——后台对接
一、名词解释商户号:微信支付分配的商户号。支付审核通过后,申请人邮箱会收到腾讯下发的开户邮件, 邮件中包含商户平台的账号、密码等重要信息。appid:商户通过微信管理后台,申请服务号、订阅号、小程序或APP应用成功之后,微信会为每个应用分配一个唯一标识id。openid:用户在公众号内的身份标识,一旦确认,不会再变;同一用户在不同公众号拥有不同的openid。商户后台系统通过登录授权、支付通知、查询订单等API可获取到用户的openid。主要用途是判断同一个用户,对用户发送客服消息、模版消息等。微信管理
2020-06-18 09:04:41 3291 1
转载 SQL面试题之sql优化18个知识点
【1】查询语句中不要使用*;【2】尽量减少子查询,使用关联查询(left join, right join, inner join)代替;【3】减少使用IN或者NOT IN,使用exists,not exists或者关联查询语句代替;【4】应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,尽量用union或者union all代替(在确认没有重复数据或者不用剔除重复数据时,union all会更好);【5】合理的增加冗
2020-06-18 08:57:49 219
转载 手把手教你接入支付宝支付
前一久做了支付宝支付,分享一下接入的详细步骤吧,移动端和服务端demo源码已上传至GitHub,要下载的移步至文章末尾。先给出支付宝官方文档:https://docs.open.alipay.com/204/105051/适用场景在App内集成支付宝支付。APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块。如果用户已安装支付宝APP,商家APP会跳转到支付宝中完成支付,支付完后跳回到商家APP内。如果用户没有安装支付宝APP,商家APP内会调起支付宝网页支付收银台,用户登录支付宝账
2020-06-08 09:32:16 1203
转载 RPC服务与HTTP服务
RPC(即Remote Procedure Call,远程过程调用)和HTTP(HyperText Transfer Protocol,超文本传输协议)他们最本质的区别,就是RPC主要工作在TCP协议之上,而HTTP服务主要是工作在HTTP协议之上,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹。1、RPC服务(1)RPC架构 先说说RPC服务的基本架构吧。一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Cli...
2020-05-27 18:23:05 170
转载 一张图了解三方支付流程
1、微信支付以下是微信支付交互时序图,统一下单API、支付结果通知API和查询订单API等都涉及签名过程,调用都必须在商户服务器端完成。如图1所示。商户系统和微信支付系统主要交互说明:步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonce.
2020-05-27 18:20:00 3222
原创 Object类及其常用方法简介
Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的三个常用方法:toString()、equals()、hashCode()。1.取得对象信息的方法:toString()该方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址。class Student{ String name = "Mary"; int age = 21;}public cla...
2020-05-27 18:14:56 799
原创 MyBatis3.X⾼⼿系列-玩转多级缓存和懒加载
简介:讲解Mybatis⼀级缓存介绍和验证 什么是缓存 程序经常要调⽤的对象存在内存中,⽅便其使⽤时可以快速调⽤,不必去数据库或者其他持久化 设备中查询,主要就是提 ⾼性能 Mybatis⼀级缓存 简介:⼀级缓存的作⽤域是SQLSession,同⼀个SqlSession中执⾏相同的SQL查询(相同的 SQL和参数),第⼀次会去 ...
2020-05-25 11:52:04 203
原创 来⾃未来的缓存Caffine介绍
Caffine是什么? Caffeine是⼀个基于Java 8的⾼性能,接近最佳的缓存库Caffine有什么特⾊? ⾃动将条⽬加载到缓存中,可选择异步加载 基于频率和新近度超过最⼤值时的基于⼤⼩的驱逐 ⾃上次访问或上次写⼊以来测量的条⽬的基于时间的到期 当第⼀个条⽬的陈旧请求...
2020-04-23 10:52:05 2519
原创 常说的事务ACID是什么
你知道Mysql事务的四大特性不,简单说下事务的四大特性ACID原子性Atomicity: 一个事务必须被事务不可分割的最小工作单元,整个操作要么全部成功,要么全部失败,一般就是通过commit和rollback来控制 一致性Consistency: 数据库总能从一个一致性的状态转换到另一个一致性的状态,比如小滴课堂下单支付成功后,开通视频播放权限,只要有任何一方发生异常就不...
2020-04-22 13:23:05 161
原创 消息队列常见问题之消息发生大量堆积应该怎么处理
线上故障了,怎么处理 消息堆积了10小时,有几千万条消息待处理,现在怎么办? 修复consumer, 然后慢慢消费?也需要几小时才可以消费完成,新的消息怎么办? 核心思想:紧急临时扩容,更快的速度去消费数据- 修复Consumer不消费问题,使其恢复正常消费,根据业务需要看是否要暂停- 临时topic队列扩容,并提高消费者能力,但是如果增加Consumer数量,但是...
2020-04-22 13:22:10 7215 4
原创 消息队列常见问题之如何保证消费的可靠性传输
你用了消息队列,你知道这个消息队列如何保证消息的可靠性传输吗消息可靠性传输,是非常重要,消息如果丢失,可能带来严重后果,一般从是个角度去分析producer端: 不采用oneway发送,使用同步或者异步方式发送,做好重试,但是重试的Message key必须唯一 投递的日志需要保存,关键字段,投递时间、投递状态、重试次数、请求体、响应体broker端: 多主多从架构,需要多机房...
2020-04-22 13:14:24 483
原创 消息队列常见问题之怎么避免重复消费
你的业务系统有没做消息的重复消费处理,是怎么做的 幂等性:一个请求,不管重复来多少次,结果是不会改变的。 RabbitMQ、RocketMQ、Kafka等任何队列不保证消息不重复,如果业务需要消息不重复消费,则需要消费端处理业务消息要保持幂等性 方式一:Redis的setNX() , 做消息id去重 java版本目前不支持设置过期时间 //Redis中操作,判断是否已经操作...
2020-04-22 13:12:47 992
原创 如何保证消息队列里消息的生成和消费的顺序性
什么是顺序消息: 消息的生产和消费顺序一致 全局顺序:topic下面全部消息都要有序(少用),性能要求不高,所有的消息严格按照 FIFO 原则进行消息发布和消费的 场景,并行度成为消息系统的瓶颈, 吞吐量不够 使用场景:在证券处理中,以人民币兑换美元为例子,在价格相同的情况下,先出价者优先处理,则可以通过全局顺序的方式按照 FIFO 的方式进行发布和消费 局部顺序:只要保证一组消...
2020-04-22 13:11:48 1953
原创 你知道主流消息队列和怎么选型吗
你用过消息队列,引入队列有啥优缺点,对比其他消息中间产品,选择这款的原因是啥? 优点:解耦系统、异步化、削峰 缺点: 系统可用性降低、复杂度增高、维护成本增高 主流消息队列Apache ActiveMQ、Kafka、RabbitMQ、RocketMQ ActiveMQ:http://activemq.apache.org/ Apache出品,历史悠久...
2020-04-22 13:10:47 215 1
原创 java多线程里面常用的锁找你知道多少
你日常开发里面用过java里面有哪些锁?分别解释下悲观锁:当线程去操作数据的时候,总认为别的线程会去修改数据,所以它每次拿数据的时候都会上锁,别的线程去拿数据的时候就会阻塞,比如synchronized乐观锁:每次去拿数据的时候都认为别人不会修改,更新的时候会判断是别人是否回去更新数据,通过版本来判断,如果数据被修改了就拒绝更新,比如CAS是乐观锁,但严格来说并不是锁,通过原子性来保证数据...
2020-04-22 13:06:13 297
原创 List集合扩容机制
说下ArrayList的扩容机制是怎样的 注意:JDK1.7之前ArrayList默认大小是10,JDk1.7之后是0未指定集合容量,默认是0,若已经指定大小则集合大小为指定的;当集合第一次添加元素的时候,集合大小扩容为10ArrayList的元素个数大于其容量,扩容的大小= 原始大小+原始大小/2 源码解读 JDK ArrayList 扩容核心源码调试代码Li...
2020-04-22 12:59:27 2830
原创 面试环节
1.笔试常见的问题?面试常见的问题上面给的面试题链接基本都有。我只提几点:1)写SQL:写SQL很常考察group by、内连接和外连接。2)手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。2.面试流程?1)让你自我介绍2)问Java基础知识3)问项目4)情景问题,例如:你的一个功能上了生产环境后,服务器...
2020-04-22 12:59:10 113
原创 java集合框架里面List常见基础面试题
考查点:list的基础知识点掌握情况,对应的实现的区别,线程安全、使用场景说下Vector和ArrayList、LinkedList联系和区别?分别的使用场景 答案: 线程安全 ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢 LinkedList: 底层是双向链表,线程不安全,查询和修改速度慢,但是增加和删除速度快 Vect...
2020-04-21 12:08:18 182
转载 关于项目经验
在网上经常看到一些别的朋友有提出项目经验的问题,依照LZ面试的感觉来说,面试主要看几点:项目经验+基本技术+个人潜力(也就是值不值得培养)。关于项目经验,我认为并发编程网的创始人方腾飞老师讲的一段话非常好:介绍产品时面试官会考察应聘者的沟通能力和思考能力,我们大部分情况都是做产品的一个功能或一个模块,但是即使是这样,自己有没有把整个系统架构或产品搞清楚,并能介绍清楚,为什么做这个系...
2020-04-21 12:05:55 268
转载 关于程序员的几个阶段
每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。LZ常常思考自己的未来,也从自己的思考中总结出了一些东西,作为第一部分来谈谈。LZ认为一名程序员应该有几个阶段(以下时间都算上实习期):第一阶段----三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,...
2020-04-21 12:04:24 625
原创 基于微服务技术选型
微服务下的全家桶选择微服务框架主体springboot与springMVCSpring MVC提供了⼀种轻度耦合的⽅式来开发web应⽤Spring Boot实现了⾃动配置,降低了项⽬搭建的复杂度 独⽴运⾏的Spring项⽬ 提供starter简化Maven配置 免XML复杂⽽冗余的设计思想RPC调⽤...
2020-04-21 11:40:32 224
原创 聊聊传统项⽬与互联⽹项⽬
简介:传统架构⽅式与互联⽹架构⽅式的演变过程,是什么驱动架构演变传统公司架构特⾊: ⽤户请求==》服务器==》数据库==》返回结果
2020-04-21 11:36:06 107
原创 2019年面试遇到的问题总结(有点乱)
数据库结构接口怎么定义 接口规范是什么?首先接口分为四部分:方法、uri、请求参数、返回参数1、方法:新增(post) 修改(put) 删除(delete) 获取(get)2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,...
2020-04-21 11:20:47 238
原创 常用字符串相关构建类的使用好区别
问:String、StringBuffer与StringBuilder的区别?分别在哪些场景下使用答案:三者都是final, 不允许被继承在本质都是char[]字符数组实现String、StringBuffer与StringBuilder中,String是不可变对象,另外两个是可变的StringBuilder 效率更快,因为它不需要加锁,不具备多线程安全StringBuf...
2020-04-21 11:18:17 131
原创 编程语言面试题之新版javase字符串
简介:常用字符串的考查点 难度【***】 问题1: String str = new String("xdclass.net"); 创建了几个对象? 答案:创建一个对象:常量池存在,则直接new一个对象;创建两个对象:常量池不存在,则在常量池创建一个对象,也在堆里面创建一个对象 问题2: 下面是比较什么?输出结果是什么?为什么是这样的结果 String str1...
2020-04-21 11:17:32 329
原创 编程语言面试题之文件API和递归考察
考点: 文件API使用,简单递归逻辑代码编写、代码编写规范,简洁性 难度【** **】 代码编写需求: 找出某目录下的所有子目录以及子文件并打印到控制台上 public static void main(String[] args) { //找出某目录下的所有子目录以及子文件并打印到控制台上 List<String> paths = ne...
2020-04-21 11:16:22 171
原创 社招+校招被技术面试完虐系列之多方位考查点
为什么说会被技术官完虐,怎样避免 校招+社招考查点 计算机编程语言基础 框架(取决你熟悉的,和面试公司用的) 网络 算法 数据库 设计模式 高并发、高可用 分布式 海量数据处理 性能优化 逻辑思维 监控 测试 安全 产品运营思维 ... ...
2020-04-21 11:15:11 159
原创 面试必备知识之玩转并发编程技术点
是否掌握线程、进程、协程的区别 考点:是否掌握线程、进程、协程的区别 难度【***】 能否解释下什么是进程、线程、协程,他们之间的关系是怎样的 答案:进程: 本质上是一个独立执行的程序,进程是操作系统进行资源分配和调度的基本概念,操作系统进行资源分配和调度的一个独立单位线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个...
2020-04-18 18:05:28 139
原创 编程语言面试题之新版javase面向对象篇
考点:面向对象思想OOP的理解 难度【***】 面向对象的四大特性是?分别解释下 答案: 抽象 关键词abstract声明的类叫作抽象类,abstract声明的⽅法叫抽象⽅法 ⼀个类⾥包含了⼀个或多个抽象⽅法,类就必须指定成抽象类 抽象⽅法属于⼀种特殊⽅法,只含有⼀个声明,没有⽅法体 抽象支付 pay(金额,订单号)...
2020-04-18 18:02:06 140
原创 互联网公司常见的HR人事面试考查问题
简介:HR面试,社招和校招常见考查点 你认为自己有什么缺点? 不能说没有缺点 避免说影响工作、让人觉得不靠谱 可以说些表面上看是缺点,从工作的角度看却是优点的缺点:对事情追求比较高,比如代码洁癖爱好者,对自己做的产品比较有要求,但也会适当控制 平时有什么爱好或者兴趣? 不能说抽烟喝酒啥的 建议是积极向上的活动 你期望的薪资是多少? ...
2020-04-18 17:59:41 2660
原创 数据库主从的用途、原理流程
•你们数据库是单点的吗?有没做多节点优化 ,怎么做的我们公司数据库不是单节点,是多节点的,有做主从复制•既然搭建过数据库主从复制,你能画下流程图说下异步复制原理不...
2020-03-17 11:48:57 199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人