自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 java学习路线

java基础java基础jdbc连接数据库的视频这个也可以等到学完数据库在学, 但是下面视频javaweb可能要用, 自己斟酌吧javawebjavaweb后续的学习路线在这这个里面的spring cloud可以先不用学, 后续知识都学的差不多了在学。计算机网络(非常重要)后续专业应该都会学 如果不学一定要自学, 可以搜看王道的或者清华大学的计算机操作系统(非常重要)后续专业应该都会学 如果不学一定要自学, 可以搜看王道的...

2021-09-12 15:39:37 902

原创 StringTable——jvm(六)

StringString的基本特性String的基本特性String: 字符串,使用一对 “”"引起来string s1 = “” //字面量定义方式String s2 = new String(); // new一个方法String不可被继承在jdk1.8版本之前 是char型数组在jdk1.9改为了byte动机一个char占两个字节又发现我们堆空间的大部分组成都是string, 而都是一个byte就可以存储了, 如果字符集是ISO用一个, 如果是utf-8就还是2个字节

2021-08-09 18:05:58 116

原创 mysql高级(尚硅谷周阳)

mysql高级mysql的架构分析mysql的架构分析mysql 高级(包括) (很多公司的mysql的优化有专门的DBA)Mysql高级sql优化攻城狮mysql服务器的优化各种参数常量的设定查询语句优化主从复制软硬件升级容灾备份sql编程这里注意视频那个启动mysql老了应该用 service mysqld startmysql逻辑架构mysql支持多种存储引擎与其他数据库相比, mysql有点与众不同, 他的架构可以在多种不同场景中应用并发挥良好的作用, 主要体

2021-08-08 16:45:55 935

原创 执行引擎-JVM(五)

执行引擎概述java代码编译和执行过程机器码、指令、汇编解释器JIT编译器概述整个结构的下层, 执行引擎是java虚拟机核心之一虚拟机的执行引擎则是由软件自行实现的,能够执行那些不被硬件直接支持的指令集格式。jvm的主要任务就是负责装载字节码到其内部, 进行解释运行。如果要想让一个java程序允许起来, 执行引擎的任务就是将字节码指令解释或者编译为对应的平台上的本地机器指令才可以。翻译成机器语言。java代码编译和执行过程执行过程橙色的部分是javac前端编译器做的绿色部分是半解释型

2021-08-08 07:56:47 100

原创 直接内存JVM

直接内存概述概述不是虚拟机运行时数据区的一部分, 也不是虚拟机规范中定义的内存区域。直接内存是再java堆外的、直接向系统申请的内存空间。来源于NIO, 通过存在堆中的DirectByteBuffer操作Native内存。通常, 访问直接内存的速度会优于java堆。 即读写性能高。出于性能考虑, 读写频繁的场合可能会考虑使用直接内存。java 的NIO库允许java程序使用直接内u才能, 用于数据缓冲区。有了NIO时, 操作系统划出的直接缓存区, 可以被java代码直接访问, 只有一份,

2021-08-05 17:49:46 68

原创 对象的实例化内存布局与访问定位-jvm(四)

对象的实例化对象的实例化对象的创建方式对象创建的步骤对象的内存布局对象头实例数据对齐填充对象访问定位对象的实例化这部分大厂面试的时候也经常问这些东西。比如对象的创建方式new最常见的方式变形构造器被私有化, 有一个返回对象的静态方法变形2:xxxBuilder/xxxFactorclass的newInstance()方法:反射的方式, 只能调用空参构造器, 权限必须时publicConstructor的newInstance(xx):反射的方式, 可以调用空参、带参的构造器, 权限没有

2021-08-04 18:45:05 104

原创 运行时数据区(四)之方法区(三)

方法区栈、堆、方法区的配合方法区Hotspot中方法区的演进设置方法区大小和OOM栈、堆、方法区的配合从线程共享与否的角度来看方法区方法区在逻辑上属于堆的一部分, 但是一些简单的实现可能不会选择区进行垃圾收集或者进行压缩。 但对于HotSpotJVM而言, 方法区还有一个别名叫做非堆, 目的就是要和堆分开所以, 方法区看作是一块独立于java堆的内存空间方法区和堆一样, 是各个线程共享的内存区域方法区在jvm启动的时候创建, 实际物理内存可以是不连续的方法区的大小,可以固定也可拓展

2021-08-04 17:21:23 60

原创 leetcode581. 最短无序连续子数组

题目:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。样例:还是大家都先思考一下这道题的做法 , 当然大家肯定会非常快的想到一个Onlog(n)的做法, 但是大家试着想想能不能优化成O(n)的, 提示有两种做法第一单调栈(不是O(n)的), 第二双指针(最好的做法)先说好理解的单调栈维护的是一个单调递增的栈栈顶永远是前面数组的最大值的下标。如果当前元素大

2021-08-03 21:01:25 82

原创 运行时数据区(三)之堆(三)

堆概述堆的内存细分对空间大小的设置OOM概述一个jvm实例只存在一个堆内存, 堆也是java内存管理的核心区域。java堆区再jvm启动的时候被创建, 其空间的大小也确定了, 是jvm管理最大的一块内存空间。堆内存的大小是可以调节的。再运行之前设置~Xms10m ~Xmx10m 初始堆的大小为10MB 最大10mb堆可以处于物理上不连续的内存空间 但在逻辑上它应该是连续的所有线程共享java堆, 在这里还可以划分线程私有的缓冲区(TLAB)java虚拟机规范 中队java堆的描述是: 所有(

2021-08-02 17:28:09 74

原创 操作系统重要的知识点(操作系统面试知识点)

文章目录什么是操作系统操作系统的功能操作系统的特征操作系统的运行机制中断的分类系统调用进程和线程进程的特征进程有哪几种状态?线程有几种状态?进程间的通信的几种方式线程同步的方式什么是死锁?死锁产生的条件?死锁预防死锁避免的基本思想死锁解除请求分页的分页和分段有什么区别(内存管理)?操作系统中进程调度策略有哪几种?进程同步与互斥进程同步有哪几种机制:线程同步的方式什么是虚拟内存?颠簸局部性原理中断和轮询一些算法总结什么是操作系统是控制和管理整个计算机系统的硬件和硬件资源, 是计算机的基石它也是一个运行

2021-08-02 14:45:49 454

原创 JUC基础笔记(尚硅谷周阳JUC的笔记)

JUC概述卖票Lambda表达式概述juc就是 java.util.concurrent包的首字母下面又分 并发包、 atomic 和 locks 包也就是所谓的并发工具类进程: 是程序的一次执行,拥有独立资源的单位线程:轻量级线程,共享进程中的内存资源 ,程序调度和分配的基本单位, 更好的使程序并发的执行并发: 是在程序在宏观上是并行, 实则是交替的执行并行: 两个程序一起执行,同步执行。在高内聚低耦合的前端下: 多线程编程的企业级套路 + 模板:* 线程 操作(对外暴露的调用方

2021-08-02 11:12:40 1817

原创 剑指 Offer 14- I. 剪绳子

题目

2021-07-30 13:19:09 57

原创 运行时数据区(二)之虚拟机栈 jvm(三)

虚拟机栈概述栈中可能出现的异常栈的存储单元栈帧的内部结构概述栈是运行时的单元堆是存储的基本单位,栈是解决程序的运行问题, 即程序如何执行或者如何处理数据。 堆解决的是数据存储的问题。对象放在堆, 基本数据类型、引用对象的地址放在栈。每一个线程在创建的时候都会创建一个栈,其内部保存一个个的栈帧,对应着一次次的java方法调用,是线程私有的生命周期和线程一致作用: 主管java程序的运行, 保存方法的局部变量(8种基本数据类, 对象的引用地址)、部分结果,并参与方法的调用和返回。栈是一种快速有效

2021-07-29 18:54:43 90

原创 863. 二叉树中所有距离为 K 的结点

题目给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。样例:提示:还是老样子, 先想这道题利用以下距离目标值的距离是k的节点, 是他的字节点好说, 直接遍历就好了, 但是它的父节点怎么统计。思路: 首先它的父节点肯定还有右子节点或者还有父节点, 如何从当前节点得到父节点, 那么就用parents先记录以下每个节点的父节点, 遍历的时候从target开始遍

2021-07-28 20:43:02 80

原创 剑指 Offer 11. 旋转数组的最小数字

题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。样例:大家先自己思考一下, 他这个是把一个上升的数组, 后面的一部分换到了后面相信大家肯定能想到这个O(n)的算法思路 :因为他是把一部分小的放到上升数列的后面那么遍历数组出现下降的地方一定是最小的值代码class Solution {public:

2021-07-25 20:04:33 48

原创 运行时数据区(一) jvm(三)

文章目录概述:线程程序计数器总结概述:内存是非常重要的资源, 承载着操作系统和应用程序的实时运行。jvm内存布局规定了java在运行过程中内存的申请、分配、管理的策略, 保证jvm的高效运行。还是这个图(一定要记住)元数据区(就是就是jdk1.7的永久代)一个进程拥有一个堆和方法区(jdk1.8:堆外空间或元数据区)一个线程都拥有一份虚拟机栈、程序计数器、本地方法栈(c语言编写的) (共用堆和方法区)jdk 1.8线程分为守护线程和普通线程线程是程序调度和运行的基本单元, jvm支

2021-07-25 18:06:22 77

原创 类加载子系统 jvm(二)

文章目录内存结构内存结构还是那张熟悉的图只不过更加详细本章主要讲述 最上边一部分类加载器的作用:类加载器负责加载class文件 , class文件开头有特殊的标识classLoader只负责class文件的加载, 是否能够运行又ExecutionEngine决定加载类的信息(元数据的模板)放在方法区, 除了类的信息外, 方法区还会存放运行时常量池的信喜。我们可以根据这个文件实例化出n个一模一样的实例。类的加载过程在链接那部分包括...

2021-07-24 18:14:34 105

原创 剑指 Offer 09. 用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )样例:还是老样子, 大家先思考想一下栈和队列的性质。就大概知道知道怎么做了思路:栈是先进后出的数据结构, 队列是先进先出的性质很容易想到两个栈就可以实现 一个先进先出的性质这道题 他没有考虑栈的大小所以不需要考虑那么多 栈一 q1 栈二 q2首先 从q

2021-07-24 13:44:03 42

原创 剑指 Offer 07. 重建二叉树(前序遍历和后续遍历确定二叉树)

题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。样例:还是老样子想自己思考一下, 想一想前序遍历和后序遍历的关系如果搞清这个后面就好搞, 另外会了这道题那么知道后序遍历和中序遍历建二叉树, 一样的道理, 可以试着写一些。思路:我们来想先序遍历是不是根每次最先被遍历, 那面先序遍历的结果的第一个永远是本颗树的根节点,中序遍历呢, 他根节点是 在遍历完左子树 之后遍历根在遍历右子树, 那么知道根的

2021-07-23 20:45:53 56

原创 剑指 Offer 04. 二维数组中的查找

题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数据范围还是老样子大家先思考本问题!我们来想这道题的关键点 它的每一行是递增的, 每一列是递增的, 并且这道题的意思是让找是否有与目标值相同的值很容易想到log(n)的二分, 没错这道题最好的方法就是二分, 但是这个二分有点扩展思路: 我们从右上角开始二分 找两个指针一个是行row =

2021-07-22 20:44:08 50

原创 jvm与java体系结构(概述)

文章目录前言参考书籍jvm的整体结构以下为暂时的笔记前言我们的应用程序的架构一般都是这样 可以看出jvm是最底层很多人只注重如何使用框架去搭建我们的应用程序,而不关注我们的java底层的。其实这个思想是错的,要想为什么我们的项目上线会挂, 当他出现这种情况的时候我们应该怎么解决, 而不是作为一个只会选择默认值, 出错也只会傻看着等待别人救助的小白鼠,我们如果想做个掌握雷电的人就开始着手学习jvm把!我们在这思考两个问题 希望学完jvm能够解决应该如何让我的系统更快?如何避免系统出现瓶颈?

2021-07-22 17:34:41 187 2

原创 剑指 Offer 52. 两个链表的第一个公共节点

题目:输入两个链表,找出它们的第一个公共节点。对于第一个样例 A和B的第一个公共节点是c1这里澄清以下什么叫公共节点并不是所谓的值相同就行了而是后面的节点都相同。第二个样例一样请大家仔细想一下这个怎么才能做到时间O(n) 空间O(1)的做法?先不要看下边的题解,没有思考这道题的印象就不会深!!!!相信大家看到这里肯定经过了仔细思考了?不知道大家做出来没有我刚开始的没想到我也想了倒着来遍历发觉不可行就放弃了看题解了不得不说刚开始没有想到一看leetcode那个官方题解不够仔细

2021-07-21 21:18:38 75

原创 双指针求和

题目:这道题是对另一道经典的双指针求目标和的拓展那道题的描述是给个目标值 如何在一个有序的数组中求出两个数相加等于目标值。而对于这道题来说其实也是首先 先将序列进行排序如果最后一个数大于0一定不会存在其次 将第一个数从左边定下 这个数一定是小于0的在这个数的右边找到 两个数的目标是 -first的值 哪这三个数即为所求class Solution {public: vector<vector<int>> threeSum(vector<i

2021-07-15 20:03:34 195

原创 linux常用命令

编辑文本vi/vimvim和 vi 他们的语法几乎是一致的而vim关键字颜色显示常用的指令: - 有三种模式: + 一般模式 + 编辑模式 按 a/insert/g进入 esc键退出。 本模式下才能修改 + 命令模式 :或者 / 这两个键进入 - 在命令模式下 + wq 保存当前文本 + q 退出 + q! 不保存并强制退出 + set nu 显示

2021-07-15 16:46:06 162

原创 数据结构课程设计(hash处理冲突的应用(QQ管理系统))

// design.cpp : 定义控制台应用程序的入口点。// 包括hash函数的设计, 开放寻址法, 拉链法, 再hash法#include "stdafx.h"#include "iostream"#include "string"#include "cstdlib"#include "cstdio"#include <ctime>using namespace std;const int P = 131; //字符串hash的基数//本系统可以选择两

2021-06-21 10:10:09 198 1

原创 最长上升子序列 +优化

最长上升子序列 + 优化#include “iostream”using namespace std;const int N = 1010;char a[N], b[N];int f[N][N];int main(){int n, m;cin >> n >>m;cin >> a + 1 >> b + 1;for(int i = 1; i <= n; i ++){ for(int j = 1; j <= m; j ++

2021-05-30 20:55:57 133

原创 最长公共子序列

最长公共子序列

2021-05-30 20:50:31 46

原创 springMvc dispatcherServlet中比较重要的几个方法(概览)

仅供参考后续更新1、获得处理器handler比对我们写的controller看那个url与请求url一致mappedHandler = this.getHandler(processedRequest);//内部方法是一个for循环进行比对@Nullable protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { if (this.handlerMap

2021-05-22 16:04:45 168

原创 数据结构实验(哈夫曼编码实验进行压缩文件和解压文件)

实验二目的要求:掌握赫夫曼树和赫夫曼编码的基本思想和算法的程序实现。实验内容:实现文件中数据的加解密与压缩:将硬盘上的一个文本文件进行加密,比较加密文件和原始文件的大小差别;对加密文件进行解密,比较原始文件和解码文件的内容是否一致。实验说明:1.输入和输出:(1)输入:硬盘上给定的原始文件及文件路径。(2)输出: 硬盘上的加密文件及文件路径; 硬盘上的解码文件及文件路径; 原始文件和解码文件的比对结果。2.实验要求: 提取原始文件中的数据(包括中文、英文或其他字符),根据

2021-05-11 14:19:59 1647

原创 第十二届蓝桥杯B组题目及题解

== 蓝桥杯B组(java 或者C)==填空题前两道填空题就不说了这道题大多数人应该都是卡到了精度问题 double比较大小小于一定的精度我们就认为已经相等了直接上代码#include <iostream>#include <cstring>#include <algorithm>#include "cmath"using namespace std;typedef pair<double, double> PII;PII l[

2021-05-04 15:42:07 2753 2

原创 整型邻接表的数组表示

拓扑排序邻接表的表示 可以用数组来简单的模拟整型单链表,以此来节省空间int h[N]; //储存节点int ne[M]; //储存下一个节点值 //存的值是 对应在 e数组中的下标int e[M]; //储存邻接节点值int cnt=0; //储存对应在e放到第几个了int d[N]; //存储每一个节点的入度int top[N]; //记录拓扑的顺序void add(int a,int b){ //一条边的两个顶点e[c

2021-02-23 17:51:33 93

原创 最长连续不重复子序列

双指针做法给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤100000输入样例:51 2 2 3 5输出样例:3#include "iostream"using namespace std;const int N=1e5+10;int n,a[N],h[

2021-02-09 08:29:43 103

原创 快速幂

快速幂首先了解一个例子:3的9次幂如何写出来?9的二进制为:1001他就等于1乘以2的0次幂 加上 0乘以2的1次幂 加上 0乘以2的2次幂 加上 1乘以2的3次幂利用相同底数幂的乘积为指数相加 所以 3的9次幂 就等于 3的1次幂 * 03的2次幂 * 03的4次幂 * 1*3的8次幂 注意每次称的刚好是前面的 平方 前面的0或者1取决与b每次右移一位的二进制的末位 为多少 b&1代码:#include "iostream"using namespace std;

2021-02-04 09:49:21 63

原创 广搜处理最短路径

广搜求最短路径(BFS)BFS先把初始状态入队,然后进入循环,弹出队头拓展队头的子节点( 判个重) ,然后压入队尾阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字

2021-02-03 11:03:39 655

原创 离散化处理

离散化处理问题 ***这个问题是用来处理由于数据非常大但是用到的区间却非常小导致空间的浪费。 例如:***假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。接下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间 [l, r]之间的所有数的和。输入格式:第一行包含两个整数n和m。接下来 n 行,每行包含两个整数x和c。再接下里 m 行,每行包含两个整数l和r。输出格式:共m行,每行输出一

2021-01-29 19:21:10 166

尚硅谷的springmvc项目

尚硅谷的springmvc项目

2021-03-24

空空如也

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

TA关注的人

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