![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
烟火HL
这个作者很懒,什么都没留下…
展开
-
你真的了解Servlet吗?
整天都说Servlet,那什么是Servlet呢?答:Servlet就是运行在服务器端的一段代码,可以帮我们处理网络请求,说白了就是我们平时Main方法里面执行的那一段逻辑,不过我们的程序跑在Servlet容器中,并没有Main方法可以执行,那我们写的这段代码怎么办呢?Tomcat,也就是我们常说的Servlet容器,其实就是一个大的Main方法,像是一个永动机一样,时时刻刻的监听着来自网...转载 2019-09-08 23:11:32 · 267 阅读 · 0 评论 -
Java异常处理
Exception和Error的区别Exceception和Error都继承自Throwable类,在Java中只有声明为Throwabel类或者它的子类才能进行捕获或者抛出,当然捕获和抛出基本都是对于Exception而言的,这里就说一下Exception和Error的区别首先,Error通常是导致程序不正常的错误,很难被捕获同时也就很难被恢复,比如常见的NoClassDefError和...原创 2018-11-29 17:25:04 · 150 阅读 · 0 评论 -
Reids原理之IO模型
众所周知Redis是单进程单线程的应用,在如今多核横行的时代,我们不免有疑问,单线程的redis怎么就成了高性能的代表当有多个线程同时调用redis的时候,那么单线程的redis是怎么处理的呢,这里就不得不说redis内部的IO模型首先要提到几个概念,阻塞IO,非阻塞IO,同步IO,异步IO,多路复用首先我们要理解IO的过程才能更好的理解上面这几种情况,IO分为两步,第一阶段是数据准备...原创 2018-08-09 14:43:51 · 1906 阅读 · 0 评论 -
基于TCP与HTTP的RPC调用的区别
RPC即远程服务调用出现原因:随着项目越来越大,访问量越来越大,为了突破性能瓶颈,需要将项目拆分成多个部分,这样比起传统的项目都是本地内存调用,分布式的项目之间需要在网络间进行通信服务之间的远程调用通常有两种方式,即基于TCP的远程调用和基于Http的远程调用基于TCP的RPC实现主要是服务提供方定义socket端口和提供的方法名称已经需要的参数结构,服务调用方通过连接服务方的so...原创 2018-07-25 15:58:16 · 8186 阅读 · 0 评论 -
java中四种引用的概念及应用场景
java中存在四种引用机制,分别是强引用,软引用,弱引用,虚引用强引用一般情况下我们用new方式创建的引用就是强引用,比如Client client = new Client()jvm进行GC的时候是不会回收存在强引用的对象的,比如Server server = new Server()Client client = new Client()当在第二行时jvm内存耗尽,jvm会报内存溢出的错误,...原创 2018-05-31 11:18:19 · 1821 阅读 · 0 评论 -
JAVA中return与finally的先后关系
以前一直觉得有这个问题存在但也没有深究,今天来彻底探讨一下二者之间的关系预备知识首先是关于return返回的底层知识 java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域: 1. 操作数栈,用来保存正在执行的表达式中的操作数,数据结构中学习过基于栈的多项式求值算法,操作数栈的作用和这个一样 2....原创 2018-05-30 14:19:45 · 19241 阅读 · 5 评论 -
见微知著 静态代理
代理是JAVA中老生常谈的话题了,但也是最为抽象的知识之一,以至于很多人谈代理色变,所以今天就抽丝剥茧,好好掰扯掰扯这个问题 首先对于代理我们要明白一点,就是代理分为静态代理和动态代理,不说废话,首先是静态代理 举个例子,你现在写了一个银行账户类,账户有余额转出和转入功能现在突然出了问题,余额的数目不对了,于是项目经理提出要求,你要在转出和转入余额的时候打印出当前...原创 2019-09-15 22:58:53 · 153 阅读 · 0 评论