Java网络方面
最近在面试 有些概念懂 但是需要梳理一下 借着面试看看自己会多少.
1.网络编程的同步 异步 阻塞 非阻塞?
同步:函数调用在没有得到结果之前,不返回任何结果;
异步:函数调用在没有得到结果之前,不返回任何结果,返回状态值;
阻塞:函数调用在没有得到结果之前,线程挂起,得到结果之后返回值。
非阻塞:函数调用在没有得到结果之前,当前线程不会挂起,立即返回结果。
2.Java如何实现无阻塞方式的Socket编程?
NIO可以有效解决多线程服务器存在的线程开销问题,NIO的多线程不是为了应对客户端请求而独立分配线程,
而是通过多线程充分利用CPU的处理能力和处理的时间,达到提高服务效果。
3.什么是Java序列化
为了保存内存中各种对象的状态(也就是实例变量,而不是方法),并且可以把对象可以读取出来,虽然可以通过方法保存对象状态,java提供了对象
序列化机制更好的保存对象状态(具体的对象序列化可以参照Hibernate二级缓存)
4.什么情况下需要序列化?序列化需要注意什么事情,如何实现Java序列化(串行化)?
Java对象序列化到文件或者数据库中;
使用套接字在网络上传输对象时需要进行序列化;
当希望RMI传输对象的时候;
序列化注意事情:
1).如果子类实现了序列化接口Sericalizable而父类未实现,父类必须提供一个无参构造函数,否则会抛出InvalidClassException异常。
2).类的静态变量不会被序列化,因为这个静态变量是类变量,而不是对象的。串行化保存的是是对象属性,即非静态的变量。
3.)Java序列化是为了节约磁盘空间,具有特定规则。
4).序列化到同一文件,如果修改了相同对象的属性再次保存时,因此只保存第二次的引用,读取第一次的存储。
5.Java有那几种流?JDK提供哪些接口可以继承?
Java提供的流对象
InputStram 字节输入流 OutputStream 字节输出流 Reader 字符输入流 Writer 字符输出流
按流向划分:
输出: 输出字节流 OutputStraam 输出字符流 Writer
输入: 输入字节流InputStream 输入字符流 Reder
按照传输单位划分:
字节流:8位 一个比特 一般情况下图片 等是二进制文件
字节流:16位 两个比特
6.用Java Socket编程
比较典型的Java Socket编程,发送请求后,等待服务器响应。 (这个过程存在阻塞方法)
大概过程
1.创建一个Socket实例,构造函数先远处服务器域名和端口 简历TCP连接
2.通过IO流与服务器建立连接(这个地方存在阻塞方法)
3.IO流中读取数据 并且 Socket关闭连接;
服务器的构建模型
1.创建一个ServerSocket端口监听,设置监听端口,用于获取TCP连接
2.重复执行(whlie(true))监听状态一直持续
3.调用ServerSocket 的accept()方法,返回一个客户端连接实例
4.为返回的Socket创建一个新的线程,用于进行线程的服务。
5.通讯完成,关闭Socket的close()
7.TCP有连接时候有三次握手?断开连接有几次握手?
客户端 服务器
| (发送请求 i) |
| ---------------> (i) |(创建j,并且i+1)
| <---------------(j,i+1) |
| (获取 j,i+1) 并且(j+1,i+) |
| -------------->(j+1,i+1) |(获取j+1,i+1) 完成握手
seq 是包本身的序列号 ack是确认连接
一次释放 断开连接请求 确认断开连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义