最长回文子串 -- 三种解答

2021-10-08
阅读 5 分钟
2k
题目描述给你一个字符串 s,找到 s 中最长的回文子串。例子 {代码...} 来源:力扣(LeetCode)链接:[链接],著作权归领扣网络所有。思路以及解答暴力破解暴力破解,即是针对里面每一个子串,都去判断是否为回文串。判断每一个字符是不是回文串,比如用 cbac 判断,左右两个指针,对称判断,相等则往中间移动,继续判断...

面试题 -- 如何设计一个线程池

2021-09-05
阅读 4 分钟
6.3k
以前,我总觉得的买一件东西,做一件事,或者从某一个时间节点开始,我的生命就会发生转折,一切就会无比顺利,立马变厉害。但是,事实上并不是如此。我不可能马上变厉害,也不可能一口吃成一个胖子。看一篇文章也不能让你从此走上人生巅峰,越来越相信,这是一个长期的过程,只有量变引起质变,纵使缓慢,驰而不息。
封面图

线程与线程池的那些事之线程池篇(万字长文)

2021-06-21
阅读 25 分钟
3.3k
线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重要的核心参数,几个重要的方法,底层实现,拒绝策略,参数设置,动态调整,线程隔离等等。主要的大纲如下:
封面图

线程与线程池的那些事之线程篇

2021-05-20
阅读 11 分钟
1.1k
线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重要的核心参数,几个重要的方法,底层实现,拒绝策略,参数设置,动态调整,线程隔离等等。主要的大纲如下(本文只涉及线程部分,线程池下篇讲):

【实战问题】-- 布隆过滤器的三种实践:手写,Redission以及Guava(2)

2021-05-13
阅读 6 分钟
4.8k
布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在 1970 年提出的,它实际上是由一个很长的二进制向量和一系列随机hash映射函数组成(说白了,就是用二进制数组存储数据的特征)。

150页的剑指Offer解答PDF,它来了!!!

2021-04-24
阅读 3 分钟
12.5k
它来了!!!终于整理出了第一版剑指Offer的PDF,主要以Java语言为主,一共67道题,100多页。领取方式如下(无套路直接获取百度网盘的 🔗 链接,如果链接失效可以直接找我):【秦怀杂货店】公众号内发送:剑指Offer刷题仓库:CodeSolution ,具体的分类如下:数组剑指Offer(二)--二维数组中的查找 剑指Offer(十三)--调...

Java学习之路 -- Java怎么学?

2021-03-29
阅读 4 分钟
3.8k
当时,作为懵懂的小白,大一学习了c和c++,还有数据结构,后来才自学的java。有了c++的基础,其实学java确实感觉挺容易上手。如果没有c或者c++的基础,建议开始需要先把java的基础打好,基础是指什么?基础的语法,能用!至于源码,不建议在刚刚开始学就看源码,绝对劝退!!!

【实战问题】-- 缓存穿透之布隆过滤器(1)

2021-03-27
阅读 3 分钟
2.8k
前面我们提到,在防止缓存穿透的情况(缓存穿透是指,缓存和数据库都没有的数据,被大量请求,比如订单号不可能为-1,但是用户请求了大量订单号为-1的数据,由于数据不存在,缓存就也不会存在该数据,所有的请求都会直接穿透到数据库。),我们可以考虑使用布隆过滤器,来过滤掉绝对不存于集合中的元素。

java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?

2021-03-26
阅读 8 分钟
1.2k
[TOC]要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制,迭代器,增删改查效率这几个方向入手。特性列举ArrayList:动态数组,使用的时候,只需要操作即可,内部已经实现扩容机制。线程不安全有顺序,会按照添加进去的顺序排好基于数组实现,随机访问速度快,插入和删除较...

从解决Github TimeOut到经典面试题:从输入URL到浏览器显示页面发生了什么?

2021-03-25
阅读 2 分钟
1.3k
在Windows 操作系统上,push代码到git的时候,出现了Failed to connect to github.com port 443: Timed out的错误。一脸懵逼,浏览器网页也访问不了。

【实战问题】-- 缓存穿透,缓存击穿和缓存雪崩的区别以及解决方案

2021-03-22
阅读 3 分钟
21.1k
平时我们使用缓存的方案,一般是在数据库中存储一份,在缓存中同步存储一份。当请求过来的视乎,可以先从缓存中取数据,如果有数据,直接返回缓存中的结果。如果缓存中没有数据,那么去数据库中取出数据,同时更新到缓存中,返回结果。如果数据库中也没有数据,可以直接返回空。

【实战问题】-- 并发的时候分布式锁setnx细节

2021-03-19
阅读 3 分钟
2.8k
前面讲解到实战问题】-- 设计礼品领取的架构设计以及多次领取现象解决?,如果出现网络延迟的情况下,多个请求阻塞,那么恶意攻击就可以全部请求领取接口成功,而针对这种做法,我们使用setnx来解决,确保只有一个请求可以进入接口请求。

【实战问题】-- 高并发架构设计以及超领现象解决?

2021-03-18
阅读 5 分钟
1.4k
现在 有一个场景,领取礼品,每个用户有次数限制,用户通过前端点击,调用了应用A的接口,里面调用了服务B,服务B里面去调用了服务C,注意服务C是其他部门的服务。服务C负责真正的发放礼品。(假设这个服务C我们是不可修改的,A,B是自己团队负责的,并且可能出现高并发的情况)

JVM笔记 -- 来,教你类加载子系统

2021-03-17
阅读 3 分钟
906
类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。在类加载子系统中有以下3个阶段操作(广义上的加载):加载阶段Bootstrap ClassLoader:引导类加载器,主要加载JDK里面的核心类Extension ClassLoader:拓展类加载器Application ClassLoader:应用加载器链接阶...

JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

2021-03-16
阅读 2 分钟
1.1k
整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot)。运行时的数据主要是存放在运行时数据区,代码的解释编译优化以及垃圾收集,都是在执行引擎中。本地方法是指Native方法,也就是C/C++编写的方法。

JVM笔记 -- JVM经历了什么?

2021-03-11
阅读 3 分钟
1.2k
Sun Classic VM世界上第一款商用 Java 虚拟机,JDK1.4 已经淘汰。内部只有解释器,可以自己外挂JIT编译器,但是二者只能使用其一,不能配合工作。hotspot 内置了该虚拟机。解释器,需要逐行解释执行,效率低下。譬如:如果循环两千次,循环体很大,每次执行都需要解释执行。JIT 编译器,除了可以直接全部即时编译,还可...

JVM笔记 -- JVM的生命周期介绍

2021-03-09
阅读 3 分钟
2.4k
Github仓库地址:[链接] 文档地址:[链接]JVM生命周期启动执行退出启动Java虚拟机的启动时通过引导加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由Java虚拟机的具体实现指定的。自定义的类是由系统类加载器加载的。自定义类的顶级父类都是Object,Object作为核心api中的类,是需...

JVM笔记 -- JVM的发展以及基于栈的指令集架构

2021-03-07
阅读 4 分钟
934
2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1)2018年,发布JDK11,带来了革命性ZGC,性能比较强。虚拟机介绍虚拟机,就是虚拟的计算机,可以执行一系列虚拟计算机指令,大体上可以分为系统虚拟机...

从JVM底层原理分析数值交换那些事

2021-03-05
阅读 5 分钟
1.2k
基础数据类型交换这个话题,需要从最最基础的一道题目说起,看题目:以下代码a和b的值会交换么: {代码...} 结果估计大家都知道,a和b并没有交换: {代码...} 但是原因呢?先看这张图,先来说说Java虚拟机的结构:运行时区域主要分为:线程私有:程序计数器:Program Count Register,线程私有,没有垃圾回收虚拟机栈:VM S...

设计模式【3.1】-- 浅谈代理模式之静态、动态、cglib代理

2021-03-03
阅读 9 分钟
1k
代理模式:为其他对象提供一种代理以控制对这个对象的访问,在某种情况下,一个对象不适合或者不能够直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。可以这么理解:使用代理对象,是为了在不修改目标对象的基础上,增强主业务的逻辑。就相当于某个普通人(目标对象),他现在需要打官司,那...

推荐程序员平时使用最多的绘图软件!!!

2021-02-27
阅读 2 分钟
8.1k
之前画图一般都是使用processOn(https://www.processon.com/),缺点就是只能通过网站画图,并且存在云端,不花钱想白嫖,只能画几张。

设计模式【2.2】-- 工厂模式怎么演变成抽象工厂模式?

2021-02-24
阅读 4 分钟
1k
还记得之前的工厂方法模式么?现在老板更加富有了,除了水果,还准备搞点其他的生意,再做点服装生意。水果工厂和服装工厂明显就不是同一种东西,肯定不能放到一个工厂里面生产,服装也有好几种,但是不同的工厂,也是老板自己的,老板希望能够把握大局,所以不同工厂,肯定是有同一个特征的,也就是他们都是工厂,并且...

Mybatis【20】-- Mybatis延迟加载怎么处理?

2021-02-23
阅读 12 分钟
965
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-16-lazyload,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

Mybatis【19】-- Mybatis自关联多对多查询

2021-02-23
阅读 4 分钟
1.1k
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-15-oneself-many2many,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

Mybatis【18】-- Mybatis自关联多对一查询方式

2021-02-04
阅读 5 分钟
893
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-14-oneself-many2one,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

Mybatis【17】-- Mybatis自关联查询一对多查询

2021-01-31
阅读 9 分钟
2.2k
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-13-oneself-one2many,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

JVM笔记 -- Java跨平台和JVM跨语言

2021-01-30
阅读 3 分钟
2.5k
平时开发的应用程序主要基于各种框架,譬如Spring,SpringMVC,Mybatis,而各种框架又是基于Java API来实现的,Java API调用执行是在JVM上的,而JVM则是运行在操作系统上的,操作系统是在物理机器打交道的。

Mybatis【16】-- Mybatis多对一关联查询

2021-01-30
阅读 6 分钟
934
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-12-many2one,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

Mybatis【15】-- Mybatis一对一多表关联查询

2021-01-26
阅读 6 分钟
2.1k
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-11-one2one,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星星。

Mybatis【14】-- Mybatis如何实现一对多查询?

2021-01-23
阅读 7 分钟
5.6k
注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-10-one2many,需要自取,需要配置maven环境以及mysql环境(sql语句在resource下的test.sql中),觉得有用可以点个小星。