Java基础
------------恢复内容开始------------
1、数组和对象作为参数传递实际传的是地址值
2、对象的内存变化
3、arrayList
3.1<>代表泛型,装在集合中的元素全是统一的声明类型,只能是引用类型
3.2基本类型和包装类对应
byte Byte short Short int Integer char Character float Float double Double boolean Boolean
3.3常用方法
public boolean add(E)结果都是true
public <E> get(index)
public <E> remove(index)
public int size()
4、接口 Java在接口中可以定义的方法:
1)常量
2) 抽象方法
3)静态方法
4)默认方法(用于对接口方法的扩充) 在接口中直接实现方法 接口实现类可以直接调用,也可以覆盖重写
5)私有方法
5、多态 对象的多态性 父类的引用指向子类的对象
成员变量:看左边 成员方法:看new的谁
向上转型不能访问子类的特有方法 需要还原成向下转型 可以用instanceof判断是不是某个类的对象
6、泛型
泛型类 public class<E>
泛型方法 public <E> void method()
泛型接口 public interface GenericInterface<E>
7、map集合的遍历方式
1) entrySet() 返回set遍历set
获取set集合:map.entrySet()
获取迭代器:set.Iterator()
获取Entry对象:map.Entry<> entry=it.next()
获取键和值:getKey(),getValue()
2) 必须重写equals和hashcode方法
keySet()
value=map.keySet()
map.get(value)
8 ==和equals区别 ==比较的是值类型 equals比较的是引用对类型 值类型:存储在内存中的栈类型 引用类型变量在栈中存放的堆地址
栈和堆的区别:
1.栈内存存储的是局部变量而堆内存存储的是实体;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收
9 反射 将类的各个组成部分封装为其他对象
Java编译经历的三个阶段 :1 .java文件生成.class字节码阶段 2 类加载阶段 将字节码封装成class对象 包括Filed成员变量 Constructor构造器 Method成员方法 3 运行时阶段
获取class类对象的三种方法 1 class.forName() 2 类.class 3 对象.getClass()
Class对象功能:
1、获取功能:① 获取成员变量:getDeclaredField(String name) ②获取构造函数 getDeclaredConstructor(Class类对象) ③ 获取成员方法 getDeclaredMethod(class类对象)
成员变量 :①get(Object) ② set(obj,value) ③setAccessible(True)暴力反射
构造方法创建对象: getConstructor.newInstance()
成员方法的执行:getMethod.Invoke()
10 注解 说明程序给计算机看 作用:1、生成doc文档 2、代码分析 3、编译检查
JDK预定义的注解:@override:是否继承自父类 @Deprecated :是否过时 @SuppressWaning 压制警告 参数传递all
自定义注解 :本质上是一个接口 继承Annotation接口 格式:public @interface 注解名称{}
接口中的抽象方法 1 属性的返回值类型 1)基本数据类型 2)字符串 3)枚举 4)注解 5)以上类型数组 2 使用时给属性赋值 ①使用default关键字时 可以不进行赋值 ②只有一个属性需要赋值 且属性名是value时 可以省略
程序中使用注解 :1、获取注解定义位置的类对象 2、getAnnotation()获取指定的注解 3、调用注解中定义抽象方法
------------恢复内容结束------------