- 博客(61)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 LeetCode hot100(复习用)
题目 通过率 难度 1. 两数之和 51.8% 简单 2. 两数相加 40.7% 中等 3. 无重复字符的最长子串 37.8% 中等 1、hashMap储存位置+滑动窗口left=Math.max(left,map.get(s.cha...
2021-08-20 01:19:25 444
原创 三个线程轮流打印ABC
1、多线程if和where的区别:就是用if判断的话,唤醒后线程会从wait之后的代码开始运行,但是不会重新判断if条件,直接继续运行if代码块之后的代码,而如果使用while的话,也会从wait之后的代码运行,但是唤醒后会重新判断循环条件,如果不成立再执行while代码块之后的代码块,成立的话继续wait。2、一.概述wait()方法可以使线程进入等待状态,而notify()可以使等待的状态唤醒wait,notify和notifyAll方法是Object类的成员函数,所以Java的任何一个.
2021-07-14 13:36:17 7222 1
原创 面试常见问题:LRU、多线程死锁、单例
1、LRU设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数
2021-04-06 19:13:34 187
原创 linux ecs 挂载分区
第二个数字指的是启动时 fsck 检查文件系统的顺序,/ 文件系统设置为 1,而其他文件系统设置为 2 或更大的数字。#使用 blkid 的方法会自动获取设备的UUID,而不是用设备的路径(例如 /dev/nvme1n1p1)。echo "错误:fstab 配置测试失败,请检查 fstab 文件的格式和设置。echo "错误:fstab 中的 UUID 与实际分区不一致。echo "检查 fstab 中的 UUID 与实际分区是否一致..."echo "测试 fstab 配置..."
2024-02-29 17:51:35 1028
原创 maven 解决依赖冲突
INFO] | | | +- (org.apache.hadoop:hadoop-annotations:jar:3.3.1:compile - omitted for conflict with 2.7) 省略,因为有冲突的,就是这里没有被编译。mvn dependency:tree -Dverbose -Dverbose参数会把被忽略的jar,即相同jar包的不同版本引入也列出来。表示当前包的版本是1.9.13 被编译,但是由于依赖冲突被省略,不会依赖于1.9.2版本。
2023-04-20 11:39:41 314
原创 JVM相关知识记录
如果对象在 Eden 出生并经过第一次 Minor GC 后仍然能够存活,并且能被 Survivor 容纳的话,将被移动到 Survivor 空间(s0 或者 s1)中,并将对象年龄设为 1(Eden 区->Survivor 区后对象的初始年龄变为 1)。(Eden,s0 ->s1,Eden s1->s0....)
2023-02-22 11:22:02 125
原创 Concurrent
ConcurrentLinkedHashMap 是google团队提供的一个容器。其实它本身是对ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,淘汰掉最不经常使用的数据。
2023-02-16 11:32:47 158
原创 Spring 概述
Spring 框架是一个分层架构,每个模块既可单独存在,又可与其他模块联合实现,其架构如下图所示:Spring架构图Core 核心容器:提供依赖注入和Bean管理功能,主要组件是 BeanFactory,它使用控制反转模式将应用程序配置和依赖规范与实际的应用代码分开; Context:框架式的对象访问方法,扩展了BeanFactory的概念,增加了对国际化、事件传播,以及验证等的支持,此外还提供了许多企业服务及对模版框架集成的支持; DAO:该层封装了对数据库的访问,并且处理了其抛.
2021-12-30 22:29:57 340
原创 行测常见规律
3245元素组成相同,看位置 平移、旋转、翻转元素组成相似,看同异、黑白计算(加减,去同存异、去异存同、黑白 )元素相对独立 自身特点(对称性、区直性、开闭性、位置关系交隔接)图组合图形 元素分布(点线面角素)九宫格优先行看(90%)位置类 1、元素组成相同。相对位置明显。 平移、翻转、旋转 方向: 上下左右;顺时针、逆时针 步数:定值、等差数列 样式类 2、元素组成相似 1) 相加相减、求同、求异 2)...
2021-10-23 21:38:48 3182
原创 迷宫问题总结(算法)
1、常见迷宫问题dfs走出迷宫的最短路径:BFSclass Node { int x, y; //int len; //有时需要记录深度 //Node pre; //有事需要记录路劲}public static int BFS(char[][] m, boolean[][] vis, Node start, Node end,) { Queue<Node> q = new LinkedList<>();
2021-09-17 02:51:34 3723
原创 求解字符串的运算结果(包含括号+-*/)逆波兰式(后缀式)基本步骤
1、需要两个栈(结果String栈s1和Character辅助栈s2)2、定义优先级( + - * / 优先级分别0 1 1 2 23、遍历字符串s‘ 1、如果是数字,加入s1; 否则: 2、if 如果s2为空 或者是左括号“(” 或者 如果当前字符优先级大于栈顶优先级 ; //(可类比记忆,当栈顶为左括号的时候,肯定加入,加入的优先...
2021-09-10 02:19:47 207
原创 LeetCode搜索旋转排序数组
本文涉及 4 道「搜索旋转排序数组」题:LeetCode 33 题:搜索旋转排序数组 LeetCode 81 题:搜索旋转排序数组-ii LeetCode 153 题:寻找旋转排序数组中的最小值 LeetCode 154 题:寻找旋转排序数组中的最小值-ii可以分为 3 类:33、81 题:搜索特定值 153、154 题:搜索最小值 81、154 题:包含重复元素LeetCode 33 题:搜索旋转排序数组 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函
2021-08-20 02:02:25 136
原创 单调栈记录
对于「找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。适用场景单调栈适合的题目是求解下一个大于 xxx或者下一个小于 xxx这种题目。所有当你有这种需求的时候,就应该想到单调栈。单调栈就是在栈的基础上维护一个栈内元素单调。单调递减栈应用的两种方式:①在一个数组中针对每一个元素从它右边寻找第一个比它大的元素②在一个数组中针对每一个元素从它左边寻找第一个比它大的元素(从后往前遍历)739. 每日温度题目描述:根据每日气温列表,请重新生成一个列表,对...
2021-07-26 21:18:35 76
原创 重写equals和hashcode
1.equals()的所属以及内部原理(即Object中equals方法的实现原理)说起equals方法,我们都知道是超类Object中的一个基本方法,用于检测一个对象是否与另外一个对象相等。而在Object类中这个方法实际上是判断两个对象是否具有相同的引用,如果有,它们就一定相等。其源码如下:public boolean equals(Object obj) { return (this == obj); }package com.company;import j...
2021-07-23 20:31:10 115
原创 JAVA多线程基础
多线程中join、yield、wait、sleep的区别Thread类的方法:sleep(),yield()等 Object的方法:wait()和notify()等由于sleep()方法是Thread 类的方法,因此它不能改变对象的机锁。所以当在一个Synchronized方法中调用sleep()时,线程虽然休眠了,但是对象的机锁没有被释放,其他线程仍然无法访问这个对象。而wait()方法则会在线程休眠的同时释放掉机锁,其他线程可以访问该对象。Yield()方法是停止当前线程,让同等优先权的线程运行
2021-07-12 21:15:08 82
原创 IDEA 快捷键
常用快捷键 说明 Ctrl+Shift+Z 取消、撤销 Ctrl +D 快速复制一行 Ctrl +Y 删除某行 Ctrl+X 剪切当前行或选择的内容 Alt+Enter 导包,提示添加变量、自动修正等等 Ctrl+Alt+L 快速格式化代码 Shift+Enter 开始换行 Shift+F6 快速重命名:变量、类名、方法等重命名,按两下弹出命名框 F6 移动路径,如移动类到某个包,移动类中成分到其他类等...
2021-06-21 19:25:00 253
原创 LeetCode题目整理
滑动窗口题目:3. 无重复字符的最长子串30. 串联所有单词的子串76. 最小覆盖子串159. 至多包含两个不同字符的最长子串209. 长度最小的子数组239. 滑动窗口最大值567. 字符串的排列632. 最小区间727. 最小窗口子序列待完成。。。。...
2021-06-05 22:59:08 128 2
原创 <MySQL必知必会>学习笔记
第1章 了解SQL略过第2章 MySQL简介略过第3章 使用MySQL# 使用指定的数据库use mysql_need_know;# 显示所有的数据库show databases;# 显示所有数据库中的所有表show tables;# 显示指定表的所有列信息show columns from customers;desc customers;describe customers;# 显示mysql服务状态信息show status;# 显示指定的数据库或者
2021-06-04 12:05:13 55
原创 复盘
1、如何解决int溢出问题;if(a+b<0) return true;if(a>Inter.MaxValue-b) return true;
2021-04-06 01:38:03 99
原创 设计模式---三大分类、六大原则
//懒汉式 线程不安全,第一次调用初始化,避免内存的浪费。public class LSingleton { private static LSingleton instance = null; private LSingleton() { } public static LSingleton getInstance() { if (null == instance) { instance = new LSingleton(); .
2021-04-05 23:55:32 263
原创 【信息安全】面试常问CSRF、cookie、session和token
1. 什么是CSRF?原文安全|常见的Web攻击手段之CSRF攻击CSRF攻击的全称是跨站请求伪造( cross site request forgery),是一种对网站的恶意利用。简单点讲就是,恶意网站(攻击者)盗用了你的身份,以你的名义向信任网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件、发短信、进行交易转账等,甚至盗取你的账号。图片来自什么是CSRF?可能多数人都不清楚,没事,一起来了解!!!对上面的图进行分析:用户C通过浏览器登陆并浏览信任网站A; 在用户C的浏览器中..
2021-04-01 21:21:08 459
原创 LeetCode二分查找题目总结
153、154 题:搜索最小值1、寻找旋转排序数组中的最小值(题目)单调递增的序列: * * * **做了旋转: ** * * *用二分法查找,需要始终将目标值(这里是最小值)套住,并不断收缩左边界或右边界。左、中、右三个位置的值相比较,有以下几种情况:左值 < 中值, 中值 < 右值 :没有旋转,最小值在最左边,可以收缩右边界 右 中左左值 &g...
2021-03-28 21:40:41 193
转载 Leetcode 寻找两个正序数组的中位数 [hard] 归并和二分
题目链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.5...
2021-03-25 01:10:50 98
原创 算法题目整理
开平方根:class Solution { public int mySqrt(int x) { int l = 0, r = x, ans = -1; while (l <= r) { int mid = l + (r - l) / 2; if ((long) mid * mid <= x) { ans = mid; //很巧妙的地方,最后一
2021-03-21 02:46:18 90
转载 js 打印博客脚本
平时经常从CSDN打印博客看,发现一般JS打印CSDN博客,出现右边文字显示不全,阅读效果较差。我在参考了爪洼洼的《打印CSDN网页内容》中JS代码基础上增加了页面样式调整,将整个页面内容调整到一个合适的范围打印。写下这个内容主要是方便以后,自己打印需要。写下这个内容主要是方便以后,自己打印需要。具体如下:打印CSDN博文内容,将以下js复制放入Chrome开发者选项里边的console,回车即可。(function(){$("#side").remove();$("#comment_
2021-03-16 15:19:48 96
原创 Java多线程实现的四种方式
Java多线程实现的方式有四种 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 .........
2021-03-16 14:47:03 4070
原创 LRU算法O(1)复杂度
请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。在请求分页系统中,只要求将当前需要的一部分页面装入内存,以便可以启动作业运行。在作业执行过程中,当所要访问的页面不在内存时,再通过雕爷功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。页面置换算法的主要目标是使页面置换频率最低(也可以说缺页率最低)。常见的页面置换算法有以下几种:1、最佳置换算法(Opt...
2021-03-15 16:22:41 616
原创 剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { if (A==null || B==null) return false; //前序遍历,首先遍历A(判断B是否为以A为根节点的子树的子结构),遍历左子树 ,遍历右子树。
2021-01-17 21:19:41 142
原创 工作中碰到的linux vim命令 [防忘记】
linuxhistory | tail -10 最后10条历史命令查找||为分割符的grep "wrp_deal_time" * |awk -F '\\|\\|' '{print $1 $16}'$grep -A 10 'qsm' test.log //打印匹配行的后10行$grep -B 10 'qsm' test.log//打印匹配行的前10行$grep -10 'qsm' test.log//打印匹配行的前后10行linux 下查看进程占用端口:(1)查看程序对应.
2021-01-14 16:13:28 205
原创 剑指 Offer 20. 表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。参考剑指offer (第二版)127 页 ,将数字分为几个部分 A为数值的整数部分,B为紧跟着小数点的小数部分 ,C为紧跟着e/E的指数部门。(注意 .20 1.e3 都是符合的)模式有 A[.[B]][eC]或者.B[eC],抽象了两个函数..
2021-01-10 17:46:17 141
原创 排列组合问题总结:(回溯法总结)
1、给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]先想一下模板: public void dfs(int k){ if (k==nums.length){ System.out.println(tmp); //排列完毕 打印。 r...
2021-01-06 13:17:40 374 1
原创 剑指offer 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。1、法一:递归生成全排列,通过n和9的个数之间的关系截取。比如说生成 ...097 098 099 ... 9的个数分别为 1 1 2 。n-count 分别为2 2 1 当前的start为1,满足n - start == count 时 start向前一位,代表截取起始坐标前进一位。class Solution { StringBuilder res;...
2021-01-05 16:54:36 166 3
原创 二叉树遍历方式 总结
1、二叉树前序遍历 递归与迭代方式。根左右,遍历把根push进stack,然后push 右子树,左子树。由于根在(根左右)前面,每次子遍历根都在前面,压进去就出来了,可忽略根的属性。由于栈的特性。左右子树压进去的顺序相反。可参考图 。 public static void preOrderRecur(TreeNode head) { if (head == null) { return; } System.out....
2020-12-18 21:53:36 132 1
hadoop2.6.0 插件(针对eclipse不同版本)
2018-04-23
关于这篇文章(APK加壳)中最后结果的问题
2017-06-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人