Pre2

#Task1

测评机(Java8)不支持enhanced Switch

Switch中,将case后的:改为->后,将会取消fall through,可以删去break;

#Task4

疏忽强转溢出的可能性

重写Equipment类的compareTo()时,对于price的比较直接使用了return (int) (this.price - other.price),然而long减long可能超过int范围导致溢出错判。

运用异常处理机制

#Task5

关于接口和接口引用的理解

Pre3

#Task1

Java8 不支持 String.isBlank()。改成 String.trim().isEmpty()

#Task3

正则表达式括号与捕获组

括号本身既区分优先级,又形成捕获组

:捕获字符串中可能出现的receiver(形如“@某用户”)

目标表达式 regexp = ((@[a-zA-Z0-9]+)?)

会分出两个捕获组。Matcher.find()始终为true;若不存在@[a-zA-Z0-9]则Matcher.group(1)返回"",Matcher.group(2)返回null

可以分别为group #1/group #2命名为"receiver":

  • (?<receiver>(@[a-zA-Z0-9]+)?)
  • ((?<receiver>@[a-zA-Z0-9]+)?)

正则表达式的包含关系导致无法匹配

public static final String DATE_PATTERN = "(?<year>\\d{1,4})" + "/" +
"(?<month>\\d{1,2})" + "/" + "(?<day>\\d{1,2})";
public static final String SENDER_PATTERN = "(?<sender>-[a-zA-Z0-9]+)";
public static final String RECEIVER_PATTERN = "((?<receiver>@[a-zA-Z0-9]+)?)"; public static final String MESSAGE_PATTERN = DATE_PATTERN + ".*"
+ SENDER_PATTERN + "[^@]*" + RECEIVER_PATTERN;
// 第二处连接若使用".*"则使用时将无法匹配RECEIVE_PATTERN

关于String.split()返回数组不定长

由于使用了SCANNER.next(),用String.split("\")分割"y\m\d"时,若读取值为"\"、"2021\"等时,数组长度不为3,与年月日匹配方法不符产生异常。

解决:创建长度3的数组来定长。使用System.arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length),直接从内存拷贝数组。

【Pre】Exercise Log的更多相关文章

  1. 【UFLDL】Exercise: Convolutional Neural Network

    这个exercise需要完成cnn中的forward pass,cost,error和gradient的计算.需要弄清楚每一层的以上四个步骤的原理,并且要充分利用matlab的矩阵运算.大概把过程总结 ...

  2. 【原创】Kakfa log包源代码分析(二)

    八.Log.scala 日志类,个人认为是这个包最重要的两个类之一(另一个是LogManager).以伴生对象的方式提供.先说Log object,既然是object,就定义了一些类级别的变量,比如定 ...

  3. 【科技】单 $\log$ 合并两棵有交集 FHQ-Treap 的方法

    维护可分裂 & 合并的可重集 考虑这样一个问题: 维护 \(n\) 个 可重集 \(S_1, S_2, \cdots, S_n\),元素值域为 \([1, U]\),初始集合为空.支持一下操作 ...

  4. 【朝花夕拾】Android Log篇

    前言  从事Android开发的这些年中,经常碰到这样一个现象:同一款app中,往往有好几种风格迥异的log处理方式,有时候会让维护者晕头转向.同时笔者也经常碰带一些模棱两可的问题:Log等级分好几种 ...

  5. 【DeepLearning】Exercise:Softmax Regression

    Exercise:Softmax Regression 习题的链接:Exercise:Softmax Regression softmaxCost.m function [cost, grad] = ...

  6. 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders

    Exercise:Learning color features with Sparse Autoencoders 习题链接:Exercise:Learning color features with ...

  7. 【DeepLearning】Exercise: Implement deep networks for digit classification

    Exercise: Implement deep networks for digit classification 习题链接:Exercise: Implement deep networks fo ...

  8. 【DeepLearning】Exercise:Sparse Autoencoder

    Exercise:Sparse Autoencoder 习题的链接:Exercise:Sparse Autoencoder 注意点: 1.训练样本像素值需要归一化. 因为输出层的激活函数是logist ...

  9. 【原创】Kakfa log包源代码分析(一)

    Kafka日志包是提供的是日志管理系统.主要的类是LogManager——该类负责处理所有的日志,并根据topic/partition分发日志.它还负责flush策略以及日志保存策略.Kafka日志本 ...

  10. 【MySQL】redo log --- 刷入磁盘过程

    1.redo log基本概念 redo log的相关概念这里就不再过多阐述,网上有非常多的好的资料,可以看下缥缈大神的文章:https://www.cnblogs.com/cuisi/p/652507 ...

随机推荐

  1. Timestamp和LocalDateTime 互转

    jdk:1.81.Timestamp 转 LocalDateTime Timestamp time = Timestamp.from(Instant.now());LocalDateTime loca ...

  2. ChannelInboundHandlerAdapter和SimpleChannelInboundHandler区别

    ChannelInboundHandlerAdapter和SimpleChannelInboundHandler是我们在使用Netty处理Handler时候很常用的两个继承类,虽然说二者实现的功能大致 ...

  3. Qt音视频开发35-Onvif图片参数

    一.前言 视频中的图片的配置参数一般有亮度.饱和度.对比度.锐度等,以前一直以为这些需要通过厂家的私有协议SDK来设置才行,后面通过研究Onvif Device Manager 和 Onvif Dev ...

  4. Pycharm IDE中导入和移除python项目

    1.Pycharm导入python项目 进入PyCharm后,点击File→Open,然后在弹窗中选择需要导入项目的文件夹: 打开了python项目后,需要配置该项目对应的python才可以正常运行: ...

  5. 内华达大地测量实验室gnss数据半自动化下载

    内华达大地测量实验室GNSS数据半自动化下载 前言 目的:继上篇GNSS时序形变位移数据下载,介绍了内华达网站GNSS位移数据如何手动交互进行下载.后面发现若自己需要下载很多站点的数据,我要通过手动一 ...

  6. HVV面试

    linux日志管理 1. 检查系统帐号安全(1) /etc/passwd(2) /etc/shadow(3) 特权用户(uid==0)awk -F: '$3==0{print $1}' /etc/pa ...

  7. SpringCloud(一) - Dubbo + Zookeeper

    Dubbo 和Zookeeper 不是SpringCloud的东西,放在这里只是为了方便复习: 1.下载安装Zookeeper和Dubbo 1.1 下载安装教程 下载安装教程 windows环境下安装 ...

  8. DVWA靶场Authorisation Bypass (未授权绕过) 漏洞通关教程及源码审计

    Authorisation Bypass 授权绕过(Authorisation Bypass)是一种严重的安全,通过利用系统的或错误配置,绕过正常的访问控制机制,获得未经授权的访问权限.这种可能导致敏 ...

  9. codeblocks快捷键注释

    ctrl+shift+c可以快速注释掉多行. ctrl+shift+x可以取消注释

  10. 极客时间《Redis核心技术与实战》阅读笔记

    极客时间<Redis核心技术与实战>阅读笔记 ‍ ​​ ‍ ‍ ‍ ​​ ‍ 数据结构 为了实现从键到值的快速访问,Redis 使用了一个哈希表来保存所有键值对. 哈希桶中的元素保存的并不 ...