自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hellothejava的博客

献给不断努力的自己

  • 博客(27)
  • 收藏
  • 关注

原创 多线程与高并发-synchronized(三)

系列文章目录多线程与高并发-多线程(一)多线程与高并发-synchronized(二)文章目录系列文章目录前言synchronized双重锁检查前言如果你连synchronized不知道,你好意思说你是混java圈的吗?synchronizedsynchronized 底层实现:对象头记录线程id及是否被锁 (改进后的synchronized效率,不一定比原子操作效率低)锁的是对象不是代码锁是支持重入的锁升级(线程争用:偏向锁升级为自旋锁,10次以后升级为总量级锁–os;只能升级

2021-05-28 09:43:55 136

原创 多线程与高并发-线程入门(一)

系列文章目录多线程与高并发-(一)文章目录系列文章目录前言一 多线程1.1 定义1.2 特点1.3 状态1.4 创建方式二 线程池2.1三 synchronized1、为什么需要使用多线程?前言多线程和高并发在大厂面试和在大流量的系统是常涉及到的。老铁们要是不会这个,要想拿高薪,那是没戏的,再说吹牛逼也是需要资本的。一 多线程多线程的就是不同的执行路径。1.1 定义多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。1.2 特点在j

2021-05-27 18:18:44 258

原创 rocketmq-名词解释(四)

系列文章目录rocketmq—安装篇(一)rocketmq—手把手搭建集群模式(二)rocketmq—各类型消息实战(三)rocketmq— 名词解释(四)rocketmq—消息存储(五)文章目录系列文章目录消息模型(Message Model)消息生产者(Producer)消息消费者(Consumer)主题(Topic)代理服务器(Broker Server)名字服务(Name Server)拉取式消费(Pull Consumer)推动式消费(Push Consumer)生产者组(Produ

2021-04-20 15:29:27 237

原创 rocketmq-消息存储(五)

系列文章目录RocketMQ-安装篇(一)RocketMQ-手把手搭建集群模式(二)RocketMQ-各类型消息实战(三)RocketMQ-(四)文章目录系列文章目录前言一消费模式1.1集群模式1.3指定模式二项目代码前言通过实战代码展示发送各种类型的消息。废话不多说,直接上干货。一消费模式两种模式:集群模式、广播模式1.1集群模式1.3指定模式二项目代码源代码见:这里我向你奔赴而来,你就是星辰大海...

2021-04-20 15:26:00 258

原创 rocketmq-各类型消息实战(三)

系列文章目录文章目录系列文章目录前言一项目代码1.1生产者1.2消费者1.3嗨一下二发送的消息类型2.1同步消息2.2异步消息总结前言通过实战代码展示发送各种类型的消息。废话不多说,直接上干货。一项目代码此处只展示部分核心代码,源代码见:这里 查看spring-boot-rocketmq、spring-boot-rocketmq-consumer两个模块即可。1.1生产者spring-boot-rocketmq :config:@ConfigurationProperti

2021-03-29 15:09:06 272 7

原创 rocketmq-手把手搭建集群模式(二)

系列文章目录深入浅出rocketmq-安装篇(一)深入浅出rocketmq-XX篇(二)文章目录系列文章目录前言一、rocketmq 及其他mq产品特点1.1、rocketmq场景及优缺点1.2、 四大主流MQ(kafka、ActiveMQ、RabbitMQ、RocketMQ)各自的优缺点二、集群搭建2.1角色介绍2.2集群特点2.3集群模式单master模式多master模式多master模式多slave模式-异步多master模式多slave模式-同步总结前言前一章我们简单安装和部署了r

2021-03-23 14:20:26 284 5

原创 NIO之select、poll、epoll 内核触发模型对比(二)

系列文章目录深入浅出NIO之bio、nio、多路复用器发展历程(一)深入浅出NIO之多路复用器精华(二)文章目录系列文章目录前言一、select一、poll一、epoll总结前言上一篇文章最后提及了多路复用器,今天会从内核级别讲解下select、poll、epoll三种方式的实现机制,重点讲解epoll三种多路复用器优缺点:NIO: 这个遍历的成本在用户态、内核态切换过程(多路复用器-1)select、poll: 这个遍历的过程触发了一次系统调用(用户态内核态的切换),同时把f

2021-03-15 17:57:42 239

原创 NIO之bio、nio、多路复用器发展历程(一)

系列文章目录深入浅出NIO(一)文章目录系列文章目录前言一、nio是什么?一、组成部分?一、简单例子?一、详解bytebuffer?一、详解channel?一、详解selector?一、实战例子二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、nio是什么?为什么会出现?作用,特点?

2021-03-11 17:27:39 238 2

原创 学懂IO必备的TCP、socket知识(三)

系列文章目录学懂IO必备的操作系统知识(一)学懂IO必备的操作系统知识(二)学懂IO必备的操作系统知识(三)文章目录系列文章目录前言一、socket是什么?二、TCP三次握手?**三次握手**网络io二、使用步骤1.引入库2.读入数据总结前言io分为磁盘io和网络io,前两篇文章,基本讲的是磁盘io的知识,接下来将进入网络io的讲解。想深入了解网络io,就需要它整个数据流程及涉及的协议等。网络io分服务端和客服端,服务端通过创建一个serverSocket得到一个fd,再通过fd bind绑

2021-03-09 16:28:41 509

原创 rocketmq-安装篇(一)

系列文章目录深入浅出rocketmq-安装篇(一)深入浅出rocketmq-XXX篇(二)文章目录系列文章目录前言一、mq是什么?1.1 定义1.2 作用二、安装部署步骤(单主)1.安装环境说明2.下载&安装3.部署服务3.1启动namesrv、 broker (单主)3.2关闭broker, nameserv3.3测试发送和接收消息4.部署console4.1、本地部署console4.2、linux部署console5.过程中的问题解决5.1、内存分配失败三、总结前言在实际做项目

2021-03-02 15:48:34 295 1

原创 学懂IO必备的操作系统知识(二)

接上一篇文章:学懂IO必备的操作系统知识(一)该篇文章是依赖于第一篇,直接看可能会有很多疑问,请先查看第一篇。1、pagecache上一篇提到了pagecache,这里再补充下。在计算机中应用第一次加载某个文件,会产生缺页,这个时候需要kernel从磁盘加载数据到pagecache中、多个应用操作同一个文件数据只会在在pagecach加载一次每个应用通过fd找到自己的文件指针操作文件、内存管理单元维护线性内存和物理内存的关系线性内存是逻辑上连续的物理内存是不连续的会产生碎片page

2021-03-01 17:53:33 158 3

原创 IO多路复用的本质(select、poll、epoll)

文章目录前言一、I/O多路复用是什么?二、三种复用方式1.select2.poll3.epoll总结前言如果你是新入行的小弟,对阻塞IO、非阻塞IO、同步IO、异步IO还不太了解,那得先看看这篇文章了深层次详解同步IO、异步IO、阻塞IO、非阻塞IO。如果你是久经沙场的老兵,那当做没看到就行了。一、I/O多路复用是什么?I/O多路复用的本质是使用select,poll或者epoll函数,挂起进程,当一个或者多个I/O事件发生之后,将控制返回给用户进程。以服务器编程为例,传统的多进程(多线程)并发

2021-03-01 11:31:36 355

原创 深层次详解同步IO、异步IO、阻塞IO、非阻塞IO

POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于网络相关的文章之中,但是还是不清楚其意义。POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻塞IO呢?先来说说几种常见的IO模型吧。IO模型io模型:阻塞,非阻塞,IO多路复用,异步这里统一使用Linux下的系统调用recv作为例子,它用于从套接字上接收一个消息,因为是一个系统调用,所以

2021-02-24 16:53:11 243

原创 Linux 的世界,一切皆文件

Linux 的世界,一切皆文件在linux的世界中,它会把一切都看作是文件,包括普通文件、目录文件、字符设备(键盘、鼠标等)、块设备(硬盘、光驱等)、socket、epoll、socket、管道、终端等等,所有一切都抽象成了文件,提供了统一的接口,用于程序调用。文件描述符linux 把一切视为文件,那我们写的程序是怎么找到具体的某个文件呢?文件描述符(file description FD)即为文件的一个标识,程序通过操作fd来操作文件。当应用程序请求内核打开、新建一个文件时,内核就会返回一.

2021-02-22 15:53:00 289

原创 学懂IO必备的操作系统知识(一)

很多非计算机专业的学生学习java编程时,一上来就接触各种IO:BIO、NIO、AIO,同步io、阻塞io,可能直接傻掉了,what‘s the hell! 接下来我们就从操作系统层面一点点的解开IO的面纱,让你一睹真容,其实它就是个普普通通的“人”。

2021-02-20 18:05:25 283

原创 献给迷茫的你

时间飞逝,当你还没有想清楚,今年要计划干什么的时候,已经过去了半年多,明天就是7月7日了,距离2018年还有178 天 9 时 29 分 48 秒,不知道大家是不是依然在自己选择的道路上坚持、坚持自己的路?下面把何炅的一段话,送给依然奋斗中的你:每个人,都是通过自己的努力,去决定自己生活的样子!

2017-07-06 14:35:22 438

原创 mybatis 开发中遇到的问题(一)

1、sql中存在分号“;”问题:org.apache.ibatis.binding.BindingException: Parameter ‘logisticId’ not found. Available parameters are [logisticsId, param1, param2, type] <select id="selectByType" resultMap="BaseRe

2017-06-30 17:25:00 571

原创 MySQL 查询执行流程

在开发过程中编写sql时,常常遇见查询慢的问题,在网上也查询了很多优化的方法,比如减少sql嵌套、减少关联、运用索引等,但究其根部不知道mysql是怎么执行查询语句的,专门研究了一下《高性能MySQL》,跟大家分享一下。《高性能mysql》查询性能优化部分:当希望mysql能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解这一点,很多查询优化工作实际上

2017-06-20 18:27:36 457

原创 Spring MVC工作流程详解

Spring MVC工作流程图图一 图二 一、Springmvc工作流程描述 1. 用户向服务器发送请求,请求被SpringMVC 前端控制Servlet (DispatcherServlet)捕获; 2. DispatcherServlet 对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象 (包

2017-06-19 20:14:37 1316

原创 springmvc 对应的controller 是否归spring容器管理

在做项目时,有时候会遇到springmvc管理的bean和spring容器管理的bean的归属问题,是否可以交叉获取,在此记录一下一直以来的疑惑。 SpringMVC管理Controller有两种方式(题外话:springmvc 通过@RequestMapping(“/memberInfo”) 把url映射关系存储起来) controller 默认是单例模式。若是在@controll

2017-06-19 17:32:06 2408

原创 spring 详解

一、Spring入门:spring是管理bean的IOC容器-实例化bean的容器 1, 定义:Spring是一个基于IOC和AOP来构架多层JavaEE系统的开源框架。 Spring以一种非侵入式的方式来管理你的代码;Spring提倡”最少侵入”,这也就意味着你可以适时地安装或卸载Spring。 Spring模块: 2, 控制反转(IOC:Inversion of Control)(对象

2017-06-19 16:00:16 358

原创 高级Java程序员 面试必备知识点概括

一,web系统知识基础 1、集合: http://blog.csdn.net/hellothejava/article/details/73457937 1.ArrayList、Vector、HashMap、HashTable、HashSet的默认初始容量、加载因子、扩容增量:http://www.cnblogs.com/xiaoming0601/p/5864106.html 2、hasmap

2017-06-19 15:21:05 795

原创 finally final finalize区别及 try catch finally中return值分析

一、final修饰符(关键字) 类被声明为final,意味着它不能被继承。因此一个类不能既被声明为abstract的,又被声明为final的。 变量或方法声明为final,可以保证它们在使用中不被改变;(引用变量对应的引用地址不能变,但是堆中对应的对象可以变); 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改(不可修改的是栈中存储的内存地址,不

2017-06-19 15:14:57 449

转载 经典设计模式(附实例和详解)

刚开始工作的前几年,写代码根本没有想到设计模式这类的,只要把业务搞定就OK了,就算其中用了设计模式自己也不知道。工作时间越久,发现设计模式在不同场景中对代码中的重要性。 偶然发现这几篇文章设计模式概括的比较全,特此转载一下。 Java经典设计模式之五大创建型模式(附实例和详解):http://blog.csdn.net/u013142781/article/details/50816245

2017-06-19 14:01:06 866

原创 Java 类中 成员变量及局部变量的范围

注意:如果 局部域内有该变量M,则先调用M;没有则扩大范围,调用成员变量 实例说明:int m =0;public int printNum(int n ){ for (int i = 0; i < n; i++) { for (int j = 0; j <i; j++) {//如果n为4,只有i为1 2 3 才执行内循环 Syst

2017-06-19 12:52:33 2479

转载 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

之前对Java动态代理,一直很困惑不明所以,但是自从看了这个哥们写的这篇文章,瞬时对动态代理有个清晰的认识,为了让大家也能清晰的认识动态代理,特此把这个篇文章的链接粘出来,希望这个哥们莫怪文章来自:http://blog.csdn.net/luanlouis/article/details/24589193

2017-06-19 11:13:19 374

原创 java 集合详解及如何应用

作为Java工程师,你是否还在不明所以的运用Java集合,这篇文章让你对Java集合不再困惑,对它有一个深刻的了解

2017-06-19 11:03:57 13336

空空如也

空空如也

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

TA关注的人

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