Java基础
语言基础注释文档注释
1234/***@Description *@Author/
标识符和关键字
数据类型基本数据类型
引用类型
包包机制用于区别命名空间
Java Doc1234567@author 作者名@version 版本号@since 最早jdk版本@param 参数名@return 返回值情况@throws 异常抛出情况
Scannernext和nextline的区别
方法重载名字相同,参数列表不同
面向对象构造函数一个类会有默认的构造器。
构造器:
函数名与类名相同
没有返回值
Java里有有参构造和无参构造两种构造器
封装暴露少量方法给外部使用
继承extends关键字
子类 is a 父类
Java中所有类都默认继承Object类
Java中只有单继承
Super关键字可以访问父类的公共变量,方法
子类的构造函数默认调用了父类的无参构造。
多态instanceof判断对象A是否是类B的一个实例
类型转换
接口普通类只有具体实现,抽象类具体实现和规范都有,接口只有规范,自己无法写方法
Java可以利用接口实现多继承。
异常
1234567try ...
数据库设计
概述函数依赖 知道属性a -> 推导出属性b
Armstrong’s Axioms
Implications
Closure of FDs正则覆盖函数依赖集F能推出函数依赖集G。
Minimal CoverCandidate Key
决定性: K -> R
K中的每个属性都不可或缺
主属性:出现在候选码中的属性
Algorithm to compute Candidate Key
Normalization Based on FDNormal Forms – 1NFConcepts:A relational schema R is in first normal form if the domains of all attributes of R are atomic.
原子性:
不能有组合属性如:customer(id, name(first-name,middle-initial,last-name),date-of-birth)
一个tuple每个属性只能有一个值,如电话的值不能为(18637047510,13781481432)这样的列表形式
每个属性都是独立的 ...
事务
事务特性原子性 Atomicity一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节,而且事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性 Consistency是指事务操作前和操作后,数据满足完整性约束,数据库保持一致性状态。
隔离性 Isolation数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致,因为多个事务同时使用相同的数据时,不会相互干扰,每个事务都有一个完整的数据空间,对其他并发事务是隔离的。
持久性 Durability事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
并发事务的问题脏读如果一个事务读到了另一个未提交事务修改过的数据,就意味着发生了脏读。
因为事务A还没提交事务,所以随时可能发生rollback,这样B读到的数据就是过期的数据,这种现象被称为脏读。
不可重复读在一个事务中多次读取同一个数据,如果前后两次得到的结果不一样,就意味着发生了不可重复读现象。
A事务的持续时间比B长,B提交事务后A又读到了 ...
日志
undo log 回滚日志Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和MVCC。
undo log是一种用于撤销回退的日志。在事务没提交前,MySQL会先记录更新前的数据到undo log日志文件里面,当事务回滚时,可以利用undo log 来进行回滚。 如下图:
在插入一条记录时,要把这条记录的主键值记下来,这样之后回滚时只需要把这个主键值对应的记录删掉就好了;
在删除一条记录时,要把这条记录中的内容都记下来,这样之后回滚时再把由这些内容组成的记录插入到表中就好了;
在更新一条记录时,要把被更新的列的旧值记下来,这样之后回滚时再把这些列更新为旧值就好了。
一条记录的每一次更新操作产生的 undo log 格式都有一个 roll_pointer 指针和一个 trx_id 事务id:
通过 trx_id 可以知道该记录是被哪个事务修改的;
通过 roll_pointer 指针可以将这些 undo log 串成一个链表,这个链表就被称为版本链;
版本链如下图:
另外, undo log 还有一个作用,通过ReadView + undo log ...
Ethereum安全分析工具
Mythril使用通过 myth -h命令可以查看Mythril的命令:
12345678910111213141516171819202122> myth -husage: myth [-h] [-v LOG_LEVEL] {safe-functions,analyze,a,disassemble,d,foundry,f,list-detectors,read-storage,function-to-hash,hash-to-address,version,help} ...Security analysis of Ethereum smart contractspositional arguments: {safe-functions,analyze,a,disassemble,d,foundry,f,list-detectors,read-storage,function-to-hash,hash-to-address,version,help} Commands ...