- 博客(58)
- 收藏
- 关注
原创 彻底搞懂Spring的循环依赖
循环依赖一直是Spring中一个比较重要的话题,刚开始使用Spring时,可能还没用感知到这块,毕竟Spring已经帮我们处理了,可是随着学习的深入和思考,总是要去揭开这层面纱,要想掌握的更深一点,就得多去想想了,凡事多问几个为什么,理解问题会更加透彻。...
2022-08-13 21:07:04
3175
原创 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。('2', "abc");('3', "def");('4', "ghi");('5', "jkl");('6', "mno");('7', "pqrs");('8', "tuv");('9', "wxyz");public List<String> letterCombinations(String digits)
2021-04-02 14:19:32
261
原创 16. 最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。public class LeetCode_16_threeSumClosest { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int n = nums.length;
2021-04-02 14:08:14
206
原创 15. 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。public class LeetCode_15_threeSum { public List<List<Integer>> threeSum(int[] nums) { int n = nums.length; Arrays.sort(nums); List
2021-04-02 14:03:41
125
原创 14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。如:strs = [“flower”,“flow”,“flight”] ===> “fl”如:strs = [“dog”,“racecar”,“car”] ===> “”public class LeetCode_14_longestCommonPrefix { public String longestCommonPrefix(String[] strs) { if (str
2021-04-02 13:50:46
100
原创 12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000public class LeetCode_12_intToRoman { int[] values = {1000, 900, 500, 400, 100, 9
2021-04-02 11:06:45
97
原创 13. 罗马数字转整数
public class LeetCode_13_romanToInt { public int romanToInt(String s) { if (s == null || s.length() == 0) { return 0; } int preNum = getByChar(s.charAt(0)); int sum = 0; for (int i = 1; i < s.leng
2021-04-02 11:05:43
83
转载 kafka集群搭建步骤(亲测可用)
单机模式下载wget http://archive.apache.org/dist/zookeeper/stable/zookeeper-3.6.1.tar.gz解压tar -zxvf zookeeper-3.6.1.tar.gz#修改conf目录下的zoo_sample.cfgmv zoo_sample.cfg zoo.cfg (建议复制一份 采用cp指令)启动(bin目录下)sh zkServer.sh start验证是否启动(bin目录下)sh zkServer.sh status
2021-04-02 10:40:38
5696
原创 11. 盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。package HelloWorld;p
2021-04-01 17:19:44
93
原创 10. 正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 ‘a’。因此,
2021-04-01 16:55:31
246
1
原创 9. 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。public class LeetCode_9_isPalindrome { public boolean isPalindrome(int x) { if (x < 0) { return false; } int y = 0;
2021-03-31 15:14:54
95
原创 8. 字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“123”
2021-03-31 15:07:04
106
原创 7. 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。public class LeetCode_7_Num_Reverse { public static int reverse(int x) { int res = 0; while (x != 0) { int temp = x % 10; if
2021-03-31 14:25:28
95
原创 6. Z 字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。public class LeetCode_6_Z_convert { public static String
2021-03-31 14:10:06
89
原创 4. 寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5public class LeetCode_4_Find
2021-03-31 10:13:36
129
原创 3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。public class LeetCode_3_LengthOfLongestSubstring { public int LengthOfLongestSubstringMethod(String s) {
2021-03-31 10:05:05
90
原创 2. 两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。public class LeetCode_2_TwoNumSum { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode root = new ListNode(0)
2021-03-31 09:53:15
98
原创 1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。public class LeetCode_1_TwoSum { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.leng
2021-03-31 09:41:37
92
原创 半年经验Java面试准备
认识自己去年7月入职,就互联网行业来说,公司较为普通,不过也算是大厂了,坐标南京。进来转眼大半年了,发现方向不对头,不像自己毕业时想的那样,虽然同是开发,但更多的是流程化的编程,杂事很多,语言也不是Java,此时萌生了跳槽的想法。准备阶段基础很薄弱,还是校招的基础,只会SSM框架和SpringBoot框架,其他的知识基本忘完了,于是开始复习:1、Java基础(1)一些基础知识,数据类型、面向对象、对象创建过程、类加载顺序等一系列非常非常基础的知识;(2)Java集合,主要有set、list、m
2021-03-24 11:02:03
596
2
原创 MySQL索引失效实践
导入sqlCREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMMENT '职位', `hire_time` time
2021-03-13 15:06:09
251
1
原创 深入理解MySQL中的explain关键字
使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是结构的性能瓶颈。下面是使用 explain 的例子:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)导入sqlDROP TABLE IF EXISTS `actor`;CREATE TABLE `actor` (
2021-03-13 14:43:15
294
1
原创 GPG key retrieval failed: [Errno 14] curl#37 - “Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-c7“
解决办法rpm --import /etc/pki/rpm-gpg/RPM*yum makecache
2021-03-05 15:39:10
1665
原创 java之运用Condition实现消费者、生产者模式
package concurrency.lock;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Condition01 { static Lock lock = new ReentrantLock(); static Condition f
2021-03-02 15:50:39
272
原创 Java的main方法如何调用内部类
Main方法访问内部普通类的方法如下方法一:需要使用一个外部类对象来new 内部类()----->调用方法public class JZ1 { public class Solution { public boolean Find() { return false; } } public static void main(String[] args) { System.out.println(ne
2021-03-02 11:09:25
3278
原创 nohup: appending output to ‘nohup.out’不显示
最近在将SpringBoot项目打成jar包,放到Linux中时需要让其后台运行,可以使用nohup命名,Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。nohup java -jar your_project.jar &但是会提示:nohup: ignoring input and appending output to ‘nohup.out’这句话意思就是你需要将日志输出到nohup.out中去,不然会默认生成。虽然不是什
2021-02-04 15:29:23
28130
原创 Dockerfile文件CMD执行脚本Docker容器不退出
Dockerfile文件FROM mplat:1.0COPY myproject /opt/myprojectRUN chmod 777 /opt/myproject/start.shEXPOSE 8080WORKDIR /opt/myprojectCMD ["bash","-c","./start.sh start && tail -f /dev/null"]
2021-01-27 17:01:36
7539
1
原创 SpringBoot项目启动、停止脚本
项目打包使用idea打开项目,点击Maven——>Lifecycle——>install——>Run Maven Build,生成的jar包在target目录下。编写脚本脚本和其他博客类似,我是利用其他博客的脚本进行编写,发现各种报错,如不能启动、不能停止等等问题,于是将这些全都修改了,如下:#!/bin/sh#定义程序名 及jar包的名(写上你自己的jar包)PROJECT_NAME=xxx.jar## 编写判断程序是否正在运行的方法isExist(){
2021-01-27 15:48:45
1654
1
原创 SpringCloud之Feign简单入门
Feign简介Feign是一个声明式的Web服务客户端。这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters。Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端。——摘自SpringC
2021-01-26 16:55:30
4133
原创 SpringCloud之Ribbon简单入门
提出疑问① 如何在配置Eureka Client注册中心时不去硬编码Eureka Server的地址?② 在微服务不同模块间进行通信时,如何不去硬编码服务提供者的地址?③ 当部署多个相同微服务时,如何实现请求时的负载均衡?解决方案-Ribbon一 Ribbon简介Spring Cloud Ribbon是基于NetFilix Ribbon实现的一套客户端的负载均衡工具。Ribbon客户端组件提供一系列的完整的配置,如超时,重试等。通过Load Balancer(LB)获取到服务提供的所有机器实例,
2021-01-26 14:07:01
604
1
原创 springboot + Mybatis 动态切换数据源
springboot+mybatis实现动态切换数据源目前有个需求,需要使用不同的数据源,例如某业务要用A数据源,另一个业务要用B数据源。目录结构依赖引入<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation
2021-01-15 11:09:45
386
原创 5. 最长回文子串
思路:对于一个子串来说,如果它是回文串,并且长度大于2,那么去了首尾两个字母之后,它仍然是个回文串。我们用P(i,j)表示字符串s的第i到第j个字母组成的串(之后用s(i:j)表示)是否为回文串。P(i,j)= true,如果s(i:j)是回文串;P(i,j)=false,其它情况->s(i:j)不是回文串或者i>j;那么就可以写出动态规划的状态转移方程:P(i,j)=P(i+1,j-1)&&(s(i)==s(j))也就是说,如果s(i:j)为回文串,必须同时满足两
2021-01-13 17:27:38
184
原创 SpringCloud之Eureka简单入门(单机版)
1. 环境准备(1)首先创建一个父工程spring-cloud-parent;(2)子工程Eureka服务端EurekaServer9000,port指定为9000;(3)子工程微服务提供者micro-service-provider,port指定为7001;(4)子工程微服务消费者ms-consumer-user-8001,port指定为8001;2. 父工程spring-cloud-parent的pom文件主要是为了固定springboot的版本以及springcloud组件的版本。<
2021-01-13 14:12:19
174
原创 java并发编程(二)之线程池
文章目录一 摘要二 线程池的好处三 线程池解决的问题四 ThreadPoolExecutor总体设计五 ThreadPoolExecutor核心参数5.1 corePoolSize5.2 maximumPoolSize5.3 keepAliveTime5.4 unit5.5 workQueue5.6 threadFactory5.7 handler六 ThreadPoolExecutor参数设置6.1 corePoolSize6.2 queueCapacity6.3 maxPoolSize6.4 keepA
2020-12-14 17:13:38
643
原创 线程排查死锁
多线程运行过程中,大家都会遇到死锁问题,当面试官问你如何排查死锁的时候,最基本的方式我觉得应该要掌握:jps + jstackjps+jstack在cmd中首先运行jps -l 指令,获取java进程的pid然后jstack -l [pid]JConsoleJConsole在cmd中运行JConsole指令,进入Java监视和管理控制台,选择要检查死锁的类—>选择线程—>死锁—>获取死锁位置...
2020-12-08 10:59:27
183
原创 Java并发编程(一)之Runnable、Callable、Future、FutureTask、ExecutorService
Runnable、Callable、Future和FutureTaskJava中创建线程的3种方式,一种是直接继承Thread类,一种就是实现Runnable接口,最后一种是实现Callable接口:1、继承Thread方式,重写run方法:package thread;public class ThreadTest extends Thread { public void run() { System.out.println(Thread.currentThread().
2020-12-07 20:10:48
460
原创 Java代码修改yaml文件
1、通过java代码修改yaml文件,需要用到snakeyaml依赖,因此先导入依赖<dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId></dependency>2、修改前的yaml文件 src/main/resources/config/lizard_sts.yamlapiVersion: apps/v1k
2020-10-16 18:13:27
4016
原创 面试题整理(二)-----二叉树
二叉树的结构class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; }}二叉树的前序遍历 二叉树的前序遍历----递归方式public static void preOrderTraversal(TreeNode root) ...
2019-09-04 17:05:04
92
原创 正则表达式匹配
给你一个字符串s和一个字符规律p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p = "a"输...
2019-08-28 15:18:05
186
原创 面试题整理(一)
一、排序1、冒泡排序时间复杂度:O(N^2),稳定性:稳定。public static void BubbleSort(int [] arr){ int temp;//临时变量 for(int i=0; i<arr.length-1; i++){ //表示趟数,一共arr.length-1次。 for(int j=arr.length-1;...
2019-08-19 22:36:06
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人