对于【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)
- 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)
前言
华为三道题,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【第七期】
第六、七期
初衷
在上一次文章最后,为了感谢大家一直以来的照顾,自己立了一个小小的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
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
中的pendingBatchIndexAcks
,bitSet
和batchSize
。
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 解析
攻击条件
在同一广播域,黑客即可通过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
临时修复
- 关闭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
我有一个包含“否”和“日期”的表格。这将是动态形式。在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的相关信息,请在本站寻找。
本文标签: