- 博客(46)
- 收藏
- 关注
原创 【redis】数据淘汰策略
淘汰策略是什么作为一个内存数据库,redis在内存空间不足的时候,为了保证命中率,就会选择一定的数据淘汰策略来保证内存空间可用。---获取设置的Redis能使用的最大内存大小127.0.0.1:6379[10]> config get maxmemory1) "maxmemory"2) "0"Redis的内存淘汰策略--获取当前内存淘汰策略:127.0.0.1:6379[10]> config get maxmemory-policy1) "maxmemory-policy
2020-11-18 16:19:47
307
原创 【LeetCode】strStr 实现 strStr()(JAVA)
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对
2020-11-16 10:22:27
156
原创 如何遍历一个文件夹下的所有子文件(JAVA)
利用File类中的一个listFiles将该文件路径下所有的文件全部列出来,然后通过循环遍历输出,然后判断是否是一个文件夹,如果是递归调用原方法再次进行遍历。public class showDirectory { public static void main(String[] args) { File file = new File("D:\\gitee"); showDirectory(file); } public static void
2020-10-27 17:20:10
697
原创 【LeetCode】isPalindrome 回文串(JAVA)
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseclass Solution { public boolean isPalindrome(String s) { //将原字符串转换为字符数组并判断是否为数字字符或者字母后 //统一转成
2020-10-23 11:03:03
1319
原创 【LeetCode】isAnagram 有效的字母异位词(JAVA)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?方法一:通过将俩个字符串转换为字符数组并且排序,返回对比结果。class Solution { publi
2020-10-22 14:59:43
424
原创 【LeetCode】reveres 整数反转(JAVA)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solution { public int reverse(int x) { //存储循环后的整数 i
2020-10-22 14:50:46
147
原创 【LeetCode】reverseString 反转字符串(JAVA)
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]class
2020-10-22 14:43:12
143
原创 解决Could not autowire. No beans of ‘xxxx‘ type found问题
遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示在Idea的spring工程里,经常会遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示。但程序的编译和运行都是没有问题的,这个错误提示并不会产生影响。解决方案降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别。...
2020-10-18 14:28:07
601
原创 解决Result Maps collection already contains value for...BaseResultMap问题
使用generatorSqlmapCustom逆向工程生成代码报错假如使用generatorSqlmapCustom逆向工程生成代码,即生成dao文件和mapper.xml文件,复制粘贴至工程中运行报错。Result Maps collection already contains value for com.cyj.mapper.OrdersMapper.BaseResultMap解决方案:1.根据错误提示,找到对于的报错的那个mapper,是否存在重复的代码。一般是由于逆向工程生成了重复的代码,
2020-10-18 13:18:36
6834
原创 【LeetCode】moveZeroes 移动零(JAVA)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution { public void moveZeroes(int[] nums) { //记录0的个数 int count = 0; for (int i = 0; i < nums.lengt
2020-10-17 12:30:47
115
原创 【LeetCode】maxProfit 买卖股票的最佳时机 II(JAVA)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6
2020-10-16 22:03:07
459
原创 【LeetCode】removeDuplicates 删除排序数组中的重复项(JAVA)
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的
2020-10-15 21:46:55
1207
原创 【LeetCode】intersect 两个数组的交集 II(JAVA)
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更优?如果 nums2
2020-10-14 20:55:32
502
原创 【LeetCode】singleNumber 只出现一次的数字(JAVA)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4方法一:进行排序后,俩俩元素进行比对返回结果。class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums);
2020-10-13 19:38:19
73
原创 【LeetCode】containsDuplicate 存在重复元素(JAVA)
给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true方法一:使用简单粗暴的双重for循环来一个一个比对数据是否相同。(leetcode提交显示超时,不推荐使用)class Solution { publ
2020-10-12 21:43:03
168
原创 解决Connections could not be acquired from the underlying database!问题
搭建自定义持久层框架出现的问题解决方案:驱动配置有误:driver=com.mysql.cj.jdbc.Driver在mysql8.0.xx的版本中需要在驱动配置中添加cj数据库连接地址有误:url=jdbc:mysql://localhost:3306/zdy_mybatis?3useUnicode=true&characterEncoding=utf8密码或帐号有误:username=root password=root数据库服务未启动或无权访问数据库mysql依赖引入无效,如
2020-09-09 23:25:58
9387
原创 mybatis常见面试题
1.Mybatis动态sql是做什么的?都有哪些动态sql,简单描述一下动态sql的执行原理?Mybatis动态sql是 指在映射文件xml中可以通过标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。有9种动态sql标签:trim/where/set/foeach/if/choose/when/otherwise/bind。执行原理为使用OGNL从sql参数对象种计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。2.Mybatis是否支持延迟加载?如果支持,它的实
2020-08-10 11:15:06
146
原创 【Java】Mybatis开发步骤
Mybaits相关概念Mybaits是一款基于ORM的半自动轻量级持久型框架,其中ORM全称为Object/Relation/Mapping,即对象关系映射。ORM:实体类与数据库表产生映射关系半自动:手动编写sql语句轻量级:启动所需的资源较少Mybaits开发步骤:添加Mybaits的坐标创建数据库表编写实体类编写映射文件Mapper.xml编写核心文件sqlMapConfig.xml编写测试类进行测试...
2020-07-21 16:14:08
122
原创 【设计模式】常用9种设计模式详解
单例模式为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。工厂模式代理模式策略模式模板方法模式观察者模式适配器模式责任键模式建造者模式...
2020-07-03 16:28:02
1103
原创 【SQL】数据库事务以及隔离等级
事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所做的所有更改都会被撤销。也可以说成是SQL语句的集合,要么全部执行,要么全部回滚。事务的结束有俩种结果,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤销之前的操作到事务开始的时候。事务的ACID事务具有四个特征(ACID):原子性(Atomicity)事务时数据库的逻辑工作单元,事务中包括的SQL语句要么全部执行,要么全部不执行。一致性(Consistency)事务执行
2020-06-16 16:48:41
183
原创 【JVM】Java虚拟机之类加载机制(二)
类加载器Java虚拟机中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到了Java虚拟机外部去实现,以便应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。类与类加载器类加载器虽然只用于实现类的加载动作,但在Java程序中起到的作用却远超类加载阶段。对于任意一个类。都必须由加载它的类加载器和这个类本身一起共同确立在其Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换句话来说,比较俩个类是否“相等”,只有在这俩个
2020-06-12 15:25:01
107
原创 【JVM】Java虚拟机之类加载机制(一)
概述Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为JVM的类加载机制。类加载的过程一个类从被加载到虚拟机内存中开始,从卸载出内存为止,它的整个生命周期将会经过加载(Loading),验证(Verification),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)七个阶段。其中验证,准备,解析三个部分
2020-06-09 15:38:03
165
原创 【Java】Java语言基础之注解
注解注解(Annotation),也叫做元注解,在JDK1.5中添加到Java特性中。在代码中,注解不会直接影响到你的代码执行,而且使代码更加简洁明了。注解的语法比较简单,一般是用@符号作为开头。元注解在@Override 注解的定义中:@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}—————————分割线——————————————————————————
2020-05-26 16:39:47
143
原创 【Java】Java语言基础之泛型
泛型泛型,本质意义为参数化类型,看起来比较抽象,更细致的解释为将所操作的数据类型作为参数的一种语法。public class Test<T>{ T Test(){}} 在这里中括号里面的T就是作为一个参数在Test被实例化的时候所传递过来的参数。Test<Integer> TestInteger = new Test<>();这的T就被实例化为Integer。作用—————————分割线————————————————————————————————以
2020-05-22 15:20:12
143
原创 【Java】Java语言基础之异常
Java异常当程序运行的途中,发生了在期待中不应该发生的事件,这个时间阻止了程序按照程序员的预期正常执行,这类问题一般是程序员在编写程序时,忽略程序运行中可能导致的错误,是可以通过修改程序逻辑达到正确的结果的问题,被称为异常(Exception)。同时还有非程序逻辑错误,程序员也无法解决的问题,这类问题被称为错误(Error)。在异常发生的时候,是让程序继续运行还是立刻终止退出程序,还是将错误反馈给程序用户?在Java中提供了更加优秀的解决方案:异常的处理机制。异常处理在Java中,异常处理机制会在
2020-05-19 17:36:03
163
原创 【Java】Java语言基础之接口
接口java中接口的特点:接口中的方法,永远都被public来修饰接口中没有构造方法,也不能实例化接口对象接口中只有方法的声明,没有方法体接口中只有常量,如果定义变量,在编译的时候都会默认加上“public static final”接口中定义的方法都需要实现类来实现,如果实现类不能实现接口中的所有方法,则实现类需要定义为抽象类静态方法不能被子类重写(覆盖),因此接口中不定声明静态方法使用接口可以实现多继承...
2020-05-14 17:18:24
286
原创 【Java】Java语言基础之面向对象
面向对象—————————分割线————————————————————————————————以上内容都是目前所理解的,非最终版本,会根据工作和学习的深入慢慢加深理解,更新在上面(2020.5.12版)。...
2020-05-12 15:11:21
185
原创 【Java】Java后端学习路线
前俩天有幸观看b站程序员大佬CodeSheep的直播,获取了这张Java后端学习路线图,这张图上面有的知识懂一些有的止步于用过的程度,有的不懂,甚至都没见过。希望自己可以按照这张学习路线图,对过往的知识进行总结归纳,并且加强对没接触过的知识的学习,早日成神并平稳落地哈哈哈。...
2020-05-12 10:59:00
206
原创 【Java】spring框架中的AOP和IOC
什么是SpringSpring是分层的full-stack轻量级Java开源框架,其中以AOP和IOC为内核,提供了展现层Spring MVC的业务层事务管理等众多的企业级应用技术,还整合了多方第三方开源框架和类库。优点:方便解耦;AOP编程支持;声明式事务;方便程序测试;方便集成各种优秀框架;降低API的使用难度;什么是AOP和IOCAOP被称为面向切面编程全程(Aspect...
2020-05-05 15:48:46
408
原创 【开发工具】Git及其使用
什么是Git比如一个项目,两个人同时参与开发,那么就把这个项目放在一个公共的地方,需要的时候都可以去获取,有什么改动,都可以进行提交。为了做到这一点,就需要一个版本控制系统,Git就是这样一个免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。使用Git...
2020-04-30 15:36:38
219
原创 【Java】Java语言基础之反射
什么是反射:反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息及动态调用对象方法的功能叫Java的反射机制。...
2020-04-27 17:24:22
86
原创 【Java】多线程和创建线程的三种方法
多线程多线程即是在在同一时间,系统可以做多件事情。首先要理解进程(Processor)和线程(Thread)的区别:进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。创建线程的三种方法Java多线程实现方式主要有三种:继承...
2020-04-24 17:24:56
141
原创 【Java】Java语言基础之容器
集合框架Collection下有Set,List和Queue,Deque是继承自QueueCollection和Map之间没有关系,Collection是放一个一个对象的,Map 是放键值对的Collection:List:(有序可重复)ArrayList:底层实现是数组,但是没有定义具体的长度和大小,有下标,所以查询快,增删慢,线程不安全 LinkedList: 底层是链表,因为...
2020-04-23 16:58:23
102
原创 【数据结构】二叉树与二叉树遍历(前序、中序、后序、层序遍历)
二叉树概念在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。声明节点Node类public class Node { // 左子节点 public No...
2020-04-22 14:18:47
464
原创 【JAVA】String StringBuffer和StringBuilder的区别是什么,为什么String是不可变的
观察java中有关String的源码可知String类是使用final关键字修饰字符数组来保存字符串这样做的目的私以为是为了String在使用中更加的安全,不会被中途修改。String,StringBuffer和StringBuilder的区别是性能上:在对String类型进行改变的时候,都会生成一个新的String对象,然后将指向新的String对象。而StringBuffer和S...
2020-01-06 17:36:44
156
原创 【LeetCode】firstUniqChar 字符串中的第一个唯一字符(JAVA)
字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.注意事项:您可以假定该字符串只包含小写字母。 public static int firstUniqChar(String s) { int length=s.lengt...
2019-12-25 10:17:15
226
原创 【LeetCode】twoSum 两数之和(JAVA)
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]public...
2019-12-20 16:37:44
175
原创 【LeetCode】plusOne 加一 (JAVA)
加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。题目的意...
2019-12-18 17:25:46
148
原创 sql优化
近来找工作时常遇到这种要求“有一定的数据库性能优化能力”,这个时候需要谈谈如何优化sql。一般来说由以下几个方面:1.添加索引mysql中索引是存储引擎层面用于快速查询找到记录的一种数据结构,索引对性能的影响非常重要,特别是表中数据量很大的时候,正确的索引会极大的提高查询效率。简单理解索引,就相当于一本砖头厚书的目录部分,通过目录可以快速查找到想要找的内容具体所在的页码。在经常需要搜索的列上...
2019-10-13 20:43:02
78
原创 【面试新技术】ktor和kotlin
面试爬坑新技术之Ktor和kotlin1.KotlinKotlin是由JetBrains也就是发布IDEA的捷克公司开发的一门用于现代多平台应用的静态编程语言Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。Kotlin已正式成为Android官方支持开发语言。可以在IDEA中 File—— Settings——pluugins中se...
2019-10-13 12:44:44
273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人