自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 tomcat部署web项目(只是记录,解决办法网上很多)

起因:很早之前写了一个仿Spring的精简web后端,一直是在window上运行的,后来把它放在linux上就出现了一些问题。问题一:将war包放在tomcat/webapps下后一开始输入连接。如xxx:8080/test/Login/login是可以的,但是一旦跳转就出现找不到界面了。解决:在jsp界面中添加一句:<%@ page isELIgnored="false"%>这个是表示jsp将字符串中的特殊字符串,isELIgnored="true"表示不解析。并且在form里的

2021-06-15 13:40:40 148

原创 分布式协调工具的锁机制

分析性能问题在之前的分布式协调工具中使用的是Arrayist来作为等待锁的等待者的队列,但是这样在释放锁和加锁时就需要注意线程安全问题,需要为加锁和释放锁使用同一个锁。这样无疑是降低了加锁和释放锁的速度。同时arrayList的删除和增加也是一个耗时的操作,添加的耗时主要体现在超出容量限制是的容量扩增那一块。解决方案将使用自定义的link来替代arrayList,并且定义添加只在头部添加。删除有两个地方,一个是尾部,还有一个是当前线程所在的link节点,这个节点可能是头部。所以在这里需要注意一下。在

2021-04-28 15:13:55 182

原创 手写基于IP:Port为主节点选取方式的分布式协调工具

1.主节点选举以下面的ip和port为例子:ipportlocalhost10000localhost11001localhost12002那么三个节点中ip为localhost,port为10000的节点为主节点。规定主节点必须先运行,然后再运行其他节点。当主节点开启后,开启其他节点,主节点在收到了其他节点向主节点发送的注册消息后开始向其他节点发送保活数据包。当主节点down后,其他节点等待一段时间后将会开始选举新的主节点,那么按照规则就是ip为lo

2021-03-23 16:37:39 254

原创 线程计时器的睡眠唤醒器选择,locksupport还是sleep

试想这样一个场景:即一个事件来了处理完后需要等待其结果,然后对这个结果等待需要计时,超过一定时间则视为超时,否则就接受结果。通常最容易想到的就是使用Thread.sleep(time)来实现这个功能。如:new Thread(){ ()->{ while(true){ .... try{ Thread.sleep(10); }catech(Exception e){ .... } long times = System.currentTime

2021-01-17 20:44:24 367

原创 ThreadLocal的自定义注入数据

在正常的ThreadLocal中都只能是这样来操作ThreadLocal,如:public ThreadLocal<Long> threadLocal = new ThreadLocal<>();threadLocal.set(1L);即只能默认是当前线程,没有办法自定义的给指定的线程注入数据。假设有这样的需求,一个线程收到了数据后然后通过soket发送了新的数据然后pork了,然后需要等待返回的数据,但是返回的数据再另一个线程中被处理了,那么如何通知之前的线程数据已经到了

2020-12-28 17:14:54 382

原创 java并发下遇到的地址不同步问题,已解决

先贴上代码:import java.util.ArrayList;public class main { public static void main(String[] args) { HandlerTest handlerTest = new HandlerTest(); ArrayList<Integer> arrayList = new ArrayList<>(); for (int i = 0; i < 1

2020-11-25 16:59:25 197 1

转载 隐私政策url

本应用深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。 请在使用我们的产品(或服务)前,仔细阅读并了解本《隐私权政策》。一、我们如何收集和使用您的个人信息个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定

2020-10-30 21:01:46 309 2

原创 ReentrantLock的执行流程个人理解+简单复现

jdk1.8源码里的ReentrantLock的lock和unlock的执行流程:ReentrantLock1.lock{1.调用LOCK(默认是非公平的实现)2.先执行一次state的抢占,如果成功就便是获取锁成功,直接返回,否则执行33.调用acquire4.先执行tryAcquire语句(非公平实现){1.获取当前的线程2.获取当前的state3.判断state是否为0,如果为0直接抢占并设置独占线程为当前线程,并返回true,否则执行44.判断当前线程是不是独占线程,如果是的

2020-09-07 13:00:56 427

原创 ConcurrentHashMap的错误理解和纠正

/** Implementation for put and putIfAbsent */ final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerException(); int hash = spread(key.hashCode()); int binCount = 0; .

2020-08-25 22:50:54 1607

原创 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词

首次发现这个问题是还觉得挺好回答的,但是仔细一想,他说的限制内存为1M,那么就表示运行内存为1M,如果按照网上的答案:https://blog.csdn.net/qq_41946557/article/details/102708581的话,那么内存为1M是完不成的,因为要使用HashMap记录词频不需要内存吗?不是我太杠啊,真的需要考虑啊,那么有没有一个更加可行的方案呢?其实是有的,不使用hashmap,但是和他类似的方案,即以单词为文件的命名方案,如果匹配到了一个单词,那么直接创建以这个单词名为

2020-08-15 10:41:37 1302 2

原创 0-1、完全背包问题、多重背包问题理解(不含优化)

标题0-1背包问题公式标题完全背包问题

2020-08-06 18:32:04 378

原创 ThreadLocal终于理解了为什么会内存泄露(看马士兵视频有感)

首先 介绍一下四个引用:强:new出来的或是反射出来的对象,不会因为内存不足而被回收,除非不使用了。软:在内存不足时会回收这个内存,主要用于缓存。弱:在gc时会回收这个内存。虚:在gc时回收这个内存并且和上报一个消息通知。下面就是ThreadLocal的一个例子: ThreadLocal<test> tl = new ThreadLocal<>(); new Thread(()->{ tl.set(new test());

2020-07-29 14:49:21 423

原创 一个对象从加载到创建再到执行的过程(个人理解)

前面的两个大体上就是先加载再在队中开辟空间用于存放对象。首先说加载,分为5个步骤:加载:首先是类加载器,一般是由AppClassLoader,系统类加载器加载类,此时使用的是双亲委派来实现加载的,其实一开始系统类加载器是不加载类的,是交由父类加载器即扩展类加载器加载的,但是扩展类加载器一般是加载lib下的etc下的jar文件和class文件,所以如果是用户自定义的类的话那么一定不会被这个加载的,那么扩展类加载器会将其交给父类加载器即启动类加载器去加载,但是启动类加载器一般是加载lib下的jre和j

2020-07-27 23:00:08 274

原创 理解:父类加载器加载的类不能使用子类加载器加载的类

首先说一下类加载器加载类的先后关系即双亲委派模型:即当前的类加载器加载不到的类会交给父类加载器去加载,一直到启动类加载器。如果启动类加载器还是加载不了类那么就会报java.lang.ClassNotFoundException异常。这个就是由于双亲委派模型来决定的(我个人认为的啊哈哈哈)。双亲委派模型规定了如果子类加载不了就交由父类加载,同理如果一个加载器加载不赖哦的类那必然交由父类加载器去加载不会让子类加载器去加载的,这个就破坏了双亲委派模型了(当然自定义加载器和线程上下文加载器不在考虑范围)。此

2020-07-26 13:33:58 3153 2

转载 看博客有感--java泛型的上下界

虽是自己的有感而发,但是还是标为了转发,致敬原创。原文连接https://blog.csdn.net/ystyaoshengting/article/details/86674481?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-Bl

2020-07-24 10:56:07 86

原创 基于ZooKeeper为注册中心的Netty_Rpc

kkkkk

2020-07-08 12:02:39 527

原创 终于理解了n皇后问题

借鉴:https://blog.csdn.net/piyongduo3393/article/details/86497081https://blog.csdn.net/gui951753/article/details/79677785?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_rele

2020-06-28 22:16:10 167

原创 单向链表每k个元素翻转一次(图解)

具体的代码请看这篇文章https://blog.csdn.net/wuxiaosi808/article/details/90265935?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLea

2020-06-21 15:37:38 696

原创 理解hashmap的key是自定义类型为什么需要重写hashCode和equals

知道hashmap的key是自定义类需要重写hashCode和equals,是从面经知道的,当时也是只是去背而已,也尝试着去理解,但是没有实操做事很难受而且会有些问题。最近写的一个项目时候基于Netty的节点注册事件系统,从中有一个需要自定义map的key值的环节,定义如下:package NettyEventTouch.Nodes;public final class Node{ private final String node; private final String dat

2020-06-15 16:29:20 380

原创 通过curator的NodeCache和PathChildrenCache构建master

1.首先curator中有关于选举macter的专有类,这里不详述。2.对于NodeCache的监听器的注册和使用流程请看我的上一篇博客。3.代码:package Zookeeper.Curator;import Zookeeper.DistributeIdGenerate.Arges;import org.apache.curator.framework.CuratorFramework;import org.apache.curator.framework.recipes.cache.*;

2020-05-28 16:52:41 325

原创 zookeeper的框架curator的监听器的处理流程

本文以NodeCache这个为例:1.代码public class ClientFactory { static ExponentialBackoffRetry retry = new ExponentialBackoffRetry(100,3); public static CuratorFramework Curator_zookeeper_By_NewClient(String connectStringlist){ /** * 设置超时时间和重试

2020-05-28 10:25:34 166

原创 paxos的提案生成--看书有感

书籍是《从paxos到ZooKeeper分布式一致性原理与实践》下面这个链接是看书一头蒙时,看这个突然懂了的,虽然和书上基本上一样,感觉很玄学,可能是在电脑上的原因吧,哈哈https://www.jianshu.com/p/d9d067a8a086首先给出理论:p1:一个acceptor必须准他收到的第一个提案p2:如果编号为M0,value值为V0提案被选定了,那么所有比编号M0更高的,且被选定的提案,其value值也必须是V0。p2a:如果编号为M0,value值为V0提案被选定了,那么

2020-05-22 18:37:47 229

原创 反射创建实例出现的问题

首先贴出错误的日志:Exception in thread “main” java.lang.IllegalAccessException: Class test.test4 can not access a member of class 笔试.ListNode with modifiers “public”at sun.reflect.Reflection.ensureMemberAcce...

2020-04-18 19:48:49 309

原创 跳表的java实现

首先贴出参考的博客:https://blog.csdn.net/moakun/article/details/79997037根据这篇博客的代码自己实现了一个,添加了删除模块。如果有理论不懂的可以看上面的博客也可以看下面的视频:https://www.bilibili.com/video/BV1z7411f7mE?from=search&seid=17814720194061...

2020-04-14 00:07:36 264 1

原创 通过反射获取Spring中的bean

继续上一篇的mybatis的分页插件。我尝试了一下,不管怎么配置mybatis.xml文件都会导致spring不能正确的将我的插件类加载到内存中并且添加到configuration的插件链中。所以果断的放弃了使用xml配置的想法。一维我之前也写过从ioc-di-dop-url映射的一整套流程,所以我知道那个放置bean的地方一定是可以获取的。所以我知道其大致的流程:首先第一种方法,请各位移...

2020-04-09 12:05:11 1683

原创 mybatis拦截器的工作原理及实现分享

最近在看面筋,总是看到mybatis的拦截器如何实现,为什么拦截器只能拦截resultsethandler、paragramehandler、statementhandler、executor这四个接口的实现类呢?首先先解决第二个问题。这个当然是从源码中得知的,很多的博客到这里就结束了,让人很是无语,你到底说下在哪呀?这就贴出来,在mybatis的Configuration.java这个文件...

2020-04-08 13:03:48 514

原创 手写基于netty的rpc程序

SimpleNettyRPChttps://github.com/mcl973/SimpleNettyRPC更新:可以调用任意方法,在protobuf方法中添加了byte属性,使得函数中才能够可以表示object类型的变量。用之前的函数名+参数类型的匹配可以确定一个函数,替代为适应hashcode来匹配唯一的函数。修改的protobuf如下:protobuf_Requests:sy...

2020-04-07 12:08:40 179

原创 String和Stringbuilder的本质区别

String是使用final修饰的类,让我们来看下他的源码:从这里可以看出为什么String是一个不允许变的了。通常我们会使用一下代码来不断地改变String:String str = "a";str+="b";str+="c";System.out.println(str);得到的结果就是abc给人的一个错觉好像str是可以改变的,但是从其源码的final修饰的char va...

2020-04-02 17:59:50 257

原创 最小生成树算法--Prim的原理解析

鉴于网上的一些博客看的太难受了,于是想借着自己的理解写一篇关于prim算法。首先先贴出将要具体的例子的图:先定义一个数组:int[] flags = new int[6];int bianshu = 0;//变得数量 这个值应该是节点数减1//初始化全为0for(int i:flags) i = 0;首先随机的挑一个点,如挑选0号点。然后将flags[0]置1。此时flag...

2020-03-31 21:18:27 367

原创 自己以前不太重视的算法

快速查询和归并查询的相似之处归并查询和快速查询都是通过分治的方法来实现数据的排序。似乎都是二分法,即分为两边,然后依次的对两边的数据进行排序。不过不同的是:快速排序似乎是有序的排序而归并排序似乎是将每一个无序的队列排序后在将其拼接再一起。快速排序首先是找到一个基准数,然后找到这个基准数在排好序的列表中额的位置。即基准数左边的数比基准数小,右边的数比基准数大。就是说快速排序能够一次性额将...

2020-03-30 21:20:11 108

原创 简陋框架测试二

Controller:@Controller("MyFirstControllerTest")@RouteMapping("/controller")public class MyFirstControllerTest { @Autowrite("exampleimpl") public example example; /* 针对于Springmv...

2020-02-26 20:34:01 117

原创 自实现简单的从Dao层到Controller的框架设计使用实例

一、Controller的代码(位置 MyController.MyFirstControllerTest)@Controller("MyFirstControllerTest")@RouteMapping("/controller")public class MyFirstControllerTest { @Autowrite("exampleimpl") public...

2020-02-21 18:58:38 357

原创 自己设计的简单的纯注解aop框架详细分析

之前一直不理解ioc、di、aop到底是怎么工作的。只是知道spring具有这些功能。也只是知道spring是通过jdk的动态代理,通过反射来讲这些创建好的对象放在一个Map的容器里。但是一个程序到底是如何发现需要被放置到容器中的,一直没有眉目。知道之前在腾讯课堂看到的一个关于手写mvc的视频。才知道一些比较底层的东西。首先就是注解:Annotation:他有两个最常用的属性:Target、...

2020-02-05 20:53:54 151

原创 jdk动态代理和反射的相生

```javaif (!Modifier.isPublic(cl.getModifiers())) { AccessController.doPrivileged(new PrivilegedAction<Void>() { public Void run() { ...

2019-12-10 16:58:55 102

原创 Ryu的app导入model失败问题解决

这几天在写ryu的app是需要导入其他的文件夹下的程序,像这样:from ryu.base import app_managerfrom ryu.controller import ofp_eventfrom ryu.controller.handler import CONFIG_DISPATCHER, MAIN_DISPATCHERfrom ryu.controller.handler...

2019-06-15 18:17:50 1291

原创 SpringBoot官方例程使用以及踩坑

SpringBoot官方例程使用以及踩坑(一)先将项目穿件出来:这个是从官网上摘录下来的的pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche...

2019-06-03 15:50:20 358

原创 实现简单的Aop

使用jdk的动态代理创建Custom接口和实现类public interface Custom { public void NeedApple(); public void NeedPen();}public class CustomImpl implements Custom { @Override public void NeedApple() { ...

2019-05-23 20:45:17 120

原创 Spring_mvc的原理及代码跟踪

一、Spring_mvc的架构原理1.首先用户通过url来提交request查询。2.控制器(前端控制器,DispatcherServlet)收到rquest数据后因为无法直接通过url获取到直接的处理器于是将url交由到处理器映射器去查找处理器。(为了拓展)3.处理器映射器返回给控制器一个处理器。4.由于处理器有多个,管理起来很是麻烦于是通过一个处理器适配器可以完成对于不同...

2019-04-24 22:04:10 131

文件搜索器

支持文件名模糊搜索,支持内容搜索两种搜索

2020-10-30

-web-Dao-Service-Controller--master.zip

一个实现了ioc、aop、mvc、URL映射的java后端简陋框架。

2020-05-28

空空如也

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

TA关注的人

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