首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谁来检查方法参数合法性

参数对于方法来说是很重要的输入数据,传入的参数值的合法性影响着方法的稳定性,严重时甚至可能导致崩溃问题的出现。...,比如这样,在调用处进行校验 1 2 3 4 5 6 public static void main(String[] args) { Book book = null; if (book...book.getPrice()); } } 就这个案例而言,两者都可以,但是有没有什么规范呢 其实还是有一些约定的 如果方法是public,protected等这样被外部可调用的时候,方法定义时需要进行值的合法性检验...null) { System.out.println(book.getPrice()); } } 我们通过增加@param book could be null就可以告诉调用者,不用做合法性检查...此外我们也可以使用@Nullable或者@NonNull来表明当前参数的检查职责归属。 至此我们也理清了检查方法参数合法性的责任归属,欢迎评论交流。

1K20

你如何检查参数的合法性

如果一个非法参数传递到一个方法中,在方法执行前进行了参数检查。它将会快速失败,并给出清晰的异常信息。 如果方法没有检查参数,下面这些事情会发生。...跟一般的合法性检查不同,断言失败的时候抛出AssertError;跟一般的合法性检查不同,除非你启用他们否则断言对你没有任何影响和消耗。...构造函数代表了一个特殊例子的原则:你应该检查即将存储稍后会用到的参数的合法性检查构造函数参数的合法性非常重要,它可以防止构造一个违反类的不变性的对象。...所以:这里有一个小店,在开始的时候检查列表中的元素应该是可以互相比较的,注意:修改合法性检查会丧失原子失败。 偶尔,一个计算执行了一个需要的合法性检查,但是当执行检查失败的时候,抛出了一个错误的异常。...养成这个习惯很重要,适当的工作会在第一次合法性检查失败的时候回馈你。 ?

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

mysql源和目标端行数检查

导数据是很长有的事, 导完了总得检查一下把, 云上有DTS很方便, 但是有的环境只能手动导数据了, 这比较就比较麻烦了, 或者是用户自己导的, 让你检查检查, 总之检查两个库之间的数据量是很常见的工作...我分享下脚本检查mysql两库之间数据行数的脚本吧. 这个脚本是mysql的, 也可以改一改给pg或者oracle用, 我就不写了哈 1....例子: 并行度默认是本机线程数的2倍 默认该库所有 image.png 也可以手动指定库名: image.png 4. 脚本如下: #!.../bin/env bash #write by ddcw at 2021.06.26 #检查mysql数据是否一致, 只检查行数量 #用法, sh $0.sh src_user/src_passowrd...'{print $1}')\033[0m" echo -e "一致的: ${same_tbale} \t 不一致的: ${no_same_tbale}" } init_param # echo

93920

MySQL 基线检查

MySQL 基线检查项 参考链接: https://github.com/wstart/DB_BaseLine 账号权限基线检查 run_power_test 启动 MySQL 的系统账号 是否单独创建...且 不允许登陆 默认管理员账号是否存在 高级权限账号 是否是必须 系统数据库 MySQL 的高级权限账号 是否必须 具有特定的高级权限账号是否必须 File_priv 文件权限 Process_priv...创建用户权限 Grant_priv 赋权权限 reload_priv 重载权限 repl_slave_priv 主从数据库权限 密码为空的账号是否存在 不受IP限制的账号可登录 空用户的账号 网络连接基线检查...= 'datadir' 检查MYSQL命令执行历史记录 ~/.mysql_history 敏感的日志,查询,错误,审计文件 log_bin_basename log_error slow_query_log_file...general_log_file audit_log_file relay_log_basename 数据库配置基线检查 run_config_test 错误日志是否开启 SHOW variables

2K20

Mysql安全检查(上)

1.确保MYSQL_PWD环境变量未设置 描述 MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。...加固建议 删除系统环境变量中MySQL密码(MYSQL_PWD)配置 2.匿名登录检查 描述 检查MySQL服务是否允许匿名登录 加固建议 登录MySQL数据库,执行以下命令删除匿名账户: delete...加固建议 编辑Mysql配置文件/my.cnf,删除log-raw参数,并重启mysql服务 4.禁止使用–skip-grant-tables选项启动MySQL服务 描述 使用此选项...加固建议 编辑Mysql配置文件/my.cnf,删除skip-grant-tables参数,并重启mysql服务 5.为MySQL服务使用专用的最低特权账户 描述 使用最低权限账户运行服务可减小...MySQL天生漏洞的影响。

1.7K50

Oracle 碎片检查及整理方案

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Oracle 碎片检查及整理方案 很多时候,对于某张有大量的 delete 删除操作,但是发现空间并未释放,这是高水位未下降的原因...大量删除操作会导致的碎片过多,从而影响性能,检查表的碎片率一般使用存储过程 SPACE_USAGE 程序。下面详细介绍一下 SPACE_USAGE 程序。...USER_SUBPART_KEY_COLUMNS 用户级别查看碎片 当检查比较多时,甚至是全库时,使用如下 SQL 查看。...移动,导入导出。...但是 truncate 直接清理数据,一般情况下不可取;alter table t move;移动会使索引失效,移动完需要 rebuild 重新建索引,移动时对数据行的 rowid 有所变更,

1.9K10

mysql分区_MySQL分区分

mysql中有一种机制是锁定和行锁定,是为了保证数据的完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...Mysql分为垂直切分和水平切分,具体区别如下: 垂直切分是指数据表列的拆分,把一张列比较多的拆分为多张 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张; 把text,blob(...ID取模的方法把数据分散到四张内Id%4= [0,1,2,3] 然后查询,更新,删除也是通过取模的方法来查询 部分业务逻辑也可以通过地区,年份等字段来进行归档拆分; 进行拆分后的,这时我们就要约束用户查询行为...比如我们是按年来进行拆分的,这个时候在页面设计上就约束用户必须要先选择年,然后才能进行查询。 3、利用merge存储引擎实现分 注:只有myisam引擎的原才可以利用merge存储引擎实现分。...tb_member INSERT_METHOD=first; 修改插入方法后,再自行对表进行插入数据的操作,可以发现所有的数据都写入了第一个(我这里插入了四条数据),查看如下: mysql> insert

9.8K20

对代码质量进行检查

对代码质量进行检查 今天习得了一个不错的项目代码质量检测工具,并且在自己的 IDE 上进行安装,这一实践不要紧,感觉还是很不错的。...也就是说在你项目根目录下的 gitlab-ci.yml 文件中把它作为一个持续集成部署中的一个 pipeline,就可以对你上线代码的质量进行把控。...最后一部分进行总结。 一.用这类工具的收益是什么? 简单直接,这些工具一般会对代码上什么样的问题进行提示? 1.不遵循标准的。...可能该进行抽象的类,方法没有提出来,所有代码都面向过程的写在一个文件里,这个时候会给你提供优化建议。 4.冗余代码及重复。...数据库(例如 mysql) 以上安装,如有问题可自行谷歌。

30010

技术分享 | MySQL级联复制下进行的字段扩容

二、库信息 环境:Mysql 8.0.22 1主1从 基于Gtid复制 1.第一个问题,这是一张大吗?...最后我们选择了,DBA最喜爱(xin ku)的一种方式,在M-S1-S2级联复制下进行。...四、如何进行操作 新建一个S1的从库,构建M-S1-S2级联复制 使用OnlineDDL在S2上进行字段扩容 (优点是期间M-S1的主从不受影响) 扩容完成后,等待延迟同步M-S1-S2 (降低S2与M...S2成为主库,S1为从库(应用需要修改前端连接信息) 应用进行回归验证 以上内容看上去很复杂,本质上就是备份恢复。...以上方式均不推荐多个DDL同时进行,即并行DDL。 大操作和大数据量操作,需要我们贴合场景找到合适的变更方案,不需要最优,需要合适。 福利时间:分享一个速查表 图片

79430

Docker安装Mycat和Mysql进行水平分库分实战

一、前言 小编最近公司有个新的需求,数据量比较大,要涉及到分库分。大概了解了一些主流的中间件,使用和网上资料比较多的是Mycat和sharding-jdbc,小编比较倾向于Mycat。...网上全使用Docker还是不多,而且很迷糊,小编进行补充,让大家少走弯路!!...==写在前面:== 本次简单的进行分库分测试,测试分片规则是mod-long,简单的根据id取余分组,实际业务肯定不符合,大家根据业务进行具体规则!!...二、安装docker网络 因为我们的Mycat和Mysql都是使用docker安装的,容器和容器之间是相互隔离的,这时候需要用到docker网络帮助我们进行两个容器之间的通信!...都是创建出来在进行统一的测试。

59830
领券