自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面经总结

1.说说JVM有哪些内存区域吧主要有5个部分:1.方法区:用来存储被虚拟机加载的类信息,常量,静态变量,编译器编译后的代码。这部分是线程共享的,因此被设计成线程安全的。2.堆:主要用来存放对象的是例,所有通过new操作创建出来的对象的实例都存储在堆空间。线程共享的。3.虚拟机栈:每有一个线程创建时,会分配一个栈空间,线程结束后,栈空间回收。线程私有的。4.程序计数器:为每个线程创建单独的程序计数器。线程私有的5.本地方法栈:与虚拟机栈功能相似,不同的是执行Native(本地)方法服务。2.讲一

2021-03-18 16:13:39 173 2

原创 Docker学习笔记4

title: Docker学习笔记4date: 2020-08-28 15:48:31tags: /学习categories: /学习第一章 Docker ComposeDocker Compose用来高效的管理容器,定义运行多个容器,使用YAML file配置文件Compose重要概念:服务services,容器,应用。项目project。1.1 安装Composecurl -L https://get.daocloud.io/docker/compose/releases/down.

2021-03-08 21:21:01 442

原创 Docker学习笔记3

title: Docker学习笔记3date: 2020-08-22 20:04:39tags: /学习categories: /学习第一章 Dockerfile构建步骤:1.编写一个Dockerfile文件2.docker build构建成为一个镜像3.docker run运行镜像4.docker push发布镜像1.1 Dockerfile构建过程1.1.1 基础知识1.每个保留关键字(指令)都必须是大写字母2.执行按照从上到下的顺序执行3.#表示注解4.每一个指令都会创.

2021-03-08 21:20:17 187

原创 Docker学习笔记2

title: Docker学习笔记2date: 2020-08-21 16:05:07tags: /学习categories: /学习第一章 可视化面板PortainerPortainer是Docker图形化界面管理工具安装命令:docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer安装之后,访.

2021-03-08 21:16:42 86

原创 Docker学习笔记

title: Docker学习笔记date: 2020-08-18 15:36:31tags: /学习categories: /学习第一章 Docker安装与配置1.卸载旧版本:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2.需要的安装包:yum ins.

2021-03-08 21:13:46 93

原创 Spring总结

Spring总结Spring重要模块@Controller 与 @RestController的区别Spring IOC和AOPIOCAOPSpring AOP 和 AspectJ AOP 有什么区别Spring Bean@Component 和 @Bean 的区别将一个类声明为Spring的 bean 的注解有哪些?Spring 中的 bean 生命周期SpringMVCSpringMVC原理图SpringMVC工作原理Spring重要模块Spring Core: 基础,可以说 Spring 其他所

2021-03-08 16:55:30 92

原创 SLAM十四讲学习

第一讲处识slam1 经典视觉slam框架二级目录三级目录1 经典视觉slam框架二级目录三级目录

2020-12-25 10:55:41 103

原创 队列&栈

队列&栈1、队列1.1 队列:先入先出的数据结构1.2 队列和广度优先搜索1、队列1.1 队列:先入先出的数据结构队列实现一般采用循环队列的形式,可以有效的节约空间,提高空间利用率。下面给出循环队列的实现,完成插入,删除,取出,判断是否为空,是否满的操作:class MyCircularQueue { //模拟队列 private int[] queue; //队列长度,开始位置和插入的数据长度 private int head; private int

2020-11-30 20:33:38 86

原创 mysql

三、高阶部分1、创建和操纵表1.1 更新表1.2 删除表1.3 重命名表2、使用视图2.1 利用视图简化复杂的联结2.2 用视图重新格式化检索出的数据2.3 用视图过滤不想要的数据2.4 使用视图与计算字段3、使用存储过程3.1 执行存储过程3.2 创建存储过程3.3 删除存储过程3.4 使用参数3.5 建立智能存储过程3.6 检查存储过程4、使用游标4.1 创建游标4.2 打开和关闭游标4.3 使用游标数据5、使用触发器5.1 创建触发器5.2 删除触发器5.3 使用触发器5.3.1 INSERT 触发器

2020-11-25 16:27:25 72

原创 mysql

二、中阶部分1、使用数据处理函数1.1 文本处理函数1.2 日期和时间处理函数1.3 数值处理函数2、汇总数据3、分组数据3.2 过滤分组3.3 SELECT子句顺序4、使用子查询5、联结表6、创建高级联结6.1 自联结6.2 自然联结6.3 外部联结7、组合查询8、全文本搜索8.2 使用查询扩展8.3 布尔文本搜索9、插入数据10、更新和删除数据1、使用数据处理函数本章介绍什么是函数,MySQL支持何种函数,以及如何使用这些函数。大多数SQL实现支持以下类型的函数。1.用于处理文本串(如删除或填充

2020-11-24 16:58:34 226

原创 mysql

一、基础部分一、使用MySQL1.1、SELECT语句1.2、排序检索数据1.3、过滤数据1.4、数据过滤1.5、用通配符进行过滤1.6、用正则表达式进行搜索1.6.1 基本字符匹配1.6.2 进行OR 匹配1.6.3 匹配几个字符之一1.6.4 匹配范围1.6.5 匹配特殊字符1.6.6 匹配字符类1.6.7 匹配多个实例1.6.8 定位符1.7、创建计算字段一、使用MySQL连接到MySQL时不会由数据库打开,所以首先要做的就是打开一个数据库:USE userUSE后面加上想要打开的数据库,如果

2020-11-23 16:59:48 199

原创 SpringBoot实战

二、自定义配置自定义配置1、覆盖 Spring Boot 自动配置2、通过属性文件外置配置自定义配置主要有两种影响自动配置的方式:1.使用显式配置进行覆盖2.使用属性进行精细化配置1、覆盖 Spring Boot 自动配置当需要使用安全特性的时候,自动配置做的不是很好,需要自己来覆盖一些配置满足特定的安全要求。首先需要导入依赖:<dependency> <groupId>org.springframework.boot</groupId> <a

2020-11-23 09:39:33 66

原创 SpringBoot实战

一、简单入门1、入门1. 启动引导Spring2. 测试SpringBoot应用程序3. 配置应用程序属性2、SpringBoot项目构建过程解析2.1、使用起步依赖2.2、覆盖起步依赖引入的传递依赖3、使用自动配置3.1、专注于应用程序功能1、入门SpringBoot的主要作用是为了可以简化Spring的配置,使更多的时间放到程序的功能实现而不是配置文件,SpringBoot最重要的四个核心是:自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。起步依赖

2020-11-18 20:18:31 123

原创 持有对象

持有对象持有对象基本概念添加元素List迭代器ListIteratorLinkedListStackSet持有对象最近在刷算法题的时候,发现对容器类很多都遗忘了,因此写这篇总结来复习一下容器类,参考书籍是java编程思想,对常用的一些容器类及其方法进行总结。基本概念Java容器类类库的用途是保存对象,将其划分为两个不同的概念:1.Collection。一个独立元素的序列,这些元素服从一条或者多条规则。List必须按照插入的顺序保存元素,Set不能有重复的元素,Queue按照队列规则来确定对象产生的

2020-11-17 17:19:44 88 1

原创 Spring源码学习第三天

三、自定义标签的解析自定义标签的解析1、自定义标签使用2、自定义标签解析2.1、获取标签的命名空间2.2、提取自定义标签处理器2.3、标签解析总结自定义标签的解析在之前的章节中,我们提到了在Spring中存在默认标签与自定义标签两种,而在上一章中我们分析了Spring中对默认标签的解析过程,相信大家一定已经有所感悟。那么,现在将开始新的里程,分析Spring中自定义标签的加载过程。同样,我们还是先再次回顾一下,当完成从配置文件到Document的转换并提取对应的root后,将开始了所有元素的解析,而在这

2020-11-16 16:18:05 89

原创 Spring源码解析第二天

二、默认标签的解析bean标签的解析及注册1、bean标签的解析及注册1.1、解析BeanDefinition1.创建用于属性承载的BeanDefinition2.解析各种属性3.解析子元素meta4.解析子元素lookup-method5.解析子元素replaced-method6.解析子元素constructor-arg8.解析子元素qualifierbean标签的解析及注册默认标签的解析是在parseDefaultElement函数中进行的,函数中的功能逻辑一目了然,分别对4种不同标签(impor

2020-11-16 15:23:46 126

原创 2020-11-13

11.12每日一题922. 按奇偶排序数组 II922. 按奇偶排序数组 II这道题非常简单,就是按照要求对数组进行排序,将偶数放到偶数位,奇数放到奇数位,下面给出两种方法,一种是利用了一个新的数组存放,另一中是在原数组之上利用双指针来做。class Solution { public int[] sortArrayByParityII(int[] A) { int len = A.length; int[] res = new int[len]; int i =

2020-11-13 08:46:55 57

原创 Spring源码解析第一天

一、容器的基本实现一级目录Spring的结构组成1.核心类介绍2.容器的基础XmlBeanFactory一级目录Spring完成的功能主要是以下三点:1.读取配置文件beanTest.xml.2.根据beanTest.xml中的配置找到对应的类的配置,并实例化3.调用实例化后的实例Spring的结构组成1.核心类介绍Spring中主要有两个核心类:1.DefaultListableBeanFactoryXmlBeanFactory继承自DefaultListableBeanFactory

2020-11-11 16:58:43 171 1

原创 2020-11-10

11.10每日一题31. 下一个排列31. 下一个排列题目是要求找出字典序中的下一个更大的排列,如果没有下一个排列,则数字应该是按照从大到小的顺序排列的,所以如果有的话一定是有一个“小数”拍到了“大数”前面,所以第一步就是从后往前找到第一个”小数“,然后将它和后面的第一个比他大的数交换,最后再将后面的数字进行排序就可以了。class Solution { public void nextPermutation(int[] nums) { if(nums.length == 0

2020-11-10 20:57:03 60

原创 2020-11-09

11.09每日一题973. 最接近原点的 K 个点973. 最接近原点的 K 个点这道题之前做过类似的,利用最小堆直接求解就可以了,下面附上代码。class Solution { public int[][] kClosest(int[][] points, int K) { if(points.length == 0 || points == null){ return new int[0][0]; } Queue<in

2020-11-09 20:45:36 48

原创 2020-11-08

11.08每日一题122. 买卖股票的最佳时机 II122. 买卖股票的最佳时机 II首先阅读题目得知可以做的动作有两个买或者卖,并且不能参与多笔交易,状态只可能是有1支股票或者没有股票,所以动态规划方程每一天有两个状态,每一天的状态从前一天转移有两种可能,如果当前没有股票(dp[i][0])说明前一天没有股票dp[i-1][0]或者前一天有股票但是今天卖掉了(dp[i-1][1]+price(i)),如果当前有股票(dp[i][1])说明前一天有股票(dp[i-1][1])或者前一天没有股票买进了股票

2020-11-08 11:11:17 91

原创 2020-11-07

11.07每日一题327. 区间和的个数327. 区间和的个数今天的解答没太看懂,比较早还没有比较简单的解答,等晚上或者明天再来补上吧,先写上最简单的双白暴力法class Solution { public int countRangeSum(int[] nums, int lower, int upper) { //双百暴力 int count = 0; for(int i =0; i < nums.length; i++){

2020-11-07 09:31:21 55

原创 2020-11-07

11.06每日一题1356. 根据数字二进制下 1 的数目排序1356. 根据数字二进制下 1 的数目排序这道题比较简单,写个函数计算一下每个数中含1的个人,然后重写sort函数判断大小就可以了。class Solution { int[] x = new int[10001]; public int[] sortByBits(int[] arr) { List<Integer> list = new ArrayList<>();

2020-11-07 08:27:49 53

原创 2020-11-05

11.05每日一题127. 单词接龙127. 单词接龙题目可以看作是从起点到终点,可以采用BFS的方法来解,同时,由于终点是已知的,可以用双向BFS来进行时间优化,如果直接建图,每一个单词需要和除他之外的单词进行比较,复杂度为O(n*wordLength),但是如果把单词都放到一个hash表中,那么复杂度就可以减到O(26 * wordLength),使用BFS需要两个辅助数据结构,一个是队列,存放当前层,一个是visited集合,存放遍历过的节点,防止死循环。class Solution {

2020-11-05 15:11:27 69

原创 2020-11-04

11.04每日一题57. 插入区间57. 插入区间这题挺简单的,不知道为什么属于困难题,首先分析一下特殊情况,有两种,插入的数组比第一个小,插入的数组比最后一个大,剩下的情况就是newinterval[0] > intervals[i][1],表明这些数在插入的前面,接下来的数newinterval[1] >= intervals[i][0] ,表明这些数需要合并起来,之后剩下的数再加到新数组之中就可以了。因为开始不知道新数组的长度所以使用ArrayList集合。使用一个全局变量i来统计遍历

2020-11-04 11:17:41 90

原创 2020-11-03

11.03每日一题941. 有效的山脉数组845. 数组中的最长山脉941. 有效的山脉数组这道题就比较简单了,只要从左开始找,找到第一个最大值,然后比较之后的值是不是都比他小就行了,当然也可以用双指针的方法,两边同时开始找,如果最后left==right就说明是同一个,这这题需要注意的就是边界值的问题,当最大值在起点和终点都是不行的!!还要注意的就是A的长度下面附上代码class Solution { public boolean validMountainArray(int[] A) {

2020-11-03 11:31:29 61

原创 2020-11-02

11.02每日一题349. 两个数组的交集349. 两个数组的交集要计算交集,就要遍历数据中的所有数,这时候想到昨天的每日一题,可以利用hash表保存数据,这样找到每一个数的时间都是O(1),同时从例子中可以看到重复的数只统计一次,可以想到利用HashSet来作为这次存储数据的结构,考虑完要使用的数组结构之后,剩下的就简单了,只需要遍历较小的那个,找到相同的数字取出来就可以了,下面附上代码:class Solution { public int[] intersection(int[] num

2020-11-02 09:21:40 52

原创 2020-11-01

11.1每日一题140. 单词拆分 II140. 单词拆分 II这道题是139题的拓展,所以先来解决139,139是判断字符串是否可以拆分成字典中的单词,可以想到使用动态规划的方法来解决这道题,设dp[i]是长度为i的字符串能否拆分成单词,那么将字符串i拆解成(0,j)和(j,i)如果这两个字符串都是在字典中出现的单词,那么组合后的i也是字典中的单词,因此转移方程为:dp[i] = dp[j] && wordDict.contains(s.substring(j, i)),当i = 0,

2020-11-01 16:12:48 64

原创 2020-10-31

10.31每日一题381. O(1) 时间插入、删除和获取随机元素 - 允许重复381. O(1) 时间插入、删除和获取随机元素 - 允许重复今天的每日一题没啥思路,直接参考的官网解,维护了一个List集合用来保存数,用来随机的取出数,同时借助一个hashMap用来删除数据,下面直接贴代码了。class RandomizedCollection { Map<Integer, Set<Integer>> idx; List<Integer> nums;

2020-10-31 09:49:39 68

原创 2020-10-30

10.30每日一题463. 岛屿的周长463. 岛屿的周长首先想到的是遍历每一个格子,这样就可以找出所有的陆地格子,接下来要做的就是统计这些陆地格子的周长,格子的周长通过观察可以看到当这个格子的边是边界或者临近的格子是海洋的时候就是周长了,这样找到了判别的条件就可以开始写代码了。class Solution { public int islandPerimeter(int[][] grid) { int x = grid.length; int y = grid

2020-10-30 11:04:59 58

原创 Hadoop学习

Hadoop 学习第三天一、实战HDFS二、HDFS的高可靠性机制第三天一、实战HDFSHDFS主要提供了HDFS Web UI、HDFS Shell命令和HDFS API三种类型接口。1.使用HDFS Web UI:在浏览器输入NameNodeIP:50070就可以查看到HDFS文件系统的相关信息了。2.使用HDFS Shell命令:使用Shell命令可以对HDFS进行操作,完成文件的上传,下载,复制,查看等等操作。命令统一入口为hadoop3.使用HDFS Java API:HDFS提

2020-10-30 09:12:23 139

原创 Hadoop学习

Hadoop学习第二天一、第一个MapReduce程序二、分布式文件系统HDFS2.1 HDFS简介2.2 HDFS体系架构2.3 HDfS文件存储机制2.4 HDFS数据读取过程2.5 HDFS数据写入过程第二天一、第一个MapReduce程序本次实例使用hadoop自带的MapReduce程序WordCount,WordCount的主要功能是统计输入目录下所有文件单词出现的次数,并把统计结果输出到指定目录下。1.在hdfs根目录下创建目录InputDataTesthdfs dfs -mkdir

2020-10-28 16:39:51 407

原创 2020-10-28

远程访问docker服务笔者为了测试远程访问docker中的服务,所以有了以下实验。首先介绍一下测试环境,笔者简单的做了一个web项目部署在了服务器端,然后通过个人笔记本成功的调用到了服务器端的功能。首先介绍Tomcat原理,将封装好的war包放入Tomcat的webapps下,在运行Tomcat时会自动解压wab包,将其发布成为一个web项目。然后介绍web服务端的编写,这里采用的是springboot框架,首先...

2020-10-28 09:37:56 57

原创 Hadoop学习

这里写目录标题Hadoop学习一、Hadoop部署Hadoop学习一、Hadoop部署Hadoop是适合分布式存储和分布式计算的平台,主要由分布式文件系统HDFS,统一资源管理和调度框架YARN以及分布式计算框架MapReduce组成。笔者使用如下版本测试完成,初学者可以下载相应版本(JDK13,Hadoop2.8.5,hive2.3.7,scala2.11.12)在官网上可以下载到相应的版本。1.首先配置jdk环境,这个就不说了。2.然后解压Hadoop,hive,scala我这里都解压到了/

2020-10-27 16:34:11 80

空空如也

空空如也

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

TA关注的人

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