自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sherlock的博客

学习过程当中的备忘录

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 ./ ../ /三种路径的区别

./表示当前目录../表示当前目录的上一级父级目录/表示根目录

2021-04-09 15:29:39 372

原创 《天勤数据结构》笔记——使用两个栈实现共享栈实现(C/C++)

共享栈为空的状态,左右两栈的栈顶指针都在两端,也就是各自栈的栈底代码当中测试栈满的时候的状态图共享栈的数据结构typedef struct{ int elem[maxSize]; int top[2];}SqStack;入共享栈的操作,因为共享栈是由两个栈组成的,因此我们在入栈的时候需要选择入栈的编号,也就是stNo,同时要注意栈满的特殊情况int push(SqStack &st, int stNo, int x){ if (st.top[0...

2021-03-31 01:08:02 412

原创 《天勤数据结构》笔记——假溢出和循环队列基本操作的实现(C/C++)

一、假溢出当元素被插入到数组中下标最大的位置上之后,队列的空间就用尽了,尽管此时数组的低端还有空闲空间,这样的情况被称为假溢出。这里给出天勤数据结构当中的概念解释解决这个问题的方案就是使用循环队列二、循环队列#define maxSize 5typedef struct{ int data[maxSize]; int front; int rear;}Queue;//初始化循环队列void initQueue(Queue &qu){ q.

2021-03-22 01:26:16 973

原创 《天勤数据结构》笔记——顺序栈和链栈及其代码实现(C/C++)

一、顺序栈#include <stdio.h>#define maxSize 100typedef struct{ int data[maxSize]; int top;}SqStack;//&是运用了C++的引用参数//初始化栈,将栈顶指针置为-1void initStack(SqStack &st){ st.top=-1;}//栈为空时返回1,否则返回0int isEmpty(SqStack st){ if (st.to...

2021-03-21 20:48:06 597 2

原创 《天勤数据结构》笔记——只允许使用一个变量i找出一个数组当中的最小值,数组当中的每个数都是个位正整数,且个数总量小于N(N<=9))

看《天勤数据结构》看到一个有意思的题目一般正常人的想法是利用一个i变量遍历整个数组,然后使用一个中间变量min来找出最小值#include <iostream>using namespace std;void searchMin(int a[], int n, int &min){ //min用来保存最小值, n用来存储数组a的长度 for (int i=0; i<n; i++){ if (a[i]<min){ min=a[i]; }

2021-03-19 20:52:16 185

原创 HashMap、TreeMap、ConcurrentMap、HashTable笔记(会不断更新)

Map集合类 key value HashMap 允许为null 允许为null TreeMap 不允许为null 允许为null ConcurrentMap 不允许为null 不允许为null HashTable 不允许为null 不允许为null

2021-03-07 14:49:49 104

原创 【面试题】Java ClassLoader(Java类加载器)

1.什么是类加载器?类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一个类就不会被再次载入了,实现这个动作的代码模块称为“类加载器”。2.有哪些类加载器,分别加载哪些类?根类加载器(Bootstrap ClassLoader):它用来加载 Java 的核心类,是用原生代码来实现的,并不继承自 java.lang.ClassLoader(负责加载$JAVA_HOME中jre/lib/rt.jar里所有的clas...

2021-03-06 23:23:53 459 1

原创 【面试题】Java当中==和equals的区别

==: 它的作用是判断两个对象的地址是不是相等。即判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。equals(): 它的作用也是判断两个对象是否相等,它不能用于比较基本数据类型的变量。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类。equals()...

2021-03-05 21:51:02 194 2

原创 NoSQL入门和概述-入门概述

1、为什么用NoSQL?以及数据库的发展1.1、单机MySQL在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,主要有三种数据存储的瓶颈:1.数据量的总大小 一个机器放不下时2.数据的索引(B+ Tree)一个机器的内存放不下时3.访问量(读写混合)一个实例不能承受1.2、Memcached(缓存)+MySQL+垂直拆分后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开.

2021-03-05 17:05:02 137 2

原创 Java内部类

1.为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响1.1.使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:(1)、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独。(2)、在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。(3)、创建内部类对象的时刻并不依赖于外围类对象的创建

2021-03-04 17:46:49 77 1

原创 IntelliJ IDEA快速给选中的内容添加双引号或单引号

假如我们需要快速给下方的字符串添加双引号或者单引号只需要打开Settings,将下图所示选项勾选即可使用快捷键勾选完成之后只需要选中需要添加单引号的字符串,然后按下'即可快速添加如果需要添加双引号则只需要按下shift+'...

2021-02-20 18:49:42 9654

原创 IntelliJ IDEA快速在maven项目中的pom.xml当中添加依赖

在要添加依赖的位置使用快捷键alt+insert键,就可以快速添加依赖第一个功能是可以让我们直接进行模块名的搜索,然后进行添加而这个Dependency Template能帮助我们直接在xml当中生成相应的标签我们需要自己将相应的信息补充完整...

2021-02-16 17:44:37 2610 1

原创 《Go语言实战》读书笔记——并发与并行

操作系统会在物理处理器上调度线程来运行,而Go语言的运行会在逻辑处理器上调度goroutine。每个逻辑处理器都分别绑定到单个操作系统线程。在1.5版本上,Go语言的运行时默认会为每个可用的物理处理器分配一个逻辑处理器。在1.5版本之前的版本中,默认给整个应用程序只分配一个逻辑处理器。如果创建一个goroutine,这个goroutine就会被放到调度器的全局运行队列当中。之后,调度器就将这些队列中的goroutine分配给一个逻辑处理器,并放到这个逻辑器对应的本地运行队列中。本地运行队列中的gorou

2021-01-13 16:14:35 113

原创 《Go语言实战》读书笔记——公开或未公开的标识符

一、包里未公开的标识符Go语言支持从包里公开或者隐藏标识符。通过这个功能,让用户能按照自己的规则控制标识符的可见性。这个就类似于Java当中的权限修饰符private、public,只是golang当中是使用对变量名首字母大小写来控制其的可访问性。package counterstype alertCounter intpackage mainimport ( "fmt" "counters")// main 是应用程序的入口func main() { //..

2021-01-13 00:38:35 135 2

原创 VSCode使用技巧——快捷操作选择列

1、用鼠标滚轮按住进行选择2、Alt+Shift+左键进行选择(注意代码栏里面的插入光标会成为选择区域的锚点)

2021-01-12 16:57:10 3126

原创 《Go语言实战》读书笔记——数组的内部实现和基础功能

4.1.1 内部实现在 Go 语言里,数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连 续块。数组存储的类型可以是内置类型,如整型或者字符串,也可以是某种结构类型。4.1.2 声明和初始化声明数组时需要指定内部存储的数据的类型,以及需要存储的元素的数量,这个数量也称为数组的长度。// 声明一个包含 5 个元素的整型数组var array [5]int一旦声明,数组里存储的数据类型和数组长度就都不能改变。如果需要存储更多的元素, 就需要先创建一个更长的数组,再把原来数

2021-01-10 16:37:58 112

原创 《Go语言实战》读书笔记——关于Go语言的介绍

目录1.1 用Go解决现代编程难题1.1.1 开发速度1.1.2 并发1.goroutine2.通道1.1.3 Go语言的类型系统1.类型简单2.Go 接口对一组行为建模1.1.4 内存管理1.2 小结1.1 用Go解决现代编程难题C 和 C++这类语言提供了很快的执行速度,而 Ruby 和 Python 这类语言则擅长快速开发。 Go 语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。1.1.1 开发速度编译 G...

2021-01-09 17:05:13 194

原创 Golang使用协程通过Socket实现客户端向服务端发送数据,服务端接收数据

服务端代码:package mainimport( "fmt" "net")func process(conn net.Conn) { //延迟关闭目前连接 defer conn.Close() for{ buf:=make([]byte, 1024) fmt.Printf("服务器在等待客户端%s 发送信息\n", conn.RemoteAddr().String()) n, err:=conn.Read(buf)

2021-01-08 15:17:15 1619 1

原创 Golang对全局变量加锁同步解决资源访问共享问题——使用Go协程来同时并发计算多个数字(1-200)的阶乘

使用Go协程来同时并发计算多个数字(1-200)的阶乘,然后存储在数组当中package mainimport ( "fmt" "time")var( myMap = make(map[int]int, 10))func test(n int){ res:=1 for i:=1; i<=n; i++{ res*=i } myMap[n]=res}func main(){ for i:=1; i<=200; i++{ go test(i) }.

2021-01-06 15:42:14 1133

原创 VSCode使用技巧——Ctrl+鼠标滚轮键使字体进行缩放

VSCode左下角的齿轮,进入设置进入Extensions——》JSON——》Edit in settings.json在json当中添加如下:"editor.mouseWheelZoom": true,

2021-01-06 14:43:08 1694 1

原创 CMake Error at CMakeLists.txt:2 (project): project PROJECT called with incorrect number of argumen

CLion编译器的项目名不能使用中文,换回英文项目名即可

2020-06-03 23:39:05 5118

原创 【面试题】String类、包装类的不可变性

不可变类的意思是创建该类的实例后,该实例的实例变量是不可改变的。Java提供的8个包装类和String类都是不可变类。因此String和8个包装类都具有不可变性。就拿String类来说,通过阅读String类的源码我们可以发现其实整个String类是被final所修饰,而其用来存储值的底层实际上是一个私有final类型的字符数组,因此在JVM运行的时候是把“hello”当成常量存储在运行...

2020-05-06 18:37:42 974 1

原创 【面试题】Java类初始化和实例初始化的顺序

一、类初始化1、一个类要创建实例需要先加载并初始化该类(1)main方法所在的类需要先加载和初始化2、一个子类要初始化需要先初始化父类3、一个类初始化就是执行<clinit>()方法(1)<clinit>()方法由静态类变量显示赋值代码和静态代码块组成(2)...

2020-05-04 14:51:22 297 1

原创 【面试题】Java单例设计模式-饿汉式枚举(enum)单例

一、enum关键字enum关键字是在Java1.5也就是Java SE5之后引入的一个新特性:它通过关键字enum来定义一个枚举类,这个被定义的枚举类继承Enum类,这个枚举类算是一种特殊类,它同样能像其他普通类一样拥有构造器、方法,也能够实现接口,但是它不能再继承其他别的类,因为它的直接父类是Enum类。在枚举类出现之前Java是将常量放在接口或是放在普通类当中,然后使用public、s...

2020-04-29 14:42:04 673

原创 【面试题】从JVM的角度去理解i++和++i

public class Main { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i*i++; System.out.println("i="+i); System.out.print...

2020-04-28 17:17:51 425

原创 使用Idea当中的快捷键快速查看继承关系或其图表的两种方法

一、Idea当中有两种方法可以查看继承关系在Idea当中选中一个类,然后按Ctrl+H,可以快速查看当前所选类的继承关系,如下图: 同样选中一个类,按CTRL+ALT+U,即可生成当前类的继承关系图,如下图:二、二者的区别上述两种方法都能帮我们快速查看类之间的层次关系。第一种方法:能帮我们进行筛选,如上图所示一排按钮,从左往右分别是看当前类的父类和子类、查看当前类的父类、查看当...

2020-04-27 21:38:23 8863

原创 Idea上tomcat部署细节

一、On Update action:(1)Update resources:更新项目变更的.jsp,.xml文件等资源文件,而不会更新源码文件;(仅修改项目的JS文件、JSP文件、CSS文件推荐使用这个)(2)Update classes and resources:更新发生变更的Java文件和资源文件;(仅修改项目的JS文件、JSP文件、CSS文件推荐使用这个)(3)Redep...

2020-04-26 12:32:43 215

基于SSM实现CRUD源码

基于Maven+SpringMVC+Spring+MyBatis+Bootstrap的CRUD项目 除过对框架组合的基本使用外,还涉及到许多的开发细节: Bootstrap搭建页面,MyBatis逆向工程使用,Rest风格的URI, @ResponseBody注解完成AJAX,AJAX发送PUT请求的问题,jQuery前端校验等

2020-04-29

空空如也

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

TA关注的人

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