题目连接
<!–more–>
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
这道题有两种做法,第一个是先计算,再排序。
第二种是双指针
1 | int length=nums.size(); |
这种做法和合并数组有点像,这道题的难点就在于存在负数可能使得他的平方大于一个正数的平方。然而对于这种做法来说,由于是从两边开始取值,因此排序方向是由大到小的。
1 | package animal; |
静态内部类对外部类
静态内部类可以直接访问外部类的静态变量
想要访问实例或者方法的话,需要创建一个实例
非静态内部类访问外部类
非静态内部类访问外部类的静态变量或方法时,直接用变量名称加上方法即可
访问实例和方法时,需要创建一个外部类的实例。
外部类访问内部类:
当外部类访问非静态内部类时
需要通过外部类创建内部类的实例才能够访问
访问静态内部类时,直接用静态内部类创立即可,静态内部类内部的静态变量可以直接通过类名+方法/变量访问
其实这些访问规则都和java的创建方式有关,先加载静态方法,变量,再加载非静态方法变量,因此静态变量在没有创建一个实例之前时可以访问的。
父类的static方法时不能被重写的,但是在子类中却出现了一摸一样函数,这不属于重写,子类的static后是在独立于父类创建了static的空间的另一份空间里面创建的,因此不属于重写范畴,但是当我们去掉子类的static后,操作时发生在父类的static上的空间,因此会报错。
而被private修饰的方法是不能被继承的,所以子类可以定义和父类一样的。
重写的访问权限不能比父类低。
◼ this() 仅在类的构造函数中使用,别的地方不能用
◼ this() 必须是整个构造函数的第一个可执行语句
◼ 用法1:super可被子类用来引用其直接父类
super.父类成员变量或方法 (非private类型)
◼ 用法2:子类调用直接父类构造函数
super( [参数列表] )
◼ 子类对象在创建时,不仅要用调用本类的构造函数,而且还要调用父
类相应的构造函数,且父类构造函数首先调用
◼ 因此,子类构造函数如果不显示地通过super调用父类构造函数,则
系统将自动隐式调用默认的父类构造函数(带0个参数的)
◼ 在这种情况下,如果没有缺省的父类构造函数,将导致编译错误
◼ 静态方法只能调用静态成员( static方法或static数据)
◼ 静态方法是在class装载时首先完成,比构造方法早,此时非静态属性和
方法还没有完成初始化。所以静态方法不能调用非静态方法和属性
◼ 静态方法不能以任何方式引用 this 或 super
◼ 静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态
方法中不能使用 this 关键字
◼ 和 this 关键字一样,super 关键字也与类的特定实例相关,所以在静态方
法中也不能使用 super 关键字
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true