自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 写文章 Java 中最坑爹的 “坑“

int[] arr = newint[]{1, 3, 5, 7, 9};for(int i = 0;i < arr.length;i++){System.out.println(“the element is:” + arr[i]);}这跟我们日常生活中的经验是相违背的,正常情况都是从第1个元素开始计数的,特别是对于初学者来说有点难以接受,会觉得很惊讶。即使对于经验丰富的程序员来说,有些地方也需要格外注意,比如:String str = “hello world”;System.out.p

2022-05-08 13:59:06 213

原创 关于Java学习的一些错误补充

所以,从程序的健康出发,从程序员的职业发展出发。Spring Boot的开发者,反而更有必要掌握Spring的底层原理,正所谓“无真相不自由”。而且,以我的经验。如果你扎扎实实从Spring基础一路走来,到了Spring Boot这里,也就是“临门一脚”的问题。因此,学习Spring,最“正”的路径依然如下:Spring -> Servlet -> Spring MVC -> Spring BootJPA与HibernateJPA作为一个持久化规范,仅定义了OR映射的规范(包括一

2022-05-08 13:55:05 641

原创 全网首发,纯手打“RocketMQ笔记

第一节:RocketMQ介绍1.1 核心概念(主题、生产者、消费者、消息)1.2 RocketMQ的设计理念和目标(设计理念、设计目标)第二节:RocketMQ中消息的发送2.1 单向[OneWay]发送(代码演示、Producer Group、Producer实例、Message Key、Tag)2.2 可靠同步发送(代码演示、Message ID、SendStatus、Queue)2.3 可靠异步发送(代码演示)2.4 RocketMQ中消息发送的权衡

2022-05-08 13:53:23 171

原创 傻瓜式讲解SpringMVC

本章中,一心同学将用通俗易懂的文笔,来带大家认识SpringMVC,去理解SpringMVC的工作流程。目录SpringMVC是什么?SpringMVC有什么用?SpringMVC的工作流程【重点】简要分析执行流程结语SpringMVC是什么?=============SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC的架构模式思想,将Web层进行指责解耦,并管理应用所需的生命周期,为简化日常开发,提供了很大便利。C(Co

2022-05-08 13:49:52 147

原创 使用Spring特性优雅书写业务代码

然后定义用户注册服务类,实现ApplicationEventPublisherAware 接口,从而将 ApplicationEventPublisher 注入进来。从下面代码可以看到,在执行完注册逻辑后,调用了 ApplicationEventPublisher的 publishEvent(ApplicationEvent event) 方法,发布了 UserRegisterEvent 事件。@Servicepublicclass UserService implements Application

2022-05-08 13:47:35 162

原创 使用Guava实现限流器

@author linzhiqiang@date 2019/4/17*/public abstract class AbstractInterceptor extends HandlerInterceptorAdapter {private Logger logger = LoggerFactory.getLogger(AbstractInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest req..

2022-05-08 13:45:38 1164

原创 使用 Shell 脚本对 MySQL 数据库进行远程备份

一、Master 上操作1.检查 MySQL 数据库端口是否开启2.创建 MySQL 数据库密码3.在 MySQL 数据库中创建库4.配置 MySQL 数据库用户授权二、Backup 上操作1.安装 Mariadb 数据库2.使用 mysqldump 进行远程备份测试三、编写 Shell 脚本对 Master 数据库进行备份四、通过计划任务来进行自动备份准备工作:| 主机名 | 操作系统 | IP地址 || :-- ..

2022-05-08 13:43:29 582

原创 在SpringBoot环境下利用Redis实现登录拦截(附源码)

UserInfo userInfoByUsername = userInfoMapper.findUserInfoByUsername(username);return userInfoByUsername;}}[](()2. 配置拦截器============================================================================将StudentController加入@RequestMapping(“/api”),模拟当没有登录时就无

2022-05-06 16:17:01 542

原创 双十一抢购项目实战I一文搞懂Dubbox、SpringBoot、Docket微服务架构

本章详细讲解了秒杀抢购的应用场景并对该应用场景进行深度剖析。通过业务分析,提出相应的业务级解决方案及系统级解决方案,并规划出技术栈的实现重点和难点。最后基于秒杀抢购的实际业务规划出“双11” 抢购项目的业务架构、应用架构、技术架构及部署架构。第2章:微服务架构了解软件行业分类并掌握软件架构分类掌握微服务架构的相关概念熟悉常见微服务架构并掌握微服务架构设计原则本章从行业发展讲起,通过罗列行业发展中常见的软件架构模式引出互联网企业应用中目前最流行的微服务架构。针对微服务架构做深入.

2022-05-06 16:15:24 594

原创 利用Anaconda配置环境(安装第三方库)

三、命令行由于是初学者,所以我一直不知道别人以及论坛老哥说的命令行到底指的是微软自带的CMD,还是下载Anaconda后得到的Anaconda Prompt,之前一直在傻乎乎的用CMD,每次都是错误到怀疑人生。后面发现原来网上的教程都是用Anaconda Prompt写的,转而用Anaconda Prompt,果然有用。(这里用CMD应该也可以,但是我没有找到,想想既然都是命令行,那为何不直接用Anaconda Prompt呢)四、更改Anaconda的下载源别说了,连Anaconda安装包的下载都.

2022-05-06 16:07:24 4640 1

原创 利用 Docker 构建一个简单的 java 开发编译环境

$ docker run -it --rm java_in_docker_env_8Hello world.$ ls -lh 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】total 24-rw-r–r-- 1 shiqiang staff 112B 11 12 10:53 Dockerfile-rw-r–r-- 1 shiqiang staff 123B 11 12

2022-05-06 16:05:17 261

原创 刚参加完阿里P6面试归来(Offer已斩获),6点面试经验总结

3.三面高管复试,会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等);4.四面HR最终面,进入最后一面,我反而有些紧张,一方面非技术类的问题是我所不擅长的,再者早有耳闻阿里HRBP有一票否决权,所以还是打起了十二分的精神认真对待,其实过程比想象中的顺畅很多,就是从大方向了解一下面试者的心态、抗压能力、未来规划以及对阿里的意向度(用阿里的话说,即价值观的匹配度);5.特别注意1、技术基础以及其他问题多准备下就行了,如果遇到没有涉及的领域,直接说不懂没

2022-05-06 16:03:00 306

原创 再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香

Knife4j 简介==========Knife4j 的前身是 swagger-bootstrap-ui,其实就是一个纯 Swagger UI 的皮肤项目,用过 Swagger 的应该都知道,Swagger UI 是不怎么好用的,并不太适合国人,所以 swagger-bootstrap-ui 项目就诞生了。swagger-bootstrap-ui 后面为了满足许多个性化的需求,又加入了许多丰富的服务端特性,不再仅仅只是专注于前端 UI 皮肤了,所以又改名:knife4j。取名 knife4j 是希

2022-05-06 15:57:07 230

原创 关于linux系统调优这一篇文章就够了

作为运维工程师来讲,最主要的工作保障:企业门户网站、业务系统、应用程序、软件高效稳定的运行,密切关注业务系统、操作系统性能,对业务系统、操作系统实施性能优化,使其发挥最大的性能;影响Linux服务器、业务网站等性能因素有哪些层面呢?下面我们就一起看看如何调优吧[](()1.影响服务器性能因素1.操作系统方面1.内存2.CPU3.磁盘I/O4.网络I/O带宽2.程序应用方面1.Nginx2.Mysql3.Tomcat4.PHP5.应用程序代码[](()2.系..

2022-05-06 15:55:16 2326

原创 任务调度框架Quartz快速入门

Quartz提供了各种各样的Builder类,定义了Domain Specific Language,且都提供了静态的创建方法,我们可以使用import static简化书写。重要概念========Identity当作业和触发器在Quartz调度程序中注册时,会获得标识键。JobKey和TriggerKey允许被置入group中,易于组织管理。唯一的,是name和group的组合标识。JobDataMap是Map的实现,具有key-value相关操作,存储可序列化数据对象,供Job实例.

2022-05-06 15:44:21 720

原创 社招三面字节跳动、拼多多、五面蚂蚁最终拿offer入职蚂蚁金服

怎么解决呢?如果不用消息队列怎么解决?分布式追踪的上下文是怎么存储和传递的?Dubbo的RpcContext是怎么传递的?你说的内存泄漏具体是怎么产生的?线程池的线程是不是必须手动remove才可以回收value?那你说的内存泄漏是指主线程还是线程池?可是主线程不是都退出了,引用的对象不应该会主动回收么?那你说下SpringMVC不同用户登录的信息怎么保证线程安全的?这个直接用ThreadLocal不就可以么,你见过SpringMVC有锁实现的代码么..

2022-05-04 18:29:57 667

原创 研究生都去做程序员,还有必要读吗?

**1,**我的研究生之路大三下学期,虽然已经拿到了还算不错的offer,但是班里兴起了一阵考研之风,别人考研,我也考研,说实话,当时是从众心理。那时候根本不知道研究生的生活是啥样的,更不知道适不适合自己,只知道学历高些。当时我考研的时候,很多不考研的同学也劝我放弃:考研有啥用?毕了业还可能找不到工作,不如早早的找工作。我心想:你不是研究生,没有话语权。咨询了很多上岸的是师兄师姐,还是建议我考。于是果断准备。当时报的是上海的一所211学校,考研初期的时候,联系到了导师。说来很巧,这个导师有个Un

2022-05-04 18:28:11 426

原创 用好 Java 中的枚举真的没有那么简单

下面的测试演示了展示了 EnumSet 在某些场景下的强大功能:@Testpublic void givenPizaOrders_whenRetrievingUnDeliveredPzs_thenCorrectlyRetrieved() {List pzList = new ArrayList<>();Pizza pz1 = new Pizza();pz1.setStatus(Pizza.PizzaStatus.DELIVERED);Pizza pz2 = new Pizza();

2022-05-04 18:24:02 63

原创 狂神 原生JavaWeb 三层架构 JDBC (超市订单管理系统smbms)---

[](()3)权限拦截未登录用户不允计访问后台过滤器public class LoginFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) thr

2022-05-04 18:21:35 1568

原创 牢记这些java基础知识,升职加薪不是梦

1、java跨平台是怎么实现的java是利用JVM(java虚拟机)实现跨平台的。java源代码(*.java)经过java编译器编译成java字节码(*.class),执行java字节码,java字节码经过JVM解释为具体平台的具体指令,并执行。不同平台有不同的JVM,主流平台都提供了JVM,所以java字节码可以在主流平台上解释执行。在这个意义上java是跨平台的,也就是说:java的 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【.

2022-05-04 18:19:53 404

原创 牛逼,三句话搞懂 Redis 缓存穿透、击穿

为了有效的帮助笔者自己,以及拥有同样烦恼的朋友们区分这三种场景。笔者总结了一些关键词,希望大家可以和我一样通过联想的方式来区分并理解这三种场景的区别!缓存穿透关键词:穿过 Redis 和数据库当 Redis 和数据库中都没有我们想要的数据时,就需要考虑缓存穿透的问题了。下面这段逻辑大家用的会比较多:先去 Redis 中查找某资源,Redis 中查不到就去 DB 中查,DB 中查到后回写一份数据到 Redis 中。这段逻辑正常情况下问题并不大,但是如果用户恶意重复请求资源 X,该资源在 Redis

2022-05-04 18:17:46 49

原创 牛客网——两数之和

时间复杂度:O(n^2),于每个元素,我们试图通过遍历数组的其余部分来寻找它所对应的目标元素,这将耗费O(n)的时间。因此时间复杂度为 O(n²)空间复杂度:O(1),因为他没有用额外的空间,所以空间复杂度为1方法二:倒推法(哈希Map记录法)为了对运行时间复杂度进行优化,我们需要一种更有效的方法哈希表来检查数组中是否存在目标元素。如果存在,我们需要找出它的索引。一个简单的实现使用了两次迭代。在第一次迭代中,我们将每个元素的值和它的索引添加到表中,map中的key对应数组中的数值,value对

2022-05-04 18:15:33 74

原创 源码分析Mybatis MapperProxy初始化之Mapper对象的扫描与构建

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {if (this.processPropertyPlaceHolders) {processPropertyPlaceHolders();}ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);scanner.s

2022-05-04 18:14:00 1197

原创 深入浅出谈谈Java并发编程:Volatile

当写一个volatile变量时,JMM会把该线程本地内存中的变量强制刷新到主内存中去;这个写会操作会导致其他线程中的volatile变量 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 缓存无效。来看一段代码:public class Test {public static void main(String[] args) {WangZai wangZai = new WangZai();wangZai.st..

2022-05-04 18:12:17 69

原创 毕业五年,年薪百万,只因我做对了这些事

进大厂,首先你的工作年限起码要和应该具备的能力匹配。注意∶这里说的是起码,具体意思就是说工作年限至少要和应该具备的能力匹配。有些很聪明的人工作1、2年能够达到P7级别,也不是不可能的事情。我一直觉得,工作年限并不等同于工作经 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 验,工作年限充其量只是工作经历而已,有些人工作了近10年,项目倒是做了不少,但基本都是CRUD,没啥含金量,工作经验充其量也就1年,说1年的工作经验,本质上已经不

2022-05-04 18:09:56 65

原创 Java持久层和控制器的封装

@Transactionalpublic void save(T entity) {baseDAO.save(entity);}//根据实体类删除public void delete(T entity) {baseDAO.delete(entity);}//根据id查询@Transactionalpublic void deleteById(ID id) {baseDAO.deleteById(id);}//排序查询所有public List findAll(Sort sort)

2022-04-24 22:02:36 121

空空如也

空空如也

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

TA关注的人

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