## 1.jdk, jre, jvm分别是什么,有什么关系
jdk是Java开发工具包
jre是java运行环境
jvm java虚拟机
for确定循环次数
while
先判断再执行不确定循环次数
do-while先执行再判断不确定循环次数
外层循环变量变化一次内层循环变量变化一轮
break跳出整个switch或者循环结构
continue跳出本次循环继续执行下-次
不对,跳出switch
byte short int char String枚举
equals方法
形参:定义方法的时候书写的参数,规定了参数的个数类型顺序
实参:调用方法的时候传入的参数,必须遵循形参的约定
值传递传递的是值的拷贝
所以方法中对参数的操作不会影响原来的变量
引用传递传递的是地址
所以方法中对参数的操作会影响原来的变量
toString将数组作为字符串打印
copyOf复制数组
sort升序排序
1 delete 可以加 where 条件 ,truncate 不能加
2. truncate 删除 效率高一点点
3. truncate 删除 不能回滚,delete 可以
4. truncate 删除 没有返回值 delete 有返回值
5 假如删除的表 有自增序列 ,使用delete 删除,自增序列从删除的断点开始
truncate 会使自增序列从头开始
使用循环依次复制元素
System.arraycopy(原数组,起始,新数组,起始,长度);
Arrays.copyOf(原数组,长度);
clone
clone方法是从Object类继承过来的,基本数据类型(String,boolean,char,byte,short,float,double.long)都可以直接使用clone方法进行克隆,注意String类型是因为其值不可变所以才可以使用。
类是对象的抽象
对象是类的具体
属性是指一类事物共有的特征,方法是一类事物共有的行为
访问修饰符+返回值类型+方法名
形参,形式参数,在定义方法的时候书写的参数,规定了参数的个数,类型,顺序
实参,实际参数,在调用方法的时候传入的参数,必须遵守形参的规定
使用new关键字创建对象
通过对象名+ .属性名/方法名
可以
不能直接访问,必须先new对象
自然界中一切事物都可以分析出特征和行为,编写为类,由类衍生为对象
封装的作用降低程序的耦合度提高程序的安全性使用private修饰提供两个公开的方法-个取值getter赋值setter
get取值set赋值
public String getName(){
return name;
public void setName(String name){
this.name = name;
}
域名倒置全部小写不能以点开头或者结尾可以包含点每包含-个点表示一个新的子文件夹
this表示当前对象
访问属性
访问方法
访问构造必须写在构造方法的第一句
静态与静态互相直接访问
静态访问非静态先实例化才能访问
非静态访问静态直接访问
因为String是引用数据类型,使用==比较的为地址,String类使用equals比较的是内容是从Object类继承来的将字符串转换为char数组,遍历比较元素
父子类方法名相同
参数列表相同
返回值相同
或者是其子类访问权限不能严于父类静态方法
可以被继承但是不能被重写
非静态方法不能重写为静态方法
不能抛出比父类更多的异常
= =比较基本数据类型比较值= =比较弓|用数据类型比较的是地址equals本身也比较地址,但是我们可以重写按照我们自己的比较规则来比较String类就是对equals进行了重写,重写为比较内容
父类作为形参子类作为实参.父类作为返回值实际返回子类类型
类型转换异常ClassCastException
错误: Food food = new Food(); Cake cake = (Cake)food;Food f = new Cake(); Cake C = (Cake)f;
向.上转型可以调用子类重写父类的方法和父类访问权限允许的方法不能调用子类的独有的方法
向下转型可以调用子类重写父类子类独有的
= =比较基本比较值==比较弓|用比较地址equals本身也比较地址,但是我们可以重写按照我们自己的比较规则比较String类重写为比较内容
属性,在内存中只有- -份拷贝,可以通过类名直接访问,不需要new对象方法,可以通过类名直接访问,不需要new对象代码块,随着类的加载而执行,只执行一次
判断当前实例是否属于某个类型是的话返回true否返回false
1抽象类不能直接new对象,必须new子类
2.子类必须重写父类的抽象方法,除非子类也是抽象类
3抽象类可以书写普通属性,普通方法,构造方法用于给子类使用
4.没有抽象的静态方法和构造方法
5.多态的使用方式与之前一致
类定义成abstract类有意义吗?
没有必要的! ! !无意义的! ! !
1.71.接口中所有的方法是全局抽象方法
2.接口中属性都是全局静态常量
3.实现类必须实现接口中所有的方法,除非子类是抽象类或者接口
4.接口可以继承多个接口
5.-个类可以实现多个接口
6.接口不能new对象,必须通过new实现类创建对象
1.81接口中可以书写普通方法,在返回值之前使用default关键字修饰2.接口可以书写静态方法
1.接口中默认都是抽象方法,抽象类可以写普通方法
2.接口中不能有普通属性,抽象类可以
3.接口中不能有构造方法,抽象类可以
4.只能继承一个抽象类,可以实现或者继承多个接口
重载:方法名相同,参数列表不同,访问权限返回值无关重写:方法明相同,参数列表相同,返回值相同或者是其子类,访问权限不能严于父类,不能抛出比父类更多的异常,静态方法不能被重写
1.父类作为形参2.父类作为返回值向下转型使用instanceof关键字判断
访问实例方法: new对象,通过对象名加点访问访问静态方法:本类直接方法,其他类通过类加点访问
封装,属性私有,方法公开。将类的信息隐藏在类的内部,不让外部直接访问,而是提供公开的方法给外部访问。提高程序的安全性,降低程序的耦合度。继承,将一些类共有的新提取到父类中,子类继承父类,实现代码的重用。多态,同一段代码,因为参数或者返回值的不同,产生不一-样的效果。
重载:同类,名称相同,参数列表不同,返回值访问修饰符无关重写:父子类,名称相同,参数列表相同,返回值相同或者是其子类,访问权限不能严于父类,不能抛出比父类更多的异常,静态方法不能被重写
接口相当于一项能力, -个头衔,只关注约定,不关注具体实现抽象类中可以写属性,普通方法,构造方法,接口中不能写
因为抽象类中可以使用属性描述事物,而接口不能,因为接口中默认都是全局静态常量