刷了一道力扣题:题解
补了一道天梯的题目。
Java学习
一.内部类:定义在其他类内部的类。
1.内部类成员可以直接访问外部类的私有数据(内部类被当成其外部类成员),可以任意访问控制符修饰的成员如private、protected和public。但外部类不能访问内部类中的成员变量。例如下面的代码中,内部类中的方法可以直接使用外部类中的成员变量。
2.内部类比外部类可以多使用三个修饰符:private、protected、static。
3.内部类的实例化:首先需要new一个外部类的对象。并通过p.new.Inner()的方式new内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner
4.静态内部类的实例化:静态内部类的对象是不指向某个具体外部类对象,所以再创建对象时不需要创建外部类对象。在new的时候直接new Parent.Inner()
5.如果外部类需要访问非静态内部类的成员,必须显式创建非静态内部类对象来调用访问其实例成员。例如下面代码就是外部类中的方法输出非静态内部类中的成员实例。
二、常用工具类:
1.Math:提供了大量静态方法来便于我们进行数学计算。
Math.abs():求绝对值
Math.max()和Math.min()求最大值和最小值
Math.pow()求x的y次方
Math.sqrt()求√x
Math.exp()求e的x次方
Math.log()和Math.log10()求以e为底的对数和以10为底的对数
2.Random:生成伪随机数。
(1)我们可以指定生成随机数的类型:next+Xxx(随机数的范围)。xxx为数据类型。浮点型的随机数默认范围时[0,1)。
(2)创建Random实例时,可以给定种子,也就是说如果种子相同,生成的随机数序列也相同。
三、正则表达式:就是一个描述规则的字符串。通过自定义规则来判断字符串是否符合要求。
1.举个最简单的例子,我们要匹配一串字符串是否由6位0~9的数字组成:
这里的\相当于,前一个是转义字符。
2.java提供了许多精准匹配和模糊匹配的方法,下面是一些常用匹配规则:



