9-30
Java中的重载和重写有什么区别?
- 重载(Overloading):在同一个类中,方法名相同但参数列表不同,可以有不同的返回类型。编译器根据方法参数的类型、个数、顺序来选择调用相应的方法。
- 重写(Overriding):在子类中重新实现父类的方法,方法名、参数列表和返回类型必须相同。重写用于改变父类方法的实现,以适应子类的特定需求。
9-29
Java中的四种访问修饰符是什么?
public
:对所有类可见。private
:仅对类本身可见。protected
:对同一包内的类和所有子类可见。default
(不使用修饰符):对同一包内的类可见。
9-28
请用 JAVA 写一个冒泡排序?
冒泡排序原理是逐一比较相邻元素,通过交换位置逐步将较大的数移动到末尾。
java
public class BubbleSort {
/**
* 对整数数组进行冒泡排序,将数组按升序排列
*
* @param array 待排序的整数数组
*/
public static void bubbleSort(int[] array) {
int n = array.length;
// 外层循环控制每轮比较的次数
for (int i = 0; i < n - 1; i++) {
// 内层循环比较相邻元素,将较大的元素移到后面
for (int j = 0; j < n - i - 1; j++) {
// 如果前一个元素大于后一个元素,则交换它们的位置
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] nums = {64, 34, 25, 12, 22, 11, 90};
System.out.println("原始数组:");
for (int num : nums) {
System.out.print(num + " ");
}
bubbleSort(nums);
System.out.println("\n排序后的数组:");
for (int num : nums) {
System.out.print(num + " ");
}
}
}
9-27
什么是前后端分离?
前后端分离技术目前已经成为互联网项目研发的基础,JAVA 中一般使用
Nginx
+Tomcat
的架构实现。将数据处理与页面展示有效的进行解耦。为多客户端、大型分布式架构、微服务架构等都打下了坚实的基础。
这里以 VUE
+ SpringBoot
的系统举例,通常来讲,前端部署在 Nginx
、Apache
等 Web 服务器,后端通常部署在 Tomcat
等应用服务器,使用 JSON
交互数据。后端根据 Rustful Api
规范开发数据接口,并通过 Token
、Session
等安全机制进行认证,使用 Mybatis
等持久层框架与数据库进行通信。这些接口必须通过接口的相关规定进行调用。前端使用 Ajax
技术通过 HTTP
等协议实现对后端接口的调用,在后端主导的项目开发中,后端可以通过 SpringDoc
等方式提供接口文档,说明接口调用规范,供前端开发人员阅读。
优点:
前后端分离架构的主要优点是实现了数据与页面显示的解耦,开发人员能够专注于自己的方向,提升系统的开发效率、代码的可重用性及用户的体验感,并且由于后端所在的应用服务器一般都部署在内网,通过 web 服务器反向代理实现,能够增强后端数据的安全性。同时,能够同时利用 Web 服务器速度更快的优点以及应用服务器的动态资源处理,更便于开发及部署。
缺点:
- 系统开发对于人员数量及团队的配合度要求变大。
- 由于系统调整需要同时对前后端都进行调整,这将增大系统迭代的周期。
- 前端开发通常都要基于后端接口,这增大了对前端开发的技术水平要求及上手难度。
- 前端开发需要编写更多的代码来处理数据交互和逻辑,这增加了前端开发的工作量。
- 前后端分离由于浏览器的同源策略限制,会导致前后端之间的访问出现跨域问题。