Coder Social home page Coder Social logo

govzhz.github.io's People

Contributors

dependabot[bot] avatar govzhz avatar

Watchers

 avatar  avatar

Forkers

5ace

govzhz.github.io's Issues

About Me - Mr·Zh

http://zzcoder.cn/about/

  Welcome! I am Mr·Zh, is a JAVA developer, passionate about open source technology. And I’ m also very willing to share technical experience. Wish you all have a good harvest in my blog gar

拆包粘包到底在解决什么问题 - Mr·Zh

https://zzcoder.cn/2020/09/13/%E6%8B%86%E5%8C%85%E7%B2%98%E5%8C%85%E5%88%B0%E5%BA%95%E5%9C%A8%E8%A7%A3%E5%86%B3%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98/#more

”TCP 拆包粘包“网络上的争论挺大的,原因在于这一概念在 RFC 中并未提到过,(* ̄︶ ̄)有点民科的赶脚。但实际上它是挺常见的一个问题,比较准确的描述应该是应用层分包问题。那么为什么提到这一概念总是会带上 TCP 而不是 UDP 呢?因为应用层分包问题本质是接收方在某个时刻接收到的数据不构成一条完整的消息 对于 UDP 来说,它并未在 IP 协议外作出额外的可靠性特性,所以无论发送的数据荷载

ReentrantLock - Mr·Zh

http://zzcoder.cn/2019/01/14/ReentrantLock/

  ReentrantLock 是基于 AQS 同步器实现的互斥锁,它支持设置公平锁/非公平锁模式,同时具有可重入性。在这里讨论 ReentrantLock 对这些特性的支持及应用。 标准模式12345678910111213141516171819class X { private final ReentrantLock lock = new Reen

HTTP协议与无状态 - Mr·Zh

http://zzcoder.cn/2020/05/31/HTTP%E5%8D%8F%E8%AE%AE%E4%B8%8E%E6%97%A0%E7%8A%B6%E6%80%81/#more

大家常提起 HTTP 协议是无状态的,其指代的“无状态”是什么?常见的观点有: 无状态代表相同的请求参数总是能返回相同的结果 HTTP 本身的设计是无状态的,增加了有状态协议头(Cookie/Session)后变成了有状态协议 对于第一个观点显而易见是错误的,它的表示更倾向于“幂等性”,这往往无法由协议本身保证,还需要服务器进行“有状态”的响应(若服务器不进行状态的持久化,当然无法做到幂等);

DNS是如何解析主机名的 - Mr·Zh

https://zzcoder.cn/2020/07/12/DNS%E6%98%AF%E5%A6%82%E4%BD%95%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%9A%84/#more

DNS 解析的作用就是将主机名转换为 IP 地址,那么 DNS 解析过程是怎么样的,DNS 服务器又是如何快速响应全球用户的请求的呢? DNS 解析原理在解释 DNS 解析原理前首先需要知道的是,DNS 服务器只是一种统称,实际上 DNS 服务器的不同类型负责完全不同的功能,这对于后续理解整个原理具有非常关键的作用。下面根据 DNS 服务器功能不同主要分为 4 种类型: 根域名服务器:根域名服务

泛型进阶 - Mr·Zh

http://zzcoder.cn/2019/12/06/%E6%B3%9B%E5%9E%8B%E8%BF%9B%E9%98%B6/

无限制通配符无限通配符即: <?>,主要在不确定或不关心实际参数类型时使用,如: 123public boolean removeAll(Collection<?> c){ ...} 由于它不确定具体类型,所以不能将任何元素(Null 除外)放入,即它是只读的,但在很多情况下需要放入对象,因此一种比较常见的方法是使用 类型参数 作为辅助函数 123

基础同步工具类 - Mr·Zh

http://zzcoder.cn/2019/02/11/%E5%9F%BA%E7%A1%80%E5%90%8C%E6%AD%A5%E5%B7%A5%E5%85%B7%E7%B1%BB/

Semaphore,CountDownLatch,CyclicBarrier 均是 JDK1.5 提供的基础并发工具: Semaphore 是一个计数信号量,用于限制同时访问某个特定资源的数量 CountDownLatch 是一个闭锁,允许一个或多个线程等待一组其他线程执行完成后执行,但只能使用一次 CyclicBarrier 是一个循环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时

内存屏障 - Mr·Zh

http://zzcoder.cn/2018/12/22/%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C/

  现代计算机大多数采用多核处理器或多处理器以提高性能,同时每个处理器通常存在一层或多层高速缓存,这将会更进一步加快对数据的访问。但是这也带来了新的挑战,即同一数据在不同处理器之间并不保证一致。所以为了保证数据的可见性,内存屏障应运而生。它能够刷新或使本地处理器高速缓存失效,以便查看其他处理器进行的写入的最新值或使该处理器的写入对其他处理器可见。而 Java 内存模型用于屏蔽不

try-catch-finally是如何执行的 - Mr·Zh

http://zzcoder.cn/2020/05/17/try-catch-finally%E6%98%AF%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E7%9A%84/

根据 JDK Tutorial 的描述,除非在执行 try 或 catch 代码时线程被中断或 JVM 退出,finally 中的逻辑始终会执行。因此 finally 关键字常被用于释放资源,防止程序出现异常时出现资源泄露。本文主要探讨其在 JVM 层面的实现原理,以及 synchronized 关键字在类似场景的处理手段。首先来看一段简单的 try-finally 代码 1234567publi

SELECT FOR UPDATE语句深度解析 - Mr·Zh

http://zzcoder.cn/2019/06/18/SELECT-FOR-UPDATE%E8%AF%AD%E5%8F%A5%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/

  Mysql 的 SELECT ... FOR UPDATE 语句是日常使用较多的用于锁定资源,确保在多个事务读取数据时始终能够读取到最新版本的数据的有效语句。那么它是怎么实现呢?在经过官网文档以及大量实践的验证之后发现网上存在大量不严谨甚至错误的信息,因此通过本文对 SELECT FOR UPDATE 语句作出以下总结。在具体介绍之前,先对目前网上教程或博客中会提到的几个常

揭开try-catch-finally的神秘面纱 - Mr·Zh

http://zzcoder.cn/2020/05/17/%E6%8F%AD%E5%BC%80try-catch-finally%E7%9A%84%E7%A5%9E%E7%A7%98%E9%9D%A2%E7%BA%B1/

根据 JDK Tutorial 的描述,除非在执行 try 或 catch 代码时线程被中断或 JVM 退出,finally 中的逻辑始终会执行。因此 finally 关键字常被用于释放资源,防止程序出现异常时出现资源泄露。本文主要探讨其在 JVM 层面的实现原理,以及 synchronized 关键字在类似场景的处理手段。首先来看一段简单的 try-finally 代码 1234567publi

Static Nested Or Inner Classes - Mr·Zh

http://zzcoder.cn/2019/12/06/Static-Nested-Or-Inner-Classes/

在 Java 中,在一个类中声明另一个类则称为嵌套类,被声明为 static 的嵌套类称为静态嵌套类(static nested classes ),与之相对的非静态嵌套类被称为内部类((inner classes ) 非静态嵌套类每个实例都包含一个额外指向外围对象的引用,换句话说,要实例化一个非静态嵌套类必须首先实例化外部类 静态嵌套类独立于外部类实例,可以看作嵌套在一个顶级类中的顶级类。因

Reactor模式 - Mr·Zh

https://zzcoder.cn/2020/08/23/Reactor%E6%A8%A1%E5%BC%8F/#more

标准 I/O 会存在两个阶段:(以 TCP Socket 举例) 数据在内核态和用户态的复制:TCP 协议栈维护着 Send Buffer(发送缓冲区)和 Recv Buffer(接收缓冲区),因此 read/write 都只是将用户态数据复制到内核态的 Socket Buffer(Send/Recv Buffer)。而 Socket Buffer 和网卡之间会通过 DMA 进行数据传输(不占用

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.