自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢世杰的博客

一个IT菜鸟成长的故事

  • 博客(309)
  • 资源 (4)

原创 2020届春招实习面经(含阿里、腾讯、网易、京东、华为、美团、快手、字节跳动)
原力计划

前言:之前发表了一篇实习复习的内容:史上最全!20/21届春招/秋招 实习/校招 JAVA面试全攻略!复习回顾这一篇就够了!在这篇文章详细说了该如何去复习,也答应各位把面经整理一下,但是因为入职的事情耽搁了,现在整理出来回馈给大家!PS:楼主只收到网易、快手、华为三家offer,也不是所谓的offer收割机。只是提供一些个人经验,这个平台帮了我很多,前人栽树后人乘凉,共勉!文章目录快手(已offer)一面(60mins)二面(55mins)HR面(15mins)阿里一面腾讯一面(40mi.

2020-06-14 23:42:22 664 4

原创 史上最全!20/21届春招/秋招 实习/校招 JAVA面试全攻略!复习回顾这一篇就够了!
原力计划

之前写过一篇Java面试知识点汇总,由于我不断补充,现在知识点已经比较庞杂,很多人私信我,说那一篇全是知识点太过庞杂,问我有没有整合的。正好春招和秋招在即,我花费了几个月的时间,把知识点整合成不同的模块并针对不同的知识点以及结合本人自己的面试经历,整合出这篇java面试全攻略。希望对大家有所帮助!

2020-04-26 18:48:13 2495 2

原创 Java面试知识点汇总

为了找到心仪的工作而努力吧最近在刷各种面经,把学会的知识点汇总一下以便查漏补缺:未完待续…

2019-05-07 15:36:18 53835 43

转载 Maven父子项目的理解

下面是一个简略的项目结构图Parent`------ childA(BusinessLayer) `--- pom.xml`------ childB(WebLayer) `--- pom.xml`------ pom.xml1、Parent怎么能找到childA和childB呢?在maven中,parent模块组织好childA和childB,叫做"聚合",多个模块联合编译。实现起来很简单,只需要在parent的pom文件里加入以下内容。<m

2020-06-14 16:26:40 151

原创 Maven到底是个啥?——Maven深入理解

一、maven1.maven简介Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。简单理解为统一管理jar包的仓库。maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码,src/target用于存放编译、打包后的输出文件。2.Maven版本管理maven中的仓库分为两种,snapshot快照仓库和rele

2020-06-14 16:00:57 95

转载 彻底搞懂数据库内连接、外连接

文章目录一、定义1、内联接2、外联接3、交叉联接二、示例一、定义1、内联接典型的联接运算,使用像 = 或 <> 之类的比较运算符。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。2、外联接外联接可以是左向外联接、右向外联接或完整外部联接。 ...

2020-04-30 11:27:55 179

原创 二分查找算法的万能公式(LeetCode35、704、1095)
原力计划

二分查找常常用于有序数组的查找操作。当然如果是一个问题,数组的顺序满足特定条件(不仅仅是升序或者降序,也可以是先升后降或先降后升),就可以通过逐步排查,缩小问题的规模的方式找到,这种算法也是二分查找算法。PS:不想看过程的,直接拉到万能公式,即看即用!文章目录两种二分查找第一种第二种思维导图万能公式代码示例(套公式示例)LeetCode704LeetCode35LeetCode1095...

2020-04-29 22:09:25 300

原创 搞懂回溯算法思想(LeetCode46、47、980)
原力计划

一、回溯介绍1.定义搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。如迷宫问题:进入迷宫后,先随意选择一个前进方...

2020-04-25 16:58:22 248

转载 JVM 参数及调优

调优基本概念在调整 JVM 性能时,通常有三个组件需要考虑:堆大小调整垃圾收集器调整 JIT 编译器大多数调优选项都与调整堆大小和选择合适的垃圾收集器有关,JIT 编译器对性能也有很大影响,但很少需要对其进行调优,尤其是针对较新版本的 JVM。通常,在进行 Java 程序调优的时候,会重点关注两个主要指标:响应性:应用程序对请求进行响应的速度,对于专注响应性的应用程序,长时间...

2020-04-22 09:56:15 175

原创 IO多路复用的两种模式:水平触发和边缘触发

在 linux 的 IO 多路复用中有水平触发,边缘触发两种模式水平触发 (level-trggered)只要文件描述符关联的读内核缓冲区非空,有数据可以读取,就一直发出可读信号进行通知,当文件描述符关联的内核写缓冲区不满,有空间可以写入,就一直发出可写信号进行通知LT 模式支持阻塞和非阻塞两种方式。epoll 默认的模式是 LT。边缘触发 (edge-triggered)...

2020-04-20 18:49:55 111

转载 Linux 查看文件大小 5 个常用命令

1. 前言Linux 系统有非常好用的命令,功能也非常丰富,如果你对命令行工具熟悉,可以非常高效率完成维护工具。本文主要介绍 Linux 系统中,用于查看文件大小的命令。Linux 查看文件大小 5 个常用命令2. 使用 stat 命令查看stat 命令一般用于查看文件的状态信息。stat 命令的输出信息比 ls 命令的输出信息要更详细。oucanrong@zcwyou:~/...

2020-04-20 18:22:03 118

原创 LeetCode55 跳跃游戏、LeetCode45跳跃游戏(进阶版)

LeetCode55 跳跃游戏【题目】给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。【样例】输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。【思考】使用动规,dp[x]代表从头到x是否可以达...

2020-04-17 11:51:02 87

原创 LeetCode56.合并区间、354. 俄罗斯套娃信封问题(合并区间进阶)

【题目】给出一个区间的集合,请合并所有重叠的区间。【示例】输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].【思考】本身思路很简单,但是需要注意区间与区间的各种包含和交叉关系,最明显的一点就是区间不一定是有序的。所以需要先排序(根据第一个...

2020-04-16 19:11:53 99

转载 ConcurrentHashMap 的实现原理 (JDK1.7 和 JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是 BAT 面试必考内容,阿里 P8 架构师谈:深入探讨 HashMap 的底层结构、原理、扩容机制深入谈过 hashmap 的实现原理以及在 JDK 1.8 的实现区别,今天主要谈 CurrentHashMap 的实现原理,以及在 JDK1.7 和 1.8 的区别。内容目录:1. 哈希表 2.ConcurrentHashMap 与 H...

2020-04-15 11:23:08 136

原创 Java求指定精度的开根号运算

原理是二分法不断迭代:取max为指定值target,min为1,精度要求m;取min和max的中点mid,当midmid>target,把max设定为mid;当midmid<target,把min设定为mid。然后max和min求出新的中间 newMin。结果就在mid和newMid之间,并不断逼近最终结果,当newMid-mid的绝对值小于m时,结果即为所求【代码】packa...

2020-04-14 22:26:52 138

原创 聊聊 Mysql 索引和 redis 跳表

一、Redis中的跳表跳表可以简单理解就是给链表加索引,当结点数量多的时候,这种添加索引的方式,会使查询效率提高的非常明显。跳表这个动态数据结构,不仅支持查找操作,还支持动态的插入、删除操作,而且插入、删除操作的时间复杂度也是 ○(㏒n)。对于单纯的单链表,需要遍历每个结点来找到插入的位置。但是对于跳表来说,因为其查找某个结点的时间复杂度是 ○(㏒n),所以这里查找某个数据应该插入的位置,...

2020-04-14 18:26:15 173

原创 【面试刷题-力扣经典】动规:221. 最大正方形

【题目】在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4【思路】dp[x][y] 代表的是正方形的最右下角是x,y的时候,正方形的边长从 (0,0)(0,0) 开始,对原始矩阵中的每一个 1,我们将当前元素的值更新为(1,3) 处的 2 表示到该索引为...

2020-04-13 20:52:57 110

原创 Mybatis 的一级缓存和二级缓存

一级缓存1.定义一级缓存基于 sqlSession 默认开启,在操作数据库时需要构造 SqlSession 对象,在对象中有一个 HashMap 用于存储缓存数据。不同的 SqlSession 之间的缓存数据区域是互相不影响的。一级缓存的作用域是 SqlSession 范围的,当在同一个 sqlSession 中执行两次相同的 sql 语句时,第一次执行完毕会将数据库中查询的数据写到缓存...

2020-04-11 11:20:15 80 1

原创 快速求最大公约数和最小公倍数

辗转相除法辗转相除法又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。这条算法基于一个定理:两个正整数 a 和 b(a 大于 b),它们的最大公约数等于 a 除以 b 的余数 c 和 较小数 b 之间的最大公约数。算法计算过程是这样的:2个数相除,得出余数如果余数不为0,则拿较小的数与余数继续相除,判断新的余数是否为0如果余数为0,则最大公...

2020-04-09 21:31:30 182 2

转载 Redis 和 Mysql 数据库数据如何保持一致性

        在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用 redis 做一个缓冲操作,让请求先访问到 redis,而不是直接访问 Mysql 等数据库。这样可以大大缓解数据库的压力。具体业务流程如下:        读取缓存步骤一般...

2020-04-09 10:12:08 427

原创 CAS乐观锁的ABA问题

CAS1.CAS 原理CAS 机制当中使用了 3 个基本操作数:内存地址 V,旧的预期值 A,要修改的新值 B。更新一个变量的时候,只有当变量的预期值 A 和内存地址 V 当中的实际值相同时,才会将内存地址 V 对应的值修改为 B。CAS 的原理就是预期值 A 与内存中的值相比较,如果相同则将内存中的值改变成新值 B。这样比较有两类:第一类:如果操作的是基本变量,则比较的是 值 是否...

2020-04-08 21:57:33 104

原创 【面试刷题-力扣经典】409最长回文串、647回文子串、5最长回文子串

1

2020-04-08 20:24:08 92

转载 彻底搞懂数据库索引

联合索引最左匹配回表覆盖索引索引下推

2020-04-07 16:44:03 87

原创 两种常见数据库引擎:MyISAM 与 InnoDB 的区别

1.事务的支持MyISAM:强调的是性能,每次查询具有原子性,其执行数度比 InnoDB 类型更快,但是不提供事务支持。InnoDB:提供事务支持事务,外部键等高级数据库功能。具有事务 (commit)、回滚 (rollback) 和崩溃修复能力 (crash recovery capabilities) 的事务安全 (transaction-safe (ACID compliant)...

2020-04-07 15:47:20 94

原创 LeetCode42.接雨水、LeetCode11. 盛最多水的容器

单调栈、动态规划、双指针【题目】给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。【输入】: [0,1,0,2,1,0,1,3,2,1,2,1]【输出】: 6【解法一】:暴力解法思路:对于数组中的每个元素,我们找出下雨后水能达到的最高位置,等于两边最大高度的较小值减去当前高度的值。每次计算的当前元素能存储的雨水,最后累计即可首尾元素无...

2020-04-05 21:59:03 143

转载 【商城秒杀项目】-- 项目总结

转自:https://blog.csdn.net/weixin_42687829/article/details/104535027?utm_source=app原作者项目代码已上传至gitHub:https://github.com/java-LJ/miaosha.git 最近对商城秒杀项目所用到...

2020-04-03 10:36:28 354

原创 单调栈

一、单调栈定义单调递增栈:数据出栈的序列为单调递增序列(比站内元素小就入栈,否则将栈中比当前元素小的元素弹出后再入栈)单调递减栈:数据出栈的序列为单调递减序列(比站内元素大就入栈,否则将栈中比当前元素大的元素弹出后再入栈)二、题目(一)视野总和【题目】描叙:有 n 个人站队,所有的人全部向右看,个子高的可以看到个子低的发型,给出每个人的身高,问所有人能看到其他人发现总和是多少。输...

2020-04-03 09:33:14 106

转载 HTTP 常见状态码(14 种)

HTTP 状态码表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要。状态码由 3 位数字和原因短语组成,例如下图所示:数字中的第一位指定了响应类别,后两位无分类,响应类别有一下 5 种:状态码分类表  ...

2020-04-02 14:59:16 128

转载 Redis 的哨兵机制

1.故障迁移Redis 的哨兵 (sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:监控 (Monitoring): 哨兵 (sentinel) 会不断地检查你的 Master 和 Slave 是否运作正常。提醒 (Notification): 当被监控的某个 Redis 出现问题时,哨兵 (sentinel) 可以通过 API 向管理员或者其他应用程...

2020-04-01 16:06:21 49

原创 负载均衡

一、什么是负载均衡(Load balancing)在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如 www.taobao.com。那么当用户在浏览器输入 www.taobao...

2020-03-31 15:58:38 74

转载 磁盘寻道调度算法

磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读 / 写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN) 例: 假定某磁盘共有 ...

2020-03-31 11:03:03 226

原创 快速幂

快速幂:将幂指数 b 转换为二进制,例:6 对应二进制为 110,此时 a b =a4a2a0,时间复杂度为 f(n)=lgnpublic class QuickPower { public static void main(String[] args) { /** * 2^n;需要n个2相乘,时间复杂度O(n) * ...

2020-03-30 20:22:58 67

转载 Redis 实现分布式锁

1.分布式下的情况分布式与单机情况下最大的不同在于其不是多线程而是多进程。多线程由于可以共享堆内存,因此可以简单的采取内存作为标记存储位置。而进程之间甚至可能都不在同一台物理机上,因此需要将标记存储在一个所有进程都能看到的地方。2.分布式锁当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁...

2020-03-30 19:05:58 53

原创 java处理超大数——BigInteger

一、BigInteger介绍如果在操作的时候一个整型数据已经超过了整数的最大类型长度 long 的话,则此数据就无法装入,所以,此时要使用 BigInteger 类进行操作。这些大数都会以字符串的形式传入。BigInteger 相比 Integer 的确可以用 big 来形容。它是用于科学计算,Integer 只能容纳一个 int,所以,最大值也就是 2 的 31 次访减去 1,十进制为 21...

2020-03-30 17:01:57 303

原创 jvm分析工具

jvm分析工具: jstack (查看线程)、thread dump(查看线程)、jmap (查看内存) 、 jstat (性能分析)一、 Thread Dump1.Thread Dump 是非常有用的诊断 Java 应用问题的工具。每一个 Java 虚拟机都有及时生成所有线程在某一点状态的 thread-dump 的能力,虽然各个 Java 虚拟机打印的 thread dump 略有不同...

2020-03-30 11:25:55 59

转载 Redis 常见数据结构以及使用场景

1、String(字符串):String 数据结构是简单的 key-value 类型,value 其实不仅可以是 String,也可以是数字。应用场景:常规 key-value 缓存应用;常规计数:微博数,粉丝数等。2、hash(字典): Hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,后续操作的时候,可以直接仅仅修改这个对象中的某...

2020-03-29 22:12:56 156

转载 Redis 字典的底层实现

字典又称符号表,关联数组或者映射,是一种用于保存键值对的抽象数据结构。一、Redis的字典底层结构Redis 的字典使用哈希表作为底层实现,一个哈希表里面有多个哈希节点,而每个哈希表节点就保存了字典中的一个键值对,Redis的字典可以参照Java中的HashMap。哈希表代码typedef struct dictht{ //哈希表数组 dictEntry **table...

2020-03-29 21:58:58 75

原创 最长回文子串

【题目】给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。解法一、暴力法很明显,暴力法将选出所有子字符串可能的开始和结束位置,并检验它是不是回文。时间复杂度:O(n^3)空间复杂度:O(1)【代码】public String longestPalindrome...

2020-03-29 18:13:49 65

原创 Java实现阻塞队列+生产者消费者

Java实现阻塞队列package test.blockqueue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class BlockQueue<T...

2020-03-28 23:07:25 100

原创 TCP的TIME_WAIT和CLOSE_WAIT

TCP的time_wait和close_wait

2020-03-27 16:20:23 51

cglib相关jar包.zip

cglib代理模式所需要的jar吧,包括cglib3.1.jar和字节码asm4.0.jar;并且经过代码测试,直接可用

2019-10-23

精通 Spring Boot 42 讲(PDF版附源码下载地址).zip

AVA 学习热情不减,有不少求 springboot 课程《精通 Spring Boot 42 讲》这篇文章的童鞋。 求一下这门课程的内容,那我就无私的分享给大家一起学习吧。 首先表明 课程是我自己买的,分享大家一起学习, 其次大家觉得课程好,有能力的,就多多支持作者吧。

2019-06-03

zabbix设备监控项目

zabbix已经在服务器搭建好了,只是需要远程调用zabbix的监控数据。通过php调用访问配置zabbix的服务器,获取监控数据,PHP在于Js交互(jQuery框架),将监控的数据显示在网页之上,网页已经写好,只需要修改部分Js文件以及编写php文件即可。获取要监控的设备是通过配置文件的方式,配置文件中写的是要监控的主机名

2019-04-16

navicat全部产品破解注册机

navicat的全套产品均可以破解,亲测有效,详见:https://blog.csdn.net/qq_33945246/article/details/79960356

2018-04-16

空空如也

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