自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【SpringBoot】吐血整理

SpringBootSpringBoot是什么SpringBoot 是一个轻量级、快速开发框架。整合了常用的第三方依赖整合(原理:通过Maven子父工程的方式);简化 XML 配置,全部采用注解形式;内置 Http 服务器(Jetty和Tomcat),最终以java 应用程序(Main函数)进行执行。SpringBoot核心特征Springboot 项目为独立运行的 spring 项目,java -jar xx.jar 即可运行内嵌 Servlet 容器(可以选择内嵌: tomcat,jetty

2021-04-13 14:17:03 337

原创 【mybatis】【Spring】【SpringMVC】吐血整理

Mybatis什么是Mybatis1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。3、通过 xml 文件或注解的

2021-04-13 14:16:20 1218

原创 【Elasticsearch】吐血整理

Elasticsearches路由文档原理Es文档路由的原理⾸先文档被存放在哪个分片中肯定不会是随机的,否则搜索要获取⽂档时ES就不知道从何处寻找了。实际上,这个过程是根据这个公式决定的:****shard = hash(routing) % number_of_primary_shards。****这里的routing是⼀个可变值,默认是⽂档的_id ,也可以设置成⼀个⾃定义的值。 routing通过hash函数⽣成⼀个哈希值,然后将哈希值再除以number_of_primary_shards(即

2021-04-13 14:14:38 340

原创 【项目介绍】ElasticSearch7+Spark 构建高相关性搜索服务&千人千面推荐系统

我做的项目是在慕课网买的项目介绍项目需求背景:模仿大众点评应用提供用户线下搜索推荐服务门店的需求技术选型:后端业务:SpringBoot;后端存储:MySQL、mybatis接入;搜索系统:ElasticSearch、canal;推荐系统:spark mllib;前端页面:html,css,js。项目介绍:基于大众点评搜索以及推荐业务,使用SpringBoot加mybatis结合前端模板构建运营后台管理功能,借助ElasticSearch,完成高相关性进阶搜索服务,并基于spark mllib构建个

2021-04-13 14:12:34 2977 8

原创 【数据结构】

数据结构:面试常考的几种树1、BST(二叉排序树、二叉搜索树)二叉搜索树或者是一颗空树,或者是具有下列性质的二叉树每个节点都有一个作为搜索依据的关键码key,所有节点的关键码互不相同;左子树(如果存在)上所有节点的关键码都小于根结点的关键码右子树(如果存在)上所有节点的关键码都大于根结点的关键码左子树和右子树也是二叉搜索树总结:如果对一棵二叉搜索树进行中序遍历,可以按从小到大的顺序,将各节点关键码排列起来,所以也称二叉搜索树为二叉排序树2、AVL树一棵AVL树或者是空树,或者是具有下

2021-04-13 14:01:03 192

转载 【多线程】吐血整理Java多线程

多线程什么是线程安全?线程安全也不是指线程的安全,而是指内存的安全。这和操作系统有关。目前主流的操作系统都是多任务的,即多个线程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程,这是由操作系统保障的。线程安全指的是,在堆内存中的数据由于可以被任何线程访问到,在没有限制的情况下存在被意外修改的风险《Java并发编程》中说道,一个对象是否应该是线程安全的取决于它是否会被多个线程访问。线程安全这个性质,取决于程序中如何使用对象,而不是对象完成了什么。保证对象的线程安全性需

2021-04-13 13:58:23 711

原创 【数据库】吐血整理---数据库合集

数据库MySQL大体上分为Server层和存储引擎层两部分;Server层:连接器:TCP握手后服务器来验证登陆用户身份,A用户创建连接后,管理员对A用户权限修改了也不会影响到已经创建的链接权限,必须重新登陆。查询缓存:查询后的结果存储位置,MySQL8.0版本以后已经取消,因为查询缓存失效太频繁,得不偿失。分析器:根据语法规则,判断你输入的这个SQL语句是否满足MySQL语法。优化器:多种执行策略可实现目标,系统自动选择最优进行执行。执行器:判断是否有权限,将最终任务提交到存储引擎。存

2021-03-28 14:11:39 953

原创 【网络】吐血整理-Java网络合集

文章目录网络:1、性能指标有哪些?2、互联网协议OSI标准模型TCP/TP协议簇IP 协议ICMP 协议ARP 协议TCP 协议UDP 协议FTP 协议DNS 协议SMTP 协议SLIP 协议PPP 协议五层协议及其作用3、TCP经典三次握手四次挥手为什么是三次握手四次挥手**TIME_WAIT状态,以及2MSL原因**抓包三次握手四次挥手TCP三次握手异常情况分析TCP第一次握手SYN丢包TCP第二次握手SYN、ACK丢包TCP第三次握手ACK丢包服务器出现大量close-wait出现大量TIME_WAI

2021-03-19 20:52:38 430

原创 【操作系统+Linux】吐血整理-操作系统+Linux合集

文章目录操作系统1、请你说一下进程和线程的区别?2、什么是临界资源?什么是临界区?3、谈一谈操作系统的地址转化4、请你说一下OS缺页置换算法5、请你说一说死锁发生的条件以及如何解决死锁6、系统调用和普通函数的区别7、操作系统中进程间通信方式8、操作系统中的PV指的是什么9、多进程和多线程的优缺点比较10、虚拟内存和物理内存怎么对应?11、操作系统的缺页异常12、vfork和fork13、谈谈并发与并行14、互斥锁、读写锁、自旋锁15、僵尸进程,孤儿进程16、系统调用的具体过程17、send和recv的底层过

2021-03-10 16:40:39 429

原创 【Java基础】吐血整理-Java基础合集

文章目录java语言的特点Java 如何实现平台无关?JDK 和 JRE 的区别?Java 按值调用还是引用调用?object类中有哪些常用的方法==与equals()的区别为什么重写equals方法就必须重写hashcode方法clone方法深拷贝和浅拷贝的区别数组的复制方法java基本数据类型包装类常见的误区包装类中的缓存String类string不可变性带来的好处String,StringBulider,StringBuffer的异同字符串拼接的方式有哪些?String a = "a" + new S

2021-03-08 15:19:29 394

原创 【JVM】吐血整理-Java虚拟机合集

文章目录JVMJava内存区域Java和C++在GC上的区别Java不同版本中运行时数据区域的区别程序计数器Java虚拟机栈本地方法栈堆方法区运行时常量池直接内存类加载过程类的生命周期加载连接验证准备解析初始化对象创建过程类加载检查分配内存初始化零值设置对象头执行init方法对象的内存布局对象的访问定位方式垃圾回收机制内存分配和回收如何判断对象已经死亡强引用、弱引用、软引用、虚引用如何判断变量和类无用?Java中的几种引用SafePoint与SafeRegionOopMap垃圾收集算法标记清除算法复制算法标

2021-03-08 14:45:42 343

原创 【集合】吐血整理-集合框架库(含源码)

文章目录集合框架库什么是集合?集合、数组和数据库的区别?Collection增:删:改:查:List**ArrayList****Vector****Stack****LinkedList**Queue/Deque**Set**MapHashmap特点:数据结构:源码分析:构造函数:增:线程安全问题:ConcurrentHashMapConcurrentHashMap同步容器并发容器LinkedHashMap:(有序的hashmap)集合框架库Collection接口:是存放一组单值的最大接口。

2021-03-08 11:09:23 206

原创 elasticsearch在项目中的使用

IK分词器IK ANALYZE:分析=分词的过程:字符过滤器(过滤特殊符号外加量词,的,stopword停用词)-》字符处理(词库词典)-》分词过滤(分词转换,词干转化)1.下载https://github.com/medcl/elasticsearch-analysis-ik/releases注意: IK分词器插件版本必须和Elasticsearch版本一致2、安装进入lib目录,将下载好的文件放入然后进入kibana检查智能分词最大化分词贪心算法#analyzer指定的

2021-02-27 21:17:47 1507 1

原创 ElasticSearch高级

ES高级查询语法1、analyze分词器//新建索引PUT /movie/_doc/1{“name”:“Eating an apple a day & keeps the doctor away”}GET /movie/_search{“query”: {“match”: {“name”: “Eat”}}}假如我们这样查询的话,结果就会显示一个空我们使用分词器查看分词状态可以发现分出了 eating an apple aday keeps the docter

2021-02-25 22:11:55 160

原创 ElasticSearch入门

什么是ElasticSearch?基于Apache Lucene构建的开源搜素引擎;采用java编写,提供简单易用的RESTFul API;轻松的横向扩展,可支持PB级的结构化或非结构化数据处理;应用场景?海量数据分析引擎;站内搜索引擎;数据仓库;英国卫报-实时分析公众对文章的回应维基百科、GitHub-站内实时搜索百度-实时日志监控平台安装Windows下参考https://blog.csdn.net/yx1214442120/article/det

2021-02-24 22:29:04 193

原创 【redis】吐血整理---redis合集

文章目录Redis1、项目为什么用到redis?2、redis的数据结构?应用场景小结Bitmap:HyperLogLog:Geospatial:pub/sub:Pipeline:Lua:事务:3、如果有大量的key需要设置同一时间过期,一般需要注意什么?4、redis分布式锁如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样?解决死锁1、第一种实现方式2、第二种实现方式5、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全

2021-01-26 21:45:37 559

原创 面经疑难题整理

本博客整理牛客网上面经的疑难问题猫眼面经1、String为什么不可变?答:从底层源码入手分析;(1)常量与变量在理解常量和变量之前需要首先理解堆和栈的概念。变量:一般是把内存地址不变,值可以改变的东西称为变量。换句话说,在内存地址不变的前提下,内存的内容是可变的常量:一般把内存地址不变,则值也不可以改变的东西叫做常量。换句话说,对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,即在栈中的引用不能改变(2)什么是不可变对象String变量一旦初始化后就不能更改(指的是内容不能改

2021-01-24 19:24:25 477

原创 【面经牛客网整理】度小满一面

作者:毕业马上失业的不合格小码农链接:https://www.nowcoder.com/discuss/517424?type=0&order=7&pos=41&page=0&source_id=discuss_center_0&channel=1009来源:牛客网自我介绍,盘比赛,盘项目答:HashMap底层实现?扩容原理?答:HashMap和concurenthashmap区别?答:线程安全方面线程安全集合类?为什么线程安全?答:CopyOn

2020-11-06 21:29:28 608

原创 【牛客网面经整理】阿里面经

作者:OfferOffer多多链接:https://www.nowcoder.com/discuss/505316?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post来源:牛客网面经(三面放在了一起):计算机网络常规问题:HTTP/HTTPS/TCP/WebSocket协议,长连接短连接,拥塞控制机制,tcp为什么是可靠的等。答:这些问题感觉写过好多遍,再写一次多多益善1、

2020-09-13 21:58:14 607

原创 【算法】回溯法再探究

昨天笔试做了一个题,需要全排列;可惜我连全排列都不会,深深感受到了自己的菜;决定将力扣的两道全排列深入探究下;给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations著作权归领扣网络所有。商业转

2020-09-12 10:57:50 137

原创 【面经】20200911苏宁一面(java开发)

自我介绍实习项目做了哪些内容;实习期间SpringMVC的拦截器具体实现流程;数据库的标签有哪些?(if where trim foreach)一个场景,有很多硬编码,数据库中怎么写用标签为什么使用连接池;jdbc和连接池的区别?连接池配置什么(说了四个)redis怎么使用的?redis的持久化机制?缓存穿透?缓存雪崩?索引种类?where A and B,where B and A ?哪个用到索引?事务隔离级别?默认隔离级别?MVCC机制?如果学校派给一个紧急的任务,会怎么

2020-09-11 16:35:22 236

原创 【牛客网面经整理】0805百度面经

1、Spring AOP,JDK代理和CGlib代理的区别,除了针对接口和类以外的不同?答:Spring AOP是运行时织入的,那么运行时织入是怎么实现的呢?通过代理对象实现。代理:静态代理,动态代理;静态代理:由程序员创建或特定工具自动生成源码,再对其编译,在程序运行前,代理类的.class就已经存在了。动态代理:在程序运行时,通过反射机制创建静态代理的局限性:静态代理的每一个代理类只能为一个接口服务,这样一来程序开发中必然会产生过多的代理,会产生过多的重复代码。解决办法:通过一个代理类完

2020-09-08 09:32:42 231

原创 【牛客网笔试整理】美团点评 笔试整理

链接:https://www.nowcoder.com/questionTerminal/29d1622d47514670a85e98a1f47b8e2d来源:牛客网已知一种新的火星文的单词由英文字母(仅小写字母)组成,但是此火星文中的字母先后顺序未知。给出一组非空的火星文单词,且此组单词已经按火星文字典序进行好了排序(从小到大),请推断出此火星文中的字母先后顺序。链接:https://www.nowcoder.com/questionTerminal/29d1622d47514670a85e98a1

2020-09-07 22:21:55 902

原创 【KMP算法】高效字符串匹配BF,RK,BM,KMP算法合集

判断字符串B是否在字符串A中包含?这道题是典型的字符串匹配问题,本质想考的是KMP算法,我在字节面试也遇到了。需要掌握理解并能手撕出来。BF(Brute Force暴力)算法这也是我面试说的算法,很明显效率太低具体实现就是控制i,j指针;遇到相同的就同时后移,知道完全匹配。但当极端情况;aaaaaaaaaabaab时,会产生大量无用比较浪费时间。RK算法BF算法只是简单粗暴的将所有字符依次边角,而RK算法比较的是两个字符串的哈希值。每一个字符串都可以通过某种哈希算法,转换成一个整型数,这

2020-09-06 18:45:20 432

原创 【牛客网面经整理】7.20shopee一面面经,加入我自己整理的相关拓展问题(redis))

作者:咚咚锵233链接:https://www.nowcoder.com/discuss/497119?type=0&order=7&pos=7&page=1&channel=1009&source_id=discuss_center_0来源:牛客网7.20一面:怎么判断一个链表是否有环?答:快慢指针哪些数据结构可以做查询,时间比较快的,并且比较一下?答:我当时想到的是hashmap和树形结构的查找1、有序数组 查找快 插入慢删除慢大小固定2、

2020-09-05 12:35:48 1223

原创 【面经】关于java对象,一线互联网企业面试题怎么回答

对象创建过程1、申请内存2、成员变量赋默认值3、调用构造方法((1)按照成员变量顺序调用,(2)初始化成员变量,(3)构造方法调用)双重检查单例,单例要不要加volatile?对象在内存中的存储布局?实际和虚拟机的实现有关假设是hot spot虚拟机对象头:mark word类型指针:.class类实例的成员变量:补齐:使得总大小为8的倍数对象头中具体包括什么?1、对象的hashcode;2、锁的信息;(2位 四种组合代表锁的四种状态)3、GC信息(年龄)对象怎么定位?1、

2020-09-04 15:24:54 109

原创 【牛客网面经整理】20200831小米一面

自我介绍答:能否胜任;性格中的闪光点;从业时间;教育背景;工作经验;项目经验;与众不同之处;技术;性格;算法:二叉搜索树中两个子节点的最近祖先节点。二叉树无序情况下如何寻找?答:递归说说hashmap底层源码答:1、特点(实现接口):public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable因为实现了这些接口,所以具有这些接

2020-09-02 22:37:22 540

原创 【2020牛客网笔试整理】小红书笔试题

薯队长写了一篇笔记草稿,请你帮忙输出最后内容。1.输入字符包括,"(" , “)” 和 "<“和其他字符。2.其他字符表示笔记内容。3.()之间表示注释内容,任何字符都无效。 括号保证成对出现。4.”<“表示退格, 删去前面一个笔记内容字符。括号不受”<"影响 。简单来说,就是括号中的都去掉,<号前边的去掉;这道题我的思路局限于遇到(,从这个下标开始找下一个),从而导致不能准确的判断出有一对以上的括号时是做法;看了评论是将坐标记

2020-08-31 20:21:36 2792

原创 【牛客网面经整理】20200829多益面经整理

1.自我介绍2.项目介绍一下,项目中遇到的一些问题,如何去解决的.答:3.聊一聊BIO和NIO.答:网络模型的基本模型是CS模型,即两个线程之间的通信。服务器端提供IP和监听端口,客户端通过连接操作向服务器端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。BIO:采用BIO通信模型的服务器,通常

2020-08-30 22:09:26 406

原创 【2020牛客网笔经整理】小红书笔试题

输入一个自然数n,求表达式 f(n) = 1!2!3!..n! 的结果末尾有几个连续的0?public class Num0 { public static int numZero(int n){ int count=0; int num=n/10*2+(n%10>4?2:0); for(int i=0;i<num/2;i++){ count+=n-(4+10*i)+((n-(9+10*i))>0?(n-(9

2020-08-30 15:31:07 1210

原创 【2020牛客面经整理】美团一面

作者:牛客395930587号链接:https://www.nowcoder.com/discuss/490309?channel=1009&source_id=discuss_terminal_discuss_history来源:牛客网口述怎么样判断一个链表是否成环。答:快慢指针检测,快指针每次走两格,慢指针每次走一格,判断二者是否会相遇。讲一下平衡树的特征。答:空树或任意节点的子树的高度差都小于等于1.mysql数据库的索引是用什么结构来实现的?它为什么要用这种结构?它利用了硬盘的

2020-08-28 21:29:24 330

原创 【LeetCode】直方图的水量

这道题和之前腾讯的笔试题刷木板挺像的,不过这个更简单,这个就相当于短板效应,而刷木板那道题和刷栅栏相同,考虑的情况较多;这道题一开始的思路就是从一面找;如果后面的小于前面的就加上差值,但是没考虑只有一个柱子的时候;错误: public int trap(int[] height) { if(height==null||height.length==0){ return 0; } int []dp=new int[height.

2020-08-26 19:37:33 270

原创 【LeetCode】链表排序

链表题的几大法宝:双指针dummyHead断链挂链在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-list著作

2020-08-25 16:43:22 219

原创 【LeetCode】动态规划题型刷起来

一维数组的动态和先从简单开始,没看题解完成简单的动态规划;给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, 1+1,

2020-08-19 20:14:38 112

原创 【面经】2020 8.18字节一面

昨天面了字节跳动——飞书严重认识到了自己的不足以后更博客会慢,我还是喜欢用笔写下来记忆面试官也给我说秋招知识点一定要记牢;考的大部分都是基础;字节跳动-飞书 一面面经自我介绍谈谈项目java内存模型双亲委派模型static关键字volitail关键字voiltail的使用场景,多说几个hashmap扩容机制hashmap为什么线程不安全线程的创建开始关闭如果自己构建一个线程池怎么构建,线程池底层原理HTTP和HTTPS协议NIO和BIO模型NIO底层实现算法:判断a字符

2020-08-19 09:23:57 200 2

原创 【LeetCode】面试题思路记录---数组

面试题01.07旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3

2020-08-17 14:23:45 146

原创 【LeetCode】面试题思路记录---字符串

面试题01.01.判定字符是否唯一实现一个算法,确定一个字符串s的所有字符是否全都不同。示例1:输入: s = "leetcode"输出: false示例2:输入: s = "abc"输出: true|= 即 a=a|b|运算的规则是当两个位都为0时,结果为0,否则为1;方法一:双重暴力循环方法二:set哈希方法三:bool数组标识方法四:位运算借助int类型的变量来代替长度为26的bool数组。面试题01.02.判断是否互为字符重排给定两个字符串 s1 和

2020-08-17 13:49:56 270

原创 【java io】复习简单罗列

输入流:从数据源-》程序输出流:程序-》数据源字符流:字符数据:字符流将原始数据解释成字符的序列依赖编码方法:文件数据存储依赖文件编码方式,字符流的输入和输出是需要编码和解码的(效率低)字节流:字节(二进制)数据:字节流会将数据解释成原始的二进制数据可移植:与主机的编码方法是无关的效率高:二进制数据不需要编码和解码面试题1:字符流和字节流的区别面试题2:javaio中常见类、字节流、字符流、具体实现类、阻塞方法按照角色分为节点流和处理流节点流:程序直接连接到实际的数据源,和实际的输入

2020-08-13 17:18:27 113

原创 【java算法】排序算法合集

上图是我们所有排序算法的分类:分析算法的术语说明:稳定:如果a原本在b前面,而a=b,排序之后仍然在b的前面;不稳定:如果a原本在b前面,而a=b,排序之后a可能会出现在b的后面内排序:所有排序操作都在内存中完成外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;(涉及文件操作以及归并排序思想)时间复杂度:一个算法执行所耗费的时间空间复杂度:运行完一个程序所需内存大小交换排序冒泡排序冒泡排序是一种简单的排序算法。算法描述比较相邻元素,如果第一个.

2020-08-12 21:43:06 130

原创 2020-08-11

刷力扣刷的脑壳痛;java知识点总结给大家推荐一个博主,总结的很好

2020-08-11 20:17:23 53

空空如也

空空如也

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

TA关注的人

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