GVKun编程网logo

【JAVA】【华为校园招聘笔试-软件】2020-09-09(华为笔试题java)

1

对于【JAVA】【华为校园招聘笔试-软件】2020-09-09感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍华为笔试题java,并为您提供关于2020-10-01【第六期】2020-10-16

对于【JAVA】【华为校园招聘笔试-软件】2020-09-09感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍华为笔试题java,并为您提供关于2020-10-01【第六期】2020-10-16【第七期】、Apache Pulsar 社区一周揭秘:2020-08-15 ~ 2020-08-21、CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析、java.time.format.DateTimeParseException:无法解析文本'03 / 03 / 2020,03 / 03/2020',未分析的文本位于索引10的有用信息。

本文目录一览:

【JAVA】【华为校园招聘笔试-软件】2020-09-09(华为笔试题java)

【JAVA】【华为校园招聘笔试-软件】2020-09-09(华为笔试题java)

前言

华为三道题,100+200+300,100及格,大家做对第一题就好了,祝大家全都有心仪的offer,不要慌,不要焦虑

一、完美排列——玩具(全A)(注意:题目中说:如果不是完美排列,则输出0,没注意这种情况的应该A0.6或0.7)

代码:暴力就完事了

package huawei0909;

import java.util.Scanner;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author: 
 * @Email: 
 * @Date: 2020/9/9
 * @Time: 19:04
 * @Version: 1.0
 * @Description: Description
 */
public class First {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int K = sc.nextInt();
        int[] perArr = new int[K];
        int[] perArr1 = new int[K];
        for (int i = 0; i < K; i++)
            perArr[i] = sc.nextInt();
        for (int i = 0; i < K; i++)
            perArr1[i] = sc.nextInt();
        int n = sc.nextInt();
        int[] arr = new int[n];
        int[] arr1 = new int[n];
        for (int i = 0; i < n; i++)
            arr[i] = sc.nextInt();
        for (int i = 0; i < n; i++)
            arr1[i] = sc.nextInt();
        sc.close();
        /*if (n<K){ //必须判断,不然A0.6或0.7,因为题目中说:如果不是完美排列,则输出0,详情看下面的System.out.println(i + 1);
            System.out.println(0);
            return;
        }*/
        for (int i = 0; i < n; i++) {
            if (arr[i] == perArr[0] && arr1[i] == perArr1[0] && i + K - 1 < n && arr[i + K - 1] == perArr[K - 1] && arr1[i + K - 1] == perArr1[K - 1]) {
                boolean flag = true;
                int index = i;
                for (int j = 1; j < K - 1; j++) {
                    index++;
                    if (!(arr[index] == perArr[j] && arr1[index] == perArr1[j])) {
                        flag = false;
                        break;
                    }
                }
                if (flag) { //输出可能为0,如果没考虑到,则A0.6或0.7,因为题目中说:如果不是完美排列,则输出0
                    System.out.println(i + 1);
                    return;
                }
            }
        }
        System.out.println(0); //必须有,不然A0.6或0.7,因为题目中说:如果不是完美排列,则输出0,详情看下面的System.out.println(i + 1);
    }
}

二、最长的水沟(全A)

package huawei0909;

import java.util.Scanner;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author: 
 * @Email: 
 * @Date: 2020/9/9
 * @Time: 19:36
 * @Version: 1.0
 * @Description: Description
 */
public class Second {
    public static int[][] matrix;
    public static int[][] dp;
    public static int[][] k = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
    public static int n, m, ans;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();
        matrix = new int[n + 1][m + 1];
        dp = new int[n + 1][m + 1];
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= m; j++)
                matrix[i][j] = sc.nextInt();
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= m; j++)
                ans = Math.max(ans, dfs(i, j));
        System.out.println(ans + 1);
    }

    public static int dfs(int x, int y) {
        if (dp[x][y] != 0)
            return dp[x][y];
        for (int i = 0; i <= 3; i++) {
            int tx = x + k[i][0];
            int ty = y + k[i][1];
            if (!(tx < 1 || ty < 1 || tx > n || ty > m || matrix[tx][ty] >= matrix[x][y]))
                dp[x][y] = Math.max(dp[x][y], 1 + dfs(tx, ty));
        }
        return dp[x][y];
    }
}

三、最大异或路径(A3.33)

2020-10-01【第六期】2020-10-16【第七期】

2020-10-01【第六期】2020-10-16【第七期】

第六、七期

初衷

在上一次文章最后,为了感谢大家一直以来的照顾,自己立了一个小小的flag, 就是每个月的1号、16号统计过去半个月的阅读和分享前三名,送上自己的一点点小心意,希望大家不要嫌弃心意太小了, 这会作为码之初一个长期坚持的事业来做。如果有机会,我也学一学那些大佬,给大家赠几本书

在写上一篇文章的时候,我就已经在手机上建立了提醒事项,所以即便我日后年纪越来越大了,也不要担心我会遗忘。

声明以及自勉

小小心意仅仅是为了感谢大家的陪伴,码之初从不强求阅读和分享,所有的阅读和分享希望都建立在大家真正喜欢的基础上,真正能帮助到他人才有意义。没有意义的分享,只会降低大家对码之初的期待和厚爱,就得不偿失了。码之初对自己的定位很有自知之明,不忙的时候会多读书,丰富自己的内在修为,提高自己的表达能力,争取每一次更新都越来越好。谢谢你们在,谢谢你们爱!

小可爱登场

希望截图里面的小可爱在后台给码之初留言,小小心意,请勿嫌弃!过期有效!让我们看看这期是哪些小可爱获得心意呢?

2020年10月1日

2020年10月16日

为了方便大家知道自己有没有领过心意,或者忘记了没有领,可以通过标签看到历史文章记录,或者通过链接直达:

码之初心意集

我会把当期已经领取的小伙伴留言置顶贴出来,每领取一个更新一次,像这样:

这样你去看的时候就知道自己有没有领了,不管到什么时候,只要你看到了,只要你还没领,都可以在后台联系我,永不过期。

在后台回复“心意”,就可以知道怎样领取码之初的小心意了,希望大家都能联系我领取小小心意。


本文分享自微信公众号 - 码之初(ma_zhichu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Apache Pulsar 社区一周揭秘:2020-08-15 ~ 2020-08-21

Apache Pulsar 社区一周揭秘:2020-08-15 ~ 2020-08-21

关于 Apache Pulsar

Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。

导语

各位小伙伴们,Pulsar 社区周报来啦!

本周 Pulsar 社区周报,为大家呈现 Pulsar client、broker 等内容,帮助社区小伙伴们掌握 Pulsar 项目及社区每周进展,也方便大家更好地参与到 Pulsar 社区中来!

感谢本周以下小伙伴为 Apache Pulsar 添砖加瓦(排名不分先后,看看你有没有上榜): @315157973、@zhanghaou、@jiazhai、 @RobertIndie、@BewareMyPower、@rudy2steiner、@gaoran10、@massakam、@zymap、 @wolfstudy、@aahmed-se、 @MarvinCai、@Bklyn

接下来,一起看看 08-15 ~ 08-21 有哪些值得你关注的进展吧!

重要特性

  • 因为 PR 较多,仅列举较大 PR 进展,不包括本周全部动态
  • 下面 PR 均已合入 Pulsar 主分支
  • [Broker] 支持在 Topic 级别设置 MaxUnackedMessagesOnConsumer

PR 地址:https://github.com/apache/pulsar/pull/7818

贡献者:@315157973

  • [Broker] 支持在 Topic 级别设置 persistence 策略。

PR 地址:https://github.com/apache/pulsar/pull/7817

贡献者:@zhanghaou

  • [Broker] 支持在 Topic 级别进行重复数据删除。

PR 地址:https://github.com/apache/pulsar/pull/7821

贡献者:@315157973

  • [Java Client] 支持批量消息签收。

PR 地址:https://github.com/apache/pulsar/pull/7688

贡献者:@315157973

  • [Python CLient] 在 Python 客户端添加 oauth2 封装。

PR 地址:https://github.com/apache/pulsar/pull/7813

贡献者:@jiazhai

  • [Java Client] 支持在生产者和发送者设置 autoPartitionsUpdateInterval

PR 地址:https://github.com/apache/pulsar/pull/7840

贡献者:@RobertIndie

重要 Bug 修复

  • 因修复内容较多,仅列举较重要修复内容,不包括本周全部动态
  • 下面修复均已合入 Pulsar 主分支
  • [Java Client] 避免重复订阅同一主题。
    PR 地址:https://github.com/apache/pulsar/pull/7823

     贡献者:@BewareMyPower

  • [Broker] 当通过 message ID 查询消息时,如果当前 broker 不负责此 topic,重定向至 owner broker。
    PR 地址:https://github.com/apache/pulsar/pull/7786

     贡献者:@rudy2steiner

  • [Java Client] 修复 PersistentAcknowledgmentsGroupingTracker 中的 pendingBatchIndexAcksbitSetbatchSize
    PR 地址:https://github.com/apache/pulsar/pull/7828

    贡献者:@gaoran10

  • [CPP Client] 修复因 seeking 或关闭消费者而导致的竞态条件。
    PR 地址:https://github.com/apache/pulsar/pull/7819

    贡献者:@jiazhai

活动和新闻

  • [TGIP] 每周直播:Pulsar 及其生态系统
  • 点击此处,获取以往视频链接

活动预告

  • 本周日:TGIP-CN 023 - “Aapche Pulsar 在 BIGO 的实践分享” (B站同步观看)

     主讲人:陈航,BIGO 大数据消息平台团队负责人。

     点击此处,报名活动

  • 8月25日: StreamNative 在线研讨会 - "Managing Real-Time Data Teams"

     主讲人: Jesse Anderson,Big Data Institute 大数据专家。

     点击此处,报名活动

  • 9月9日:Israeli Java Community (Java.IL) meetup - "Apache Pulsar: Under the Hood for Java Developers"

     主讲人:Addison Higham,StreamNative 高级软件工程师,拥有丰富的 Apache 项目经验。

     点击此处,报名活动

推荐阅读

  • StreamNative 宣布发布 StreamNative Cloud 产品,推出 Pulsar 云端服务 (PaaS,Apache Pulsar as a Service)

     点击此处阅读文章

作为全球性开源项目,截至 2020 年 8 月 21 日,Apache Pulsar 已拥有超出 300 名贡献者、6.5K+ Star 、1.6K+ Fork 。正是由于分布在全球各地的社区开发者的贡献,才使得 Apache Pulsar 项目不断发展与前进。

让我们期待下一周的 Apache Pulsar 周报!

如果你也想为 Apache Pulsar 项目出一份力、成为我们的 Contributor,参考下面链接,来加入我们吧:

Apache Pulsar 项目参与指南

Apache Pulsar 官方贡献指南

CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析

CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析

CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析

攻击条件

在同一广播域,黑客即可通过cdp协议非法入侵开启CDP协议的思科设备,或者触发dos漏洞

影响范围

Routers:

  • ASR 9000 Series Aggregation Services Routers
  • Carrier Routing System (CRS)
  • Firepower 1000 Series
  • Firepower 2100 Series
  • Firepower 4100 Series
  • Firepower 9300 Security Appliances
  • IOS XRv 9000 Router
  • White box routers running Cisco IOS XR

Switches:

  • Nexus 1000 Virtual Edge
  • Nexus 1000V Switch
  • Nexus 3000 Series Switches
  • Nexus 5500 Series Switches
  • Nexus 5600 Series Switches
  • Nexus 6000 Series Switches
  • Nexus 7000 Series Switches
  • Nexus 9000 Series Fabric Switches
  • MDS 9000 Series Multilayer Switches
  • Network Convergence System (NCS) 1000 Series
  • Network Convergence System (NCS) 5000 Series
  • Network Convergence System (NCS) 540 Routers
  • Network Convergence System (NCS) 5500 Series
  • Network Convergence System (NCS) 560 Routers
  • Network Convergence System (NCS) 6000 Series
  • UCS 6200 Series Fabric Interconnects
  • UCS 6300 Series Fabric Interconnects
  • UCS 6400 Series Fabric Interconnects

IP Phones:

  • IP Conference Phone 7832
  • IP Conference Phone 8832
  • IP Phone 6800 Series
  • IP Phone 7800 Series
  • IP Phone 8800 Series
  • IP Phone 8851 Series
  • Unified IP Conference Phone 8831
  • Wireless IP Phone 8821
  • Wireless IP Phone 8821-EX

IP Cameras:

  • Video Surveillance 8000 Series IP Cameras

临时修复

  1. 关闭CDP思科发现协议

漏洞解析

cve-2020-3120

漏洞点在cdp 协议报文Address中的Number of address。根据下图可以看出,通过该值去申请内存空间,并且该值没有经过任何校验。

我们可以将Number of address修改为下图的值去触发dos漏洞

目前Cisco的修复方式为校验该值正确性,确保申请的内存不会出发dos。如下

cve-2020-3120

该漏洞与上一个漏洞类似,主要影响的设备为IOS-XR

在该处,虽然对number of address的大小进行验证,但是可以绕过。我们可以将该值设置为4*maxint/5 触发漏洞

CVE-2020-3119 NX-OS Stack Overflow in the Power Request TLV

该漏洞出现在cdp协议交换poe帧的时候,没有对部分值检查,造成栈溢出,可以直接获取设备的root权限的shell。如下图

可以通过发送这种poe的帧去触发dos漏洞。不过注意,该漏洞是可以造成rce的

可以通过下图方法绕过aslr

cve-2020-3118 IOS XR Format String vulnerability in multiple TLVs

漏洞出现在下图

可以看出,该处存在类似与prinntf的格式化字符串漏洞

CVE-2020-3111 IP Phones Stack Overflow in PortID TLV

漏洞出现在下面的地方

cdp协议的portid处。memcpy在复制内存时没有对该值校验,导致栈溢出

CVE-2020-3110 IP Cameras Heap Overflow in DeviceID TLV

漏洞出现在下图 上面的代码只是为从传入数据包中解析出的端口ID分配了一个缓冲区,并将其值从传入TLV复制到分配的缓冲区中。 但是,这里有一个简单的错误,意味着可能发生琐碎的堆溢出。 分配dst_buf的大小计算为len +1,以允许在端口ID字符串的末尾添加空终止符。 不幸的是,此变量(alloc_len)定义为uint8,而计算为TLV有效载荷长度(value_len)的大小定义为uint16。TLV中的length字段为16位,并且完全由攻击者控制。 通过发送包含大小大于0xff的PortID TLV(0x01)的CDP数据包,攻击者可以使堆分配的缓冲区溢出,并带有攻击者控制的数据

java.time.format.DateTimeParseException:无法解析文本'03 / 03 / 2020,03 / 03/2020',未分析的文本位于索引10

java.time.format.DateTimeParseException:无法解析文本'03 / 03 / 2020,03 / 03/2020',未分析的文本位于索引10

我有一个包含“否”和“日期”的表格。这将是动态形式。在Spring Boot JPA中进行批处理更新时,出现了“
java.time.format.DateTimeParseException:无法解析文本‘03 / 03 / 2020,03 /
03/2020’,在索引10处找到了未解析的文本”的异常

@RequestMapping(value="/abcpage", produces = { MediaType.APPLICATION_JSON_VALUE })public String savePurchaseEntries(@ModelAttribute ABC abc,HttpSession session){    System.out.println(abc);    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");    LocalDate today = LocalDate.parse(abc.getDate(),dateTimeFormatter);    abc.setLoclaDate(today);    return "redirect:/home";}

在这里,ABC是实体类,我可以以dd / mm / yyyy格式获取日期值,并将其转换为localdate并设置为实体。

ABC[NO=101,102,date=03/03/2020,03/03/2020]

对于一个条目,它工作正常,但是在批量处理时,它将引发异常。

@Entityclass ABC{ @column(name="NO") private String NO;@Transientprivate String date;@Column(name="invdate")private LocalDate loclaDate;//getters & setters//tostring}

答案1

小编典典

我认为您的代码存在问题,如果我正确理解了您的输入,便是您在中传递了逗号(,)分隔的日期字符串LocalDate.parse(abc.getDate(),dateTimeFormatter)

您每次都需要传递一个日期到parse()方法,因为它试图使用日期格式器格式格式化提供的字符串输入,因此当在“
03/03/2020”的输入中遇到逗号(,)时发生错误, 03/03/2020”。

请参考官方文档。

您可以尝试以下操作:

String[] inputDates = abc.getDate().split[","];for (String date : inputDates) { // you can now use LocalDate.parse(abc.getDate(),dateTimeFormatter) here // write your logic here.}

我希望这可以帮助您消除疑虑,如果不让我知道您的确切问题,我会尽力帮助您。

编辑1 用于插入数据

下面是一种插入数据的方法,

创建一个表,该表将存储具有3列的日期-
id(PK),abc_id(ABC表的FK参考),日期(此处存储单个日期)。现在,假设上表的名称是abc_date_map,然后在您的ABC实体中将该实体称为OneToMany。像下面一样

@Entityclass ABC { @Column(name="NO")  private String NO; @Transient private String date; @Column(name="abc_date_map_id") private List<AbcDateMap> abcDateMapEntityList; //getters & setters//tostring}

您的AbcDateMap实体将像

@Entitypublic class AbcDateMap{ @Column(name="abc_id") private Integer abcId; @Column(name="date") private LocalDate localDate; // getters setters}

您的实体插入逻辑将类似于:

public Long insert(ABC abc) { abc.setNo(/*something*/); List<AbcDateMap> l = new ArrayList<>(); AbcDateMap abcDate = new AbcDateMap(); for (String date : abc.getDate().split(",")) {  abcDate.setLocalDate(/*parse date here and store*/);  abcDate.setAbcId(abc.getId()); } abc.setAbcDateMapEntityList(l); repo.save(abc);}

现在,上面的代码不是确切的代码,您将不得不对其进行完善,可能会出现语法/语义错误。另外,您将需要根据需要进行更改。

希望对您有帮助。

祝你好运,学习愉快!

关于【JAVA】【华为校园招聘笔试-软件】2020-09-09华为笔试题java的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于2020-10-01【第六期】2020-10-16【第七期】、Apache Pulsar 社区一周揭秘:2020-08-15 ~ 2020-08-21、CVE-2020-3110、CVE-2020-3111、CVE-2020 -3118、CVE-2020-3119、CVE-2020-3120 cdpwn 解析、java.time.format.DateTimeParseException:无法解析文本'03 / 03 / 2020,03 / 03/2020',未分析的文本位于索引10的相关信息,请在本站寻找。

本文标签:

上一篇Java 如何获取当前类路径(java 如何获取当前类路径的内容)

下一篇Java 面试题全集(5)(java面试题大全)