![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程学习
文章平均质量分 78
来一粒感康
这个作者很懒,什么都没留下…
展开
-
Java Date Time 教程-java.util.Date
Java的java.util.Date类是Java最初的时间类之一。今天该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类。不过你仍然可以使用java.util.Date类去表示某个时间。下面是一个如何实例化java.util.Date的例子:java.util.Date date = new java.util.Date();Date实例包含了当前时间作为它的日期和时间。你可以通过getTime()方法访问java.util.Date实例的日期和时间,比如像这样:转载 2021-11-22 14:10:25 · 309 阅读 · 0 评论 -
Java IO: 异常处理
流与Reader和Writer在结束使用的时候,需要正确地关闭它们。通过调用close()方法可以达到这一点。不过这需要一些思考。请看下边的代码:InputStream input = new FileInputStream("c:\\data\\input-text.txt");int data = input.read();while(data != -1) { //do something with data... doSomethingWithData(data);转载 2021-11-22 13:43:34 · 136 阅读 · 0 评论 -
JVM优化之循环展开
在JVM内部实现系列的前几篇文章中,我们已经看到了Java的HotSpot虚拟机的just-in-time (JIT)编译技术,包括逃逸分析和锁消除。本文我们将要讨论另一种自动优化,叫作循环展开。JIT编译器使用这项技术来让循环(比如Java的for或者while循环)执行得更加高效。由于我们要对JVM的内部机制进行深入分析,所以你会时不时看到用于讲解介绍的各种C的代码甚至是汇编语言,扶稳了!我们先从下面这段C代码开始,它会去分配100万个long类型的空间,然后用100万个随机的long值来填转载 2021-11-21 15:03:36 · 355 阅读 · 0 评论 -
Java设计模式:观察者
简单来说,观察者模式=发布者+订阅者。下面是一个有关猎头的典型的例子。在下面这张图当中有两个角色:猎头和寻找工作的人。找工作的人向猎头订阅,告知自己希望得到一份工作,当有新的工作机会的时候,猎头就会把这个信息通知给曾经向他订阅过的人。Java代码Subject接口://java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!public interface Subject { public void registerObse.转载 2021-11-21 14:30:24 · 183 阅读 · 0 评论 -
Java IO: 字节和字符数组
Java中的字节和字符数组,经常被用于临时存储应用程序内部的数据,所以数组也是常见的数据来源以及数据流目的地。如果你在程序执行过程中需要频繁访问文件的内容,你可能会愿意将文件加载到数组中去。当然你可以通过索引直接访问这些数组。但是如果你有一个组件的设计初衷是从InputStream或者Reader而非数组中读取某些数据呢?通过InputStream或者Reader读取数组为了让你的组件能够从数组中读取数据,你需要把字节或者字符数组包装到一个ByteArrayInputStream或者CharAr转载 2021-11-21 14:15:18 · 170 阅读 · 0 评论 -
Java IO 之 OutputStream源码
一、前言上一篇《Java IO 之 InputStream源码》,说了InputStream。JDK1.0中就有了这传统的IO字节流,也就是 InputStream 和 OutputStream。梳理下两者的核心:InputStream中有几个 read() 方法和 OutputStream中有几个 write() 方法。它们是一一对应的,而核心的是read()和write()方法。它们都没实现,所有本质调用是各自实现类实现的该两个方法。read() 和 write() ,对应着系统的Inpu转载 2021-11-21 13:09:51 · 143 阅读 · 0 评论 -
Java锁是如何保证数据可见性的
All Lock implementations must enforce thesame memory synchronization semantics as provided by the built-in monitor lock: A successful lock operation acts like a successful monitorEnter action A successful unlock operation acts like a successful ...转载 2021-11-20 18:37:51 · 971 阅读 · 1 评论 -
Java IO 之 InputStream源码
一、InputStreamInputStream是一个抽象类,即表示所有字节输入流实现类的基类。它的作用就是抽象地表示所有从不同数据源产生输入的类,例如常见的FileInputStream、FilterInputStream等。那些数据源呢?比如:1) 字节数组(不代表String类,但可以转换)2) String对象3) 文件4) 一个其他种类的流组成的序列化 (在分布式系统中常见)5) 管道(多线程环境中的数据源)等等二者,注意它是属于字节流部分,而不是字符流(jav转载 2021-11-20 18:16:30 · 204 阅读 · 0 评论 -
Java秘术:用枚举构建一个状态机
综述Java中的enum比其他的语言中的都强大,这产生了很多令人惊讶的用法。本文中,我将列出Java中的enum的一些特性,然后将这些特性应用到一起构成一个状态机。Enum的单例和工具类用法你可以非常简单地用一个enum构建一个单例或者工具类。//java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!</pre>enum Singleton { INSTANCE;}enum Utility { ; // no转载 2021-11-20 10:45:44 · 255 阅读 · 0 评论 -
什么是 Java 构造器?
构造器是编程的强大组件。使用它们来释放 Java 的全部潜力。-- Seth Kenlon(作者)在开源、跨平台编程领域,Java 无疑(?)是无可争议的重量级语言。尽管有许多伟大的跨平台框架,但很少有像Java那样统一和直接的。当然,Java 也是一种非常复杂的语言,具有自己的微妙之处和惯例。Java 中与构造器( constructor)有关的最常见问题之一是:它们是什么,它们的作用是什么?简而言之:构造器是在 Java 中创建新对象(object)时执行的操作。当 Java ...转载 2021-11-20 10:30:10 · 683 阅读 · 0 评论 -
如何阅读Java源码?
阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持。假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理等知识点有所了解。2、强烈的求知欲强烈的求知欲是阅读源码的核心动力!大多数程序员的学习态度转载 2021-11-20 10:17:43 · 248 阅读 · 0 评论 -
工厂模式-创建型模式
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。结构图:YML-示例图示例://java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!public interface Factory { public Product factoryMethod();}public class ConcreteFacto转载 2021-11-19 15:05:47 · 50 阅读 · 0 评论 -
面向GC的Java编程
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题。以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象,就交给GC来做吧!甚至有人说,如果在编程过程中频繁考虑内存问题,是一种退化,这些事情应该交给编译器,交给虚拟机来解决。这话其实也没有太大问题,的确,大部分场景下关心内存、GC的问题,显得有点“杞人忧天”了,高老爷说过:过早优化是万恶之源。但另一方面,什么才是“过早优化”?If we c转载 2021-11-19 14:46:42 · 167 阅读 · 0 评论 -
Java那些不为人知的特殊方法
如果你用过反射并且执行过getDeclaredMethods方法的话,你可能会感到很吃惊。你会发现出现了很多源代码里没有的方法。如果你看一下这些方法的修饰符的话,可能会发现里面有些方法是volatile的。顺便说一句,如果在Java面试里问到“什么是volatile方法?”,你可能会吓出一身冷汗。正确的答案是没有volatile方法。但同时,getDeclaredMethods()或者getMethods()返回的这些方法,Modifier.isVolatile(method.getModifiers())转载 2021-11-19 14:17:03 · 108 阅读 · 0 评论 -
我用起来顺手的数据库设计工具,这次推荐给大家
摘要好的数据库设计工具,可以帮助我们进行思考并提高我们的设计效率。以前一直使用的是PowerDesigner,最近发现Navicat的数据库设计功能也很不错,界面简洁且容易使用,特此推荐给大家。NavicatNavicat是一套快速、可靠的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。注意:本教程采用的时Navicat1转载 2021-11-19 13:46:17 · 1353 阅读 · 0 评论 -
分享Java中经常出现的问题
Java中经常出现的问题,Java流行了很多年,相信学习Java的小伙伴有很多很多,今天小编总结了关于Java异常的及几大问题,希望对你有所帮助。1、检查与未检查简而言之,检查过的异常必须显式地在方法中捕获或在方法的throw子句中声明。 未检查异常是由无法解决的问题引起的,例如除以零、空指针等。检查异常特别重要,因为您希望使用您的API的其他开发人员知道如何处理异常。2、异常管理的最佳实践 如果一个异常可以被正确处...转载 2021-11-19 13:24:51 · 118 阅读 · 0 评论 -
几点Java程序必须满足的基本规则
简介:Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位。Java程序不允许可执行性语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。1 Java程序的组织形式Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位。Java程序不允许可执行性语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。上.转载 2021-11-19 12:51:51 · 262 阅读 · 0 评论 -
JAVA后端实习生刚进入公司一般会安排做什么?
新人进公司首先给你配置个人有邮箱和ip,clone代码让你熟悉大概有一周左右。再在此之间,可能会有你的同事或者组长来给你大致讲一下项目的模块,架构,数据库,有的 公司让你看,不懂的让你去问他。针对于刚毕业的,还没有相关经验的可能会有所不同,你能力好的话可能过两天直接给你安排一些小需求进行做了,边做边熟悉,毕竟我经经常对于我招过来的小弟因能力的不同进行分工。根据各个公司的项目情况不同,做的工作也不太一样。不同的公司有自己的文化和特色,大公司和小公司也会不同,一般正常的公司有一些的入职流程熟悉公转载 2021-11-18 15:34:25 · 755 阅读 · 0 评论 -
JVM内部原理
这篇文章详细描述了Java虚拟机的内在结构。下面这张图来自《The Java Virtual Machine Specification Java SE 7 Edition》,它展示了一个典型的JVM的主要的内部结构。java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!接下来的2个部分,将详细介绍这幅图中所有组成结构。 第一部分涵盖了每个线程都会生成的结构, 第二部分 涵盖了单独的每个线程生成的结构。 线程 JVM 系统线程.转载 2021-11-18 15:13:31 · 120 阅读 · 0 评论 -
Java字节码浅析(三)
从Java7开始,switch语句增加了对String类型的支持。不过字节码中的switch指令还是只支持int类型,并没有增加对其它类型的支持。事实上switch语句对String的支持是分成两个步骤来完成的。首先,将每个case语句里的值的hashCode和操作数栈顶的值(译注:也就是switch里面的那个值,这个值会先压入栈顶)进行比较。这个可以通过lookupswitch或者是tableswitch指令来完成。结果会路由到某个分支上,然后调用String.equlals来判断是否确实匹配。最后根据e转载 2021-11-18 14:33:15 · 86 阅读 · 0 评论 -
《Java字节码浅析(二)》
条件语句像if-else, switch这样的流程控制的条件语句,是通过用一条指令来进行两个值的比较,然后根据结果跳转到另一条字节码来实现的。循环语句包括for循环,while循环,它们的实现方式也很类似,但有一点不同,它们通常都会包含一条goto指令,以便字节码实现循环执行。do-while循环不需要goto指令,因为它的条件分支是在字节码的末尾。更多细节请参考循环语句一节。有一些指令可以用来比较两个整型或者两个引用,然后执行某个分支,这些操作都能在单条指令里面完成。而像double,floa转载 2021-11-18 13:51:00 · 93 阅读 · 0 评论 -
Java字节码浅析(—)
明白Java代码是如何编译成字节码并在JVM上运行的非常重要,这有助于理解程序运行的时候究竟发生了些什么。理解这点不仅能搞清语言特性是如何实现的,并且在做方案讨论的时候能清楚相应的副作用及权衡利弊。本文介绍了Java代码是如何编译成字节码并在JVM上执行的。想了解JVM的内部结构以及字节码运行时用到的各个内存区域,可以看下我前面的一篇关于JVM内部细节的文章。本文分为三部分,每一部分都分成几个小节。每个小节都可以单独阅读,不过由于一些概念是逐步建立起来的,如果你依次阅读完所有章节会更简单一些。每一节转载 2021-11-18 13:16:52 · 92 阅读 · 0 评论 -
通过JVM日志来进行安全点分析
许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为”stop-the-world”(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子),但不同的JIT活动(例子),偏向锁擦除(例子),特定的JVMTI操作,以及许多场景也可能会导致应用程序暂停。应用程序线程可以被安全地停止掉的那个时间点,就叫做安全点。这一术语也通常用来指代SWT暂停。通常来讲GC日志都是打开的。然而,并非所有安全点的信息都能完整地记录下来。想获取到完整的日志,可以使用下列的JVM选项:转载 2021-11-18 12:38:23 · 335 阅读 · 0 评论 -
关于Java中流式编程与ForkJoinPool的一点事
一、前言最近在看项目代码时候,发现有一段奇怪的代码,细看完全多余,然后这其中却隐藏着一个不为人知的关于 ForkJoinPool 的秘密…二、流式编程基础如下代码我们首先创建了一个list,然后从list上获取流对象,并使用foreach进行遍历:运行上面代码,输出为://java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!main 0 main 1 main 2 main 3 main 4 ...上面打印元素..转载 2021-11-17 20:09:19 · 173 阅读 · 0 评论 -
Java中使用Math.abs你入坑了?
一、前言Math.abs函数是jdk中提供的一个用来返回入参绝对值的函数,也就是你输入一个负数,它会返回其对应绝对值正数,这个在大部分情况下是这样,但是特殊情况下,还是会返回负数,为何那?且往下看。java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!二、场景介绍在数据库中当数据量比较大时,我们会把一个表分为多个分表,或者把一个库分为多个库,那么分表按照什么来分那?这里就有一个分表键的概念,比如用户信息表,可以按照用户id作为分表键,比如消...转载 2021-11-17 19:56:16 · 181 阅读 · 0 评论 -
记一次多线程代码优化
一、前言并发运行相比串行执行很好,因为其可以减少执行时间,但是并发用的不对,也会造成资源浪费,本文我们就来探究一例子。二、案例介绍与优化有这样一段代码,根据传递的url列表,并发的去下载url对于的文件内容,原来代码模拟如下://java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!private final static ThreadPoolExecutor EXECUTOR_SERVICE = new ThreadPoolExecutor(.转载 2021-11-17 19:48:02 · 59 阅读 · 0 评论 -
Java踩坑记系列之线程池
线程池大家都很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于JDK线程池ThreadPoolExecutor做的封装,比如tomcat的线程池,当然也有单独开发的,但都会牵涉到这几个核心参数的设置:核心线程数,等待队列,最大线程数,拒绝策略等。先说下我们项目组在使用线程池时踩到的坑: 线程池的参数设置一定要结合具体的业务场景,区分I/O密集和CPU密集,如果是I/O密集型业务,核心线程数,workQueue等待队列,最大线程数等参数设置不合理不仅不能发挥线程池的作用,反而会影响现转载 2021-11-17 19:04:53 · 540 阅读 · 0 评论 -
线程池ForkJoinPool简介
ForkJoinPool线程池最大的特点就是分叉(fork)合并(join),将一个大任务拆分成多个小任务,并行执行,再结合工作窃取模式(worksteal)提高整体的执行效率,充分利用CPU资源。一. 应用场景ForkJoinPool使用分治算法,用相对少的线程处理大量的任务,将一个大任务一拆为二,以此类推,每个子任务再拆分一半,直到达到最细颗粒度为止,即设置的阈值停止拆分,然后从最底层的任务开始计算,往上一层一层合并结果,简单的流程如下图:从图中可以看出ForkJoinPool要先执行完子转载 2021-11-17 19:08:34 · 669 阅读 · 0 评论 -
一文带你彻底了解Java异步编程
随着RxJava、Reactor等异步框架的流行,异步编程受到了越来越多的关注,尤其是在IO密集型的业务场景中,相比传统的同步开发模式,异步编程的优势越来越明显。那到底什么是异步编程?异步化真正的好处又是什么?如何选择适合自己团队的异步技术?在实施异步框架落地的过程中有哪些需要注意的地方?本文从以下几个方面结合真实项目异步改造经验对异步编程进行分析,希望能给大家一些客观认识:使用RxJava异步改造后的效果 什么是异步编程?异步实现原理 异步技术选型参考 异步化真正的好处是什么? 异步化转载 2021-11-17 18:35:10 · 736 阅读 · 1 评论 -
Java8初体验(一)lambda表达式语法
本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性—lambda表达式。java8的安装工欲善其器必先利其器,首先安装JDK8。过程省略,大家应该都可以自己搞定。但是有一点这里强调一下(Windows系统):目前我们工作的版本一般是java 6或者java 7,所以很多人安装java8基本都是学习为主。这转载 2021-11-16 15:26:23 · 119 阅读 · 0 评论 -
《JAVA8开发指南》第二章采用Lambda表达式
采用Lambda表达式本章,你将学习到如何采用JAVA8的重要特性Lambda表达式。首先,你要了解“行为参数”这种模式。该模式能够使你写出来的代码适应需求变化。然后,你将看到该模式如何使得Lambda表达式的使用与以往比变得更加简洁。然后,你将学习如何精确地定位Lambda表达式的使用场景和使用方式。你也将了解JAVA8的另一个特性-方法参数,它能使你的代码更简洁更易读。带着所有这些新知识实战一个重构代码的例子。最后,你也将学习到如何使用Lambda表达式和方法参数。为什么使用Lambda表达转载 2021-11-16 14:41:10 · 76 阅读 · 0 评论 -
《JAVA8开发指南》使用流式操作
本章中,你将学习到怎样使用Stream API进行开发。首先,你将会了解Stream API背后的机制,什么是流以及流的用处。其次,你将学习到一系列的流式操作、流式数据处理模型以及能让你写出更复杂数据查询的流式集合操作。接下来是如何应用流式操作的例子。最后,你将学习到并行流。为什么需要流式操作集合API是Java API中最重要的部分。基本上每一个java程序都离不开集合。尽管很重要,但是现有的集合处理在很多方面都无法满足需要。一个原因是,许多其他的语言或者类库以声明的方式来处理特定的数据模转载 2021-11-16 13:47:10 · 86 阅读 · 0 评论 -
《JAVA8开发指南》为什么你需要关注 JAVA8
本章包含代码的可读性 多核 JAVA8特性的快速指南JAVA8:为什么你需要关注?JAVA已经更新了!在 2014 年 3 月,JAVA发布了新版本-JAVA8,JAVA8 引入的一些新特性可能会改变你日常中基本的编码方式。但不用担心,这本简洁的指南会带着你掌握一些要领,现在你就可以开始阅读。第一章列举了 JAVA8 中增加的主要功能概况。接下来的两章则关注 JAVA8 的主要特性: lambda 表达式 和streams(流)。驱动 JAVA8 改进的两大动机:代码可读性转载 2021-11-16 13:28:43 · 79 阅读 · 0 评论 -
Java 内存模型
前言在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不确定结果的原因就是可见性、有序性和原子性问题,Java为解决可见性和有序性问题引入了Java 内存模型,使用互斥方案(其核心实现技术是锁)来解决原子性问题。这篇先来看看解决可见性、有序性问题的 Java 内存模型(JMM)。什么是 Java 内存模型Java 内存模型在维基百科上的定义如下:The Java memor..转载 2021-11-16 12:57:17 · 60 阅读 · 0 评论 -
面试官:Java- 线程池中的线程复用是如何实现的?
首先会判断线程池的状态,也就是是否在运行,若线程为非运行状态,则会拒绝。接下来会判断线程数是否小于核心线程数,若小于核心线程数,会新建工作线程并执行任务,随着任务的增多,线程数会慢慢增加至核心线程数,如果此时还有任务提交,就会判断阻塞队列?workQueue?是否已满,若没满,则会将任务放入到阻塞队列中,等待工作线程获得并执行,如果任务提交非常多,使得阻塞队达到上限,会去判断线程数是否小于最大线程数?maximumPoolSize,若小于最大线程数,线程池会添加工作线程并执行任务,如果仍然有大量任务提交..转载 2021-11-14 14:23:56 · 109 阅读 · 0 评论 -
2021 年 11 月最新版 Java 面试真题 + 视频解析
StringBuffer 方法都是 synchronized 修饰的性能:StringBuilder > StringBuffer > String场景:经常需要改变字符串内容时使用后面两个优先使用 StringBuilder,多线程使用共享变量时使用 StringBuffer抽象类是对类本质的抽象,表达的是 is a 的关系,比如: BMW is a Car 。抽象类包含并实现子类的通用特性,将子类存在差异化的特性进行抽象,交由子类去实现。而接口是对行为的抽象,转载 2021-11-14 13:50:56 · 103 阅读 · 0 评论 -
应该如何学习JAVA
简介:第一步,首先你要了解JAVA 为什么要了解java? 这个当然很重要你既然要学习java肯定要了解它,它可以干什么,做什么,有什么特性,用在哪儿?什么多线程,什么多态性,什么面向对象,什么移植性balabalabala等等等,对不对,以后你真成了高手了不还可以和人家家谈谈java的历史嘛,哪怕某天有人问你java和javascript有什么区别,你也不会回答说“多了个script”吧。第一步,首先你要了解JAVA为什么要了解java? 这个当然很重要你既然要学习java肯定要了解它,它可.转载 2021-11-14 12:05:41 · 66 阅读 · 0 评论 -
Java初学者必知:Java语言的11大特点
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。那么java语言的特点是什么呢?1、Java语言是简单的Java 语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑 的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。java学习交流:737251转载 2021-11-14 11:35:24 · 308 阅读 · 0 评论 -
2021 年 Java 技术整体发展趋势
看过国外一家公司(Eversoft)于去年 12 月的技术分享,提出了 2021 年 Java 的 5 个发展趋势,和 2020 年相比,基本没有区别。1. Java 发行版根据 JetBrains 公司的一项调查,我们发现,尽管年代久远,但 Java 8 仍然是最受欢迎的版本,而且比例高达受访者的 75%!而 Java 11 作为另一个稳定版本,排名第二,比例占受访者的 32%。也就是说,这两个 LTS(长期支持)版本,基本覆盖了所有的 Java 开发者!虽然如今 Java 16 都已经发转载 2021-11-14 10:45:39 · 219 阅读 · 0 评论 -
Java BIO、NIO与AIO的介绍(学习过程)
BIO - 阻塞IO。 即Java的远程IOjava学习交流群:737251827 进群可领取学习资源及对十年开发经验大佬提问,免费解答!IO模型#BIO线程模型:#NIO模型(简单描述):#IO模型应用场景#Java BIO基本介绍#Java BIO 工作机制#Java BIO 应用案例#// 代码示例:public class BIOService { public static v..转载 2021-11-14 10:13:42 · 194 阅读 · 0 评论