自定义博客皮肤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)
  • 收藏
  • 关注

原创 Java 多线程顺序交替锁的应用

Java 多线程顺序交替锁的应用线程一般具有5种状态,即为创建、就绪、运行、阻塞、死亡创建 用构造方法创建了一个线程对象后,新的线程便处于新建状态 Thread thread=new Thread();就绪 调用线程的start()方法即可启动线程,线程进入线程队列排队,等待CPU服务运行 就绪状态调用并获得处理器资源时,线程进入运行状态,run()方法定义了线程的操作和功能阻塞 一个正在执行的线程在某些特殊情况下,如被人为挂起或需要执行耗时的输入/输出操作,会让 CPU 暂时中止自己的执

2021-05-06 16:08:10 196 1

原创 NIO 聊天室内部逻辑(二)

NIO 聊天室内部逻辑(二)nio 是啥 ? 非阻塞io,可以用于网络编程。 * 什么叫非阻塞io?读取的是时候,线程是非阻塞的。 * 具体一点:非阻塞指IO事件本身不阻塞,但是获取IO事件的select()方法阻塞。有点类似Redis底层实现,多路复用。 * * 底层:nio采用的是基于Reactor模式的工作方式,io调用是不会被阻塞的, * 什么是阻塞io?读取的时候,线程是阻塞的。核心组件 : selector选择器 channel通道 buffer缓存区buffer缓存

2021-03-24 19:21:18 110

原创 NIO 聊天室代码演示部分(一)

NIO 聊天室代码演示部分(一)非阻塞指IO事件本身不阻塞,但是获取IO事件的select()方法阻塞,类比:Redis底层,实现多路复用), 是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。客户端import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.

2021-03-24 19:01:02 122

原创 WebSocket简单介绍(属性+方法)

WebSocket简单介绍WebSocket 是一种网络通信协议,是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,允许服务端主动向客户端推送数据,在WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。我们都知道Ajax 轮询可以在特定的时间间隔,比如1 秒,由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这背后就涉及到,需要不断地向服务器发送请求,而HTTP请求可能包含较长的头部

2020-12-04 11:28:29 1510

原创 Swagger 基础使用

Swagger 基础使用Swagger是最受欢迎的REST APIs文档生成工具之一,原因有:1、 可以生成一个具有互动性的API控制台,用来快速学习和尝试API;2、 可以生成客户端SDK代码,用于在不同平台上实现3、 Swagger文件可以在多个平台上,从代码注释生成4、 有一个强大的社区Swagger 文档提供了一个方法,使我们可以用指定的 JSON 或者 YAML 摘要来描述你的 API,包括了比如 names、order 等 API 信息。用 Swagger 文件生成互动的 API 文

2020-11-26 20:27:42 128

原创 IDEA 中如何连接 Gitee

IDEA 中如何连接 Gitee在我们平时做项目的过程中,经常会遇到分工合作,一起完成一个项目。而在这个过程中,就会借助其它的一些项目管理工具,来帮助我们更方便的开发。在平时开发过程中,最常用的项版本控制工具大致分为两种,git 和 SVN,两者都有不同的优势和缺点。SVN 与git相比,有较好的权限管理功能,可以精准控制每个目录的权限,支持跨平台使用,对windows平台支持友爱,操作简单易学,上手较快,不仅仅是代码,文档,需求等都可以管理。但 git 是分布式,每个参与开发的人的电脑上都有一个完整仓

2020-11-26 15:54:19 15383

原创 spring boot日志框架相关知识

spring boot 日志框架在我们实际开发过程中,如何将关键数据输出,记录系统运行时的信息,更好的方便我们代码的书写,这就需要导入日志了。目前市面上常用的日志框架有:JUL、JCL、Jboss-logging、logback、log4j、slf4j……在日志的抽象层,Spring默认框架使用的JCL,Spring Boot选用的是SLF4J,在日志实现选用的是logback,下面就将介绍SLF4j的使用。系统中如何使用SLF4j在实际使用的时候,一般调用日志记录抽象层里面的方法,而不是实现类im

2020-11-12 15:46:33 92 1

原创 Spring Boot 简单理解+优点

Spring Boot 简单入门Spring boot设计目的是用来简化新Spring应用的初始搭建以及开发过程,是一个全新开源的轻量级框架,优点:1.快速创建spring项目2.嵌入式servlet容器,无需打包war包3.Starters(启动器)自动依赖管理版本控制4.大量自动配置,简化开发,也可修改配置文件默认值5.无需大量xml,无代码生成,开箱即用6.生产环境运行时应用监控7. 与云计算天然集成spring boot 简介简化spring应用开发的一个框架;整个sprin

2020-11-09 12:03:43 350

原创 Spring MVC框架简单搭建

Spring MVC框架简单搭建spring MVC是一种基于MVC的表现层开发,类似于struts2框架,C - Controller:控制器;接受用户请求,调用 Model 处理,然后选择合适的View给客户;M - Model:模型,就是 dao,bean.业务处理模型,接受Controller的调遣,处理业务,处理数据。V - View:视图。返回给客户看的结果。注意这里的客户未必是人,可能是浏览器,可能是APP。在 IDEA 中新建 Spring MVC 项目修改 web.xml拦截

2020-11-07 16:47:29 219 1

原创 jQuery-Ajax简单介绍

jQuery-Ajax简单介绍在前后端日渐分离的今天,如何进行前后端交互就是一个问题了,其中Ajax就是 一个很好的方法,简单来说它可以在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,也就是异步更新,本篇文章将简单介绍jQuery-Ajax。Ajax全称是 Asynchronous JavaScript and XML,异步的JavaScript和XML。创建XMLHttpRequest 对象用于在后台和服务器交换数据variable=new XMLHttpRequest()

2020-10-29 20:26:19 134

原创 乐观锁的具体实现过程

乐观锁的具体实现过程在我们平时的程序编写过程中,经常会出现这样一个问题,多个用户有可能在同一时间更新更改某条相同记录,在这个过程中就会产生冲突。如图所示,用户1和用户2 同时修改一条记录,最后提交的那个人就会把之前的提交数据覆盖,但是用户2 修改的数据原应是将5000改成4000,但此时只是将6000覆盖,所以,此时乐观锁就可以产生作用,乐观锁针对一种问题的特定解决方案,主要解决丢失更新的问题。此时,用户1 修改完数据后,版本号+1,变为了2,用户2 就将无法对数据进行修改,就可以解决一些丢失更新

2020-10-22 18:43:11 750

原创 分布式系统主键生成策略

主键生成策略,数据库自增,UUID,Redis, 雪花算法

2020-10-22 17:39:46 490

原创 Mybatis-plus实现简单增删改查

Mybatis-plus实现简单增删改查本次博客内容,主要是基于spring boot,用Mybatis-plus 来实现简单的增删改查,主要分为mp基础框架搭建和利用苞米豆已近封装好的方法来实现。搭建mp框架a) 建立数据库,数据表b) 创建一个spring boot项目c) 导入依赖 pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId&

2020-10-21 23:13:53 4677

原创 spring Boot的配置文件

最近一直在学习Spring Boot框架,这个框架可以简化我们的开发,快速创建spring项目,无需打包war包,无需大量的XML 文件,大量自动配置,自动依赖管理,很适合我们简单上手,另外在spring官网上和spring中文网上都有一些专业的spring知识讲解。1.Spring Boot使用的全局的配置文件(配置文件名字固定)Spring Boot的配置文件一般写在 application.properties 或者application.yml 中,可以修改Spring Boot自动配置的默认值

2020-09-27 20:41:30 232

原创 Jvm虚拟机基础部分(二)

Jvm虚拟机基础部分(二)之前的博客 Jvm 虚拟机基础部分主要针对虚拟机的类加载机制,字节码执行机制,和 Jvm 的内存模型做出了简单介绍,这次的部分将会继续对 Jvm 做一些简单的介绍,主要从 Java的一些关键术语和GC 垃圾回收做出简单介绍。Java关键术语• JavaAPI: 一系列帮助开发者创建Java应用程序的封装好的库。• Java 开发工具包 (JDK): 一系列工具帮助开发者创建Java应用程序。JDK包含工具编译、运行、打包、分发和监视Java应用程序。• Java 虚拟机(

2020-09-19 15:12:43 82

原创 Jvm虚拟机基础部分(一)

本文是学习了 jvm 之后对基础的简单总结,做一个简单的分享交流,本篇主要从类加载机制、jvm 内存模型、三个部分进行介绍。上图是一个大概的运行过程,java程序经过编译后形成*.class文件,内含JVM的字节码。通过类加载器将字节码(*.class)加载入JVM的内存中。类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载到虚拟机内存的生命周期加载:获取定义的二进制字节流,

2020-09-11 17:37:55 80

空空如也

空空如也

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

TA关注的人

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