自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初级算法(十)--动态规划、设计问题、数学

初级算法(十)–动态规划、设计问题、数学1、引言动态规划1、爬楼梯2、买卖股票的最佳时机3、最大子序和4、打家劫舍解题步骤1、确定dp数组2、找到状态转移公式3、确定初始条件以及边界条件4、计算结果设计问题1、打乱数组2、最小栈数学1、Fizz Buzz2、计数质数3、3的冥2、动态规划2.1 爬楼梯​ 这题开始想的方法就是使用递归,但是力扣会显示超出时间限制。 /** * 方法一:递归,但是力扣会显示超时 * @param n

2022-04-24 17:11:20 123

原创 初级算法(九)----- 树、排序和搜索

初级算法(九)----- 树、排序和搜索1、引言1、将有序数组转换为二叉搜索树:二叉搜索树每个节点的左右两个字数的高度差的绝对值不超过12、合并两个有序数组3、第一个错误的版本2、将有序数组转换为二叉搜索树​ 这题可以采用递归的方式进行,由于数组是有序的,每次选取中间的节点作为根,如此构造出的二叉树就是二叉搜索树。 /** * 方法一:采用递归做 * 每次都选中间值做为节点 * @param nums * @return * 执行用时:

2022-04-18 18:09:26 341

原创 初级算法--树(八)

初级算法–树(八)1、引言1、验证二叉搜索树:节点的左子树只包含小于当前节点的数,右子树只包含大于当前节点的数2、对称二叉树3、二叉树的层序遍历二叉树的结构public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(){ } TreeNode(int val){ this.val=val; } TreeNode(int val,

2022-04-14 20:09:43 576

原创 初级算法(七)

初级算法(七)1、引言不带头节点的单链表//不带头节点的单链表public class ListNode{ int val; ListNode next; ListNode(){ } ListNode(int val){ this.val=val; } ListNode(int val,ListNode next){ this.val=val; this.next=next; }}J

2022-04-13 10:04:45 226

原创 初级算法(六)

初级算法(六)1、引言字符串1、最长公共前缀:一个函数可以查找字符串数组中最长公共前缀,如果不存在则返回" "单链表1、删除链表中的某个节点2、删除链表的倒数第N个节点3、反转链表2、最长公共前缀​ 要知道公共最长前缀的定义,这个前缀的字符串最重要的是连续的。采取默认字符串数组中的第一个字符串为公共最长的前缀。然后对第一个字符串进行不断截取。 /** * * @param strs 输入的字符串数组 * @return 返回的最长公共前缀

2022-04-08 19:08:57 516

原创 初级算法(五)

初级算法(五)1、引言1、验证回文串:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。2、字符串转换整数:将一个数字字符串转换为一个32位有符号整数。3、实现strStr()函数:即返回needle字符串在haystack字符串中第一次出现的位置。4、外观数列:给定一个正整数n,输出外观数列的第n项。countAndSay(1) = “1”,countAndSay(2) = "11"描述的是前一项的一个1.依次类推。2、验证回文串​ 和前面的找不同数,有点类

2022-04-04 19:55:44 1234

原创 Aop进阶(一)

Aop进阶(一)1、引言这篇博客主要记载的是我对Aop的理解,和以前使用Aop的一种模糊理解。Aop底层是动态代理,动态代理的底层又是反射。主要是针对Spring-Aop的理解。需要具备Aop的切入点、切面、链接点、通知等基础知识。2、反射反射是Java自身核心的一个知识点,反射具体就是指在程序运行期间,对于任意一个类可以获取这个类的属性和方法,对于任意一个对象,能够调用它的任意一个方法和属性。简单的代码演示:参考:[简单的反射](https://www.cnblogs.com/haodawa

2022-04-04 10:57:54 531

原创 MySql进阶(一)

MySql进阶(一)1、存储引擎1.1 概念​ 存储引擎又叫做表类型,主要用来决定如何存储数据库的信息、如何检索信息。存储引擎是基于表的,本质上就是处理sql操作。注意:只有mysql才有存储引擎的概念,例如oracle数据库是没有存储引擎的概念。1.2 特点​ 在使用MySql的时候用户可以选择不同的存储引擎来提高应用的效率,甚至可以定制自己的存储引擎。在 MySql 5.5 之前默认的存储引擎是 MyISAM ,而在这之后使用的是 InnoDB 。在Mysql的诸多存储引擎中,只有I

2022-03-30 09:36:45 862

原创 JVM进阶系列(四)

JVM进阶系列(四)1、引言或许编程不一定会找到工资,但是总比无事闲聊打游戏好。一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经理加载、验证、准备、解析、初始化、使用、卸载这几个阶段。2、加载主要完成以下三个步骤:通过一个类的全限定名来获取定义此类的二进制字节流将这个字节流代表的静态存储结构转化为方法区的运行时数据结构在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。针对第一个步骤可以从以下几个方

2022-03-30 09:35:37 69

原创 JVM进阶系列(三)

JVM进阶系列(三)1、引言​ 在前面的进阶系列(二)中已经说明垃圾回收主要是针对Java堆的回收,方法区的回收虽然也可以做到,但是实现条件比较苛刻。在Java堆的回收,讨论了如何判断对象以死,采用两种算法,分别是引用计数算法和可达性分析算法。然后又对引用进行了分类。垃圾回收算法基于重要的分代理论,新生代和老年代。拓展了永久代是方法区的思绪。垃圾回收算法主要分为三类分别是标记-清除算法、标记-复制算法、标记-整理算法。​ 这次主要是针对HotSpot算法的实现细节和各种垃圾收集器进行介绍。2、根

2022-03-30 09:34:12 62

原创 初级算法(四)

初级算法(四)1、引言1、整数反转:给定一个32为的有符号整数,将x中的数字部分反转。输入:123,输出:3212、字符串中的第一个唯一字符:找到字符串中第一个不重复的索引,不存在返回-13、字母异位词:两个字符串中的字符出现次数相同被称为字母异位词2、整数反转​ 一开始,想的是先把数字转换为String,然后通过转换为数组,再倒序存放新的字符串中,然后再转换为整数。但是这种解决办法显然不可能,力扣的测试用例通不过。给的整数转换后的数有可能超过范围。因此只能在原来的基础上改变。 //执行用

2022-03-27 20:35:48 529

原创 初级算法(三)

初级算法(三)1、引言1、有效的数独:要求数字1-9在每一行只能出现一次,数字1-9在每一列只能出现一次。数字1-9在每一个小九格中只能出现一次2、旋转图像:将一个二维矩阵,将图像顺时针旋转90度3、反转字符串:将一个字符数组,反转数字2、有效的数独​ 这一波主要是利用Java中set集合中不能存在重复元素。 //使用hashset数据结构,去重 //执行用时:3ms,内存消耗:41.7MB public boolean isValidSudoku(char[][] bo

2022-03-24 19:08:34 1282

原创 JVM进阶系列(二)

JVM进阶系列(二)1、引言垃圾收集(GC),解决的主要事情:1、哪些内存需要回收 2、什么时候回收 3、如何回收。对于Java语言,Java内存运行时区域的各个部分,程序计数器、虚拟机栈、本地方法栈这三个区域随着线程而生,随线程而灭。这三个区域的内存分配和回收都具备确定性。当方法结束或者线程结束的时候,内存自然就跟着回收。2、Java堆​ Java堆存放的都是类的实例(对象),方法在运行时会创建多个对象。这里的内存分配是动态的。​ 问题1:如何判断对象是否已死​ 使用计数算法和可达性分

2022-03-24 09:08:20 99

原创 初级算法(二)

初级算法(二)1、引言1、加一:给定一个整数组成的非空数组所组成的非负整数,在该数的基础上加一。输入:[1,2,3] 输出:[1,2,4] 或者输入:[9,9] 输出:[1,0,0]。2、移动零:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。不能复制数组,对数组原地操作。3、两数之和:给定一个整数数组nums 和一个整数目标值target,在该数组中找出和为目标值target的那两个整数,并返回他们的数组下标。2、加一加一的问题本质上就是进制运算,遇

2022-03-22 18:34:22 966

原创 初级算法(一)

初级算法(一)1、引言这个笔记主要被是在leetbook中的初级算法题中数组的三个题进行记载。主要有三个:1、判断一个数组中元素是否有重复元素。2、找出数组中只出现一次的数字。3、返回两个数组的交集(交集中元素的次数必须是两个数组中都有的个数)2、数组中是否有重复元素​ 最先想到是一个暴力解决,就是两层for循环,虽然能解出来,但是力扣上可能会超出时间限制。所以这个解决办法并不是最优解。 //方法一:暴力解决,执行用时750ms,内存消耗:55.3MB,力扣上有可能会显示超出时间限制

2022-03-21 19:02:29 768

原创 JVM进阶系列(一)

JVM进阶系列(一)1、引言Java语言具有一次编写、到处运行的特性。主要原因就是JVM,JVM严格来说就是一种虚拟机的规范。Java是一种解释和编译都存在的语言,它一开始是由javac命令将.java的源文件编译成.class文件(字节码文件),之后在由JVM虚拟机解释运行在系统上。这就是为什么Java语言能够一次编写、到处运行。2、内部结构​ 程序计数器:这部分是一块较小的内存空间,被看做为当前线程所执行的字节码的行号指示器。字节码解释器就是通过改变这个计数器的值选取下一条需要执行的字节

2022-03-21 09:30:24 1314

原创 spring -security进阶

spring -security进阶1、概括​ 这是一篇对于spring-security的总结,包含了自己在写spring-security-demo所有的问题。spring-security的底层其实是用了过滤器。对于请求的过滤。并且将认证好的信息存储session中。这一篇中只是简单的使用他的认证和授权。其中认证重写了AbstractAuthenticationProcessingFilter过滤器,而授权则使用了注解的方式开发。并没有对认证成功后的处理进行重写,也没有对没有权限的用户访问页面的

2022-03-16 19:31:46 266

空空如也

空空如也

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

TA关注的人

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