自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C语言中指针的作用

C语言中的指针作用及使用:第一步:所有变量都保存在内存中第二步:所有变量都可以保存某些值第三步:使用指针:1)取值 ; 2)移动指针//===========================================对指针变量的 & 操作:&变量,目的:获得变量在内存中的地址返回:变量在内存中的起始地址结论:指针变量所存储的内容是所指向的变量在内存中的起始地址。指针对连续空间进行操作时:1)取值2)移动指针指针加数值的问题:

2022-03-21 16:26:07 1868

原创 MySQL与Redis的区别---详细!

1. MySQL和Redis的数据库类型MySQL是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。Redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限。2. MySQL的运行机制MySQL作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库:第一:会在反复链接数据库上花费大量时间,从而导致运行效率过慢;第二:反复的访

2021-08-18 10:21:09 3291

原创 面试背问的ck

操作系统的4个基本特征:并共虚异 并发 共享 虚拟 异步进程的4个基本特征:动并独异 动态 并发 独立 异步进程的3个基本状态:就绪 执行 阻塞地址块引入表的作用:先访问内存中的页表,找到物理块号,再将快好和页内偏移量拼接 其次是第二次访问内事务的隔离级别如果同时运行多个事务,就会出现问题对于事务来说就会出现下面三个典型的问题: (1)脏读 有两个事务T1,T2。如果T1读了一条数据,这条数据是T2更新的但还没提交,突然T2觉得不合适进行事务回滚了,此时T1读的数据就是无效的数据。 (2)不可

2021-08-16 13:10:00 247

原创 深拷贝和浅拷贝的区别

深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象,假设B复制了A,修改A的时候,看B是否发生变化。如果B变了,说明是浅拷贝,拿人手短如果B没变,说明是深拷贝,自食其力

2021-08-15 11:20:07 143

原创 力扣面试题

数组中的第K个最大元素快速选择算法:首选定义个辅助函数实现交换,partition 比轴值小的放左边,初始化最左边 遍历数组调整轴值位置 把轴值放到预期位置 quickselect 定义递归出口 随机生成轴值 调用 partion函数 调用 quickselect无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的最长子串 的长度。 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。第一种方法:暴力解法 逐个生成.

2021-08-14 13:44:51 310

转载 LeetCode热题Hot-28 最长回文子串

1. 确定DP数组和下标的含义:dp[i][j] 表示 区间范围 [i,j](左闭右闭)的字串是否是回文串,如果是,则 dp[i][j] 为 true;反之,为 false2. 确定递推公式:如果 s[i] != s[j],dp[i][j] 为 false如果 s[i] == s[j],则有三种情况:当 下标i 与 下标 j 相同,则 s[i] 和 s[j] 是同一个字符,例如 a,这是回文串当 下标i 与 下标 j 相差为 1,例如 aa,也是回文串当 下标i 与 下标 j 相差大于 1

2021-08-06 18:07:12 100

原创 Java基础八股文

1. Java基础1.1 为什么Java代码可以实现一次编写、到处运行?参考答案JVM(Java虚拟机)是Java跨平台的关键。在程序运行前,Java源代码(.java)需要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。同一份Java源代码在不同的平台上运行,它不需要做任何的改变,并且只需要编译一次。而编译好的字节码,是通过JVM这个中间的“桥梁”实现跨平台的,J

2021-08-06 17:25:18 975 1

原创 Java Web开发系列八股文

1. Spring Boot1.1 说说你对Spring Boot的理解参考答案从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。Spring Boot使用“习惯优于配置”的理念让你的项目快速地运行起来,使用Spring Boot很容易创建一个能独立运行、准生产级别、基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。简而言之,Spring Boot本身并不提供Spring的核心功能

2021-08-06 16:21:28 1121

原创 LeetCode热题Hot-27 合并K个升序链表

private ListNode merge2Lists(ListNode l1, ListNode l2) { ListNode dummyHead = new ListNode(0); ListNode tail = dummyHead; while (l1 != null && l2 != null) { if (l1.val < l2.val) { tail.next = l1; l1 =.

2021-08-06 15:10:37 68

原创 LeetCode热题Hot-26 两数相加

输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.解题思路按位计算,若l1,l2,进位中有一个值不为0均有计算价值,若l1,l2当前位为null则记为0,调用自身计算下一位,直至三个值均为0,表示计算完毕,返回空节点。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { //初始参数 进位为0 .

2021-08-06 14:26:18 113

转载 阿里面试智力题

智力题: 25匹马5个跑道,怎样选出 最快的5匹 来?将马分成A、B、C、D、E五组。 第1-5次比赛:各组分别进行比赛,决出各组名次 A1、A2、A3、A4、A5, B1、B2、B3、B4、B5, 。。。。 。。。。。。E4、E5。 第6次比赛:A1、B1、C1、D1、E1, 第一名是跑的最快的。 第7次比赛:将上次第一名所在组的下一号马再和剩余的4匹1号马比赛, 第一名是跑的第二快的马,由于只有4个名额,所以跑的最慢的马和所在组剩余的马全部被淘汰。 第8次比赛:将上次第一名所在组的下一号马、上次第二

2021-08-06 11:26:41 988

转载 HashMap到8时转为红黑树到6转为链表

(一) 前置知识 -- 泊松分布     hash桶中存放的链表长度概率 随着长度的增加而减小   hashmap中的源码注释  (二) 为什么到8转为红黑树 到6转为链表    TreeNodes(红黑树)占用空间是普通Nodes(链表)的两倍,为了时间和空间的权衡。    节点的分布频率会遵循泊松分布,链表长度达到8个元素的概率为0.00000006,几乎是不可能事件.    为什么转化为红黑树的阈值8和转化为链表的阈值6不一样,是为了避免频繁...

2021-08-06 10:56:44 816

原创 LeetCode热题Hot-25 Top k数组中的第K个最大元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,1,5,6,4] 和 k = 2输出: 5

2021-08-06 10:43:42 86

转载 面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别

HashMap是线程不安全的ConcurrentHashMap是线程安全的HashTable是线程安全的HashMap是数组加链表的方式实现的,根据传递过来的key获取这个key的hash值,然后通过一些运算,获取这个key的索引位置,将该值放在这个索引的链表集合里面,查询的时候也是这样先拿到索引位置,然后去链表集合里面去获取。HashTableHashTable也是通过数组加链表的方式实现的,但是他实现同步的方式是锁住整个Hash表,效率很慢ConcurrentHashMap也是通过数组

2021-08-02 17:19:58 81

转载 Java抽象类与接口的区别

接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接...

2021-07-29 16:35:10 337

原创 Java实现经典排序算法-冒泡排序

public class BubbleSort { public static void main(String[] args) { int [] a = {18,62,68,82,65,9}; //排序前,先把内容打印出来 //可以发现一个规律 //后边界在收缩 //所以可以在外面套一层循环 for (int j = 0; j < a.length; j++) { fo.

2021-07-29 11:12:12 62

原创 java支持多继承吗

 java不支持多继承,只支持单继承(即一个类只能有一个父类)。但是java接口支持多继承,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)理解,背的不行啊,理解吧 学而不思则罔,思而不学则殆。...

2021-07-28 15:07:31 2671

原创 LeetCode热题Hot-24 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。输入:strs = ["flower","flow","flight"]输出:"fl" //两两比较 public static String longestCommonPrefix(String[] strs) { if(strs == null || strs.length == 0) return ""; String res = strs[0]; .

2021-07-27 17:48:24 70

原创 单例模式 代码

饿汉式 实现难度:易描述:这种方式比较常用,但容易产生垃圾对象。优点:没有加锁,执行效率会提高。缺点:类加载时就初始化,浪费内存。public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){ public static Singleton getInstance(){ return instance;}}...

2021-07-27 17:32:04 72

原创 测开面试必问的题

TCP UDP区别TCP是面向连接的、可靠的、有序的、速度慢的协议; UDP是无连接的、不可靠的、无序的、速度快的协议。 TCP头部需要20字节,UDP头部只要8个字节。 TCP无界有拥塞控制,TCP有界无拥塞控制。 测试过程:需求分析,设计用例,搭建环境,执行用例,提交并跟踪bug Java对象如何转换json: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueAsString()方法将java对象转换为..

2021-07-27 17:12:16 176

翻译 实例解读什么是Redis缓存穿透、缓存雪崩和缓存击穿

缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。缓存雪崩,是指在某一个时间段,缓存集中过期失效。产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中的放入了缓存,假设缓存一个小时。那么到了凌晨一点钟的时候,这批商品的缓存就都过期了。而对这批商品的访问查询,都落到了数据库上,对于数据

2021-07-27 15:14:10 95

原创 get与post请求的区别

get,post请求的区别:HTTP协议中的两种发送请求的方法。GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。GET产生一个TCP数据包;POST产生两个TCP数据包。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。一个是读取数据,一个是请求数据GET请求只能进行url编码,而POST支持多种编码方式GET请求参数会被完整保留在浏览器历史记录里,而...

2021-07-27 11:17:18 90

原创 LeetCode热题Hot-23 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串class Solution { public boolean isPalindrome(String s) { if (null == s) { return false; } if (

2021-07-26 18:30:02 48

原创 快排 分治和递归

public class QuickSort {快排 //这是一个main方法,是程序的入口: public static void main(String[] args) { int[] array = {41,12,33,34,54}; quick(array,0,array.length-1); for (int arr:array) { System.out.println(arr+"\t"); .

2021-07-26 18:27:55 39

原创 Git 常用命令

新增文件的命令:git add file或者git add .提交文件的命令:git commit –m或者git commit –a查看工作区状况:git status –s拉取合并远程分支的操作:git fetch/git merge或者git pull查看提交记录命令:git reflog创建git本地仓库 git init提交文件 git add查看提交改动 git diff查看文件内容 cat查看当前文件的提交状态 git status提交文件 git co

2021-07-26 18:13:33 52

原创 LeetCode热题Hot-22 计算其中最大连续 1 的个数。

给定一个二进制数组, 计算其中最大连续 1 的个数。输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:输入的数组只包含0和1。 输入数组的长度是正整数,且不超过 10,000。class Solution { public int findMaxConsecutiveOnes(int[] nums){ int j ,k; j= 0; k =0; for...

2021-07-26 11:34:16 57

原创 LeetCode热题Hot-21 链表中倒数第k个节点

给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.class Solution { public ListNode getKthFromEnd(ListNode head, int k) { ListNode fast=head; ListNode slow=head; for(int i=0;i<k-1;i++){ fast=fast.next;

2021-07-26 10:48:15 48

转载 Redis 持久化策略

Redis 是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦 Redis 进程异常退出,或服务器本身异常宕机,我们存储在 Redis 中的数据就凭空消失,再也找不到了。Redis 作为一个优秀的数据中间件,必定是拥有自己的持久化数据备份机制的,redis 中主要有两种持久化策略,用于将存储在内存中的数据备份到磁盘上,并且在服务器重启时进行备份文件重载。RDB 和 AOF 是 Redis 内部的两种数据持久化策略,这是两种不同的持久化策略,一种是基于内存快照,一种是基于操作日志,那么本篇就先

2021-07-26 10:24:32 93

原创 LeetCode热题Hot-20 合并两个有序链表

class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) return l2; if(l2 == null) return l1; ListNode head = l1.val < l2.val ? l1 : l2; head.next = mergeTwoLists(head.next, head == l.

2021-07-23 17:05:09 61

原创 LeetCode热题Hot-19 反转链表

class Solution { public ListNode reverseList(ListNode head) { if(head ==null || head.next ==null) return head; // null->1->2->3->4->5->null // p c ListNode prev = null; ListNode curr = head;.

2021-07-23 16:58:57 130

原创 LeetCode热题Hot-18 判断链表是否有环

public class Solution { public boolean hasCycle(ListNode head) { ListNode fast = head; ListNode slow = head; while(fast!=null&&fast.next!=null){ fast=fast.next.next; slow=slow.next; if(slow==fast) return true; } return.

2021-07-23 16:55:31 33

原创 LeetCode热题Hot-18 两数之和

两数之和

2021-07-23 10:47:47 50

原创 LeetCode热题Hot-17 找出数组中大于一半数组长度的数字

class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/2]; }}

2021-07-22 19:36:15 40

原创 LeetCode热题Hot-16 无重复字符的最长子串 非常重要

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。class Solution { public int lengthOfLongestSubstring(String s) { int i = 0; Map<Character, Integer> map = new HashMap<&...

2021-07-22 10:40:04 80

原创 LeetCode热题Hot-15 合并两个有序数组

给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]class Solution { public...

2021-07-21 18:06:04 43

原创 LeetCode热题Hot-14 买卖股票的最佳时机II

给定一个数组 prices ,其中prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = ...

2021-07-20 17:40:04 45

原创 LeetCode热题Hot-13 买卖股票的最佳时机

给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-...

2021-07-20 17:19:52 47

原创 LeetCode热题Hot-12 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。 待续

2021-07-20 17:15:06 62

原创 LeetCode热题Hot-11 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。class Solution { public boolean isSymmetric(TreeNode root) { return check(root, root); } public boolean check(TreeNode p, TreeNode q) { if (p == null && q == null) ..

2021-07-20 17:06:51 64

原创 LeetCode热题Hot-10 爬楼梯

class Solution { public int climbStairs(int n) { int p = 0, q = 0, r = 1; for (int i = 1; i <= n; ++i) { p = q; q = r; r = p + q; } return r; }}

2021-07-20 16:35:43 67

空空如也

空空如也

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

TA关注的人

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