01 2021 档案

摘要:一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨。2021Java面试宝典 二、过程 由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新,于是开发连上了生产数据库,首先执行了第一条SQL update tablen 阅读全文
posted @ 2021-01-31 21:14 公众号程序员白楠楠 阅读(65) 评论(0) 推荐(0) 编辑
摘要:没啥深入实践的理论系同学,在使用并发工具时,总是认为把HashMap改为ConcurrentHashMap,就完美解决并发了呀。或者使用写时复制的CopyOnWriteArrayList,性能更佳呀!技术言论虽然自由,但面对魔鬼面试官时,我们更在乎的是这些真的正确吗?2021Java面试宝典 1 线 阅读全文
posted @ 2021-01-30 21:33 公众号程序员白楠楠 阅读(177) 评论(0) 推荐(0) 编辑
摘要:目录 通用 KISS (Keep It Simple Stupid) YAGNI 做最简单的事情 关注点分离 保持事情不再重复 为维护者写代码 避免过早优化 童子军军规 2021Java面试宝典 模块间/类 最小化耦合 迪米特法则 组合优于继承 正交性 稳健性原则 控制反转 模块/类 最大化聚合 里 阅读全文
posted @ 2021-01-30 21:19 公众号程序员白楠楠 阅读(183) 评论(0) 推荐(0) 编辑
摘要:- 前言 - 提问: 我们都知道Spring通过三级缓存来解决循环依赖的问题,那么是不是必须是三级缓存?二级缓存不能解决吗? 要分析是否能够去掉其中一级缓存,我们需要先过一遍Spring是如何通过三级缓存来解决循环依赖的。2021Java面试宝典 - 循环依赖 - 所谓的循环依赖,就是两个或者两个以 阅读全文
posted @ 2021-01-29 22:00 公众号程序员白楠楠 阅读(295) 评论(0) 推荐(0) 编辑
摘要:1.命令简介 nohup 的作用可以将程序以忽略挂起信号(SIGHUP)的方式运行。常见的用法是和& 命令一同使用,将命令放置到后台运行,即使终端挂掉,进程会忽略挂起信号,继续运行。鸟哥Linux私房菜完整版 将程序放到后台运行,一般有两种方式: (1)command &:后台运行,关掉终端会停止运 阅读全文
posted @ 2021-01-29 21:46 公众号程序员白楠楠 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1. 基础 内存数据库 Redis是一个key-value型的数据库(相比较之下,MySQL是关联数据库),也就是说,一个key对应一个value,这是保证高效的手段之一。另外,Redis的所有数据在使用时都存放在内存中。2021Java面试宝典 这包含了两层含义: 单台Redis能存放多少数据,取 阅读全文
posted @ 2021-01-29 21:29 公众号程序员白楠楠 阅读(253) 评论(0) 推荐(0) 编辑
摘要:一、前言 随着应用业务数据不断的增大,应用的响应速度不断下降,在检测过程中我们不难发现大多数的请求都是查询操作。 此时,我们可以将数据库扩展成主从复制模式,将读操作和写操作分离开来,多台数据库分摊请求,从而减少单库的访问压力,进而应用得到优化。整理了一份328页MySQLPDF文档 本次测试使用两个 阅读全文
posted @ 2021-01-28 22:04 公众号程序员白楠楠 阅读(170) 评论(0) 推荐(0) 编辑
摘要:前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。Java面试宝典PDF完整版 问题背景: Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准, 阅读全文
posted @ 2021-01-28 21:51 公众号程序员白楠楠 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。Java面试宝典PDF完整版 Broker Broker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷 阅读全文
posted @ 2021-01-28 16:30 公众号程序员白楠楠 阅读(244) 评论(0) 推荐(0) 编辑
摘要:Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快! Nginx 的进程模型 Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程。Java面试宝典PDF完整版 Master 进程:管理 阅读全文
posted @ 2021-01-27 22:26 公众号程序员白楠楠 阅读(330) 评论(0) 推荐(0) 编辑
摘要:以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域和SystemB域这几个JAVA应用,可能同时修改同一份库存数据。如果不做协调的话,就会有脏数据出现。对于跨JAVA进程的线 阅读全文
posted @ 2021-01-27 22:08 公众号程序员白楠楠 阅读(211) 评论(0) 推荐(0) 编辑
摘要:正文如下: 众所周知,事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍事务和锁的相关概念及其实现原理,相信大家看完之后,一定会对事务和锁有更加深入的理解。整理了一份328页MySQL,PDF文档 # 什么是事务 在维基百科中,对事务的定义是:事务是数据库管理系统(DBMS 阅读全文
posted @ 2021-01-27 21:35 公众号程序员白楠楠 阅读(153) 评论(0) 推荐(0) 编辑
摘要:背景 平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?Java面试宝典PDF完整版 例子: 1.其他非boolean类型 private String isHot; 阅读全文
posted @ 2021-01-26 21:25 公众号程序员白楠楠 阅读(149) 评论(0) 推荐(0) 编辑
摘要:list的转map的另一种猜想 Java8使用lambda表达式进行函数式编程可以对集合进行非常方便的操作。一个比较常见的操作是将list转换成map,一般使用Collectors的toMap()方法进行转换。一个比较常见的问题是当list中含有相同元素的时候,如果不指定取哪一个,则会抛出异常。因此 阅读全文
posted @ 2021-01-26 21:10 公众号程序员白楠楠 阅读(156) 评论(0) 推荐(0) 编辑
摘要:在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近吧整个流程化成了一个流程图。待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程。注意因为代码比较多,这里的流程图只画出了大概的流程,具体的可以深入代码Java面试宝典完整版PDF 1.获取Bean ​ 第一阶段获 阅读全文
posted @ 2021-01-25 22:34 公众号程序员白楠楠 阅读(141) 评论(0) 推荐(0) 编辑
摘要:一、Java基础 1. String类为什么是final的。 2. HashMap的源码,实现原理,底层结构。 3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。 4. 描述一下ArrayList和LinkedList各自实现和区别Java面试宝典完整版PDF 阅读全文
posted @ 2021-01-25 22:15 公众号程序员白楠楠 阅读(336) 评论(0) 推荐(0) 编辑
摘要:背景 项目需要,我们需要自己做一套mybatis,或者使用大部分mybatis地原始内容。对其改造,以适应需要。这就要求我再次学习一下mybatis,对它有更深入的了解。 是什么 MyBatis是一个持久层框架,用来处理对象关系映射。说白了就是以相对面向对象的方式来提交sql语句给jdbc。如果想找 阅读全文
posted @ 2021-01-24 21:09 公众号程序员白楠楠 阅读(103) 评论(0) 推荐(0) 编辑
摘要:几个方面: 问题描述:什么现象?什么影响? 问题分析 解决方案 底层原理 Java面试宝典完整版PDF 1.问题描述 模拟高并发的场景,会出现批量的 TIME_WAIT 的 TCP 连接: 短时间后,所有的 TIME_WAIT 全都消失,被回收,端口包括服务,均正常。 即,在高并发的场景下,TIME 阅读全文
posted @ 2021-01-24 20:24 公众号程序员白楠楠 阅读(179) 评论(0) 推荐(0) 编辑
摘要:什么是 ZooKeeper ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于 阅读全文
posted @ 2021-01-21 22:20 公众号程序员白楠楠 阅读(106) 评论(0) 推荐(0) 编辑
摘要:在平时的工作中,docker 接触得很多,除了经常使用的 docker run ,docker stop 等命令,docker 还有很多十分有用但是却不经常使用的命令,下面就来总结一下: 1. docker top 这个命令是用来查看一个容器里面的进程信息的,比如你想查看一个 nginx 容器里面有 阅读全文
posted @ 2021-01-20 21:55 公众号程序员白楠楠 阅读(132) 评论(0) 推荐(0) 编辑
摘要:一、前言 现在大多都使用 MQ 来做系统的异构,来做系统的解耦,系统的的模块相当于寄信者与收信者,MQ 则扮演者邮局的角色。作为一个中转的角色,就需要确保消息的100%投递。 今天我们就来研究一下如何确保消息的100%的投递。整理了一份Java面试宝典完整版PDF 二、先谈谈 RabbitMQ 的特 阅读全文
posted @ 2021-01-20 20:55 公众号程序员白楠楠 阅读(212) 评论(0) 推荐(0) 编辑
摘要:前言 官网: baomidou.com/ 创建数据库 数据库名为mybatis_plus 创建表 创建user表 DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VA 阅读全文
posted @ 2021-01-19 17:03 公众号程序员白楠楠 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Javascript 常用代码优化和重构的方法 简介 主要介绍以下几点: 提炼函数 合并重复的条件片段 把条件分支语句提炼成函数 合理使用循环 提前让函数退出代替嵌套条件分支 传递对象参数代替过长的参数列表 少用三目运算符 合理使用链式调用 分解大型类 活用位操作符 纯函数 整理了一份Java面试宝 阅读全文
posted @ 2021-01-19 16:42 公众号程序员白楠楠 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。 Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。整理了一份Java面试宝典完整版P 阅读全文
posted @ 2021-01-19 15:54 公众号程序员白楠楠 阅读(157) 评论(0) 推荐(0) 编辑
摘要:# 业务场景 我们以订单功能为例说明下:生成订单后一段时间不支付订单会自动关闭。最简单的想法是设置定时任务轮询,但是每个订单的创建时间不一样,定时任务的规则无法设定,如果将定时任务执行的间隔设置的过短,太影响效率。还有一种想法,在用户进入订单界面的时候,判断时间执行相关操作。方式可能有很多,在这里介 阅读全文
posted @ 2021-01-18 21:47 公众号程序员白楠楠 阅读(703) 评论(0) 推荐(0) 编辑
摘要:很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive! 本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的, 阅读全文
posted @ 2021-01-17 19:37 公众号程序员白楠楠 阅读(271) 评论(0) 推荐(0) 编辑
摘要:记得去年我在往MySQL存入emoji表情😲😳时,一直出错,无法导入。后来找到办法 -- 通过把utf8改成utf8mb4就可以了,并没有深究。 一年后,我看到一篇文章讲到emoji文字占4个字节,通常要用utf-8去接收才行,其他编码可能会出错。我突然想到去年操作MySQL把utf8改成utf 阅读全文
posted @ 2021-01-17 16:18 公众号程序员白楠楠 阅读(155) 评论(0) 推荐(0) 编辑
摘要:1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。 for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } 结果: 0.3598613 阅读全文
posted @ 2021-01-17 15:49 公众号程序员白楠楠 阅读(246) 评论(0) 推荐(0) 编辑
摘要:在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过 阅读全文
posted @ 2021-01-14 22:33 公众号程序员白楠楠 阅读(117) 评论(0) 推荐(0) 编辑
摘要:# 前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了100个多线程的问题。 这些多线程的问题来源于各大网站,可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能 阅读全文
posted @ 2021-01-14 16:44 公众号程序员白楠楠 阅读(535) 评论(0) 推荐(0) 编辑
摘要:简介 在平时的工作中,docker接触很多,除了经常使用的docker run ,docker stop等命令,docker还有很多十分有用但是却不经常使用的命令,下面我就总结一下。整理了一份Java面试宝典完整版PDF 操作 1、docker top 这个命令是用来查看一个容器里面的进程信息的,比 阅读全文
posted @ 2021-01-13 16:26 公众号程序员白楠楠 阅读(204) 评论(0) 推荐(0) 编辑
摘要:前言 RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。 AMQP协议 核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。整理了一份Java面试宝典完整版PDF已整理成文档 cha 阅读全文
posted @ 2021-01-12 19:34 公众号程序员白楠楠 阅读(52) 评论(0) 推荐(0) 编辑
摘要:在使用 mybatis 过程中, 当手写 JavaBean和XML 写的越来越多的时候, 就越来越同意出错。这种重复性的工作, 我们当然不希望做那么多。 还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。 通过简单的配置, 我们就可以生成各种类型的实体类, Ma 阅读全文
posted @ 2021-01-12 17:22 公众号程序员白楠楠 阅读(312) 评论(0) 推荐(0) 编辑
摘要:在做系统优化时,想到了将数据进行分级存储的思路。因为在系统中会存在一些数据,有些数据的实时性要求不高,比如一些配置信息。基本上配置了很久才会变一次。而有一些数据实时性要求非常高,比如订单和流水的数据。所以这里根据数据要求实时性不同将数据分为三级。 第1级:订单数据和支付流水数据;这两块数据对实时性和 阅读全文
posted @ 2021-01-12 16:06 公众号程序员白楠楠 阅读(476) 评论(0) 推荐(0) 编辑
摘要:今天来与各位探讨一下几个代码重构的小技巧,这些内容部分来自于书籍当中,部分来自于 LZ 维护项目当中的一些实践经验。 重构的手法有很多种,相对而言,一篇文章的涵盖量自然是无法提到所有,LZ 这里也只能提出一些平时会经常使用的一些手法,像一些比较高端的手法,各位有兴趣的可以去找一些专门的书籍涉猎。 废 阅读全文
posted @ 2021-01-10 21:02 公众号程序员白楠楠 阅读(283) 评论(0) 推荐(0) 编辑
摘要:如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。整理了一份Java面试宝典完整版PDF已整理成文档 一、单体架构 单体架构比较初级,典型的三级架构,前端(Web/手机端)+ 阅读全文
posted @ 2021-01-10 16:12 公众号程序员白楠楠 阅读(995) 评论(1) 推荐(1) 编辑
摘要:在业务部门的开发中,大多数的我们在完成的业务的各种需求和提供解决方案,很多场景下的我们通过 CRUD 就能解决问题,但是这样的工作对技术人的提升并不多,如何让自己从业务中解脱出来找到写代码的乐趣呢,我做过一些尝试,使用设计模式改善自己的业务代码就是其中的一种。让代码变得更加简洁和提升健壮性,从代码中 阅读全文
posted @ 2021-01-07 19:55 公众号程序员白楠楠 阅读(211) 评论(0) 推荐(1) 编辑
摘要:随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。 而spring的的注解那么多,可能做java很多年,都用不上。这里按照类型总结了这7种最常用的注解。整理了一份Java面试宝 阅读全文
posted @ 2021-01-07 14:56 公众号程序员白楠楠 阅读(524) 评论(0) 推荐(0) 编辑
摘要:前言 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异 阅读全文
posted @ 2021-01-06 19:47 公众号程序员白楠楠 阅读(894) 评论(0) 推荐(0) 编辑
摘要:常用Git命令清单 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 名次解释 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) R 阅读全文
posted @ 2021-01-06 16:05 公众号程序员白楠楠 阅读(148) 评论(0) 推荐(0) 编辑
摘要:前言 在过2个月即将进入金三银四了,然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和基础。对源码解读和核心原理理解也是成了加分项,特别是对 Java 的一些核心基础知识点掌握的不够 阅读全文
posted @ 2021-01-05 21:46 公众号程序员白楠楠 阅读(172) 评论(0) 推荐(0) 编辑
摘要:前言 这篇文章真的是给大家分享一篇我自己血的教训,本人是一个勤勤恳恳、任劳任怨的java程序猿一直都在自己的岗位上发光发热,耐不住今年疫情小心思就发芽了,想要跳槽到大厂上班,在家里那简直就是头悬梁锥刺股,因为身边也没有太多大厂上班经验的朋友,所以自己也算是无头苍蝇一样头悬梁锥刺股的看书、做题,但是确 阅读全文
posted @ 2021-01-05 21:06 公众号程序员白楠楠 阅读(159) 评论(0) 推荐(0) 编辑
摘要:linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。 线上查询及帮助命令(2个) man:查看命令帮助,命令的词典,更复杂的还有info,但不常用。 help:查看Li 阅读全文
posted @ 2021-01-04 22:02 公众号程序员白楠楠 阅读(241) 评论(0) 推荐(0) 编辑
摘要:1、Builder模式 2、工厂模式 3、单例模式 4、代理模式 5、组合模式 6、模板方法模式 7、适配器模式 8、装饰者模式 9、迭代器模式 虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用, 阅读全文
posted @ 2021-01-04 21:21 公众号程序员白楠楠 阅读(334) 评论(0) 推荐(0) 编辑
摘要:​ 阅读本文:需要 3 min 前言 网上有太多的 Java 面试题库了,但是大部分潦潦草草,没有知识储备的很难看下去,看完后也不会留下印象。有没有这样的题库 ? 图文并茂,易于理解,代码讲解,题目高频? 我的答案是有! 耗时 3 个月,整理了一本高质量的面试高清 PDF 如果有面试开发岗位的打算, 阅读全文
posted @ 2021-01-03 20:11 公众号程序员白楠楠 阅读(153) 评论(0) 推荐(0) 编辑
摘要:关于MySQL的知识点总结了一个思维导图,希望对大家所有帮助! 关注公众号:程序员白楠楠,领取2021版MySQL笔记(300多页PDF文档)。 本文会提到 50 条 SQL 语句性能优化策略。 1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索 阅读全文
posted @ 2021-01-03 15:29 公众号程序员白楠楠 阅读(671) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示