自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 使用JSR-303进行校验,java软件开发工程师面试题库中级

public String testValid(@Valid User user, BindingResult result){if (result.hasErrors()){List errorList = result.getAllErrors();for(ObjectError error : errorList){System.out.println(error.getDefaultMessage());}}return “test”;}备注:这里一个@Valid的参数后必须紧挨着

2021-12-09 19:41:35 340

原创 你如何理解mysql读写分离和分库分表?,java实用教程第五版课后答案

读写分离何为读写分离?见名思意,根据读写分离的名字,我们就可以知道:读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上。 这样的话,就能够小幅提升写性能,大幅提升读性能。我简单画了一张图来帮助不太清楚读写分离的小伙伴理解。一般情况下,我们都会选择一主多从,也就是一台主数据库负责写,其他的从数据库负责读。主库和从库之间会进行数据同步,以保证从库中数据的准确性。这样的架构实现起来比较简单,并且也符合系统的写少读多的特点。读写分离会带来什么问题?如何解决?读写分离对于提升数据库的并发非

2021-12-09 19:39:46 793

原创 你好,蚂蚁金服~,Java开发谈

前段时间有小伙伴面试蚂蚁金服成功,我让他总结下面试经验,然后就把文档发过来了。以下为面试内容。一面:===1.数据库=====事务ACID特性悲观锁,乐观锁 分别的使用场景数据库死锁,原因?怎么注意避免SQL优化,执行计划,索引以及底层数据结构**2. java基础&并发=============HashMap 底层数据结构,hash冲突的几种处理方式ConcurrentHashMap 怎么保障的线程安全线程池几个核心参数,核心线程数怎么设置

2021-12-09 19:38:15 171

原创 你不知道的redis六-redis主从复制,因为该命令redis作者曾摊上事?

那么为了避免单点故障,我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。这就要求当一台服务器上的数据更新后,自动将更新的数据同步到其他服务器上,这就是主从复制。当我们主节点压力比较大时,那么我们可以通过读写分离的方式,对复制的节点数据进行读操作,以增加我们的服务性能,总结来讲使用主从复制有以下原因数据备份,容灾恢复业务数据读写分离三、redis主从复制实现=============redis实现主从很简单,只需要增加启动脚本

2021-12-09 19:36:06 93

原创 优秀的程序员真的不写注释吗?,java经典入门书籍

我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。”动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!”我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

2021-12-09 19:31:51 98

原创 从docker安装到前后端分离项目启动完成(docker安装mysql、nginx

1. 同样步骤去官网搜索nginx找到你想要下载的版本2. 启动默认配置文件的nginx3. 复制nginx配置文件到主机4. 重启nginx,同时映射本机的配置文件,本机vue项目到容器中四、部署Java项目(此处为springboot项目的jar包)1. 新建Dockerfile2. 使用新建好的Dockerfile构建项目3.启动项目五、redis安装1. 下载镜像2. 添加配置文件启动2-1 下载对应版本的压缩包[官...

2021-12-09 19:28:31 1150

原创 什么是真正的架构设计?十年Java经验让我总结出了这些,不愧是我

逻辑分层子系统、模块定义。关键类。②. 职责之间的协作:接口协议:应用对外输出的接口。协作关系:应用之间的调用关系。应用分层有两种方式:一种是水平分(横向),按照功能处理顺序划分应用,比如把系统分为web前端/中间服务/后台任务,这是面向业务深度的划分。另一种是垂直分(纵向),按照不同的业务类型划分应用,比如进销存系统可以划分为三个独立的应用,这是面向业务广度的划分。应用的合反映应用之间如何协作,共同完成复杂的业务case,主要体现在应用之间的通讯机制和数据格式,通讯机制可以是.

2021-12-09 19:26:19 371

原创 到现在还搞不懂,索引为什么能提供查询性能?,mongodb从入门到商业实战

两个叉的树就是二叉树,可这除了用来按一定结构存放数据外,跟查询性能好像也没关系,不会又是一个没用的噱头吧。二分查找听说二叉树的原始威力来源于一种叫做二分查找的算法。相传在鹦鹉的原始社会,存在着森严的等级制度,每只鸟必须按高矮顺序分出等级和尊卑。那么问题来了,如下图,怎样才能找出最高、最矮、中等高的那些鹦鹉呢、以及指定高度的那只呢?第一种方法: 扫描法一个一个依次测量,完毕后所有的问题都迎刃而解。这种一个一个依次全部测量的方法叫做扫描,他的缺点很明显,最高和最矮,需要全部测量完毕才能知晓。.

2021-12-08 20:15:32 81

原创 别翻了,常见的锁策略就在这里了~,Mybatis源码解析

乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式堆数据是否并发冲突进行检测,如果并发冲突了,则会返回用户错误信息,让用户决定如何取做。悲观锁存在的问题:总是需要竞争锁,进而导致发生线程切换,挂起其他线程,认为多个线程同时竞争锁的概率很高,但是愿意花更多的成本来解决锁竞争问题(也正是因为总是在竞争锁没所以他更安全,但是代价更大)乐观锁存在的问题:并不总是能处理所有问题,所以会引入一定的系统复杂度,认为多个线程同时竞争锁的概率较低,会花更少的成本来解决锁竞争问题(

2021-12-08 20:11:29 236

原创 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?

今日推荐借助Redis锁,完美解决高并发秒杀问题还在直接用JWT做鉴权?JJWT真香Spring Boot 操作 Redis 的各种实现Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比ThreadLocal叼多了,吓得我赶紧分享出来。来源:toutiao.com/i6891531055631696395老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。介绍一个开源项目 mapstruct ,可以轻松优雅的进行转换,简化你的代码。当然有的人喜

2021-12-08 20:10:01 1070

原创 分布式事务理论加实战,怒肝三个月啃完这110道面试题

答:5.7以前崩溃的那个RM会丢失事务,导致别人都提交了,他被回滚了。5.7之后修复了,重连后还能继续提交。commit时,某个RM崩溃了怎么办?答:RM恢复之后重试,要是重试还是失败就要发送告警,人工进行干预。XA协议存在的问题同步阻塞问题全局事务内部包含了多个独立的事务分支,这一组事务分支,这一组事务分支要不都成功,要不都失败。各个事务分支的ACID特性构成了全局事务的ACID特性。那么mysql的效率也会降低2. 单点故障TM是单点的,一旦TM发生故障,参与者RM会一直阻塞下去

2021-12-08 20:05:48 112

原创 分享美团、字节、腾讯,java从入门到精通第四版光盘下载

MySQL 存储引擎的区别?数据库有哪些隔离级别?MySQL 索引的数据结构是什么?为什么选择这种数据结构?B+Tree 和 B-Tree 有什么区别?Reactor 线程模型有哪些?Netty 是如何支持这三种线程模型的?多路复用器的实现原理?epoll 的实现原理?epoll、poll、select 的区别JVM 如何进行垃圾回收?标记算法有哪些?垃圾回收算法有哪些?CMS 垃圾回收器的原理?二面==最近做过的最有挑战的项目?redis ..

2021-12-08 20:03:33 211

原创 冲刺金三银四:Java面试高峰期,掌握这四步教你完美面试通关

文末领取面试题地址(1). Java基础知识java中==和equals和hashCode的区别int与integer的区别抽象类的意义接口和抽象类的区别能否创建一个包含可变对象的不可变对象?谈谈对java多态的理解String、StringBuffer、StringBuilder区别泛型中extends和super的区别进程和线程的区别final,finally,finalize的区别序列化的方式string 转换成 intege.

2021-12-08 20:00:13 114

原创 写给大忙人看Hadoop完全分布式集群搭建,java调用百度地图api

下载Hadoop从北京理工大学的镜像上下载Hadoop:wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz创建文件夹mkdir /usr/local/hadoop解压tar -xzvf hadoop-2.10.0.tar.gz -C /usr/local/hadoop配置环境变量追加Hadoop的环境变量到/etc/profile文件中cat >> /etc

2021-12-08 19:58:00 104

原创 太狠了,疫情期间面试,一个问题砍了我5000,Java开发你需要了解的那些事

今天给大家分享下我整理的Java架构面试专题及答案,其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖全部方式,不过也希望能对即将找工作的朋友起到一些帮助!Java面试的重点:数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring框架:分布式相关:Redis缓存、一致Hash算法、分布式存储、负载均衡等,微服务以及Docker容器等。在这由于文字很多,我总结了java面试所涉及

2021-12-07 16:14:31 100

原创 大学四年,这个Java零基础自学路线,让我成功拿到了大厂offer,linux手动分区教程

今天这篇文章就来跟大家唠一唠Java的学习路线规划问题!文章很长,看完少走一个月弯路,我将为各位入门Java保驾护航,各位只管冲鸭!!!​好了废话不多说了,开始今天的正题,Java学习路线如下:注:本套学习路线图仅分享给大家每个阶段的知识点和视频资源,源码/资料可评论、私我哦视频资源:Java零基础入门完整版全套教程一、Java零基础扎实的基础是成功的第一步,这个阶段就是编程入门,掌握Java的基本语法,为后面的修行之路打好基础。二、数据库数据库不仅仅是Java开发工程师

2021-12-07 16:12:42 486

原创 大厂面试题中爱问的「调度算法」,Java开发知识体系

==========进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。什么时候会发生 CPU 调度呢?通常有以下情况:当进程从运行状态转到等待状态;当进程从运行状态转到就绪状态;当进程从等待状态转到就绪状态;当进程从运行状态转到终止状态;其中发生在 1 和 4 两种情况下的调度称为「非抢占式调度」,2 和 3 两种情况下发生的调度称为「抢占式调度」。非抢占式的意思就是,

2021-12-07 16:11:11 93

原创 大厂Redis性能优化指南,dubbo+zookeeper原理

4 CPU优化======================================================================不要阻塞,特别是 lua 脚本,不要有长时间睡眠操作,不然其它操作全部阻塞!谨慎使用范围操作SLOWLOG get 10 默认10ms,默认只保留最后的128条5 key设计======================================================================可读性和可管理性以业务名(

2021-12-07 16:09:02 90

原创 多线程环境中,让Java开发者又爱又恨的synchronized-到底该不该用?

*/public synchronized void methodLock() {System.out.println(Thread.currentThread().getName());}/**在代码块上加关键字,锁住当前实例*/public void codeBlockLock() {synchronized (this) {System.out.println(Thread.currentThread().getName());}}/**在代码块上加关键字,锁住一个变量

2021-12-07 16:04:48 140

原创 基于消息中间件RabbitMQ实现简单的RPC服务,jdk下载教程

即:当 Client 发送 RPC 请求时,Client 端是消息生产者,Server 端是消息消费者;当 Server 返回结果时,Server 端是消息生产者,Client 是消息消费者;发送和返回使用不同的队列。接下来我们通过代码,详细展示一个计算斐波那契数列的 RPC 服务。2. RPCServer 实现2.1 Server 初始化/*** 队列名、交换机名、路由键*/private static final String EXCHANGE_NAME = "rpc_ex

2021-12-07 16:02:54 111

原创 基于SSM实现校园失物招领系统,mybatis结果集映射原理

下面展示一下部分系统功能:前端用户操作UI:界面设计很优雅,有很多特点,比如可以随意切换页面布局:招领信息:寻物信息:感谢留言墙前台用户登陆用户登陆后个人中心:发布招领信息:发布寻物信息后台管理员登陆系统操作****UI后台登陆后台管理主界面:用户管理用户导入:用户日志:物品管理:权限列表:![](https://img-blog.csdnimg.cn/20210724090501323.png?x-oss-process=image/w

2021-12-07 16:01:27 343

原创 基于springboot实现宠物医院管理系统,linux系统与网络服务管理技术大全光盘

下面展示一下系统的基本功能:管理员登陆:帐户管理帐户添加医生列表留言板前台柜员登陆宠物列表![](https://img-blog.csdnimg.cn/20210817184724423.《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpd

2021-12-07 15:59:15 687

原创 【设计模式系列4】详解模板方法模式,java高级课程设计代码

| 命令模式 | 登机入口 || 访问者模式 | 登机入口 || 软件设计7大原则和设计模式总结 | 登机入口 |什么是模板方法模式======================================================================模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为行设计模式。模板方法模式示

2021-12-05 16:16:00 261

原创 【源码之下无秘密】ArrayList,在线面试指南

list:[小明, 卖托儿索的小火柴]Process finished with exit code 0我这里初始化的时候创建了一个无参构造,所以数组的初始大小为:10,添加两个元素的时候并不会触发扩容机制。第二种:add(int index, E element)public void add(int index, E element) {rangeCheckForAdd(index);ensureCapacityInternal(size + 1); // Increments modCo

2021-12-05 16:14:29 105

原创 【死磕JVM】看完这篇我也会排查JVM内存过高了 就是玩儿,java算法面试题经典

}}/**对银行卡进行风险评估*/private static void modelFit(){List taskList = getAllCardInfo();//拿出每一个信息出来taskList.forEach(info -> {// do somethingexecutor.scheduleWithFixedDelay(() -> {//调用M方法info.m();}, 2, 3, TimeUnit.SECONDS);});}private stati

2021-12-05 16:12:19 1054

原创 【实习之T100开发】T100 P处理开发流程,廖师兄springcloud视频

T100 单档程序开发流程T100 双档程序开发流程1. azzi900建立程序代号cxmp666===========================================================================================2. azzi910建立作业代号cxmp666=================================================================================..

2021-12-05 16:10:19 544

原创 【实习】T100开发学习笔记,java开发语言基础

r.r adzp280 函数名设计器中,选中函数,鼠标右键【查看函式】或 快捷键 Ctrl + i即可查看到该函数的最初定义:实用的通用快捷键===========================================================================| 键符 | 意义说明 | 备注 || — | — | — || Ctrl + g | 执行作业 | || ESC | 结束功能、离开程序 | || alt + n / p /f / .

2021-12-05 16:08:05 445

原创 【备战秋招】30道Spring IOC经典面试题,阿里云java面试题

19. Spring 提供的注解有哪些?20. 简述 Spring Environment ?21. Environment 完整的生命周期是怎样的?22. Spring 应用上下文的生命周期?23. Spring 应用上下文生命周期有哪些阶段?24. 简述 ObjectFactory?25. 简述 FactoryBean?26. ObjectFactory、FactoryBean 和 BeanFactory 的区别?27. @Bean 的处理流程是怎样的..

2021-12-05 16:06:12 160

原创 【图解数据结构与算法】LRU缓存淘汰算法面试时到底该怎么写,程序员Java基础入门

Redis的有序集合是使用跳表来实现的,跳表可以看作一种改进版的链表。Redis有序集合不仅使用了跳表,还用到了散列表。LinkedHashMap也用到了散列表和链表两种数据结构。散列表和链表都是如何组合起来使用的,以及为什么散列表和链表会经常放到一块使用。LRU缓存淘汰算法========================================================================链表实现LRU需要维护一个按照访问时间从大到小有序排列的链表结构。因为缓存大小有

2021-12-05 16:04:44 98

原创 【商城应用】类余额宝功能体系设计,mysql乐观锁原理

返还需求:用户在商城平台消费之后,会获得对应的积分,这个时候用户可以将账户里的积分转入到返还账户中(类似余额转余额宝),转入的积分都会有个收益生效时间,每天凌晨就会开始跑批,给平台所有用户分润对应的现金,分润的现金可以提现到银行卡中,也可以进行购买消费。返还账户中的积分也可以转出到账户中。大致的功能就这些,过程中返还比例之类都要求是可控的,原型图如下所示:app功能就简单一点了,只有转入、转出、查看分润明细的功能。返还流程图:我们先来看一下积分返还现金流程图,这里面的应分等同于积分。这里面

2021-12-05 16:02:32 124

原创 Mybatis框架技术总结(二)

//3.通过工厂对象获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession(true);//4.获取OneToOneMapper接口的实现类对象OneToOneMapper mapper = sqlSession.getMapper(OneToOneMapper.class);//5.调用实现类的方法,接收结果List list = mapper.selectAll();//6.处理结果for (Card c :

2021-12-05 00:30:06 114

原创 Mybatis-plus常用API全套教程,看完没有不懂的

mysql-connector-javaorg.projectlomboklombokcom.baomidoumybatis-plus-boot-starter3.0.5注意:尽量不要同时导入 mybatis 和 mybatis-plus!避免版本的差异造成无法预知的问题。连接数据库创建application.ymlspring:profiles:active: devdatasource:# 驱动不同 mysql 5&nb

2021-12-05 00:28:22 165

空空如也

空空如也

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

TA关注的人

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