公告

👇微信扫码添加好友👇

Skip to content

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 的系统举例,通常来讲,前端部署在 NginxApache 等 Web 服务器,后端通常部署在 Tomcat 等应用服务器,使用 JSON 交互数据。后端根据 Rustful Api 规范开发数据接口,并通过 TokenSession 等安全机制进行认证,使用 Mybatis 等持久层框架与数据库进行通信。这些接口必须通过接口的相关规定进行调用。前端使用 Ajax 技术通过 HTTP 等协议实现对后端接口的调用,在后端主导的项目开发中,后端可以通过 SpringDoc 等方式提供接口文档,说明接口调用规范,供前端开发人员阅读。

优点:

前后端分离架构的主要优点是实现了数据与页面显示的解耦,开发人员能够专注于自己的方向,提升系统的开发效率、代码的可重用性及用户的体验感,并且由于后端所在的应用服务器一般都部署在内网,通过 web 服务器反向代理实现,能够增强后端数据的安全性。同时,能够同时利用 Web 服务器速度更快的优点以及应用服务器的动态资源处理,更便于开发及部署。

缺点:

  • 系统开发对于人员数量及团队的配合度要求变大。
  • 由于系统调整需要同时对前后端都进行调整,这将增大系统迭代的周期。
  • 前端开发通常都要基于后端接口,这增大了对前端开发的技术水平要求及上手难度。
  • 前端开发需要编写更多的代码来处理数据交互和逻辑,这增加了前端开发的工作量。
  • 前后端分离由于浏览器的同源策略限制,会导致前后端之间的访问出现跨域问题。