自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简析JVM内存结构

本篇笔记不定期更新内存结构图先上图这张图差不多就把JVM的内存结构以及和class源文件,JVM执行引擎,以及操作系统自带的本地方法接口之间的关系囊括进去了。下面我们就JVM内存结构的几个组成部分来逐一简单介绍一下1. 程序计数器1.1 定义Program Counter Register 程序计数器(寄存器)1.2 作用在执行当前指令时,记住下一条JVM指令的执行地址,所以PCR也被称为寄存器,在物理上通过CPU寄存器实现在多线程程序中起到一个记录上下文的作用,方便切换线程时可以继

2021-08-06 15:36:33 204

原创 剑指 Offer 03. 数组中重复的数字的4种解法(Java语言)

题目详情找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3解法一:暴力法,双层循环直接进行两层循环,对每个数字都逐一比较,空间复杂度O(1),时间复杂度O(n^2),总的来说是下下策,执行用时吓死人Java代码public int findRepeatNum

2021-07-24 10:41:28 1393

原创 MySQL优化

MySQL优化Sql慢的原因查询语句写的烂索引失效:单值索引:在user表中给name属性建个索引,create index idx_user_name on user(name)复合索引:在user表中给name、email属性建个索引,create index idx_user_nameEmail on user(name,email)关联查询太多join(设计缺陷或不得已的需求)服务器调优及各个参数设置(缓冲、线程数等)SQL语句执行顺序手写顺序:M

2021-03-08 18:55:25 160

原创 MySql基础笔记

本笔记首发于我的个人博客:http://saw96x.ltd/blog/16,欢迎访问哦。MySql基础笔记笔记目录一、初始MySQL 二、DQL语言 三、DML语言 四、DDL语言 五、数据库事务 六、视图 七、存储过程八、函数 九、流程控制结构 初始MySqlMySQL服务

2021-01-24 09:24:05 95

原创 Springboot的自动装配原理浅析

最近在学习Springboot,不少文章和视频在完成了第一个快速入门的项目之后就直接进入了Springboot运行的原理部分

2020-09-29 16:39:38 157

原创 Spring原始注解以及新注解使用介绍

1 Spring原始注解Spring原始注解主要是替代applicationContext中bean标签的配置注解说明@Component使用在类上用于实例化Bean@Controller使用在web层类上用于实例化Bean@Service使用在service层类上用于实例化Bean@Repository使用在dao层类上用于实例化Bean@Autowired使用在字段上用于根据类型依赖注入@Qualifier结合@Autowired一起使用

2020-09-16 20:26:53 220

原创 idea 2020.1 maven项目中run和debug按钮为灰色无法运行的原因

idea版本为2020.1 jdk版本13,使用的是maven生成的webapp模板。网上说的原因大多是插件冲突和idea的版本问题,均没有解决我的问题,然后检查依赖发现大概率是依赖冲突了 com.alibaba druid 1.1.10 c3p0 c3p0 0.9.1.2 这两个数据库连接池存在冲突,删除其中一个就可以解决无法运行的问题了...

2020-09-08 22:06:05 2495

转载 控制反转与依赖注入的简明解释

控制反转今天开始学习spring,看到一个对控制反转比较通俗易懂的解释。

2020-09-07 21:44:25 87

原创 ArrayList(int initialCapacity) 初始化容量问题

今天看了ArrayList源码,发现了一个不大不小的问题:public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTD

2020-06-03 19:15:56 3026

原创 带基本图形界面的c++贪吃蛇

比较早的代码了,属于典型的为了面向对象而面向对象的代码。。。运行环境VS2019,图形由easyx库实现:https://easyx.cn/。已经在注释中写出了出现的eaysx库函数的基本作用,详情请查阅文档https://docs.easyx.cn/zh-cn/intro成品基本游戏框架搭建main函数:#include "Snake.h"using namespace std;int main(){ Snake my_snake; my_snake.startup(); wh

2020-06-02 20:18:04 2543 1

原创 Java集合类学习笔记5------------HashSet的原理

Hashset集合的底层数据结构使用了哈希表结构,有数组和链表或者是数组和红黑树组成。HashSet的原理对于HashSet中的每个元素,都会通过类的hashCode方法生成哈希值,将每个元素按照哈希值分配到数组中,每个hash值对应数组中的一个元素。如果两个元素的hash值相同了,这就是出现了哈希冲突,这时会调用类的equals方法,判断在和已经存在的元素是否相等,如果相等,这个元素将不会被添加到集合中,如果不相等,它会以链表的形式挂在已经存在的元素之下。HashSet查询快的原因就是综合了数组

2020-06-01 20:58:25 132

原创 Java集合类学习笔记4-------List接口下的集合

List接口下比较常用的实现类有3个,ArrayList,LinkedList,Vector。ArrayList集合ArrayList集合基本就是带索引的Collection方法,因此在这里不再赘述。它的底层实现是数组,我们查看源码发现,ArrayList用来改变数组的大小和其中元素的方法是在长度需要扩增或缩减(可能有太多的未使用空间浪费)时以及数组中的元素发生改变时,将原数组复制到另一个数组上,然后通过垃圾回收清除原数组。这种实现虽然满足了基本需求,但速度也很慢。ArrayList集合的优势在于

2020-05-28 09:29:06 111

原创 Java集合类学习笔记3------------迭代器

在笔记1中提到,Collection和Set类没有通过索引来获取元素中的方法,无法进行遍历和迭代的相关操作,因此Java引入了迭代器。Iterator接口介绍Iterator接口的主要作用就是对元素实现迭代操作,其中有3个方法:boolean hasNext();E next();void remove();主要使用的都是前两个方法,第三个方法使用较少,自己实现时也是可选实现。hasNext方法用来判断是否存在下一个元素,如果存在下一个元素,返回true,否则返回falsenext方法用

2020-05-26 12:39:45 131

原创 Java集合类学习笔记2----------Collection集合常用方法

Collection集合中的方法可以适用于各种集合,一般我们要实现自己的要使用的数据结构也会重写这些方法Collection有以下这些方法public boolean add(E e);public boolean remove(E e);public boolean contains(E e);public boolean isEmpty();public void clear();public int size();public Object[] toArray();定义Coll

2020-05-26 10:33:53 182

原创 Java集合类学习笔记1-------集合类概述

之前是通过通读Java核心技术卷1来学习Java基础,集合类这部分学的不是很清楚,因此看视频再学习一遍,顺便做些笔记。Collection接口Collection接口定义了所有单列集合中的共性的方法所有集合都可以使用这些方法这些方法因为是给所有集合使用的,所以都不带索引List接口List接口继承自Collection接口,它具有以下特点实现List接口的集合都是有序的集合这些集合中的元素可以重复可以使用带索引的方法获取和修改元素可以使用普通的for循环进行遍历实现了List接

2020-05-26 09:38:48 151

原创 csapp读书笔记之IEEE浮点表示法

首发地址:https://www.cnblogs.com/saw96x/p/12821013.html最近在读csapp,IEEE浮点表示当初捋了好久才理顺,算是第一章中比较难的部分了。通过普通的定点表示法不能有效表示非常大的数字。例如表达式5*2^100是101后面跟了100个0,我们希望使用一种更简洁高效的办法表示,IEEE浮点表示应运而生。以下是将会出现的符号含义V:你要表示的十进制...

2020-05-03 10:37:38 443

原创 Leetcode--26. 删除排序数组中的重复项

首发地址:https://www.cnblogs.com/saw96x/p/12534845.html给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 ...

2020-03-21 10:17:23 92

原创 03-树1 树的同构

首发地址:https://www.cnblogs.com/saw96x/p/12531318.html题目给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:...

2020-03-20 14:21:09 285 3

原创 空战小游戏(控制台应用) c/c++实现

笔者也算是学了小半年的c++,之前都停留在控制台做做题,最近觉得这样实在是差点成就感,于是就想试试写一写简单的小游戏,在用打砖块,flappy bird等小游戏练练手后,在查阅书籍,查找一些网络资料后写了一个完成度还算高的空战小游戏的控制台应用,希望能对其他觉得迷茫的c++新手提供一些方向游戏的完成效果:先看看游戏的主要框架:#include<iostream>#include...

2020-03-12 11:26:13 1913 2

原创 带有重复元素数组的解压缩

题目来源是隔壁班级老师c++实验课的题目,看着蛮变态的,比笔者班级的实验题难的不是一点半点,那么具体怎么实现呢核心的思路来源与以前写过的连续几个连续输入的整型数,每种数字一共连续出现过几次,看看它的代码长什么样int currval=0,val=0; if(std::cin>>currval) { int cnt=1; while(s...

2020-03-09 15:05:22 389

原创 从最大子列和问题看几种不同的算法思想

题目描述只看题目描述不看测试数据特点的话,第一眼能想到的算法无非就是利用遍历逐个相加,算出每一种可能的子列和,然后返回其中最大的子列和,看看代码如何实现int MaxSumSeq(int a[],int len){ int ThisSum=0,MaxSum=0; for(int i=0;i<len;i++){//子列的左端 for(int j=i;j&lt...

2020-03-09 14:59:56 149

原创 数据结构—静态链表 (c++实现)

静态链表是用数组描述的链表,其实是为了给没有指针的语言设计的单链表的方法。尽管可能用不上,但这种思考方式是还是很巧妙的,利用游标来实现指针的作用,应该理解这种思想以备不时之需,网上找的c++代码基本都有c的痕迹,就自己学了一天,其中加了大量的注释,希望对其他初学者有所帮助。原地址:https://www.cnblogs.com/saw96x/p/12407857.html#include&l...

2020-03-09 14:55:12 193

空空如也

空空如也

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

TA关注的人

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