【强训】Day08

news2024/11/18 15:40:21

努力经营当下,直至未来明朗!

文章目录

  • 一、选择
  • 二、编程(比较简单)
    • 1. 两种排序方法
    • 2. 求最小公倍数(主要注意辗转相除法就行)
  • 答案
    • 1. 选择
    • 2. 编程


普通小孩也要热爱生活!

一、选择

  1. 以下选项中,对Java关于内存回收的说法正确的是()

A 程序员必须创建一个线程来释放内存
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象

  1. Test.main() 函数执行后的输出是()
class Test {
    public static void main(String[] args) {
        System.out.println(new B().getValue());
    }
    static class A {
        protected int value;
        public A (int v) {
            setValue(v);
        }
        public void setValue(int value) {
            this.value= value;
        }
        public int getValue() {
            try {
                value ++;
                return value;
            } finally {
                this.setValue(value);
                System.out.println(value);
            }
        }
    }
    static class B extends A {
        public B () {
            super(5);
            setValue(getValue()- 3);
        }
        public void setValue(int value) {
            super.setValue(2 * value);
        }
    }
}
  1. JUnit主要用来完成什么()

A 发送HTTP请求
B 建立TCP连接
C 集成测试
D 单元测试


二、编程(比较简单)

1. 两种排序方法

两种排序方法

考拉有n个字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序,2.根据字符串的长度排序。
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。
输出:字典序"lexicographically",字符串长度出"lengths",两种"both",否则"none"。


2. 求最小公倍数(主要注意辗转相除法就行)

最小公倍数

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数


答案

1. 选择

  1. ① 垃圾回收程序是一般是在堆上分配空间不够的时候会自己进行一次GC程序员不需要也不能主动释放内存
    ② Java的内存释放由垃圾回收程序来进行释放
    ③ 在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放
    ④ 程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间

故:选B

  1. ★ 本题的关键是对于java多态的理解:调用的是实例化子类中重写的方法,只有明确调用了super.xxx关键词或者是子类中没有该方法时,才会去调用父类相同的同名方法。
    [注意:即使是子类调用父类的构造方法,并且有同名函数的时候,也是调用子类的函数]

① new B 是实例化B对象,针对的是B类,所以此时直接看B类,发现B类是继承于A类的。B的构造方法中super(5)显式调用了A的构造方法;此时去看A的构造方法,发现A的构造方法是setValue方法,并且该方法在子类B中也是存在的。且此刻正在初始化的对象是B的一个实例,因此这里调用的实际是B类的setValue方法,于是调用B类中的setValue方法 == > 而B类中setValue方法显示调用父类的setValue方法,将B实例的value值设置为2 x 5 = 10
② 然后B类中接着往下走,setValue(getValue() - 3);此时针对的都是B实例化的对象,如果B中有就直接调用B中的方法即可,没有的话调用父类的方法:B中有setValue可以直接调用,但是没有getValue则去调用A类中的该方法。
③ 调用A类中的getValue:首先value++,即value=10+1,此时由于return而进行暂存;接着往下走到了finally,此时调用this.setValue(value)即调用的是 B类中的方法(一定要注意this是指当前对象,而当前对象是B实例化的对象,所以是调用B类中的setValue方法!!),即:super.setValue(2value),即super.setValue(211),然后又调用父类的setValue,则此时value=22,并打印出22
④ 然后再调用setValue,直接在B中调用就行,而(getValue-3)中的getValue其实就是finally结束之后进行返回的value值,也就是在try中就已经暂存好的值,即11,所以此时(getValue-3)=11-3=8;然后super.setValue(2*8),即 此时value=16
⑤ 到这里new B完结,然后new B.getValue(); 调用的getValue方法只能是父类A中的,因为子类B中没有该方法,此时value=17并进行暂存,然后执行finally:this.setValue()调用的还是B中的方法,即setValue(2*17),此时打印34
⑥ 执行完finally之后返回的value是之前暂存的17,并且打印。
⑦ 所以:最后执行的结果是:22 34 17

故:选D

  1. ① JUnit 是一个 Java 语言的单元测试框架。它由 Kent Beck 和 Erich Gamma 建立,逐渐成为源于 Kent Beck 的 sUnit 的 xUnit 家族中最为成功的一个。 JUnit 有它自己的 JUnit 扩展生态圈。多数 Java 的开发环境都已经集成了 JUnit 作为 单元测试的工具
    ② JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个 回归测试 框架( regression testing framework )。 Junit 测试是程序员测试,即所谓 白盒测试 ,因为程序员知道被测试的软件如何( How )完成功能和完成什么样( What )的功能。 JUnit 是一套框架,继承 TestCase 类,就可以用 JUnit 进行自动测试了。

故:选D

  1. 在Java中,数组存储在堆中连续内存空间
  2. return是终止函数并返回。

2. 编程

  1. 两种排序方法

1)思路:
主要注意常用的方法。

将接收的字符串都放到String数组中,利用string的compareTo方法来按ascii比较字符串字典序排序,利用string的length方法来比较字符串的长度排序。

2)代码:

// 两种排序方式:字典序以及长度顺序
// 直接使用compareTo比较字典序,使用length比较长度就行

import java.util.Scanner;

public class Main {
    // 字典顺序
    private static boolean isDirectory(String[] strs) {
        // 前后两个字符串比较就行
        for (int i = 0; i < strs.length-1; i++) {
            if(strs[i].compareTo(strs[i+1]) > 0) {
                // 说明不符合要求
                return false;
            }
        }
        // 来到这儿,循环结束,符合要求
        return true;
    }
    // 长度顺序
    private static boolean isLength(String[] strs) {
        // 前后两个字符串比较就行
        for (int i = 0; i < strs.length-1; i++) {
            if(strs[i].length() > strs[i+1].length()) {
                // 说明不符合要求
                return false;
            }
        }
        // 来到这儿,循环结束,符合要求
        return true;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] strs = new String[n];
        for (int i = 0; i < n; i++) {
            strs[i] = in.next();
        }
        // 然后开始进行判断
        if(isDirectory(strs) && isLength(strs)) {
            System.out.println("both");
        } else if(isLength(strs)) {
            System.out.println("lengths");
        } else if(isDirectory(strs)) {
            System.out.println("lexicographically");
        } else {
            System.out.println("none");
        }
    }
}


  1. 最小公倍数

1)思路:
① 最小公倍数 = 两数之积 / 最大公约数
② 注意最大公约数求法:辗转相除法
辗转相除法:对于输入的两个数进行连续求余,直到余数为0,求余的分母即为结果。

2)代码:

import java.util.Scanner;

public class Main {
    // 最大公约数
    private static int maxDiv(int m, int n) {
        int c = 1;
        while(n!=0) { //这里c 或n 都ok!
            c = m%n;
            m = n;
            n = c;
        }
        return m;
    }

    // 求最小公倍数
    private static int minMul(int m, int n) {
        int max = maxDiv(m,n);
        // 两个数之乘积 = min*max
        return (m*n/max);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int m = in.nextInt();
            int n = in.nextInt();
            int mul = minMul(m,n);
            System.out.println(mul);
        }
    }
}

yyy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis_plus的一些介绍

这里写目录标题建立数据库utf8mb4是什麽&#xff1f;为什么要用这个呢&#xff1f;utf8mb4_unicode_ci、utf8mb4_general_ci的区别总结数据库连接配置文件创建实体类模型sql日志的输出创建springboot的测试类批量查询建立数据库 注意一下&#xff0c;这个表应该这么去建 utf8…

操作系统权限提升(九)之系统错误配置-泄露敏感信息提权

系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 操作系统权限提升(三)之Windows系统内核溢出漏洞提权 操作系统权限提升(四)之系统错误配置-Tusted Service Paths提权 操作系统权限提升(五)之系统错误配置-PATH环境变量提权 操作…

一刷代码随想录——栈和队列

1 理论基础栈的底层实现可以是vector&#xff0c;deque&#xff0c;list 都是可以的&#xff0c; 主要就是数组和链表的底层实现。我们常用的SGI STL&#xff0c;如果没有指定底层实现的话&#xff0c;默认是以deque为缺省情况下栈的底层结构。栈不提供走访功能&#xff0c;也不…

SAP ABAP——SMARTFORMS(一)【SF概要及文本编辑器】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计专业大二本科在读&#xff0c;阿里云社区专家博主&#xff0c;华为云社区云享专家&#xff0c;CSDN SAP应用技术领域新兴创作者。   在学习工…

利用 Addax 异构迁移数据到 Databend

作者&#xff1a;邰翀 (https://github.com/TCeason) Databend 研发工程师 现在互联网应用越来越复杂&#xff0c;每个公司都会有多种多样的数据库。通常是用最好的硬件来跑 OLTP&#xff0c;甚至还在 OLTP 中进行分库分表来足业务&#xff0c;这样对于一些分析&#xff0c;聚…

微信小程序封装wx.request请求

对微信小程序的印象我还停留在2年前刚入行的时候&#xff0c;那是还不懂什么是Promise&#xff0c;只知道小程序发请求有时候要在success回调中嵌套好多层(后来我才知道这叫回调地狱)。最近刚好有个小程序的项目交给我发开发&#xff0c;加上如今的我自认为对Promise掌握的还可…

Python接口项目实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求,JSON判断登录是否成功

Python接口项目实战篇&#xff08;1&#xff09;读取xlsx中账户密码&#xff0c;unittest框架实现通过requests接口post登录网站请求&#xff0c;JSON判断登录是否成功实现功能描述1.首先获取到接口谷歌浏览器中获取接口信息fiddler里面抓取接口信息2.创建一个xlsx文档3.导入我…

List-反向迭代器

List List接口使用 List&#xff1a;双向带头循环的链表&#xff0c;不支持随机访问&#xff0c;排序就是一个大问题 当大量的插入数据的时候就体现出了优势。 在任意位置以O(1)的时间复杂度插入数据. 只有一种遍历方式就是迭代器&#xff0c;因为他的物理结构是不连续的无…

05_xml

目录0、文档声明1.XML 简介2、xml 的作用&#xff1f;3、xml 语法3.1、文档声明3.2、xml 注释3.3、元素&#xff08;标签&#xff09;3.4、xml 属性3.5、语法规则&#xff1a;3.5.1&#xff09;所有 XML 元素都须有关闭标签&#xff08;也就是闭合&#xff09;3.5.2&#xff09…

uniapp:常用跨端业务组件(ts版本)

插件内组件包含以下功能&#xff1a; 自定义状态栏组件(ZoNavBar)上拉加载状态组件(ZoLoading)弹窗组件(ZoPopup)搜索组件(ZoSearchBar)空数据组件(ZoEmpty)tab标签组件(ZoTabs)tab下拉筛选组件(ZoSelectTabs)底部导航组件(ZoTabBar)cell导航组件(ZoCell) 10.标题内容组件(ZoT…

iptables端口复用后门、sslh

iptables端口复用 创建端口复用链 创建端口复用规则将流量转到22端口 开启开关&#xff0c;接收到一个长为1139的icmp包&#xff0c;则将来源ip添加到LETMEIN表中 如果syn包来源ip处于letmein列表中&#xff0c;则跳转到LETMEIN链处理&#xff0c;有效时间为3600秒 开启复…

c++11 标准模板(STL)(std::multiset)(五)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

PyQt5编程基础 2.2 信号与槽函数

信号与槽函数信号&#xff08;Signal&#xff09;信号是在特定情况下被发射的一种通告。举例&#xff1a;PushButton的信号是鼠标单击时发射的clicked信号槽&#xff08;Slot&#xff09;对信号相应的函数。举例&#xff1a;Qwidget有一个槽函数&#xff0c;功能是关闭窗口信号…

Uncaught SyntaxError: Unexpected token ... 【bug记录】vue项目发布

项目场景&#xff1a; 项目场景&#xff1a;部署vue项目&#xff0c;组件或页面html使用ES6语法导致&#xff0c;界面无法显示。 客户那边采用了比较低版本的浏览器&#xff0c;自己电脑上却没有出现&#xff0c;也不方便调试测试。 问题描述 打开来控制台&#xff0c;看到异…

单片机开发---ESP32S3移植NES模拟器(一)

书接上文 《单片机开发—ESP32-S3模块上手》 《单片机开发—ESP32S3移植lvgl触摸屏》 参考内容 依旧是参考韦东山老师的作品来移植的 《ESP32|爷青回&#xff01;ESP32(单片机) NES模拟器_NES游戏机掌机教程(开源详细讲解实现代码&#xff01;)》 韦老师已经将代码开源&am…

深入解读神策分析云两大闭环,助力企业全面数字化转型应用

随着市场的发展、客户的深度使用以及全新的产品认知&#xff0c;神策希望能够帮助企业客户构建拥有正向反馈、持续提升、优化经营效率的数据应用闭环。本次&#xff0c;神策在用户行为分析的基础上&#xff0c;对分析云的整体产品架构进行全面升级&#xff0c;不仅包括公私域流…

json字符带有反斜杠\处理

目录说明说明 json字符带有反斜杠\&#xff0c;需要转义处理 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-text</artifactId><version>1.6</version></dependency>String json "{\"n…

解决安装2.4版本的percona-xtrabackup和5.6版本的mysql冲突的问题

问题描述&#xff1a;在阿里云上有一个5.6版本的mysql&#xff0c;想把备份的数据恢复到本地。按照阿里云的文档描述&#xff0c;本机mysql的版本也得是5.6&#xff0c;percona-xtrabackup版本得是2.4。于是开始动手操作&#xff0c;无非是在本机安装5.6版本的mysql和2.4版本的…

【C++】C++11语法 ~ 可变参数模板

&#x1f308;欢迎来到C专栏~可变参数模板 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&…

2月3日第壹简报,星期五,农历正月十三

2月3日第壹简报&#xff0c;星期五&#xff0c;农历正月十三坚持阅读&#xff0c;静待花开1. 香港&#xff1a;将向世界各地旅客派发50万张免费机票&#xff0c;3月1日起派发&#xff0c;为期6个月&#xff0c;率先向东南亚地区送出。2. 我国新增18处国际重要湿地&#xff0c;湿…