Java 困扰三周の问题:使用byte[]或skip()方法读取字节流Stream文件尾部多/少/缺字节解决方法

前言 最近在造一个最强兼容性的FTP服务端轮子,但在使用InputStream、OutputStream及它的子类时,我遇到了很奇怪也很严重的问题:数据尾部随机缺少/多出数据。这个问题简直太致命了。 问题复现 先出一段代码,我之前操作数据流的步骤如下(请注 ......

大白话之Java Stream流:将类数组流化,便捷批量修改,通俗讲解!

前言 Stream大意概括 将一个列表(List)中的所有类铺平转换成一条流水线,按要求将流水线上的所有类一个一个地处理。像极了SQL语句。 本篇文章将用通俗易懂的语言为你讲解流操作。如果你有一部分卡住看不懂,跳过去就好,再回去看就会了。 -📚-需要 ......

大白话之Java多线程join方法:开局一张图,试学一分钟,你就费和我一样,理解介个方法

前言 有次偶尔接触到了Thread.join()方法,便到网上去查阅相关资料,但也是看得我一头雾水(天下文章一般抄)。在我很久的理解之后,便想将我理解的join()方法以一张图的方式解释出来。 要学习本篇文章,你需要理解以下知识: 多线程 & T ......

大白话之AutoClosable接口 | try-with-resources:JDK1.7的新特性,提高重复回收效率

前言 无论是使用文件IO流,还是网络Socket流,都免不了调用close()将流关闭。如果需要操作的流过多,就会导致混乱。 一旦忘记将关闭方法放到finally中,很有可能出现流未被关闭,占用大量内存空间的问题。 流程简化 对比 try-catch-fi ......

大白话之必会Java Atomic | 线程一点也不安全(二):Atomic的ABA问题会导致什么情况?如何解决?

前言 第一章还没看过?点我可以穿越 阅读本篇文章,你需要了解以下知识: Atomic是什么?(点此跳转) 单向链表的原理 从上一章的内容,我们可以了解到,Atomic可以基本解决线程同步安全的问题。而本章我们将讨论Atomic的缺点与它的原子性。 AB ......

刨根问底 | 大白话:在使用注解后,框架是怎么知道你哪个方法使用了注解的?用@RequestMapping注解举例详解!

前言 阅读本篇文章,你需要理解以下的知识: 重要:反射 (参考) Java enum 接口的使用 了解注解是什么、该什么时候使用 最好接触过Spring(因为用@RequestMapping举例) 先说说注解 如果你熟悉Spring框架,你一定使用过这 ......

大白话之fail-fast | fail-safe:为什么会有这个机制?它有什么作用?

前言 阅读本篇文章,你需要了解下列知识: 多线程的实现(看过来) Iterator的使用 ArrayList的使用和如何实现Iterator 为什么会有这个机制? 举个栗子 有一杯水、两个人(黄渤和红雷) 黄渤拿起了水杯,开始喝水 红雷到达案发现场, ......

大白话 | 课堂实践:使用Iterator对数组进行遍历

前言 阅读本篇文章,你需要对以下知识有所了解: 接口(这儿有) Iterator的使用 Java 匿名内部类 构思 我们都知道,Iterator是一种迭代器,它的接口中有四种方法(JDK 1.8): public interface Iterator& ......

大白话之Java面向接口编程:最“正经”的中文实例讲解,看不懂来打我!

前言 作为一个正经博主,我会用最纯洁易懂的方式让你理解面向接口编程。 阅读本篇文章,你需要对以下知识有所了解: 面向对象编程基础知识 接口(这儿有) 实例 废话少说。打开你的IDE(没有?去下!),新建一个类,命名为Main,复制下方代码: inter ......

大白话之Java反射-初学最迷的概念:能干啥?咋用?

前言 初学时,反射、网络编程、IO是我最不能理解的三大模块。 当时查资料,给我的感觉是:写文章的都觉得我已经会了。 如今,我用实例尽可能简单地讲述反射这个东西。 能干啥? 人类文明分为三个阶段: 女娲创造人类 人类文明建立,地球产生秩序 人类灭亡 实例 ......