自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 算法:0-1背包

本文解题方法来自:《趣学算法》代发部分摘自:https://mp.weixin.qq.com/s/RXfnhSpVBmVneQjDSUSAVQ这个公众号也做了比较详尽的说明,建议读者去看一看

2020-08-09 08:47:33 316

转载 HashMap和CurrentHashMap

文章目录

2020-07-13 21:55:48 949

原创 字节跳动竞赛算法-统计全1子矩阵

本算法题来自2020/7/5,力扣x字节跳动的竞赛题,解题的两种方法来自力扣题解,链接:https://leetcode-cn.com/problems/count-submatrices-with-all-ones/solution/shi-yong-yu-yun-suan-fu-javashuang-bai-by-mp1256/

2020-07-05 22:36:29 499

原创 Redis原理浅析(二):消息通知、持久化、集群、redis遇到的问题及解决方法

上一节介绍了数据基本类型,事务,以及对数据惊醒排序的操作,这一节我们来介绍Redis的进阶操作:消息通知、持久化、集群、Redis作为缓存会出现的问题以及解决方法。

2020-06-24 09:52:28 522

原创 Redis原理浅析(一):Redis基本数据类型、事务以及排序

文章目录什么是RedisRedis的数据类型String :List:Sethashzset事务错误处理:Watch命令:控制键的存活时间排序什么是Redisredis是一款优秀的nosql(非关系型),key-vlaue,内存级别的数据库!redis是单线程,操作是安全的!key-value:字典数据结构,“key”是键名,“value”是键值,在字典中我们可以获取或设置键名对应的键值,也可以删除一个键。内存存储:redis数据库中所有的数据都存储在内存中。由于内存的读写速度远快于硬盘,因此r

2020-06-24 08:41:19 487

原创 解析Select、Poll、Epoll原理

每段代码都分为两个部分,准备数据和读取数据(以while(1)为分界线),本文主要研究select、poll和epoll是如何读取数据的。

2020-06-23 16:42:12 462

转载 JAVA多线程(八)-ThreadLocal

文章目录

2020-06-22 22:49:08 205

原创 JAVA多线程(七)-volatile关键字

一般大家都知道volatile关键字的两个作用:1.保证内存可见性2.防止指令重排序至于如何是实现,如何使用,我们还是一起去大神那里学习学习吧,这个博主是真的厉害,建议多看看他写的文章。https://blog.csdn.net/justloveyou_/article/details/53672005...

2020-06-22 22:48:00 94

原创 从头学mybatis框架(四)-CRUD

文章目录接下来介绍使用mybatis进行数据库的增删改查操作。

2020-06-22 22:08:29 109

原创 从头学mybatis(三):自定义mybatis(探究SqlSessionFactory、SqlSession都做了什么)

文章目录接下来探究一下mybatis都为我们做了什么,才让SQL语句执行起来 //mybatis的配置文件 String resource = "SqlMapConfig.xml"; //1、使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Resources.getResourceAsStream(resource); //使用MyBatis提供的Resources类加载

2020-06-22 22:07:41 525

原创 从头学mybatis框架(二)-环境搭建(IDEA,Windows10)

文章目录使用xml方式配置mybatis前期准备1、创建maven工程2、创建实体类和Dao接口创建User.java实体类创建IUserDao接口3、创建mybatis的主配置文件4、创建映射配置文件5、测试使用注解方式配置mybatis1、修改主配置文件中标签中的内容2、在IUserDao接口的方法上添加注解使用xml方式配置mybatis前期准备在搭建环境之前,确保已经安装mysql数据库,最好也安装mysql数据库的可视化工具Navicat。创建mybatis数据库,建立user表1、

2020-06-18 19:24:19 250

原创 从头学mybatis框架(一):原理浅析

文章目录什么是mybatis?流程加载配置SQL解析SQL执行结果映射MyBatis功能架构MyBatis的优缺点什么是mybatis?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

2020-06-18 17:34:16 146

原创 Java反射-Java反射概念、如何使用以及一个简单案例

反射

2020-06-09 18:33:00 282

原创 解决CSDN在Chrome浏览器打不开写文章、消息通知等板块问题

遇到了两次csdn打不开写文章板块,之前弄了好久把chrome清除浏览数据清楚了好几次也打不开,后来不知道清楚了哪里就能打开了。这次又遇到了这个问题,终于找到了清除哪里可以解决问题。1、打开chrome->更多工具->清除浏览数据2、高级->密码及其他登录数据3、点击清除数据就可以正常使用了!...

2020-06-08 11:27:22 1136 2

转载 JavaIO-BIO和NIO区别及各自应用场景

本文内容主要转自https://blog.csdn.net/jiyiqinlovexx/article/details/51204726,部分内容转自https://www.php.cn/java-article-361228.html,建议阅读原文

2020-06-05 22:16:27 445 1

转载 JavaIO-BIO与NIO超全知识点(二):基于BIO和NIO的网络编程,以及文件拷贝的实现方式和原理

本文主要转载于https://blog.csdn.net/feather_wch/article/details/82665902,并查阅了一部分资料来源于极客时间,建议去看原文链接查看原文。

2020-06-05 22:01:04 387

转载 JavaIO-BIO与NIO超全知识点(一):BIO、NIO以及AIO概述,基本接口、方法和原理

文章转载自https://blog.csdn.net/feather_wch/article/details/82665902,本人在此基础上添加了一些内容,由于原文实在太长,我分为两部分来发布。

2020-06-04 22:59:38 571

原创 Java-util包

本文主要介绍一下java.util包下的主要接口和类,因为在面试的时候被问到了,一下子问蒙了,常用的IDEA会自己加载,然就被面试官说基础不行,没有了下音,可能会做一个系列来介绍一下java、javax、org下所有包,以及包内的接口和类。

2020-05-31 20:38:49 740

原创 从头学SQL(六):MySQL事务(ACID实现原理以及四大隔离级别的实现原理)

本文主要介绍什么是MYSQL事务,实现事务ACID的原理,以及MYSQL的四大隔离级别及其实现原理

2020-05-26 23:43:11 351

原创 从头学SQL(五):MYSQL索引

本文主要介绍MYSQL索引类型、索引数据结构、聚集索引和非聚集索引、覆盖索引、联合索引和索引下推

2020-05-26 14:08:27 521 1

原创 算法-动态规划(乘积最大子数组,和最大子数组)

文章目录连续子数组的最大和乘积最大子数组总结连续子数组的最大和面试题42. 连续子数组的最大和解题思路:通过“子数组”、“最大和”等关键字,应该联想到动态规划,来看一下这道题是否有最优子结构:定义一个max数组,max[i]用来记录以nums[i]结尾的连续子数组的最大和。来看一下,是否可以通过max[i-1]推出max[i]:假设:max[i-1]=k,当k<0时,nums[i]+k<nums[i],max[i]=nums[i];当k>0时,nums[i]+k>

2020-05-23 13:14:16 668

原创 从头学SQL(四):SQL的执行顺序

在学习完所有语法以后,我们来一起探究一下SQL的执行顺序!

2020-05-22 22:45:50 300

原创 从头学SQL(三):SQL函数(avg、count、max、min...)

文章目录合计函数(Aggregate functions)AVG 函数COUNT() 函数FIRST() 函数LAST() 函数MAX() 函数MIN() 函数SUM() 函数GROUP BY 语句HAVING 子句UCASE() 函数LCASE() 函数MID() 函数LEN() 函数ROUND() 函数NOW() 函数FORMAT() 函数SQL 拥有很多可用于计数和计算的内建函数。函数的语法内建 SQL 函数的语法是:SELECT function(列) FROM 表函数的类型在 SQ

2020-05-22 10:41:22 1090

原创 从头学SQL(二):SQL高级语法(LIKE、IN、BETWEEN、CREATE INDEX...)

文章目录TOP 子句LIKE 操作符SQL 通配符IN 操作符BETWEEN 操作符Alias=AS(别名)JOIN=INNER JOINUNION 和 UNION ALL 操作符SQL SELECT INTOCREATE DATABASE 语句CREATE TABLE 语句SQL 约束**NOT NULL**UNIQUEPRIMARY KEYFOREIGN KEYCHECKDEFAULTTOP 子句TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。注

2020-05-21 21:55:48 608

原创 从头再学SQL(一):SQL简介以及基本语法(增删改查)

从头再学一遍SQL,学习资源来自W3school,建议去原网站进行学习,话不多说,开始冲!

2020-05-19 21:28:59 537

转载 数据库(一):SQL语法

数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就是数据库。虽然这种观点是错误的,但是也确实从一个方面体现了这种面向结果的查询语言的重要性。SQL语言基本定义基本类型SQL表中支持很多固有类型,包括: 类型 含义 char(n) 存放固定长度的字符串,用户指定长度为n。如果没有使用n个长度则会在末尾添加空格。 varchar(n) 可变长度的字符串

2020-05-17 22:10:34 479

转载 JVM(二):Java垃圾回收机制

转载自:图解Java 垃圾回收机制一、垃圾回收机制的意义  在笔者的上一篇博文《JVM 内存模型概述》中提到,JVM 内存模型一共包括三个部分:堆 ( Java代码可及的 Java堆 和 JVM自身使用的方法区)、栈 ( 服务Java方法的虚拟机栈 和 服务Native方法的本地方法栈 ) 和 保证程序在多线程环境下能够连续执行的程序计数器。特别地,我们当时就提到Java堆是进行垃圾回收的主要区域,故其也被称为GC堆;而方法区也有一个不太严谨的表述,就是永久代。总的来说,堆 (包括Java堆 和 方法区

2020-05-16 21:14:24 199

原创 逆回溯法?力扣竞赛题-收集树上所有苹果的最小时间

开门看题:收集树上所有苹果的最少时间题目分析题意很好理解,从根节点出发,找到所有带苹果的节点,然后返回根节点,问最短路径是多长。看图来说,这不就是典型的回溯法吗?!顺便想个更新路径长度的策略就ok了!但是最棘手的也是以前没有遇到过的问题摆在眼前,这个树状图的形状是由二维数组给出的,而且还要将带苹果的节点对应上。。。回溯法陷入了僵局,正向思维貌似走进了死胡同,来试试逆向思维。我们从含有苹果的叶子节点出发,向上一直找到根节点,如图1,4–>1–>0,当在从节点5出发时,到达节点1

2020-05-13 19:00:42 246

原创 从回溯算法来谈谈有关浅拷贝的问题

最近遇到了一个让我很困惑的问题?回溯法中的dfs函数返回主函数中的数据,最后返回时有的更新了,有的却没有更新,这是为什么呢?还是举例来说明一下吧!

2020-05-12 23:24:14 376

原创 算法-回溯法(带矩阵的回溯法:矩阵中的路径)

面试题12. 矩阵中的路径解题思路能进则进,进不了则退,退不了则换,典型的回溯法思想。只是在矩阵中寻找路径使得这道题变得复杂了,那么我们就从先从简单的地方入手,一层一层的剥开这道题的套路。(1)寻找返回条件: 在矩阵中找到一条路径上的字符组合和目标字符串相同时,则查找成功,如果有一次查找成功,则返回true,停止进行查找。两种方法:①可以设置一个StringBuilder,每次找到一个匹配的字符便添加该字符,同时记录当前目标字符串的查找位置index,每匹配到一个字符便令index++;②因为每

2020-05-12 20:26:07 951

原创 算法-回溯法(字节跳动开发岗笔试-查字典)

昨天做了一套字节跳动的笔试题,做的一塌糊涂,回过头一看,也不是很难,只怪自己练的不够多,对考察的知识点不够敏感,仔细分析一下这道题,也算是吃一堑长一智了。

2020-05-12 13:03:30 343

原创 JVM(一):内存模型

引用(建议去看原文):一个“Hello World”理解JVM运行时数据区JVM内存模型概述JVM体系结构图:内存模型运行时数据区:经过编译生成的字节码文件(class文件),由class loader(类加载子系统)加载后交给执行引擎执行。在执行引擎执行的过程中产生的数据会存储在一块内存区域。这块内存区域就是运行时数据区。程序计数器:用于记录当前线程的正在执行的字节码指令位置。由于虚拟机的多线程是切换线程并分配cpu执行时间的方式实现的,不同线程的执行位置都需要记录下来,因此程序计数

2020-05-09 22:55:40 129

转载 计算机网络(二)-HTTP与HTTPS区别,以及HTTPS工作原理

原文链接基本概念HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息

2020-05-08 21:57:58 199

转载 计算机网络(一):网络层次划分及各层的网络协议

原文链接:网络层次划分及网络协议1 OSI七层模型、TCP/IP四层模型、TCP/IP五层模型不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。1)物理层(Physical Layer)激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简...

2020-05-07 11:24:26 13851 1

原创 JAVA多线程(六)-线程池

线程池原理解析(线程池的源码解析)Java线程池原理(线程池生命周期、线程池流程、源码解析)Exectutor线程池种类Future和FutureTask,线程的返回结果处理类常问面试题由于内容太多且杂,我将按照以下顺序来进行总结:1、什么是线程池?2、为什么使用线程池?3、如何创建线程池?4、线程池的参数有哪些?5、线程池是如何工作的?6、线程池的生命周期?5、有哪些种...

2020-04-18 23:05:36 286

原创 算法-回溯法(双路径回溯:括号生成)

leetcode#22、括号生成我想到了两种思路来解决这个问题:1、先添左括号,没有左括号,再添加右括号,知道左右括号数量相加等于2倍的n;然后撤销并重新添加,直到找出所有组合,如图所示:其实就是能进则进,进不了则换,换不了则退->回溯法。2、确定头和尾(肯定是‘(’和‘)’),在中间确定‘(’和‘)’的分布情况,而中间仍然会出现头和尾是‘(’和‘)’,寻找中间的中间‘(’和‘)...

2020-04-15 17:33:49 280

原创 JAVA多线程(四)-线程同步(2:如何顺序执行三个线程)

阿里面试问题,如何控制三个线程,让他们顺序输出100个数字?参照:三个线程顺序循环执行的三种方式,自己动手码一下。方法一:使用同步代码块/*使用synchronized实现*/public class TestPrint { static int count=0;//全局变量count static final Object object=new Object();//定义...

2020-04-12 13:37:15 646

原创 JAVA多线程(五)-线程通信

线程通信当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但Java也提供了一些机制来保证线程协调运行。传统线程通信Account类:import java.util.concurrent.locks.ReentrantLock;public class Account { //账户编号、账户余额 private String ac...

2020-04-10 19:30:48 95

原创 JAVA多线程(四)-线程同步(1:同步方法、同步代码块和同步锁)

线程同步账户:Account类public class Account { //账户编号、账户余额 private String accountNo; private double balance; public Account(){} public Account(String accountNo,double balance) { ...

2020-04-09 23:12:02 225

原创 JAVA多线程(三)-常用控制线程的工具(join、sleep、yield)

join线程join()方法:一个线程等待另一个线程完成,当某个程序执行流中调用其它线程的join()方法时,调用线程将被阻塞,直到join()方法加入的join线程执行完为止。public class joinTest extends Thread{ public joinTest(String name) { super(name); } p...

2020-04-07 22:09:36 257

redis.pptx

本ptt从四个方面来介绍redis 1、什么是redis 2、redis的数据类型 3、redis的进阶操作 4、redis遇到的问题及解决方法

2020-05-14

Redis安装文档及实验.docx

1、安装文档 2、 实验:(1) 启动redis(2) 停止redis(3)测试连接(发送命令的两种方法) 字符串类型: (4)设置一个键,获得该键值,并判断一个键是否存在 (5)删除键 (6)增和减 (7) 向尾部追加值 (8) 获取字符串长度 (9) 同时获得/设置多个键值 (10) 位操作 散列类型: (11) 为键值car设置price、name、model等“属性” (12) 判断model字段是否存在,不存在的话添加该字段,最后删除 列表类型: (13)向列表添加元素、弹出元素、获取表中元素个数、获得列表片段 (14)获得/设置指定索引的元素值 集合类型: (16) 增加或删除元素以及获得集合中所有元素: (17) 判断元素是否存在于集合中: (18) 集合的运算差sdiff,交sinter,并sunion 有序集合类型: (19) 增加元素、获得元素分数、获得排名在某个范围的元素列表、获得制定分数范围的元素 事务: (20)MULTI开启事务,EXEC结束事务 (21)错误处理:语法错误(命令本身错误)和运行错误(命令使用类型错误) (22)watch命令(监控作用) (23)Expire,ttl,persist命令控制键的存活时间 (24)Sort排序命令 (25)构造如图表结构: (26) Sort key1 by key2 将key1按照key2的大小进行排序 (27)get:sort key1 get key2 按照key1大小进行排序,将key2结果显示出来 (28)sort、by、get结合使用: (29)获取外部键但不进行排序: (30)将下表存在哈希结构中,并使用sort、by、get方法进行操作 (31)Store:将排完序的结果进行存储 (32)订阅者-发布者模式 任务队列: (33)优先级队列:

2020-05-14

空空如也

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

TA关注的人

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