自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZhenXinMa

分享Java随笔

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

原创 TCP三次握手四次挥手详解

要了解TCP链接过程,那么就应该先了解下到底什么是TCP协议TCP(Transmission Control Protocol) 传输控制协议:是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。TCP旨在适应支持多网络应用分层协议层次结构。连接到不同但互连得劲计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据服务。原则上TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

2020-06-21 23:58:03 335 2

原创 [网络]网卡是如何接受数据包的

本文将会从宏观的角度去理解网卡是如何接受到数据包的。

2022-08-28 22:01:43 1419 1

原创 图文并茂:彻底理解Go中Chan底层同步原理.

????‍???? Go 中同步组件 Chan 的理解.深入Chan底层源码进行分析Chan工作原理.**学习比较枯草,但贵在坚持. 有关于源码的理解我都已经写在源码中的注释中了。**Go源码看起来要比Java舒服多了,仅仅只是对于环境上,哈哈哈,Java 看个Spring源码麻烦的一批.????️ 一、向Chan中发送数据.1.1 总览全局:chan 发送数据的几个步骤.第一种情况:chan关闭状态,直接panic,表示不能向已经关闭状态的chan读取数据.第二种情况:直接查看当前ch

2021-10-02 23:22:22 434

原创 一篇文章带你入门Docker + Nginx.

Docker And Nginx.简单学习Docker。先理解一个问题:什么是容器?我以前简单学Docker的时候,用Docker部署Redis和MySQL的时候,我以为容器仅仅只是一个容器,在这里我首先要纠正一点就是,不要把容器想成简单的容器,可以把每一个容器想象成一个Linux环境,我认为这一点也是Docker比较牛的地方.???? 一、Docker学习。参考:Docker 教程 | 菜鸟教程 (runoob.com)???? 1.1 什么是Docker.Doc

2021-07-24 21:25:07 4309 1

原创 GET和POST之间的区别.

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。下面的几条关于GET和POST请求之间的区别, 是在别的博客看见并记录了下来,但是想不起来是从哪个博客看的了, 所以在这里脸皮厚的就说下面是我自己总结的了~GET是不安全的,因为在传输过程中,数据被放在URL中,POST请求的所有操作对用来说都是不可见的.GET传输数据量较小,主要是因为URL长度限制,POST传送的数据量一般不受限制.GET限制Form表单的数据必须是

2020-10-06 20:40:07 133

原创 以ReentrantLock和AQS的源码来分析设计模式之模板方法模式.

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。设计模式之模板方法模式.设计模式之模板方法模式在JDK源码中体现的淋漓尽致, 所以说本文中就以ReentrantLock和AQSJDK中的源码来体会模板方法模式.模板方法模式就是入口调用的是父类的方法, 但是父类1. ReentrantLock入口.由于本文讨论的模板方法设计模式是基于ReentrantLock源码的, 所以讨论的开始时基于ReentrantLock

2020-09-29 22:26:06 258

原创 学了Go之后,自己对Go和Java之间的感受!

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-09-22 00:15:33 999

原创 一个懵懵懂懂的大三学子对Java锁机制的探索历程

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。和往常一样,每周五在CSDN上写自己的总结的时候都会随便看看CSDN上, 本周无意中看到了GEEK+博主大赛, 怀着尝试的心情,在这里展开自己对Java锁机制的探索. 如果有觉的不符合的,那么希望评委能指出来以供自己对自己理解的偏见的纠正.Java高并发背后的锁机制本文着重以JDK6版本之后的锁机制来进行阐述自己对锁机制的理解.Java锁机制目前分为两种, 一种是通过

2020-09-12 11:37:28 117

原创 设计模式之外观模式

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-09-07 08:59:37 182

原创 String类的详解

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-08-28 20:37:35 95

原创 对重载与重写的思考

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-08-28 20:36:57 129

原创 设计模式之装饰模式

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-08-28 20:36:09 127

原创 大三,新的一年新的开始!

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。

2020-08-24 02:29:10 118

原创 大三,沉重的一年!

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-08-24 00:44:55 115

原创 设计模式之适配器模式

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。

2020-08-16 16:35:30 101

原创 线程池的学与思

放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。愿自己能在自己所热爱的道路上越走越远。先将该篇博客的主题内容写上,后面会继续更新的!...

2020-08-10 21:15:53 107

原创 以创建对象的几种方式探讨Java设计模式之原型模式

生命之灯因热情而点燃,生命之舟因拼搏而前行!愿自己能在自己所热爱的道路上越走越远。今天我们以创建对象的几种方式来探讨Java设计模式之原型模式.Java创建对象对象除了new关键字和反射之外你还知道其他创建对象的方法吗?...

2020-08-09 20:21:01 142

原创 CGLIB实现对接口代理来实现mybatis核心思想

由于,这篇文章是对上篇文章的补充,所以详细的内容就不多说了,在对代理实现的时候仅仅只是代理对象换了,并且代理的API也换了,其余基本没变,有勇气是整体思路以及思想!那么咱们就直接上代码了,还有就是,注意下面代码中的注释,这些都是我自己在写博客时候的一些心得以及体会.使用CGLIB中的Enhancer的具体实现.package com.mzx.base.designmodel.proxy;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.

2020-07-31 20:51:16 259

原创 乐观锁和悲观锁的不同

学习在于不断的进行积累和复习,以及对一些知识盲点的探索,只有持有一种坚持不懈的恒心才能达到理想的彼岸.今天稍微对乐观锁和悲观锁有了些许了解,在这里进行记录下,虽然可能不是很全,但是后续我会持续更新的哈~~先来了解了解什么是乐观锁和悲观锁乐观锁和悲观锁只是一种思想,并不是说乐观锁和悲观锁就是某种特定的锁,MySQL中有乐观锁和悲观锁,ES中也有乐观锁和悲观锁的概念,所以不同环境下的乐观锁和悲观锁是不一样的,但是其理论思路是一样的.悲观锁悲观锁一般认为数据并发修改的概率比较大,所以我们在对数据进行

2020-07-26 14:46:47 125 1

原创 通过这篇代理模式可以让你初步探索mybatis核心思想:仅仅声明一个接口,就可以仅仅利用这个接口来CRUD.

首先,声明一下,我只是以JDK代理模式的思想来解释mybatis的核心思想,而不是去实现类似mybatis那样仅仅实现一个接口而去操作数据库的CRUD,但是通过这篇博客,如果你想自己去实现的话,也并非难事,只不过那样的话核心就不是代理模式了,而本篇博客的核心是JDK代理模式(面向接口编程)我相信,大家既然能阅读到JDK代理模式这里就说明对于Spirng以及Mybatis这种应用型框架已经很熟练了,那么我在这里就默认大家都已经很熟悉mybatis了.我相信大家对于mybatis的神奇之处一定有一种好奇

2020-07-25 22:34:06 110

原创 常常在API使用中看到build等方法,你有思考过其对应的建造者模式吗?

今天,我们来谈谈常用设计模式之建造者模式这里找不到好的API中使用build的例子,之后找到了再补上. 我们直接来看建造者模式建造者模式中的四种角色产品抽象建造者实例建造者指挥官(也就是build)使用细节客户端(使用程序的那一端)不必知道产品内部组成的细节,将产品本身与产品的常见过程解耦.每一个具体建造者都相对独立,而与其他建造者无关,因此可以很方便的替换具体建造者或增加新的建造者,用户使用不同的具体建造者可得到不同的产品对象.可以更加精细的控制产品创建过程,将复杂产品的常见

2020-07-19 15:20:04 164

原创 设计模式之工厂模式

设计模式中工厂设计模式一共有三种第一种:简单工程模式简单工厂模式是由一个工厂对象绝对创建出哪一种产品类的实例,重要的是绝对创建.简单工厂模式是工厂模式中最简单实用的模式定义了一个创建对象的类,该类代替了new关键字创建对象,由这个类来实例化对象的行为.简单工厂模式的实现:package com.mzx.base.designmodel.factory;import java.io.BufferedReader;import java.io.IOException;import jav

2020-07-10 21:57:15 89

原创 详解设计模式之六种单例模式

第一种:静态常量饿汉式单例模式我们先来看看静态常量饿汉式单例模式的实现/** * 单例模式的实现 */class Singleton { /** * 测试样例. */ private int i = 0; /** * 将初始化构造器(空)设置为私有化 * 一个类即使没有显示的声明一个空的初始化器,也会有一个初始化器, * 如果一个类没有显示的声明一个初始化器,那么JVM将会自动一个空的初始化器. */

2020-07-03 22:59:36 143

原创 详解设计模式中的七大设计原则

在了解单例模式之前,我们需要了解一些有关设计模式的知识设计模式解决了什么问题代码重用性:级相同功能的代码,不同多次编写可读写:编程规范性,便于其他程序员的阅读和理解可扩展性:当需要增加新的功能时,对原来功能没有影响使程序呈现高内聚,低耦合的特性设计模式核心思想找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起针对接口编程,而不是针对实现编程为了交互对象之间的松耦合设计而努力七大设计原色: 设计模式为什么这样设计的依据单一职责原则降低类的复杂度

2020-06-28 23:35:00 162

原创 ArrayList底层实现

ArrayList实现ArrayList集合继承AbstractList类,实现List接口要注意的是AbstractList 抽象类中的modCount表示List数据结构被修改的次数.由于ArrayList在实现过程中JDK8和JDK11基本上一样,所以就以JDK8来说。先来看看ArrayList类声明的参数.// 初始化容量private static final int DEFAULT_CAPACITY = 10;// 用于空实例的共享数组实例 不保存数据private sta

2020-06-23 23:24:55 167

空空如也

空空如也

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

TA关注的人

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