java面试强基(14)

news2025/1/15 10:49:39

Java 中 IO 流分为几种? 

  • 按照流的流向分,可以分为输入流和输出流;
  • 按照操作单元划分,可以划分为字节流和字符流;
  • 按照流的角色划分为节点流和处理流。

Java IO 流共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。

  • InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
  • OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流

既然有了字节流,为什么还要有字符流? 

问题本质想问:不管是文件读写还是网络发送接收,信息的最小存储单元都是字节,那为什么 I/O 流操作要分为字节流操作和字符流操作呢?

回答:字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

Java 中只有值传递? 

Java 中将实参传递给方法(或函数)的方式是 值传递 :

  • 如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。
  • 如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。

 

序列化协议对应于 TCP/IP 4 层模型的哪一层? 

如上图所示,OSI 七层协议模型中,表示层做的事情主要就是对应用层的用户数据进行处理转换为二进制流。反过来的话,就是将二进制流转换成应用层的用户数据。这不就对应的是序列化和反序列化么?

因为,OSI 七层协议模型中的应用层、表示层和会话层对应的都是 TCP/IP 四层模型中的应用层,所以序列化协议属于 TCP/IP 协议应用层的一部分。

 

什么是泛型擦除? 

​ java泛型是伪泛型,在java编译期间,所有泛型信息会进行擦除。

​ 编译器在编译期间,会将动态将T擦除为Object或者将T extends xxxxx 擦除为其限定类型 xxxxx。

​ 泛型本质上是编译器行为,为了减少编译器开销,将泛型擦除为一般类。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计springboot病房管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

跨国并购数据库:SDC跨国数据库、Thomson数据库、A股上市公司并购数据库等多指标数据(4W+)

(1)SDC跨国数据库 1、数据来源:WRDS沃顿数据库Thomson Reuters SDC - Mergers and Acquisitions板块 2、时间跨度:1982年1月1日至2020年12月31日 3、区域范围:全国 4、指标说明: 数据的所有并购方都为…

DDD 与 EDA- 核心逻辑提炼方法论

在【DDD与应用架构】一文中我们说过,应用架构的存在就是为了把一团混沌的代码变得有秩序,好管理。我们保持最核心逻辑不变,就可以保持系统的稳定与发展。领域驱动设计的作者 Eric Evans 说:“为了使领域模型成为有价值的资产&…

华夏天信携手华为云开天aPaaS,打造安全、高效、节能的主煤流运输系统

摘要:基于开天aPaaS集成工作台,主煤流运输系统如何实现多源异构数据融合、皮带物料和人员违章的智能感知,以及皮带的智能控制。灵活架构、高效集成、快速开发!本文分享自华为云社区《华夏天信携手华为云开天aPaaS,打造…

SSM三大框架之MyBatis总结【动力节点老杜】

文章目录JDBC的缺点MyBatis一、基础概念二、开发第一个mybatis程序1.resources目录:2.开发步骤3.从 XML 中构建 **SqlSessionFactory**4.mybatis中有两个主要的配置文件:5.关于第一个程序的小细节6.关于mybatis的事务管理机制。(深度剖析&…

springboot+jsp高校学生宿舍管理系统-宿管带前端

本系统采用从上往下的步骤开发,基本功能如下: 本课题要求实现一套宿舍管理系统,系统主要包括个人中心、学生管理、宿管管理、报修信息管理、费用缴纳管理、留言板管理、论坛管理、系统管理等功能; 管理员用例图如下所示&#xff1…

抖音达人探店有用吗?算不算过时呢

其实我看到这个问题的时候也曾怀疑探店的方式真的对当下年轻人有作用吗?会不会有人怀疑探店达人和商家是串通好的?毕竟在有利益链的情况下,我们还能否相信仅仅靠一个视频就能知晓事物的孰好孰坏?今天就来为大家分析下抖音达人探店…

xss-labs/level7

我们如同一下构造那样 <script>alert(xss)</script> 产生以下回显 接着查看源代码 发现第一个输出点被转义了 没有利用价值了 第二个输出点则是可以发现script关键字直接给干没了 氧化钙!!! 似此 如何处之&#xff1f; 我们猜测后台服务器还是对一些特殊字符进…

软件测试全套教程,软件测试自学线路图

目录 一、背景&#xff1a; 二、行动&#xff1a; 三、软件测试实战具体路线&#xff1a; 第0阶段 &#xff1a;软件测试行业和个人匹配度分析 第1阶段&#xff1a;软件行业前景分析大纲解读 第2阶段&#xff1a;软件测试基础知识 第3阶段&#xff1a;需求分析阶段 第4…

[附源码]计算机毕业设计springboot大学生考勤管理系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

LVS-NAT模式实验案例

1 环境&#xff1a; 共四台主机 一台&#xff1a; internet client&#xff1a;192.168.10.8/24 GW:无 仅主机 一台&#xff1a;lvs eth1 仅主机 192.168.10.18/16 eth0 NAT 192.168.100.18/24 两台RS&#xff1a; RS1: 192.168.100.28/24 GW&#xff1a;192.168.100.18 NAT …

SpringCloud 网关 Gateway

哈喽~大家好&#xff0c;这篇来看看SpringCloud 网关 Gateway。 &#x1f947;个人主页&#xff1a;个人主页​​​​​ &#x1f948; 系列专栏&#xff1a;【】 &#x1f949;与这篇相关的文章&#xff1a; SpringCloud Sentinel 使用SpringCloud S…

手把手教你构建一个前端路由

涉及知识点&#xff1a;location对象、history对象 文章目录基础概念什么是路由如何实现前端路由涉及问题前端路由实现方式1. hash方式2. history方式3. debug&#xff1a;本地起服务报错扩展&#xff1a;封装路由类Routerhashhistory基础概念 什么是路由 路由是一组映射关系…

深度学习入门(9)神经网络Affine与Softmax层的计算图表示方式及其误差反向传播的代码实现

《深度学习入门》系列文章目录 深度学习入门 (1)感知机 深度学习入门&#xff08;2&#xff09;神经网络 深度学习入门&#xff08;3&#xff09;神经网络参数梯度的计算方式 深度学习入门&#xff08;4&#xff09;【深度学习实战】无框架实现两层神经网络的搭建与训练过程 深…

MySQL 进阶篇1.0 索引 SQL优化 视图 锁

01-课程介绍 02-存储引擎-MySQL体系结构 03存储引擎-简介 查询建表语句 --默认存储引擎:InnoDBshow create table account; 查询当前数据库支持的存储引擎show engines; 04存储引擎-InnoDB介绍 开关为"ON": 表示每个innodb引擎的表都有一个idb表共享文件 …

Focal Self-attention for Local-Global Interactions in Vision Transformers

目录 Abstract 1. Introduction 2. MEthod 2.1 Model architecture 2.2 Focal self-attention 2.2.1 Window-wise attention 2.2.2 Complexity analysis 2.3 Model configuration 3. Related work 4. Experiments 4.1 Image classification on ImageNet-1K 4.…

26. [Python GUI] PyQt5中拖放详解之拖放动作

PyQt5的拖放动作 1. 什么是拖放动作 拖放动作是指用户希望怎样处理拖放的数据&#xff0c;比如移动、复制、还是创建由目标到源的链 接等。 拖放动作由 Qt::DropAction 枚举描述&#xff1a; 2. 可能的拖放动作&#xff0c;实际的拖放动作&#xff0c;建议的拖放动作 可能的…

有什么制作网页的工具软件好用呢?

我们进行制作网页之前&#xff0c;都会找一些制作网页的工具软件&#xff0c;俗语有说“工欲善其事&#xff0c;必先利其器&#xff0c;所以找一款好的的工具软件可以对制作网页的过程提供很大帮助。那么有什么制作网页的工具软件呢&#xff1f; 制作网页的方式有哪些&#xff…

如何计算神经网络参数的个数?

目录 1. 卷积层 2. 分类层 3. 计算 LeNet 网络的参数个数 神经网络随着层数的加深&#xff0c;网络参数的个数会越来越多&#xff0c;小的网络有成千上万个参数&#xff0c;大的可以达到千万个网络参数。 所以应该如何计算神经网络参数的个数&#xff1f; 图像分类的神经网…

分享五款没什么名气却意外好用的软件

噔噔噔噔&#xff0c;作为一个黑科技软件爱好者&#xff0c;电脑里肯定是不会缺少这方面的东西&#xff0c;今天的5款优质软件闪亮登场了。 1.密码管理工具——RoboForm 这是一款密码管理的小插件&#xff0c;相信很多人都曾被各种各样的密码记忆弄得心力交瘁过&#xff0c;尤…