自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring:本地事件的应用

应用事件的观察者模式,可以实现异步,功能解耦的目的,下面简要说下spring中本地事件ApplicationEvent的用法。话不多说,直接上代码:定义一个Event,如下定义了一个新增事件,可以如法炮制定义别的事件package com.example.event;import org.springframework.context.ApplicationEvent;public class AddEvent extends ApplicationEvent { private s

2021-05-25 10:36:10 243

转载 多线程:循环打印ABC

前言:这是一道百度的面试题,查阅资料学习后发现方法还挺多的,这里给出三种方法,分别是:两个锁ReenTrantLock加condition来管理一个锁+一个状态位两个锁思想:三个线程,每一个线程都有一把锁,当一个线程同时拿到两把锁才能去打印字符,代码如下:package ConcurrentTest;public class XuTwoLockPrinter implements Runnable{ // 前一个锁 Object frontLock; // 自

2021-01-11 15:20:49 831

原创 算法:分糖果问题

题目:一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:1 每个孩子不管得分多少,起码分到一个糖果。2. 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。(若相同则无此限制)给定一个数组arr代表得分数组,请返回最少需要多少糖果。输入:31 2 2输出:4解析:这道题可以用贪心算法来做,给每个孩子尽量少的糖果数。用一维数组表示每个孩子最终分到的糖果的数目。那么本题可以拆分成两个方向的维度:首先从左向右遍历,得分多的孩子的糖果数也要多;其次,从右向左遍历,得分多的孩子的糖果

2020-12-23 00:24:56 2816

原创 面试:双亲委派机制

双亲委派机制JVM类加载器从下往上是自定义类加载器,系统类加载器,扩展类加载器,起始类加载器。起始类加载器:由c语言编写,加载Java最核心的类jre/lib下的扩展类加载器:由java编写,加载Java扩展类的下的类,jre/lib/ext系统类加载器:加载自己定义的类即用户路径上的类。自定义类加载器:可以用于源码加密,可以用于类的隔离。双亲委派机制:当一个类需要加载的时候,首先需要找到这个类加载器的父亲加载器,一直往上找,直到起始类加载器,如果起始类加载器不能加载,那就向下委派直到能加载为

2020-09-15 21:38:03 233

原创 面试:JVM中的常见问题整理

1.jvm内存内存分布:jvm内存可以分为线程私有的,比如虚拟机栈(栈帧包含局部变量表,操作数表,对运行时常量池的引用,也可以成为动态链接,同时每调用一次方法就生成一个栈),程序计数器,本地方法栈。线程共享的有方法区(包含运行时常量池),堆(包含对象实例)。虚拟机栈:是描述方法执行的内存模型,每当一个方法创建就会生成一个栈帧,随着方法的调用和结束,栈帧就会在虚拟机栈里进栈和出栈。堆:是线程共享的内存区域,线程所创造的对象和数组都存放在这里,又可以划分新生代和老生代。方法区:用于存放类信息,常量,静态

2020-09-15 16:22:54 103

原创 算法:变形的最大矩阵面积

题目在X轴上水平放置着 N 个条形图,这 N 个条形图就组成了一个柱状图,每个条形图都是一个矩形,求出这些矩阵所能包含的最大矩阵面积,例如x坐标为{1,1,1,1,2,1,1},y坐标为{5,2,5,4,5,1,6},则最大矩阵面积为(1+1+2)* 4 = 16分析以到第四个索引作为结尾来求此时的最大矩阵面积为例,此时的最大矩阵面积可以是(1+1+2)* 4或者(1+1+1+1+2)* 2或者是2 * 5,取他们中的最大值,有了这个想法,下面给出代码。代码package algorithm;

2020-08-27 21:39:05 292

原创 算法:在字符串里数字的两边加上“*”

题目:字符中所有出现的数字前后加上符号“*”,其他字符保持不变解析:题目比较简单,不动脑子直接判断也可以做出来:import java.util.*;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String str =

2020-08-26 18:14:18 802

原创 算法:未排序的数组中累加和为给定数字的最长子数组的长度

题目:给定一个数组arr,该数组无序,但每个值均为正数,再给定一个正数k。求arr的所有子数组中所有元素相加和为k的最长子连续数组的长度例如,arr = [1, 2, 1, 1, 1], k = 3累加和为3的最长子数组为[1, 1, 1],所以结果返回3[要求]时间复杂度为O(n),空间复杂度为O(1)没怎么动脑子,给出了一种解法,但是时间复杂度和空间复杂度应该都不对,import java.util.*;public class Main { public static voi

2020-08-26 00:47:35 229 2

原创 SpringMVC:前端控制器拦截规则“/”和“/*”的区别

当我们在web.xml配置拦截方式的时候: <servlet-mapping> <servlet-name>taotao-manager</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>(1)如果配置“/”,那么就会拦截除了jsp之外的页面,也就是不包含jsp等静态资源。这时候如果有静态资源怎么办?就需要手动在视图解析器里配置静态资源映射。如下:

2020-08-04 20:19:30 756

原创 算法:求出最长公共子序列与最长公共子串

最长公共子序列:import java.util.*;public class Main{ // 注意这里是最长公共子序列而不是最长公共子串 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str1 = scanner.nextLine(); String str2 = scanner.nextLine();

2020-07-18 23:24:54 89

原创 算法:换钱的最少货币数

题目给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。输入输入包括两行,第一行两个整数n(0<=n<=1000)代表数组长度和aim(0<=aim<=5000),第二行n个不重复的正整数,代表arr(1≤arri≤109)\left( 1 \leq arr_i \leq 10^9 \right)(1≤arri​≤109)。输出输出一个整数,表示组成aim的最

2020-07-09 16:43:12 412

原创 剑指offer刷题:滑动窗口的最大值

题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6

2020-07-02 17:17:31 107

原创 快速排序_你所未见过的船新版本

快速排序的思想大家应该都很熟,但是时间长了,我相信至少有50%的科班生都不一定能够在半小时之内写出来,在这里,我们重新捋一遍快排的思想:其实它的思想也还是分治法,(1)找到一个基准点(可以是起始点,也可以是任何一个位置),比它大的放在右边,比它小的放在左边,这样一个循环下来,这个基准点的位置就确定下来;(2)循环往复,子问题就变成了新的起始点到刚才那个基准点 + 基准点到终点两个子问题 (3)递归解决子问题。时间复杂度:再最坏的情况下,快排的时间复杂度也会达到O(N^2),但是平均复杂度是O(nlog(n)

2020-06-28 00:15:11 114

原创 字符数组的全排列

先上代码:import java.util.*;public class FullPermutation { public static void main(String[] args) { List<String> list = new ArrayList<String>(); char[] str = new char[]{'a','b','c','d'}; solution(str,list,0); System.out.println(list);

2020-06-26 17:28:41 190

原创 my要的轮播照片墙

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>照片墙</title> <style> .div-main {margin:0 auto} .div-a{ float:left;...

2019-05-29 01:15:38 578

转载 my要用的照片

12345678910

2019-05-27 12:16:17 103

空空如也

空空如也

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

TA关注的人

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