3 nuomizhende45

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5w+

JAVA并发基础, 从源码分析清楚AbstractQueuedSynchronizer

在日常开发的过程中,java.util.concurrent(J.U.C)是我们在并发编程中用的最多的,如果我们想熟练的掌握JAVA并发基础,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。当然这篇文章是我自己对AQS的理解,有错误之处,请评论区留言交流。AbstractQueuedSy..

2020-05-23 19:44:23

Closeable接口优雅方便的自动关闭资源

Closeable接口继承于AutoCloseable,主要的作用就是自动的关闭资源,其中close()方法是关闭流并且释放与其相关的任何方法,如果流已被关闭,那么调用此方法没有效果,像InputStream和OutputStream类都实现了该接口,源码如下/* * Copyright (c) 2003, 2013, Oracle and/or its affiliates...

2020-05-05 11:13:52

JAVA探寻IF-ELSE的优化

一般在做逻辑判断的时候我们一般难免会x写出以下的代码if (type == "A") { System.out.println("A output"); } else if (type == "B") { System.out.println("B output"); } else if (type == "C") { ...

2020-02-28 23:58:28

Redis的总结思考以及一些常用的解决方案

目录一、为什么要用缓存?用了缓存之后会有什么不良后果?二、Redis的数据类型有哪几种stringhashlistsetsorted set三、Redis的过期策略都有哪些内存淘汰机制手写一个 LRU 算法四、关于Redis的持久化若在项目中使用了Redis作缓存,就必须考虑持久化这是保证可靠性,redis 持久化的两种方式RDB ...

2020-02-04 22:46:51

同事的问题引发的对线程Thread的思考(理解线程的wait)

同事贴出来的代码问题1 : 我已经让这个线程wait()了,没有地方唤醒它,怎么也执行了啊public class MyThread extends Thread{ /** * @param args */ public static void main(String[] args) { System.out.println(T...

2019-11-11 19:23:21

Layui数据表格显示无数据提示问题

正确与错误展示解决方案: 直接在done中加入 done : function(res, curr, count) { 你的逻辑 if (res.count == 0) { ...

2019-05-11 13:52:10

深入Netty 一、关于JAVA的老IO(OIO) 与 新IO(NIO)的区别

最近想做一个开源的IM组件,在IO的选型上必定要选择NIO,于是翻了翻资料总结了一下传统IO与NIO的一些区别,从而了解IM系统为什么一定需要用到NIO.下面是对NIO的一些简单的介绍NIO弥补了原来同步阻塞I/O的不足,它在标准Java代码中提供了高速的、面向块的I/O。Java NIO 由以下几个核心部分组成:ChannelBufferSelector传...

2019-04-21 22:05:22

SpringCloud 整合Eureka、Ribbon、Feign、Hystrix

整合一:EurekaServer(单机版,可自己集群)用的是Maven,pom文件如下:<?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-instan...

2019-04-14 21:52:48

SpringBoot引入Eureka时导致数据返回格式是XML解决方法

当我们引入Eureka的时候,项目的数据返回从Json变为了Xml,像下面这种<User><userName>lee</userName><age>11</age><mobile>8090</mobile></User>导致这个结果的根因是SpringBoot项目中集成了Eureka...

2019-04-14 19:23:13

如何Linux后台运行 jar 文件

一般集成SpringCloud的项目都会打成一个jar包在服务器上运行,最简单的做法是mvn clean package 打包之后再 java -jar demo1-1.0.1-SNAPSHOT.jar 运行这样有一个问题就是我们的XShell 或 ssh 窗口关闭了程序就停止了后台运行的方法就是用到一个nohup命令$ nohup java -jar xxx...

2019-04-11 11:12:56

Git用法详解以及Git项目中能用到的命令

GIT(分布式版本控制系统)Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。简单入门创建版本库Repository与第一次提交文件介绍一下什么是版本库呢?版本库又名仓库,英文名repository,你可以简单...

2019-03-12 15:51:37

SpringMVC源码分析(四)——————SpingMVC处理Http请求原理

四、SpingMVC处理Http请求原理当一个http请求过来了首先经过的是DispatcherServlet这么一个前端控制器并调用了这个前端控制器的doService方法。这个方法最终我们发现它调用了doDispatcher这么一个方法。这就是SpringMVC处理http请求的入口了。 protected void doService(HttpServletRequest re...

2019-01-12 16:34:31

SpringMVC源码分析(三)——————HTTP请求是如何与对应Handler的对应method映射的

三、HTTP请求是如何与对应Handler的对应method映射的从上面的分析已经知道了当初始化完成的时候context中所有的handlerMapping都被加载了,并且它们都存放在hadlerMappings这么一个List中并且被排序了。我们看看HandlerMapping的设计及类的结构关系如下:这里可以看到顶层的父接口就是HandlerMapping,进入这个类发现这个顶层接...

2019-01-12 16:33:30

SpringMVC源码分析(二)—————DispatcherServlet初始化流程

二、接下来分析一下DispatcherServlet这个前端控制器的启动和初始化的整个过程通过前面分析已经知道了DispatcherServlet这个前端控制器是一个Servlet了,所以生命周期和普通的Servlet是差不多的,在一个Servlet初始化的时候都会调用该Servlet的init()方法。下面这个是DispatcherSerlvet父类HttpServletBean中的init...

2019-01-12 16:32:35

SpringMVC源码分析(一)——————详解DispatcherServlet

一、对照这流程的第一步发起请求到前端控制器DispatcherServlet,首先看看DispatcherServlet这个类,为什么所有的请求能发给这个类,看下这个类的结构图:这里我们发现了这个DispatcherServlet通过继承FrameWorkServlet、HttpServletBean从而间接的继承了HttpServlet,所以说这个DispatcherServlet也是一...

2019-01-12 16:31:31

SpringMVC请求流程原理深入理解(SpringMVC面试必备技能)

前言SpringMVC请求流程是在面试中经常被问到的一个问题,这个流程大家百度以下随便看一看都能把整个过程回答出来:第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找) 第三步:处理器映射器HandlerMapping向前端控制器返回Handler,Handle...

2019-01-06 17:52:47

深入理解@Autowired注解以及Spring加载Bean的机制

@Autowired注解在平时开发中用的非常的多,即自动装配,这些天碰到了一个与之相关的报错,所以打算深入理解其原理。首先看看它的定义如下:这里提一下它上面有三个元注解:1、@Target表示这个注解是作用在什么上,方法上还是类上还是参数上等等。2、@Rentention 可以理解为这个注解的生命周期,RententionPolicy.SOURCE、RententionPolicy....

2018-12-14 23:21:07

关于SpringBoot报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedded

SpringBoot集成Mybatis等可能会报错如下:***************************APPLICATION FAILED TO START***************************Description:Failed to configure a DataSource: 'url' attribute is not specified a...

2018-12-01 22:17:40

加载新页面等待过渡效果

由于数据量庞大后台查数据的操作的时候慢从而导致页面加载速度过慢,所以会到用loading效果来过渡,让用户感觉上不是很慢。下面是效果图 这里使用的是layer组件进行的快速实现,layer的CDN各个地址:https://www.bootcdn.cn/layer/实现步骤:引入layer.js,如果追求极致性能的可以把js下载下来,引用本地的文件<script sr...

2018-11-25 19:06:38

利用JQuery动态生成html元素

JQuery动态操作htmlAPI介绍JQuery官方文档中动态对html添加元素有如下四个方法:append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容具体是什么效果可以自己去试一试,链接如下:http://www.w3school.com.cn...

2018-11-22 22:54:58

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。