_01_命令提示符

//cmd的操作(Ms-DOS)
/*
* 进文件夹:cd 文件夹名
* 进多级文件:cd 文件夹1\文件夹2
* 返回上一级:cd ..
* 回根路径:cd \
* 查看当前内容:dir
* 清屏:cls
* 退出:exit
* */

_02_Java和JDK

/*
* JVM:Java虚拟机,Java程序的运行环境
* 跨平台性:java程序可以运行在任何操作系统的虚拟机上 (win:win虚拟机 mac:mac虚拟机 )
* JDK(Java程序开发工具包) > JRE(Java程序的运行环境) > JVM(Java虚拟机,Java程序的运行环境)
* JDK:Java程序开发工具包,包括JRE和开发人员使用的工具
* JRE:Java程序的运行环境,包含JVM和多需要的核心类库
*
* javac.exe :Java程序编译器,生成二进制文件
* java.exe:Java程序解释器,解释生成的二进制文件
* */

_03_关键字标识符

package _01_知识点总结._03_关键字标识符;

public class _03_关键字标识符 {
} /*
* 关键字:
* 1.完全小写 2.在编辑器中有颜色的
*
* 标识符:
* 1.程序中自己定义的名字(类名称,方法名,变量名等)
* 标识符命名规则:
* 1.仅数字,英文字符,_。2.不用数字开头(类名称,方法名,变量名等)
* 命名规范:
* 1.小驼峰式:变量名 2.大驼峰式:类名称
*
* */

_04_基本数据类型

/*
*常量:
* 1 字符串常量
* 2 整数常量
* 3 浮点数常量
* 4 字符常量
* 5 布尔常量:true false
* 6 空常量:NULL
*
* 数据类型
* 1 基本数据类型:
* 整数型:byte short int long
* 浮点数:float double
* 字符型:char
* 布尔型:boolean
* 2 引用数据类型:字符串,数组,类,接口,Lambda
*
* 3 注意事项
* 浮点型可能只是近似值,并非精确值
* 数据范围:float比long广,f为4字节,l为8字节
* 浮点数:默认double类型,使用float类型,后加 F
* 整数型:默认int类型,使用long类型,后加 L
*
* 变量使用注意事项:
* 多变量不重名
* float和long类型,后F和L不可省略
* 变量先声明后使用
*
* */

_05_数据类型转换

/*
*
* 自动类型转换(隐式)
* 自动完成
* 数据范围从小到大,隐含强制类型转换
* 数据范围从大到小,发生强制类型转换
*
* 强制类型转换
* 特殊格式处理
* 例:int num = (int) 100L;
* 不推荐使用,可能会发生精度损失
* byte/short/char类型都能发生数学运算(提升为 int型,再进行运算)
* boolean类型不能发生数学运算
*
*
*
* */

_06_运算符

/*
* 四则运算:+ - * /
* 取余 %
* +号的用法
* 算术:加减运算
* 字符中:加减运算
* 字符串中:字符串连接
*
* 自增自减:++ --
* 赋值运算:= += -+ /= *= %=
* 比较运算:== > < >= <= !=
* 逻辑运算:&& || !
* 三元运算: ? :
*
*
* */

_07_方法入门

/*
* 1.方法定义:
* public static void 方法名(){
* 方法体;
* }
* 2.注意事项:
* 方法顺序不限制
* 方法不能嵌套定义
* 方法有返回值时,必须写上(return 返回值;)
*
* 3.方法调用
* 单独调用 sum(a:10,b:20);
* 打印调用 System.out.println(sum(a:10,b:20));
* 赋值调用 int num = sum(a:10,b:20);
*
* 4.
*
* */
/*
* 方法重载(Overload):多个方法的名称相同,参数列表不同
* 方法重载的正确使用:
* 参数个数不同
* 参数类型不同
* 参数多类型顺序不同
*
* 非正常使用重载:
* 与参数的名称无关
* 与方法的返回值类型不同
* */

_08_JDK9中的JShell

/*
* JShell脚本运行
* 启动:cmd中JShell
* 退出: /exit
* 语句执行:一句一句执行
* */

_09_流程及循环

/*
* 1 顺序结构
* 2 选择结构
* if-else
* 三元运算符: ? :
* switch
* swtich(表达式){
* case 常量值:语句体 ; break;
* ……
* default 语句体;break;}
* 注意事项:
* case后的数值不能重复
* case后支持的数据类型:基本:byte/short/char/int 引用:String/enum枚举
* 3 循环结构
* for循环
* while循环
* do-while循环
*
* 4 循环控制
* break:跳出循环,提前结束循环
* continue:跳过本次循环,继续后边的循环
*
*
* */

_10_IDEA

/*
* 项目名称:Java 二次学习
* 模块名称:01_基础
* 包名称:_01_基本操作 注:推荐cn.itcast.www (约定俗成)
* 类名称:
*
* 注:
* 包及包下代码在src包中
* 包中可以新建包
*
* 项目导入:项目结构-->模块-->模块导入
*
*
*
*
* 方法重载:方法名相同 参数不同/参数类型不同/多类型顺序不同
* shift+F6 :方法中相同的参数统一修改
* */

_11_数组及使用

/*
* 1 数组的特点:
* 数组时引用类型
* 数组定义后,元素类型相同,长度在运行期间不可改变
* 2 数组的定义:
* 动态初始化:数据类型[] 数组名称 = new 数据类型[数组长度];
* 静态初始化:数据类型[] 数组名称 = new 数据类型[]{a,b,c,……};
* 省略格式:数据类型[] 数组名称 = {a,b,c,……};
* 注:省略格式不可拆分为先定义再使用
* 3 注:
* 动态初始化数组后的数组系统默认值
* int 默认值0
* float 默认值0.0
* char 默认值‘/u0000’
* boolean 默认值false
* 引用类型 null
* 4 数组长度:数组名称.length
* 5 数组遍历:数组名称.fori (for(i=0;i<数组名称.length;i++))
* */

_12_Java内存划分

/*
* 1 栈:存放方法中的局部变量,方法运行一定再栈中
* 2 堆:new出来的东西都在堆当中
* 堆内存中的东西都有一个地址值:16进制
* 堆内存中的数据,都有默认值
* 3 方法区:存放.class信息,包含方法的信息
* 4 本地方法栈:与操作系统有关
* 5 寄存器:与CPU有关
*
*
* 索引越界异常:ArrayIndexOutOfBoundsException
* 空指针异常:NullPointerException
*
* */

_13_面向对象

/*
* 面向过程:实现一个功能时,每个步骤都亲历亲为,详细处理每个细节
* 面向对象:实现一个功能时,找个具有该功能的对象,替我完成
*
*面向对象的三大特征:分装,继承,多态
* 类: 一组相关属性和行为的集合 (对一类事务的描述,抽象的)
* 对象:一类事务的具体实现,对象时类的一个实例(一类事务的实例,具体的)
* */
/*
* 类:属性 行为
*
* 成员变量(属性)
* String name;
* int age;
* 成员方法(行为)
* public void eat () {};
* public void sleep() {};
* 注:普通方法没有关键字static
* */
/*
* 成员变量:
* 在方法的外部,直接写在类中
* 整个 类 都通用
* 没有赋值,会有默认值
* 位于堆内存
* 随对象创建而产生,随对象被垃圾回收而消失
*
* 局部变量
* 在方法的内部
* 只有在方法中使用,出了方法不能使用
* 没有赋值,不会有默认值
* 位于栈内存中
* 随着方法进栈而产生,随方法出栈而消失
* */
/*
* 1 方法就是一种封装
* 2 关键字private也是一种封装
*
*
* */
/*
* 1 使用private修饰后,在本类当中随意使用,超出本类不能直接访问
* 2 需要间接访问private成员变量,定义一对Getter/Setter方法。实现数据倒手中判断数据合法性
* 3 格式:setXxx getXxx
* setXxx : 不能有返回值,参数列表类型和成员变量类型对应
* getXxx : 不能有参数,返回值类型与成员变量对应
*
* 4 对于boolean类型,使用setXxx 和 isXxx 形式
* */
/*
* 当方法局部变量和类的成员变量发生重名关系时使用,就近原则,有限使用局部变量
* 访问类的成员变量,使用this.成员变量名
* */

_14_构造方法

/*
* 注意事项:
* 构造方法的名称必须和类名称完全相同
* 构造方法没有返回值,也没有void
* new对象时,就是调用构造方法
* 构造方法不能return一个具体的值
* 没有编写构造方法,编译器自动赠送一个构造方法(无参数,方法体什么都不做)
* 一旦编写构造方法,编译器不在赠送构造方法
* 构造方法可以进行重载(方法名称相同,参数列表不同)
*
* 格式:
* public 类名称(参数类型 参数名称) {
* 方法体;
* }
*
* */

_15_标准的类

/*
*标准类的四个组成部分
* 1 所有的成员变量都要private
* 2 为每一个成员变量编写getter/setter方法
* 3 一个无参构造方法
* 4 一个全参构造方法
*
*
* 快捷键 : Alt + insert
* */

_16_API概述和使用

/*
* Java API:程序员字典,类的说明文档
* */
/*
* Scannerl类:实现键盘输入数据
*
* 引用类型的使用步骤:
* 1 导包
* improt 包路径.类名称;
* 使用的目标类在同一包中,不需要使用导包语句
* 只有在java.lang包下的内容不需要导包,其他的都需要import语句
* 2 创建
* 类名称 对象名 = new 类名称();
* 3 使用
* 对象名.成员方法名();
*
* 获取int类型:int num = 对象名.nextInt();
* 获取String: String str = 对姓名.next();
*
*
* */
/*
* 创建对象的标准格式:
* 类名称 对象名 = new 类名称();
*
* 匿名对象:
* new 类名称()
* 使用: new 类名称().name = "gaoyuanyuan";
* new 类名称().eat();
*
* */
/*
* 1 导包: import java.util.Random
* 2 创建: Random random = new Random();
* 3 使用: 获取随机数字: int num = random.nextInt();
* 指定范围数字: int num = random.nextInt(3); [0,2) 即:0,1,2
*
* */
/*
* 缺点:数组一但创建,长度就固定
* 所以引入ArrayList集合
*
* */
/*
* ArrayList:数组长度可以发生改变
* <E>:表示范型
* 范型:集合当中的元素类型相同 属于:引用类型
*
* 注意事项:
* ArrayList集合没有添加数据,直接打印得到[],而不是像数组打印得到地址值
*
* 添加数据:数组名.add();
*
*
*
* */
/*
* 数组名.add(元素); //返回值为是否添加成功ture/false 可添加 可不添加
* 数组名.get(索引值);//返回值为索引值位置元素
* 数组名.remove(索引值); //返回值为删除的多因值位置元素
* 数组名.size(); //返回值为数组长度
*
* */
/*
*ArrayList集合创建 基本类型 数组时 使用 对应的包装类
*基本类型 包装类
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char character
* boolean Boolean
* */

_17_字符串

/*
* 字符串的特点:
* 字符串的内容永不可变
* 字符串内容不可变,所以可以共享
* 字符串效果上相当于char[]类型数组,底层原理:byte[ ]字节数组
*
* 字符串的创建方法3+1种
* public String(); 空字符串
* public String(char[] array);
* public String(byte[] array);
* String str = "hello";
* */
/*
* 字符串常量池:直接写在“ ”中的,就在字符串常量池中
*
* 对于基本类型:==是进行数值的比较
* 引用类型:==是进行 地址值 的比较
*
*进行字符串比较:
* public boolean equals(Object abj) //参数可以是任何对象,
* 注意事项:
* 任何对象都能用Object进行接收
* equals具有对称性,a.equals(b) 等同于 b.equals(a)
* 常量和变量进行比较时,推荐常量在前,变量在后
* a.equalsIgnoreCase(b) //忽略字符串大小写进行比较
* */
/*
* public int length(); //获取字符串长度
* public String concat(String str); //拼接字符串
* public char charAt(int index); //获取字符串指定位置的字符
* public int indexOf(String str); //获取参数字符串在原字符串中首次出现的索引位置
*
* 字符串截取:
* public String substring(int index); //截取 从索引位置开始到结束
* public String substring(int begin,int end); 指定位置的字符串截取[begin,end) 取前不取后
*
* 字符串转换方法:
* public char[] toCharArray(); //字符串转换成字符数组 进行输出
* public byte[] getBytes(); //获取字符底层的字节数组
* public String replace(CharSequence oldString, CharSequence newString); //旧字符串替换为新字符串
*
* 分割字符串的方法:
* public String[] split(String regex); //按分割规则。将字符串分割为字符串数组
* 注意事项:
* split方法的参数实际是“正则表达式”
* 按照英文.进行分割时,split参数为“\\.” //两个反斜杠
* */

_18_Static关键字

/*
* static关键字:使用static关键字,这样的内容不属于对象,属于类,凡是本类的对象,都共享同一份
* */
/*
* Static修饰成员方法后的成员方法调用:(无需创建对象,即可直接通过类名称进行调用)
* 类名称.成员方法(); //推荐使用
* 对象名称.成员方法(); //可以使用,但不推荐
*
* 普通成员方法的调用:
* 必须先创建对象,在进行调用,格式:对象名称.成员方法();
*
* Static修饰的成员变量/普通的成员变量:
* 普通方法中,可以调用Static修饰的成员变量,也可以使用普通成员变量
* Static修饰的方法中,只能调用Static修饰的成员变量
* 原因:内存当中,现有静态内容,后有非静态内容
* this:代表当前对象
* 静态方法中不能使用this关键字
*
* */
/*
* 静态代码块:
* public class 类名称 {
* static {
* 静态代码块内容;
* }
* }
*
* 注意事项:
* 第一次用到本类时,执行静态代码块,且仅执行一次
* 静态内容总是优先于非静态内容。故先执行静态代码块,后执行构造方法(无参构造方法,全参构造方法)
*
* 用来给一次性成员变量进新赋值
* */
/*
* java.util.Arrays; //与数组相关的工具类,提供大量静态方法,实现常见的操作
*
* public static String toString(数组); //将参数数组变成字符串
* public static void sort(数组); //数组元素进行排序
* 数字:升序
* 字母:升序
* 其他:自定义的类需要有Comparable或Comparatore接口的支持
* */
/*
* 数组名.forr 倒序遍历 for (int i = array.length - 1; i >= 0; i--)
* 数组名.fori 正序遍历
* */
/*
* java.util.Math; //数学工具类,提供大量静态方法,完成数学运算
*
* public static double abs(double num);//绝对值
* public static double ceil(double num); //向上取整
* public static double floor(double num);//向下取整
* public static long round(double num ); // 四舍五入
* */

_19_封装性

/*
* 继承是多态的前提,没有继承就没有多态
* 继承主要解决问题:共性抽取
*
* 父类:基类,超类
* 子类:派生类
* 子类可以拥有父类的内容,也可以拥有自己独有的内容
* 子类也可以当作父类使用
*
* 父类格式:
* public class 父类名称(){
* //……
* }
* 子类格式:
* public class 子类名称 extends 父类名称 {
* //……
* }
*
* 继承的 特点:
* 父类可以有多个子类
* 一个子类只能有一个父类
* 继承可以多级继承
* */
/*
* 无论是成员方法还是成员变量,如果没有都是向上找父类,不可能向下找子类
*
*
* 重写:Override 方法名称一样, 参数列表相同
* 重载:Overload 方法名称一样,参数列表不同
* */
/*
* 方法覆盖重写的注意事项:
* 1 保证父子类的方法名称相同,参数列表也相同
* @Override //写在方法的前面,检验方法知否正确覆盖重写
* 2 子类方法的返回值的范围必须小于或等于父类方法中的返回值范围
* java.util.Object是所有类的公共最高父类(祖宗类),java.util.String就Object的子类
* 3 子类方法的权限必须大于或等于父类方法的修饰权限
* public > protected >(default) >private
* default不是关键字,是什么都不写
*
*
* */
/*
* 继承关系中,父子类构造方法的访问特点:
* 1 子类构造方法中隐含super();调用,先执行父类构造方法,再执行子类构造方法
* 2 子类构造方法中可以使用super调用父类构造方法进行重载构造
* 3 子类构造中调用必须在子类构造第一句,且只能调用一次
*
* */
/*
* 构造方法:
* public 方法名称(类名称)(可有可无){}
* 方法名称与 类名完全相同,参数可以不同
* 无static,也无void,没有返回值
* new该对象时,就是调用构造方法
* 无构造方法时,编译器赠送。
* 构造方法可以进行重载(方法名相同。参数不同)
* */
/*
* super的三种用法:
* 1 在子类成员方法中,调用父类的成员变量
* 2 在子类成员方法中,调用父类的成员方法
* 3 在子类构造方法中,调用父类的构造方法
*
* this的三种用法:
* 1 在本类成员方法中,访问本类的成员变量
* 2 在本类成员方法中,访问本类中另一个成员方法
* 3 在本类构造方法中,访问本类的另一个构造方法
* 注:
* this.构造方法(); //只能在构造方法的首句,且唯一一次
* this.构造方法(); 和 super.构造方法(); //在调用时,只能选其一,不能同时调用
* */

_20_抽象方法

/*
* 抽象方法:父类当中的方法只是笼统的实现,具体实现通过子类方法实现。这种方法叫做抽象方法
* 抽象方法格式: public abstract void 方法名称();
* 抽象类和抽象方法:
* 1 抽象方法必须在抽象类当中
* 2 抽象类: public abstract class 类名称() { }
* 3 抽象类中可以有别的普通方法
* 4 抽象方法必须由子类继承 进行覆盖重写
* 5 抽象方法的调用,通过创建子类对象,进行调用,不能直接创建父类对象进行调用
*注意事项:
* 1 抽象类不能直接创建对象,只能通过创建子类对象进行调用实现
* 2 抽象类中可以有构造方法,在子类中super();调用父类构造方法
* 3 抽象类中不一定有抽象方法,抽象方法必须在抽象类中
* 4 抽象类的子类,必须覆盖重写所有父类中抽象方法
*
* */

_22_接口与多态

/*
* 1 接口:就是公共的规范标准
* 2 所有版本的Java都可以定义抽象方法
* 接口中抽象方法:必须用public static 修饰,可以选择性的省略
*
* Java7版本可包含:1 常量 2 抽象方法
* Java8版本可包含:1 常量 2 抽象方法 3 默认方法 4 静态方法
* Java9版本可包含:1 常量 2 抽象方法 3 默认方法 4 静态方法 5 私有方法
*
* 3 注意事项
* 接口不能直接使用,必须要实现类来实现
* 格式: public class 实现类名称 implements 接口名称 { }
* 接口的实现类必须覆盖重写所有接口中的抽象方法
* 如果没有覆盖重写所有抽象方法,那么实现类必须是抽象类
*
* 4 注:
* 类与类之间是单继承的,直接父类只有一个
* 类与接口是多实现的,一个类可以实现多个接口
* 接口与接口是多继承的
* 多父接口中的抽象方法重复,没关系
* 多父接口中的默认方法重复,子接口必须对默认方法进行覆盖重写
*
* */
/*
* 接口中的默认方法为了解决 接口升级 问题
* 举例:接口中抽象方法写定后,子类实现覆盖重写后。 在接口中再次添加抽象方法时,其子类出现错误。所以引入默认方法,以实现添加方法的目的
*
* */
/*
* 接口静态方法:
* 格式:public static 返回值类型 方法名称() {};
* 注意事项:
* 接口静态方法不能通过实现类调用,只能通过接口名称直接调用
* 而普通静态方法,推荐类名称调用,不推荐实现类调用,但可以用
*
*
* */
/*
* 接口私有方法:解决方法之间重复代码的问题
*
* 私有方法分类:
* 普通私有方法:解决默认方法之间的重复代码
* 格式:private 返回值类型 方法名称(){};
* 静态私有方法:解决静态方法之间的重复代码
* 格式:private static 返回值类型 方法名称(){};
* */
/*
* 接口常量修饰:public static final 数据类型 常量名成 = 数据值;
* 注意事项:
* 一但使用final修饰,表示不可修改
* 接口中的常量,可以省略public static final,不写也是常量
* 接口中的常量,必须进行赋值
* 常量的名称,推荐全大写字母,用_分割
* */
/*
* 使用接口,需要注意的事项
* 1 接口是没有代码块或构造方法的
* 2 一个类的直接父类唯一,但一个类可以实现多个接口
* 格式: public class 实现类名称 implents 接口A,接口B { 覆盖重写所有抽象方法}
* 3 实现类实现的多个接口中有重复的抽象方法,只需要覆盖重写一次
* 4 若实现类中没有覆盖重写所有抽象方法,那么实现类必须是抽象类
* 5 若实现类中实现的多个 接口中,有重复的默认方法,实现类必须覆盖重写该方法
* 6 一个类的父类中有方法与实现的接口中方法重复,优先使用父类当中的方法
*
* */

_23_多态

/*
*extends和implements是多态性的前提
* 多态:指对象的多种形态
* 父类引用指向子类兑现
* 格式:父类名称 对象名 = new 子类名称();
* 接口名称 对象名 = new 实现类名称();
* */
/*
* 成员变量访问两种方式:
* 1 直接通过对象名称访问成员变量:等号左边是谁,优先用谁
* 2 间接通过成员方法访问成员变量:优先使用成员方法所在类的成员变量
*
* 成员方法访问特点:
* 看new的是谁就优先用谁
* 即:编译看左边,运行看右边
*
* 对象的向上和向下转型
* 1 向上转型一定是安全的 (小范围-->大范围)
* 弊端:使用子类特有方法时,编译器报错(在父类方法中没有对象的方法名称)
* 2 向下转型,将子类范围转换为父类范围后,进行小范围的还原
* 格式:子类名称 对象名 = (子类名称) 父类对象;
*
* instanceOf 关键字进行类型判断
* 格式: 子类对象 instanceOf 父类对象
* 判断创建对象时,时候时由该子类对象向上转型为该父类对象的,
* 返回值为Boolean
*
* */

_25_final关键字

/*
* final:最终,不可改变
* 常见四种用法:
* 修饰类
* 格式:public final class 类名称 { }
* 含义:当前这个类不能有任何子类
* 注:一个类如果时final类,其中所有的成员方法都无法进行覆盖重写(因为没有儿子)
* 修饰方法
* final修饰方法时,这个方法就是最终方法,不能被覆盖重写
* 格式:public final 返回值类型 方法名)(参数列表) { 方法体 }
* 注:对于类、方法,abstract和final关键字不可共存,会产生矛盾
* 修饰局部变量
* final修饰变量,表示不可变,一次赋值,终生不变
* 修饰基本类型:表示值不可变
* 修饰引用类型:表示地址值不可变
* 修饰成员变量
* 用final修饰成员变量后,也表示变量不可变
* 1 由于成员变量有默认值,所以final修饰后必须手动赋值,不会再有默认值
* 2 final修饰的成员变量,直接赋值,或通过构造方法赋值,二者选一,一次赋值不可再变
* 3 保证类中重载的构造方法,都最终会对final的成员变量进行赋值
* */
/*
* public protect (default) private
*同一个类 Y Y Y Y
*同一个包 Y Y Y N
*不同包子类 Y Y N N
*不同包非子类 Y N N N
*
* 注:default并不是关键字,而是什么都不写
* */
/*
* 1 内部类分类:
* 1 成员内部类:
* 1 格式:public class 外部内名称 {
* public class 内部类名称 {
* 内部类成员变量;
* 内部类成员方法;
* }
* 外部类成员变量;
* 外部内方法;
* }
* 注意:内用外,随意使用,外用内,需要内部类对象
* 2 使用成员内部类:
* 1 间接方式:在外部方法创建内部对象,通过调用外部方法,间接调用内部方法
* 2 直接方式: 创建内部类对象 : 外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
* 2 局部内部类:
* 局部:只有本类能够使用,超出本类不能使用
* 格式: public class 外部类名称{
* public void 成员方法(){
* class 局部内部类名 {
*
* }
* }
* }
*
* 3 类的权限修饰符: public > protected > (default) > private
* 4 外部类:public / (default)
* 5 成员内部类: public / protected / (default) / private
* 6 局部内部类: 什么都不写
* 1 局部内部类的final问题
* 局部内部类访问所在方法中的变量,这个局部变量必须时 有效final 的
* 关键字final 可省略( 保证该变量仅为唯一一次赋值)
*
*
* */
/*
* 使用场景:
* 接口的实现类(父类的子类)只需要使用唯一一次
* 可省略该类的定义,直接使用匿名内部类
* 格式:
* 接口名称 对象名 = new 接口名称(){
* //覆盖重写所有抽象方法
* }; //;不能丢
*
* 解释:
* new:代表创建对象的动作
* 接口名称就是匿名内部类需要实现哪个接口
* {}的内容才是匿名对象实现的内容
*
* 注意事项:
* 匿名对象在创建对象时,只能使用一次
* 多次使用,就必须创建接口的实现类(父类的子类继承)
* 匿名对象调用方法,只能调用一次
* 多次使用,需给匿名对象起个名字
*
* */
/*
* java.util.List是ArrayList实行的接口
*
* 接口:作为方法的参数/返回值都可以
* */

END

00_java基础笔记的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

  3. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  4. MYSQL基础笔记(五)- 练习作业:站点统计练习

    作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...

  5. MYSQL基础笔记(四)-数据基本操作

    数据操作 新增数据:两种方案. 1.方案一,给全表字段插入数据,不需要指定字段列表,要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致.凡是非数值数据,到需要使用引号(建议使用单引号)包裹. i ...

  6. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  7. MYSQL基础笔记(二)-SQL基本操作

    SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...

  8. MYSQL基础笔记(一)

    关系型数据库概念: 1.什么是关系型数据库? 关系型数据库:是一种建立在关系模型(数学模型)上的数据库 关系模型:一种所谓建立在关系上的模型. 关系模型包含三个方面: 1.数据结构:数据存储的问题,二 ...

  9. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

  10. JavaScript基础笔记一

    一.真假判断 真的:true.非零数字.非空字符串.非空对象 假的:false.数字零.空字符串.空对象.undefined 例: if(0){ alert(1) }else{ alert(2) } ...

随机推荐

  1. 第一个shell

    首先进入linux系统,打开命令行,输入命令vi test.sh创建一个shell测试脚本,键入i切换vi编辑器为输入模式,输入以下文本内容,键入:wq保存退出即可.下面第一行的#!是告诉系统其后路径 ...

  2. py教学之列表

    列表是什么 list 是一些元素按照一定顺序排列的元素集合 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Py ...

  3. VUE assets里的scss没有引用会被打包进代码里,本地代码和打包后的代码样式不一致解决办法

    1.打包部署后,发现样式和本地运行时候代码不一致 经过排查发现 这个路径的文件被打包进去了,但是我并没有引用这个文件啊啊啊啊啊a~~~~ src\assets\webgl-assets\scss\st ...

  4. 分布式协议与算法-Paxos算法

    1.Basic Paxos 假设我们要实现一个分布式集群,这个集群是由节点 A.B.C 组成,提供只读 KV 存储服务.你应该知道,创建只读变量的时候,必须要对它进行赋值,而且这个值后续没办法修改.因 ...

  5. SQLSERVER 的 nolock 到底是怎样的无锁?

    一:背景 1. 讲故事 相信绝大部分用 SQLSERVER 作为底层存储的程序员都知道 nolock 关键词,即使当时不知道也会在踩过若干阻塞坑之后果断的加上 nolock,但这玩意有什么注意事项呢? ...

  6. Unity项目优化——Web版

    Unity项目优化--Web版 大家好,这是小黑第一次写文章(哈哈哈哈哈,好激动),我好好的写,有不对的地方多多指出. 首先呢是版本介绍,不过好像版本对于优化没有影响: 不过还是要告诉大家我用的版本: ...

  7. 阿里百秀后台管理项目笔记 ---- Day02

    来吧展示: step1: 动态获取用户头像信息 引入 jquery.js 文件 <script src="/static/assets/vendors/jquery/jquery.js ...

  8. 1月10日内容总结——linux前期知识储备,linux系统、目录、文件相关命令,vi和vim,目录结构

    目录 一.前期必备知识 二.系统运⾏命令 帮助指令 关机/重启命令 三.快捷方式命令 四.⽬录结构与文件相关命令 1.pwd显示当前目录绝对路径指令 2.cd切换到指定目录指令 3.mkdir创建目录 ...

  9. JavaScript: symbol 和 string key 取值用法

    '' 做 key 可以被 . 或者 [] 运算符取出 [""] 做 key 同样可以被 . 或者 [] 运算符取出 symbol 做 key 只能被 . 取出 [symbol] 做 ...

  10. python 取整方法

    1.向下取整: int() 2.向上取整:ceil() 使用ceil()方法时需要导入math模块,例如 3.四舍五入:round() 4.分别取 将整数部分和小数部分分别取出,可以使用math模块中 ...