java面试Day4

1. Java 中 final 关键字有什么用?

在 Java 中,final 关键字用于表示一个不可变的常量或一个不可变的变量

在 Java 中,final 关键字可以修饰类、方法和变量,作用如下:

  1. final 修饰类,表示该类不能被继承。final 类中的方法默认都是 final 的,不能被子类重写。

  2. final 修饰方法,表示该方法不能被子类重写

  3. final 修饰变量,表示该变量只能被赋值一次。final 修饰的变量必须在声明时或构造函数中初始化,且不能再被修改。常用于定义常量。

另外,使用 final 修饰的变量在编译时就已经确定了其值,因此在运行时访问时比非 final 变量更快。

使用 final 关键字可以带来一些好处,例如:

  1. 安全性:将变量声明为 final 可以防止它被改变,从而提高安全性。

  2. 可读性:将常量声明为 final 可以提高代码的可读性,因为常量的值不会被修改。

  3. 优化:final 变量在编译时被转换成常量,这可以提高程序的性能。

总之,final 关键字在 Java 中非常有用,可以提高程序的安全性、可读性和性能

2. HTTP 是哪一层的协议?简述它的作用?

HTTP(Hypertext Transfer Protocol)是应用层协议,是互联网上使用最广泛的协议之一。它基于客户端-服务器模型,通过在客户端和服务器之间传输文本数据来进行通信。HTTP通常使用TCP作为传输层协议,也可以使用TLS/SSL进行加密。

HTTP的作用是定义了客户端和服务器之间的通信方式,使得客户端可以向服务器请求资源,并且服务器可以向客户端发送响应结果。HTTP使用URL(Uniform Resource Locator)来定位资源,通过请求方法(如GET、POST、PUT、DELETE等)来描述对资源的操作,通过请求头和响应头来传递附加信息,如编码格式、内容类型、Cookie等。

HTTP 协议主要作用包括:

  1. 建立连接:客户端与服务器建立 TCP 连接,然后发送 HTTP 请求,服务器接收请求并处理。

  2. 发送请求:客户端发送HTTP请求到服务器,包括请求方法(GET、POST、PUT等)、请求头(如User-Agent、Accept等)和请求正文(可选)等信息。

  3. 处理请求:服务器接收并解析 HTTP 请求,执行请求操作(如查询数据库等),并将处理结果返回给客户端。

  4. 返回响应:服务器返回HTTP响应,包括响应状态码(如200 OK、404 Not Found等)、响应头(如Content-Type、Cache-Control等)和响应正文(可选)等信息。

  5. 关闭连接:客户端接收到响应后,关闭TCP连接。

HTTP的主要特点包括以下几个方面:

  1. 简单易用:HTTP协议采用文本格式传输数据,易于人类阅读和编写,使用简单。

  2. 无状态:HTTP是一种无状态协议,每次请求和响应之间相互独立,服务器不会保存任何客户端信息,客户端需要自行维护会话状态。

  3. 可扩展性:HTTP允许通过扩展头部信息和请求方法等方式进行扩展,支持自定义数据传输格式和协议。

  4. 非连接型:HTTP是一种非连接型协议,每个请求和响应之间相互独立,不存在长期的连接状态。

HTTP协议是应用层协议中非常重要的一种,它的作用是为Web应用程序提供了标准的通信方式,使得客户端和服务器之间的交互变得更加简单、高效和灵活。

3. 什么是进程和线程?它们有哪些区别和联系?

在操作系统中,进程是指一个正在执行中的程序,而线程是进程的一部分,是一个程序中执行的代码片段。

进程是操作系统资源分配的最小单位,一个进程至少包括一个线程,进程拥有自己的内存空间、文件句柄、环境变量等系统资源。进程间相互独立,互不干扰,每个进程都拥有自己的地址空间。进程通信需要通过进程间通信机制(IPC)来实现。

线程是程序执行的最小单位,一个进程中可以包含多个线程,它们共享进程的内存空间和系统资源。多个线程可以并发执行,从而提高了程序的运行效率,同时也会带来线程安全等问题。线程之间的通信可以通过共享内存、信号量等机制实现。

进程和线程的区别和联系如下:

  • 资源分配:进程拥有自己的内存空间等系统资源,而线程共享进程的资源;

  • 独立性:进程之间相互独立,互不干扰,而线程是进程的一部分,线程之间共享进程的资源;

  • 调度:进程间调度的开销比线程大,线程的调度开销小,可以并发执行;

  • 并发性:多个进程之间相互独立,多个线程可以并发执行;

  • 同步:进程间通信需要通过IPC机制,线程间同步可以通过共享内存、信号量等机制实现。

在实际开发中,多线程应用更加常见,因为线程的开销小,执行效率高,适用于需要并发执行的场景。但需要注意线程安全问题。而多进程应用通常更加稳定,但开销较大,适用于需要独立运行的场景。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值