Java习题(二)

涎涎原创约 6494 字大约 22 分钟...JavaJava

175-Java习题(二).md

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

热身题

  • 一、请列出您成长至今受益最深的三个网站/APP、三本书、三部电影;

  • 三个网站/APP:

  1. Stack Overflow: 作为一个程序员社区,Stack Overflow是一个非常有用的网站,上面有大量的问题和答案,可以帮助程序员解决各种技术问题。
  2. Github: 作为一个代码托管平台,Github是一个非常重要的网站,它可以帮助程序员存储、管理和分享他们的代码。
  3. Medium: Medium是一个在线出版平台,上面有很多有关编程、技术和创业的文章,可以帮助程序员了解最新的技术趋势和最佳实践。
  • 三本书:
  1. 《Java编程思想》:这是一本经典的Java编程书籍,它涵盖了Java编程的各个方面,从基础知识到高级特性都有涉及。
  2. 《Effective Java》:这是一本非常有用的Java编程书籍,它提供了很多实用的编程技巧和最佳实践。
  3. 《Clean Code》:这是一本关于编写高质量代码的书籍,它提供了很多实用的编码技巧和规范。
  • 三部电影:
  1. 《头号玩家》:这是一部关于虚拟现实和游戏开发的电影,它讲述了一个年轻程序员在虚拟世界中寻找宝藏的故事。
  2. 《黑客帝国》:这是一部经典的科幻电影,它讲述了一个黑客组织与机器人之间的战斗。
  3. 《盗梦空间》:这是一部关于梦境和现实之间关系的电影,它提供了很多有趣的想法和视觉效果。
  • 二、您用哪个IDE写代码?排除掉Ctrl-C、Ctrl-V、Ctrl-Z这三个地球人都知道的,您最常用的三个快捷键是什么?

  • Eclipse/IDEA 以下是一些常见的快捷键:

  1. Ctrl + Shift + T (Eclipse、IntelliJ IDEA等):打开类和接口的快速查找工具,可以快速地查找并打开Java类和接口。

  2. Ctrl + Shift + O (Eclipse、IntelliJ IDEA等):导入缺失的包,可以快速地导入Java类需要的包。

  3. Ctrl + Shift + F (Eclipse、IntelliJ IDEA等):格式化代码,可以快速地将代码格式化成统一的风格。

  4. Ctrl + Shift + C (Eclipse、IntelliJ IDEA等):注释选中的代码,可以快速地注释掉选中的代码。

  5. Ctrl + Shift + R (Eclipse、IntelliJ IDEA等):打开文件的快速查找工具,可以快速地查找并打开任何文件。

  6. Ctrl + Shift + S (Eclipse、IntelliJ IDEA等):保存所有修改过的文件,可以一次性地保存所有修改过的文件。

  • 三、下面列出了一些人或名词,请解释您所知道的:

  • ·银弹 ·Martin Fowler ·好莱坞原则 ·长尾

  • ·摩尔定律 ·墨菲法则 ·ABC ·蝴蝶效应

  • 以下是我所知道的这些人或名词的解释:

  1. 银弹:银弹是指一种简单而完美的解决方案,可以彻底解决复杂问题。这个术语最初是由软件工程师弗雷德·布鲁克斯在他的书《人月神话》中提出的。

  2. Martin Fowler:Martin Fowler是一位软件工程师和作家,他是敏捷方法和重构技术的倡导者之一。他是多本技术书籍的作者,包括《重构》和《企业应用架构模式》等。

  3. 好莱坞原则:好莱坞原则是一种软件设计模式,它强调了高层次组件对低层次组件的控制。这个原则最初是由软件工程师沃德·坎宁安提出的。

  4. 长尾:长尾是指在一个商品市场中,销售量较小的那部分商品所占的比例。这个术语最初是由克里斯·安德森在他的书《长尾理论》中提出的,它对互联网上的商业模式和销售策略产生了深远的影响。

  5. 摩尔定律:摩尔定律是指集成电路上可容纳的晶体管数量每隔18-24个月就会翻倍,同时价格会下降一半。这个定律最初是由英特尔公司创始人之一戈登·摩尔提出的。

  6. 墨菲法则:墨菲法则是指如果有什么事情可能出错,那么它就有可能出错。这个法则最初是由美国空军工程师爱德华·墨菲提出的。

  7. ABC:ABC是一种基于成本和效益分析的管理方法,它将产品或服务分为三个类别:A类、B类和C类。A类产品或服务是最重要的,C类产品或服务是最不重要的。

  8. 蝴蝶效应:蝴蝶效应是指在一个动态系统中,一个小小的变化可能会引起一个巨大的连锁反应。这个术语最初是由美国气象学家爱德华·洛伦兹提出的。

问答题

  • 四、Java程序的编译和运行过程是如何进行的?Tomcat是如何运行的?

  • Java程序的编译和运行过程大致如下:

  1. 编写Java源代码:程序员使用文本编辑器或IDE编写Java源代码。

  2. 编译Java源代码:使用Java编译器将Java源代码编译成Java字节码文件,即.class文件。

  3. 运行Java程序:使用Java虚拟机(JVM)来运行Java程序。JVM会将字节码文件加载到内存中,并执行其中的指令。

  • Tomcat是一个Web服务器,它可以运行Java Web应用程序。Tomcat的运行过程大致如下:
  1. 启动Tomcat服务器:在命令行或者使用脚本启动Tomcat服务器。

  2. 部署Web应用程序:将Web应用程序的WAR文件部署到Tomcat服务器上。

  3. 加载Web应用程序:Tomcat服务器会加载Web应用程序,并将其部署到Tomcat的Web容器中。

  4. 处理HTTP请求:Tomcat服务器会监听HTTP请求,并将请求发送给相应的Web应用程序进行处理。

  5. 生成HTTP响应:Web应用程序会根据请求生成HTTP响应,并将响应发送给Tomcat服务器。

  6. 发送HTTP响应:Tomcat服务器会将HTTP响应发送给客户端浏览器,完成整个请求-响应过程。

以上是Java程序的编译和运行过程以及Tomcat的运行过程的大致流程,希望对您有所帮助!

  • 五、从浏览器输入某网址(如htp:/www.trs.com.cn/),到该网页显示完成,都发生了什么,有哪些处理过程?请试着表达阐述,可图文表述,越清晰越好。

  • 当我们在浏览器中输入某个网址并按下回车键时,浏览器会执行以下处理过程:

  1. DNS解析:浏览器首先会将该网址中的域名部分(如www.trs.com.cnopen in new window)发送给DNS服务器进行解析,获取该域名对应的IP地址。

  2. 建立TCP连接:浏览器与Web服务器之间需要建立TCP连接,以便进行数据传输。浏览器会向Web服务器发送一个TCP连接请求,并等待服务器的响应。

  3. 发送HTTP请求:建立TCP连接后,浏览器会向Web服务器发送一个HTTP请求,该请求中包含了请求的方法、URL、协议版本以及请求头等信息。

  4. 服务器处理请求:Web服务器接收到浏览器发送的HTTP请求后,会根据请求中的信息进行相应的处理,例如读取请求头中的Cookie信息、查询数据库等。

  5. 服务器发送HTTP响应:Web服务器会将处理后的结果封装成HTTP响应,并发送给浏览器。HTTP响应中包含了状态码、响应头以及响应体等信息。

  6. 浏览器解析响应:浏览器接收到HTTP响应后,会对响应进行解析,并将响应中的HTML、CSS、JavaScript等文件进行解析和渲染,最终将网页呈现给用户。

  7. 断开TCP连接:当浏览器完成对网页的渲染后,会向Web服务器发送一个TCP连接关闭请求,Web服务器接收到该请求后会关闭TCP连接。

  • 六、请说明web开发中forward()和redirect()的流程,以及二者的区别、优缺点:

在Web开发中,forward()和redirect()都是用于页面跳转的方法,它们的流程和区别如下:

  1. forward()方法的流程:
  • 客户端发送请求到Web服务器。
  • Web服务器接收到请求后,将请求交给Servlet容器进行处理。
  • Servlet容器中的Servlet使用forward()方法将请求转发到另一个Servlet或JSP页面。
  • 另一个Servlet或JSP页面对请求进行处理,并生成响应。
  • Servlet容器将响应返回给Web服务器。
  • Web服务器将响应返回给客户端。
  1. redirect()方法的流程:
  • 客户端发送请求到Web服务器。
  • Web服务器接收到请求后,将请求交给Servlet容器进行处理。
  • Servlet容器中的Servlet使用redirect()方法将请求重定向到另一个Servlet或JSP页面。
  • 浏览器接收到重定向响应后,会重新发送一个新的请求到另一个Servlet或JSP页面。
  • 另一个Servlet或JSP页面对请求进行处理,并生成响应。
  • Servlet容器将响应返回给Web服务器。
  • Web服务器将响应返回给客户端。
  1. 二者的区别:
  • forward()方法是在服务器端完成跳转,而redirect()方法是在客户端完成跳转。
  • forward()方法只有一次请求,而redirect()方法需要两次请求。
  • forward()方法不能改变URL地址,而redirect()方法会改变URL地址。
  1. 优缺点:
  • forward()方法的优点是可以共享request和response对象,可以在多个Servlet或JSP页面之间传递数据。缺点是只能在同一个Web应用程序中使用。
  • redirect()方法的优点是可以在不同的Web应用程序之间跳转,可以解决跨域问题。缺点是需要两次请求,会影响性能。

总之,forward()和redirect()都是用于页面跳转的方法, 具有不同的特点和适用场景,开发人员可以根据具体需求选择使用。

  • 七、数据库的索引是什么?有什么作用?有什么优缺点?

数据库的索引是一种数据结构,用于加速数据库表中数据的查找和检索。 索引通常是一个单独的数据结构,它包含了指向表中数据行的指针, 使得数据库可以更快地查找和访问数据。

索引的作用是提高数据库的查询效率,可以加速数据的查询和检索, 特别是在大型数据库中。通过创建索引,数据库可以快速定位到需要查询的数据行, 避免了全表扫描的效率低下问题。

  • 索引的优点是:
  • 提高查询效率:通过使用索引,可以快速定位到需要查询的数据行,避免了全表扫描的效率低下问题。
  • 减少数据冗余:索引可以减少数据冗余,提高数据存储和检索的效率。
  • 保证数据的唯一性:通过在列上创建唯一索引,可以保证该列上的数据唯一。
  • 索引的缺点是:
  • 占用存储空间:索引需要占用存储空间,特别是在大型数据库中,可能会占用大量存储空间。
  • 降低写入性能:当对表进行写操作时,需要更新索引,会降低写入性能。
  • 增加数据库维护成本:当表的结构发生变化时,需要重新创建索引,会增加数据库维护成本。

因此,在使用索引时需要权衡其优缺点,并根据实际情况进行选择。 一般来说,对于经常进行查询而很少进行写操作的表,可以适当增加索引以提高查询效率。 而对于经常进行写操作的表,则需要谨慎使用索引。

  • 八、您熟悉哪些数据库?根据您的实际使用,您认为它们各自有什么优缺点?另外,请您给出它们各自的分页查询的SQL语句;

我熟悉的数据库包括MySQL、Oracle、SQL Server、PostgreSQL等。

  • MySQL是一种开源的关系型数据库管理系统,具有以下优缺点:

  • 优点:

  • 性能较好:MySQL可以处理大量数据,支持高并发访问。
  • 易于使用:MySQL操作简单,学习成本较低。
  • 社区支持:MySQL有庞大的社区支持,提供了大量的文档和资源。
  • 缺点:
  • 安全性问题:MySQL的安全性问题较多,需要进行额外的安全设置。
  • 功能相对较少:相比于其他商业数据库,MySQL的功能相对较少。
  • MySQL的分页查询SQL语句如下:
SELECT * FROM table_name LIMIT offset, count;
  • 其中,offset表示查询的起始位置,count表示查询的数量。

  • Oracle是一种商业的关系型数据库管理系统,具有以下优缺点:

  • 优点:

  • 功能强大:Oracle具有丰富的功能和高度的可扩展性。
  • 数据安全性高:Oracle提供了多种安全性功能,可以保护数据的安全性。
  • 性能强大:Oracle可以处理大量数据,支持高并发访问。
  • 缺点:
  • 学习成本较高:Oracle操作相对复杂,学习成本较高。
  • 价格昂贵:Oracle是商业数据库,价格相对较高。
  • Oracle的分页查询SQL语句如下:
SELECT * FROM (SELECT rownum rn, t.* FROM table_name t WHERE rownum <= end) WHERE rn >= start;
  • 其中,start表示查询的起始位置,end表示查询的结束位置。

  • SQL Server是一种商业的关系型数据库管理系统,具有以下优缺点:

  • 优点:

  • 性能较好:SQL Server可以处理大量数据,支持高并发访问。
  • 易于使用:SQL Server操作简单,学习成本较低。
  • 功能丰富:SQL Server具有丰富的功能和高度的可扩展性。
  • 缺点:
  • 价格昂贵:SQL Server是商业数据库,价格相对较高。
  • 存储空间限制:SQL Server Express版本有存储空间限制。
  • SQL Server的分页查询SQL语句如下:
SELECT * FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS rownumber, * FROM table_name
) AS t WHERE t.rownumber BETWEEN start AND end;
  • 其中,start表示查询的起始位置,end表示查询的结束位置。

  • PostgreSQL是一种开源的关系型数据库管理系统,具有以下优缺点:

  • 优点:

  • 性能较好:PostgreSQL可以处理大量数据,支持高并发访问。
  • 功能丰富:PostgreSQL具有丰富的功能和高度的可扩展性。
  • 安全性高:PostgreSQL提供了多种安全性功能,可以保护数据的安全性。
  • 缺点:
  • 学习成本较高:PostgreSQL操作相对复杂,学习成本较高。
  • 社区支持相对较少:相比于MySQL等数据库,PostgreSQL的社区支持相对较少。
  • PostgreSQL的分页查询SQL语句如下:
SELECT * FROM table_name LIMIT count OFFSET offset;

其中,offset表示查询的起始位置,count表示查询的数量。

  • 九、列举两到三个您在实际工作中印象最深的坑,说明您是怎么解决的。

综合题

  • 十、假设您接手了一个线上系统,运行环境是Linux+Nginx+Tomcat+MySQL,客户反馈该系统慢,经常要等待,您会怎么去解决该问题?请简要说明您的排查思路、用到的工具、先后次序,以及其他您认为有必要说明的内容。

如果我接手了一个线上系统,客户反馈该系统慢, 需要进行以下步骤来解决该问题:

  1. 确认问题:首先需要确认用户反馈的问题是否属实,可以通过查看系统日志和监控数据来确认。

  2. 排查问题:如果确认存在问题,需要进一步排查问题。可以通过以下步骤来排查问题:

  • 查看系统负载情况:使用top命令查看系统的负载情况,确定是否存在CPU或内存占用过高的情况。
  • 查看网络状况:使用ping命令检查网络连接是否正常,确定是否存在网络延迟或丢包的情况。
  • 查看服务状态:使用systemctl命令检查Nginx、Tomcat和MySQL等服务的状态,确定是否存在服务异常或崩溃的情况。
  • 查看数据库性能:使用MySQL自带的性能分析工具分析数据库的性能瓶颈,确定是否存在慢查询或索引不当等问题。
  1. 优化系统:根据排查结果,可以采取以下措施来优化系统:
  • 优化代码:对系统中的代码进行优化,减少不必要的计算和IO操作。
  • 优化数据库:对数据库进行优化,包括优化查询语句、创建索引、分表等。
  • 加大硬件配置:如果系统负载过高,可以考虑增加硬件配置,如增加CPU核数、内存容量等。
  • 调整系统参数:根据实际情况调整系统参数,如调整TCP连接数、文件句柄数等。
  1. 监控系统:为了避免类似问题再次发生,需要对系统进行监控,并及时发现和解决问题。可以使用以下工具来监控系统:
  • Zabbix:Zabbix是一种开源的网络监控工具,可以对服务器、网络设备和应用程序进行监控。
  • Nagios:Nagios是一种开源的网络监控工具,可以对服务器、网络设备和应用程序进行监控。
  • Prometheus:Prometheus是一种开源的监控系统,可以对服务器和应用程序进行监控,并提供告警和报警功能。

总之,在排查和解决系统性能问题时, 需要全面分析系统的各个方面, 采取综合措施来优化系统, 并及时监控系统状态, 以便及时发现和解决问题。

  • 十一、将上题换个条件:该系统经常宕机,您会怎么去解决?

如果该系统经常宕机,需要进行以下步骤来解决该问题:

  1. 确认问题:首先需要确认系统是否经常宕机,可以通过查看系统日志和监控数据来确认。

  2. 排查问题:如果确认存在问题,需要进一步排查问题。可以通过以下步骤来排查问题:

  • 查看系统负载情况:使用top命令查看系统的负载情况,确定是否存在CPU或内存占用过高的情况。
  • 查看服务状态:使用systemctl命令检查Nginx、Tomcat和MySQL等服务的状态,确定是否存在服务异常或崩溃的情况。
  • 查看系统日志:查看系统日志,确定是否存在异常或错误信息。
  1. 优化系统:根据排查结果,可以采取以下措施来优化系统:
  • 优化代码:对系统中的代码进行优化,减少不必要的计算和IO操作。
  • 优化数据库:对数据库进行优化,包括优化查询语句、创建索引、分表等。
  • 加大硬件配置:如果系统负载过高,可以考虑增加硬件配置,如增加CPU核数、内存容量等。
  • 调整系统参数:根据实际情况调整系统参数,如调整TCP连接数、文件句柄数等。
  1. 维护系统:为了避免类似问题再次发生,需要定期维护系统,并及时发现和解决问题。可采取以下措施:
  • 定期备份数据:定期备份数据,以防止数据丢失。
  • 更新系统和软件:定期更新系统和软件,以修复已知的漏洞和问题。
  • 监控系统状态:定期监控系统状态,并及时发现和解决问题。
  1. 增强容错能力:为了提高系统的容错能力,可以采取以下措施:
  • 实现负载均衡:通过实现负载均衡,将请求分散到多个服务器上,提高系统的容错能力。
  • 实现高可用性:通过实现高可用性,将多个服务器组成集群,当其中一个服务器出现故障时,其他服务器可以接管其工作,提高系统的容错能力。
  1. 安全加固:为了保证系统的安全性,可以采取以下措施:
  • 加强访问控制:通过加强访问控制,限制非法访问和操作。
  • 实现数据加密:通过实现数据加密,保护数据的安全性。
  • 定期安全审计:定期进行安全审计,发现潜在的安全风险并及时解决。

编程题

  • 十二、写出友好显示当前时间的代码。您能写出几种方法?各自优缺点是什么?

  • 以下是几种友好显示当前时间的Java代码:

  1. 使用java.util.Date类和SimpleDateFormat类:
import java.util.Date;
import java.text.SimpleDateFormat;

public class ShowTime {
    public static void main(String[] args) {
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为:" + sdf.format(now));
    }
}
  • 优点:Java自带Date类和SimpleDateFormat类,使用简单。

  • 缺点:需要写Java代码,需要安装Java环境。

  1. 使用java.time.LocalDateTime类和DateTimeFormatter类:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class ShowTime {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为:" + dtf.format(now));
    }
}
  • 优点:Java8引入了新的日期时间API,使用更加简单。

  • 缺点:需要写Java代码,需要安装Java环境。

  1. 使用JSP页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示当前时间</title>
</head>
<body>
	当前时间为:<%= new java.util.Date() %>
</body>
</html>
  • 优点:可以直接在浏览器中显示当前时间,页面友好。

  • 缺点:需要在服务器端运行,并且需要使用JSP技术。

  1. 使用Spring Boot:

在Spring Boot项目中,可以使用Thymeleaf模板引擎来显示当前时间,代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>显示当前时间</title>
</head>
<body>
	当前时间为:<span th:text="${#dates.format(new java.util.Date(), 'yyyy-MM-dd HH:mm:ss')}"></span>
</body>
</html>

优点:可以直接在浏览器中显示当前时间,使用Spring Boot可以快速搭建Web应用。

缺点:需要在服务器端运行,并且需要使用Spring Boot技术。

  • 十三、请您实现一个函数isIP(String str),判断传入的字符串是否是个IP地址,并给出单元测试代码(JUnit或TestNG均可,但测试用例要周全)。

  • 以下是Java实现isIP函数的代码以及JUnit测试用例:

public class IPUtil {
    /**
     * 判断字符串是否为合法的IP地址
     * @param str 待判断的字符串
     * @return true表示为合法的IP地址,false表示不是
     */
    public static boolean isIP(String str) {
        if (str == null || str.length() == 0) {
            return false;
        }
        // 判断字符串是否符合IP地址的规范,即n1.n2.n3.n4
        String[] arr = str.split("\\.");
        if (arr.length != 4) {
            return false;
        }
        // 判断每一段是否都是数字,并且在0-255之间
        for (String s : arr) {
            try {
                int num = Integer.parseInt(s);
                if (num < 0 || num > 255) {
                    return false;
                }
            } catch (NumberFormatException e) {
                return false;
            }
        }
        return true;
    }
}
  • 以下是JUnit测试用例:
import org.junit.Test;
import static org.junit.Assert.*;

public class IPUtilTest {
    @Test
    public void testIsIP() {
        // 合法的IP地址
        assertTrue(IPUtil.isIP("192.168.1.1"));
        assertTrue(IPUtil.isIP("10.0.0.1"));
        assertTrue(IPUtil.isIP("172.16.0.1"));
        assertTrue(IPUtil.isIP("255.255.255.255"));
        
        // 不合法的IP地址
        assertFalse(IPUtil.isIP(""));
        assertFalse(IPUtil.isIP("192.168.1"));
        assertFalse(IPUtil.isIP("192.168.1.256"));
        assertFalse(IPUtil.isIP("192.168.1.-1"));
        assertFalse(IPUtil.isIP("192.168.1.a"));
    }
}

测试用例覆盖了合法和不合法的IP地址,以确保函数的正确性。

  • 十四、试解答下面的英文题目,并给出单元测试代码:
**Problen statement for PersistentNumber** 

Given a number x,we can define p(x)as the product of the digits of x.We can then form a sequence x.p(x).p(p(x)).. 
The persistence of x is then defined as the index (O-based) of the first single digit number in the sequence.
For example, using 99, we get the sequence 99,9*9=81,8*1=8. Thus, the persistence of 99 is 2. 
You will be given n, and you must return its persistence.

**Definition**

Class:PersistentNumber

Method:getPersistence

Parameters:int

Returns:int

Method signature:int getPersistence(int n)

(be sure your method is public)

**Constraints**

-n will be between 0 and 2,000,000,000, inclusive.

**Examples**

0\) 99

Returns:2

The example from the problem statement.

1\) 268

Returns:4

The sequence here is 268,96,54,20,0.

2\) 6

Returns:0

6 is already a single-digit number.

3\) 68889789

Returns:3

4\) 86898

Returns:7
  • 题目描述:

给定一个整数x,定义p(x)为x的各位数字的乘积。 然后可以构造序列x.p(x).p(p(x))..,持久性定义为序列中第一个单个数字的索引(从0开始)。 例如,使用99,我们得到序列99,99=81,81=8。因此,99的持久性为2。给定n,返回其持久性。

  • 函数定义:
public class PersistentNumber {
    public static int getPersistence(int n) {
        // TODO: 实现函数
    }
}
  • 函数参数:
  • int n:待计算持久性的整数,保证在[0, 2000000000]范围内。
  • 函数返回:
  • int:n的持久性。
  • 测试用例:
import org.junit.Test;
import static org.junit.Assert.*;

public class PersistentNumberTest {
    @Test
    public void testGetPersistence() {
        assertEquals(2, PersistentNumber.getPersistence(99));
        assertEquals(4, PersistentNumber.getPersistence(268));
        assertEquals(0, PersistentNumber.getPersistence(6));
        assertEquals(3, PersistentNumber.getPersistence(68889789));
        assertEquals(7, PersistentNumber.getPersistence(86898));
    }
}

测试用例覆盖了题目中给出的所有例子,以确保函数的正确性。


分割线


相关信息

以上就是我关于 Java习题(二) 知识点整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4