Java
文章平均质量分 78
有鹿如溪
可以内推各互联网公司,找工作的朋友可以关注私信我
展开
-
SHEIN面试——Java高级开发
2022年7月20希音二面高级开发工程师(供应链)4spring和mybatis怎么操作数据库的。5平时工作量怎么定义的。1线程间的通信方式。2什么是pua定义。3什么是内卷的定义。7如何提升工作效率。原创 2022-07-25 23:17:13 · 2471 阅读 · 5 评论 -
技术日常系列——我想用Swagger来进行API管理,同事说我out了
分享今天创建了一个新服务,我想用swagger进行API管理我:用swagger来进行管理API接口把,比较方便他:你out了,现在谁还用swagger我:那用啥他:当然是用knife4j了,好用多了。我:该怎么用啊他:就这么用 ....如何使用knife4j引入jar 包<dependency> <groupId>com.github.xiaoymin</groupId> &l原创 2021-12-28 10:54:57 · 672 阅读 · 0 评论 -
雷军做程序员时写的博客,太牛了。。
来源:雷军的博客 blog.sina.com.cn/leijun这篇文章是在雷总个人博客看到的,里面聊到了他作为程序员的一些经历、初衷以及思考。写的不错,转来给大家看看。如果程序人生的话,这条路太漫长。我并非天生喜欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机系,为了和这个朋友有更多的共同语言,我也选择了计算机系,开始步入程序人生的道路。当我学会一些后,发现自己特别喜欢写程序。我是八七年上的武汉大学计算机系,大一下学期才有专业课。当我有资格上机的转载 2021-12-16 13:40:42 · 134 阅读 · 0 评论 -
技术日常系列——今天同事看到我的sql用count(*)立马制止了我
问题起因 我想判断数据库存不存在记录,就是使用count(*)去判断 代码如下: ####SQL写法: SELECT count(*) FROM table WHERE a = 1 AND b = 2 #### Java写法: int nums = xxDao.countXxxxByXxx(params); if ( nums > 0 ) { //当存在时,执行这里的代码 } else { //当不存在时,执行这里原创 2021-12-16 10:34:03 · 934 阅读 · 0 评论 -
技术日常系列——朋友问我为啥要用where 1=1 作为查询条件
where的使用朋友问我为啥要用where 1=1 作为查询条件问题发起 今天朋友问我,为啥需要用到where 1=1作为查询条件,有啥意义,想必可能有些朋友也有类似的疑问,我跟有问题的朋友一起过一下where 1=1大家先看段代码 <select id="selectKey" parameterType="java.util.Map" resultType=""> select ID,CUSTOMER_CODE from CUS原创 2021-12-11 19:21:12 · 911 阅读 · 0 评论 -
Hadoop之Zookeeper——知识点总结
学习路径第1节 安装第2节 简单操作第3节 分布式协调服务介绍、zookeeper节点介绍第4节 Zookeeper 分布式协调服务watcher机制第5节 Curator 客户端与Zookeeper的简单操作第6节 Curator 客户端与Zookeeper 事件监听第7节 Curator 客户端与Zookeeper springboot集成第8节 Zookeeper之Zab协议第9节 Zookeeper实现数据发布订阅第10节 Zookeeper实现分布式锁 原原创 2021-12-09 18:50:37 · 1012 阅读 · 0 评论 -
《github精选系列》——多线程编程一站式解决方案(asyncTool)
1 简单总结1 并行常见的场景2 并行场景之核心——任意编排3 并行场景可能存在的需求之——每个执行结果的回调4 并行场景可能存在的需求之——执行顺序的强依赖和弱依赖5 并发场景可能存在的需求之——依赖上游的执行结果作为入参6 并发场景可能存在的需求之——全组任务的超时7 并发场景可能存在的需求之——高性能、低线程数8 asyncTool特点gitee地址:https://gitee.com/jd-platform-opensource/asyncTool原创 2021-09-06 11:36:33 · 496 阅读 · 0 评论 -
计算机网络基础——物理层
1 简单汇总1 基本概念2 数据通信的基本知识3 常用编码形式4 信道复用技术2 主要介绍2.1 基本概念首先要知道的是,物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。因为现在的计算机网络中的硬件设备和传输媒体的种类非常的多。而物理层的作用就是要尽可能地屏蔽掉这些不同的差异,从而使得物理层上面的数据链路层感觉不到这些差异,这样就可以让数据链路层“安心”的完成自己的本职工作而不必考虑网络的具体传输媒体和通信手段是什么。.原创 2021-08-31 16:01:34 · 202 阅读 · 0 评论 -
计算机网络基础——概述
1 简单汇总1 计算机网络在信息时代中的作用2 互联网概述1) 网络的网络2)互联网基础结构发展的三个阶段3 互联网的组成1) 边缘部分2) 核心部分4 计算机网络的类别1) 按照网络的作用范围进行分类2) 按照网络的使用者进行分类5 计算机网络性能计算机网络的性能指标1)速率2) 带宽3) 吞吐量4) 时延5) 时延带宽积6) 往返时间RTT7) 利用率计算机网络的非性能指标(1)费用(2)质量(3)标准化(原创 2021-08-30 11:08:47 · 362 阅读 · 0 评论 -
计算机网络基础——http详解
1 简单汇总2 主要介绍2.1 HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,I原创 2021-08-26 14:56:49 · 1744 阅读 · 0 评论 -
计算机网络基础——需要注意的那些问题
1 简单汇总1.OSI,TCP/IP,五层协议的体系结构,以及各层协议2.IP地址分类3.ARP是地址解析协议,简单语言解释一下工作原理4.简单介绍几种协议5.TCP三次握手四次挥手6.在浏览器中输入www.baidu.com后执行的全部过程7.TCP和UDP的区别8.TCP对应的协议和UDP对应的协议9.DNS域名系统,简单描述其工作原理2 主要介绍2.1 OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数原创 2021-08-23 15:42:47 · 365 阅读 · 0 评论 -
计算机网络基础——知识点总结
计算机网络基础1 概述1 什么是互联网2 互联网的组成3 网络性能指标4 计算机2 物理层1 物理层的作用2 常用编码形式3 信道复用技术3 数据链路层1 点对点通信2 三个基本问题3 点对点协议PPP4 广播信道的数据链路层4.1 局域网4.2 CSMA/CD协议4.3 适配器4.4 MAC地址4.5 MAC帧4.6 交换机扩展局域网3 网络层1 虚电路和数据报之争2 网路层协议3 IP地址分类原创 2021-08-23 15:40:56 · 403 阅读 · 0 评论 -
Java基础——异常
1 基本概括2 主要介绍2.1 异常的概念什么是异常指程序在运行过程中,出现的非正常的情况,最终会导致java虚拟机(jvm)的非正常停止。异常如何处理当异常出现时,执行预先准备好的程序异常处理必要性减少用户的损失、同时也减少给用户带来的不必要的麻烦;也可以利用异常处理给与用户一些提示异常机制的概述异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。程序错误原创 2021-08-18 16:35:37 · 185 阅读 · 0 评论 -
bat 等大厂常问的Java多线程面试题,3万字解析
1 基本概括2 文章详情1.1 Java基础——Java多线程(进程与线程的介绍)1.2 Java基础——Java多线程(线程的创建方式)1.3 Java基础——Java多线程(什么是进程?)1.4 Java基础——Java多线程(什么是线程?)1.5 Java基础——Java多线程(什么是线程池?)1.6 Java基础——Java多线程(什么是线程安全?)1.7 Java基础——Java多线程(多线程死锁问题)1.8 Java基础——Java多线程(ThreadLo原创 2021-08-13 16:49:42 · 570 阅读 · 0 评论 -
Java多线程(15)——多线程常见的锁
1 基本概括2 主要介绍2.1 乐观锁 VS 悲观锁2.1.1 悲观锁定义总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。在Java中,synchronized从偏向锁、轻量级锁到重量级锁,全是悲观锁。JDK提供的Loc原创 2021-08-11 14:36:09 · 689 阅读 · 0 评论 -
Java多线程(14)——Lock接口详解
1 基本概括2 主要介绍2.1 Lock接口的作用2.1.1 简单介绍锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源,解决数据的一致性问题。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了隐式获取释放锁的便捷...原创 2021-08-10 09:40:51 · 403 阅读 · 0 评论 -
Java多线程(13)——synchronized优化
1 基本概括2 主要介绍2.1 锁的优化的五种方法锁优化的思路和方法有以下几种:减少锁持有时间减小锁粒度锁分离锁消除2.1.1 减少锁持有时间减小锁的持有时间是为了降低锁的冲突的可能性,提高体系的并发能力。1) 只在必要时进行同步加锁操作例如下面的代码:在加锁时先判断是否满足同步代码逻辑的要求,以达到减小锁的占有几率的目的// 使用条件判断减少锁持有时间提高效率。public void matcher(Char input) { if (!co原创 2021-08-10 01:06:50 · 211 阅读 · 0 评论 -
Java多线程(12)——synchronized详解
1 基本概括2 主要介绍2.1 同步概念2.1.1 对象的内存布局1 实例数据:存放类的属性数据信息,包括父类的属性信息;2 对齐填充:由于虚拟机要求 对象起始地址必须是8字节的整数倍。填充数据不是必须存在的,仅仅是为了字节对齐;3 对象头:Java对象头一般占有2个机器码(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit),但是 如果对象是数组类型,则需要3个机器码,因为JVM虚拟机可以通过Java对象的元数原创 2021-08-09 02:16:08 · 1079 阅读 · 0 评论 -
Java多线程(11)——volatile详解
1 基本概括2 主要介绍2.1 Java内存模型(JMM)JMM(Java Memory Model)Java内存模型,是java虚拟机规范中所定义的一种内存模型。Java内存模型(Java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。所有的共享变量都存储于主内存。这里所说的变量指的是实例变量和类变量。不包含局部变量,因为局部变量是线程私有的,因此不存在竞争问题。每一个线程还存在自己原创 2021-08-08 04:49:50 · 714 阅读 · 0 评论 -
Java多线程(10)——线程与进程的通信方式
1 基本概括2 主要介绍2.1 进程通信和线程通信的概念进程通信进程相互交换数据与信息。进程间通信有两种基本模型:共享内存和消息传递(消息队列)。线程通信原因:为了更好地协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知。线程间通信:(1)临界区通过多线程的串行化允许线程对共享资源的访问,速度快(2)互斥量只有拥有互斥对象的线程才能对资源空间进行访问,因为互斥对象只有一个,所以可以保证公共资源不被多个线程访问(3)信号量用于控制多个线程对共原创 2021-08-07 03:17:00 · 1432 阅读 · 0 评论 -
设计模式——生产者消费者模式
1 基本概括2 主要介绍2.1 概念生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力这个阻塞队列就是用来给生产者和消费者解耦的。如果缓冲区已经满了,则生产者线程阻塞;如果缓冲区为空,那么消费者线程阻塞。2.2 生产消费者模型就是在一原创 2021-08-06 01:49:42 · 9505 阅读 · 0 评论 -
Java多线程(9)——ThreadLocal详解
1 基本概括2 主要介绍2.1 ThreadLocal的简单介绍ThreadLocal是线程变量,即ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。数据隔离的本质:Thread内部持有ThreadLocalMap对象,创建的副本都是存在这里,所以每个线程之间就 实现了隔离2.2 ThreadLocal的作用1、在进行对象跨层传递的时候,使用ThreadL原创 2021-08-03 02:42:35 · 606 阅读 · 0 评论 -
Java多线程(8)——多线程死锁问题
1 基本概括2 主要介绍2.1 死锁的概念所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局。当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。2.2 死锁产生的原因1) 系统资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在 运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。2) 进程推进顺序非法进程在运行过程中,请求和释放资源原创 2021-08-02 18:05:52 · 1411 阅读 · 0 评论 -
Java多线程(6)——什么是线程安全?
1 基本概括2 主要介绍2.1 线程安全的概念当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。2.2 多线程编程的三个概念2.2.1 原子性这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。2.2.2 可见性这一点,跟数据库事务的原子性概念差原创 2021-08-02 02:23:01 · 557 阅读 · 0 评论 -
Java多线程(5)——线程池
1 基本概括2 主要介绍2.1 线程池的概念线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。线程池内部结构 :1.线程池管理器:负责线程创建、销毁、添加任务等;2.工作线程: 线程池创建的正在工作的线程;3.任务队列( BlockingQueue ):线程满了之后,可以放到任务队列中,起到一定的缓冲;4.任务:要求实现统一的接口,方便处理和执行;2.2 线程池的优点可以将任务的提交和执行策略解耦,便原创 2021-08-01 02:08:02 · 447 阅读 · 0 评论 -
Java多线程(3)——什么是线程?
1 基本概括2 主要介绍2.1 线程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。我们来理解一下下面几个问题:2.1.1 为啥有了进程还要有线程有了线程以后,凡是程序涉及到多线任务时,都使用多线程来实现,使用多线程来实现时,线程间的原创 2021-07-31 03:53:05 · 209 阅读 · 0 评论 -
Java多线程(2)——什么是进程?
1 基本概括2 主要介绍2.1 进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的原创 2021-07-30 02:27:38 · 237 阅读 · 0 评论 -
Java多线程(4)——线程的创建方式
1 基本概括2 主要介绍2.1 创建方式1.继承Thread类实现多线程run()为线程类的核心方法,相当于主线程的main方法,是每个线程的入口a.一个线程调用 两次start()方法将会抛出线程状态异常,也就是的start()只可以被调用一次b.native生明的方法只有方法名,没有方法体。是本地方法,不是抽象方法,而是调用c语言方法registerNative()方法包含了所有与线程相关的操作系统方法c. run()方法是由jvm创建完本地操作系统级线程后回调的方法,不可以手动原创 2021-07-29 09:24:06 · 169 阅读 · 0 评论 -
Java面试题——NIO相关面试题
1 NIO、BIO、AIO的区别BIO:传统的网络通讯模型,就是BIO,同步阻塞IO它其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket去连接服务端的那个ServerSocket, ServerSocket接收到了一个的连接请求就创建一个Socket和一个线程去跟那个Socket进行通讯。这种方式的缺点:每次一个客户端接入,都需要在服务端创建一个线程来服务这个客户端这样大量客户端来的时候,就会造成服务端的线程数量可能达到了几千甚至几万,这样就可能会造成服务端过原创 2021-07-26 09:34:46 · 1414 阅读 · 0 评论 -
Java中NIO基本介绍(5)——Files、Pipe、Path
1 基本概括2 主要介绍2.1 Files常用的方法long size(Path path) //返回文件大小boolean isDirectory(Path path) //是否是文件夹boolean isExecutable(Path path) //是否是可执行文件boolean isHidden(Path path) //是否是隐藏的boolean exists(Path path) //该文件/文件夹是否存在bo...原创 2021-07-25 01:53:52 · 340 阅读 · 0 评论 -
Java中NIO基本介绍(4)——channel
1 基本概括2 主要介绍2.1 Java (Socket,ServerSocket)与(SocketChannel,ServerSocketChannel)区别和联系Socket 和ServerSocke 是一对 他们是java.net下面实现socket通信的类SocketChannel 和ServerSocketChannel是一对 他们是java.nio下面实现通信的类 支持异步通信服务器必须先建立ServerSocket或者ServerSocketChannel 来等待客户.原创 2021-07-22 00:02:24 · 394 阅读 · 0 评论 -
Java面试题——HashMap相关面试题
1.谈一下HashMap的特性?1.HashMap存储键值对实现快速存取,允许为null。key值不可重复,若key值重复则覆盖。2.非同步,线程不安全。3.底层是hash表,不保证有序(比如插入的顺序)2.谈一下HashMap的底层原理是什么?底层原理:Map + 无序 + 键唯一 + 哈希表 (数组+Entry)+ 存取值1、HashMap是Map接口的实现类。实现HashMap对数据的操作,允许有一个null键,多个null值。ConcurrentHashmap、Hasht.原创 2021-07-20 23:50:38 · 714 阅读 · 0 评论 -
Java中IO流基本介绍(14)——NIO相关基础
1 基本概括2 主要介绍2.1 NIO流(java New IO的简称)与IO流的区别面向流与面向缓冲IO流是每次处理一个或多个字节,效率很慢(字符流处理的也是字节,只是对字节进行编码和解码处理)。NIO流是以数据块为单位来处理,缓冲区就是用于读写的数据块。缓冲区的IO操作是由底层操作系统实现的,效率很快。阻塞式与非阻塞式阻塞与非阻塞IOIO流是阻塞式的,使用read()与write()方法时,执行期间只能等待该方法完成。NIO流是非阻塞式的,执行读写时依然可以做别的事情原创 2021-07-19 23:40:36 · 179 阅读 · 0 评论 -
Java中IO流基本介绍(13)——零拷贝
1 基本概括2 主要介绍2.1 传统拷贝和零拷贝的区别传统拷贝步骤如下:首先,调用read时,文件A拷贝到了kernel(内核)模式; 之后,CPU控制将kernel模式数据copy到user模式下; 调用write时,先将user模式下的内容copy到kernel模式下的socket的buffer中; 最后将kernel模式下的socket buffer的数据copy到网卡设备中传送;linux2.1方法 :内核缓冲区与应用程序共享,这样就不需要把内核缓冲区的内容往用.原创 2021-07-19 01:18:39 · 216 阅读 · 0 评论 -
Java中IO流基本介绍(12)——NIO相关介绍
1 基本概括2 主要介绍2.1 Linux 内核空间与用户空间操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。2.1.1为什么需要区分内核空间与用户空间在 CPU 的所有指令中,有些指令是非常危险的,如果错用,将导致系统崩溃,比如清内存、.原创 2021-07-17 20:16:56 · 158 阅读 · 0 评论 -
Java中IO流基本介绍(11)——ByteArrayInoutStream和ByteArrayOutputStream
1 基本概括2 主要介绍2.1 ByteArrayOutputStream、ByteArrayInputStream介绍ByteArrayOutputStream:字节数组输出流在内存中创建一个字节数组缓冲区,所有发送到输出流的数 据保存在该字节数组缓冲区中。实际作用就是通过write()将对象各个字段写入一个字节数组,然后再使用toByteArray()将字节数据取出来,通过tcp传输给服务器。ByteArrayInputStream:字节数组输入流在内存中创建一个字节数组缓冲区,从输原创 2021-07-16 01:48:46 · 2972 阅读 · 0 评论 -
Java中IO流基本介绍(10)——RandomAccessFile
1 基本概括2 主要介绍2.1 用 RandomAccess 实现一个断点下载的功能多线程下载,即是一个文件能过多个线程进行下载;而断点续传说的是当一个文件下载到一半时突然由于某个原因下载中断了,比如突然电脑关机了,那么当再开机时已经下载到一半的文件不需要重头开始,而是接着下载;其原理很简单:首先,下载中断时记住上一个时点下载的位置,然后接着这个位置继续下载,这个继续下载可以是人手工触发的也可以是程序运行时自动识别进行下载的。步骤如下:1、设置开启线程数,发送http请求到下载.原创 2021-07-15 17:17:43 · 178 阅读 · 0 评论 -
Java中IO流基本介绍(9)——PrintStream和PrintWriter
1 基本概括2 主要介绍2.1 PrintStream和PrintWriter区别1 PrintStream主要操作byte流,而PrintWriter用来操作字符流。读取文本文件时一般用后者。 2 java的一个字符(char)是16bit的,一个byte是8bit的3 PrintStream的可能会出现字符集乱码吧。PrintStream是用来操作byte,PrintWriter是用来操作Unicode,一般 需要处理中文时用PrintWriter好了4 PrintSt...原创 2021-07-15 01:13:10 · 421 阅读 · 0 评论 -
Java中IO流基本介绍(8)——ObjectInputStream和ObjectOutputStream
1 基本概括2 主要介绍2.1 序列化2.1.1 序列化和反序列化序列化:将内存中的java对象分解成数小块,并按照顺序一块一块存储到硬盘文件中,成为对象的序列化。反序列化:将硬盘中的对象文件,按照顺序还原到内存中,称为对象的反序列化。想要完成对象的输入输出,还必须依靠ObjectInputStream和ObjectOutputStream;使用对象输出流输出序列化对象的步骤,也称为序列化,而使用对象输入流读入对象的过程,也称为反序列化。2.1.2 对象能够序列化,必须实原创 2021-07-14 00:35:38 · 200 阅读 · 0 评论 -
Java中IO流基本介绍(7)——BufferedReader和BufferedWriter
1 基本概括2 主要介绍2.1 高效流BufferedReader和BufferedWriter的优势提高效率:为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度。简化了操作。2.2 BufferedReader 缓冲区大小BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读原创 2021-07-13 01:04:13 · 1141 阅读 · 1 评论