• java基础知识复习(1):不建议参考,个人查缺补漏记录,不够完善、


    基本数据类型
    byte short int long
    8 16 32 64
    1 2 4 8
    float double
    16 32
    2 4
    char
    16
    2
    boolean
    8
    1

    引用数据类型
    类类型 接口类型 数组
    引用传递:把对象的地址值传过去,函数接收的原始值的首地址值。
    (传递的不是实际的对象是对象的引用,引用对象所作的改变会反映到所有的对象上)
    执行方法过程中,形参、实参的内容相同,指向同一块地址值,实际操作的是同一个数据

    String是引用类型,参数传递是引用传递,但参数改变,不影响原数据

    String是不可变类,参数改变时,指向的地址值发生了改变,但内容依旧是原来的内容 (被final修饰)

    包装器类型 是基本数据类型的引用数据类型

    进制转换
    41=32+8+1=2^5+2^3+2^0
    1111 1110 1001

    变量的生命周期
    一个变量被创建并分配内存空间开始,到这个变量被销毁并清楚其占用内存空间的过程。

    局部变量不会默认赋值,必须先赋值再使用。

    switch 表达式后面的数据类型只支持byte,short,char,int四种整型类型及他们的包装类类型,枚举类型,String 类型
    从上述看出,其实switch只支持int类型,其他的类型都是可以自动或提供相应算法来转换为int类型后,使用的switch语句!

    while语句 满足循环条件,开始循环

    break和continue都是用来控制循环结构的,作用都是停止循环。
    break:完全终结循环
    continue:跳出本次循环,进入下一次循环


    数组会对每一个值默认初始化
    数组的长度一旦确定之后便不能调整,我们可以通过复制数组的内容来改变数组的长度。System.arraycopy方法
    arraycopy(Object src,int srcPos,Object dest,int DestPos,int length);
    原数组,原数组开始位置,目标数组,目标数组开始位置,复制长度

    java的四个基础特点 抽象 封装 继承 多态
    封装:将类中的数据隐藏起来,主要属性的访问权限进行控制
    原则:将属性隐藏起来,通过公共方法访问私有属性。
    同类 同包 不同包的子类 不同包的非子类
    private .
    default . .
    protected . . .
    public . . . .
    public>protected>defalut>private

    方法的封装:将类中方法的具体实现隐藏 为了提高代码的重用

    抽象
    一个类中没有包含足够的信息来描述一个具体的对象,抽象类
    抽象类的特点:
    1。不能被实例化
    2。抽象类可以不含有抽象方法,可以含有一般方法。含有抽象方法的类一定是抽象类。
    3。抽象方法只有声明,没有方法体。
    4,继承抽象类的非抽象子类必须实现抽象类中的所有抽象方法。
    5。抽象类中构造方法和类方法(static修饰的方法)不能被声明成抽象方法。

    接口和抽象类的区别:
    接口侧重于方法 抽象类侧重于属性
    接口中只有抽象方法 或者defalut修饰的方法 抽象类中可以有普通方法
    抽象类是单继承 接口是多实现
    抽象类有构造器,接口无构造器
    接口中可以 成员变量:public static final 类型 必须被显式初始化
    成员方法:没有方法体 public abstract
    不能有任何形式的代码块


    继承:子类继承父类的特征和行为
    父子类同包 public potected default 可以继承
    不同包 默认修饰符不能被继承
    构造器不能被继承


    重写
    父子类,方法名 参数列表完全相同 权限不能被缩小 异常不能被放大
    静态方法不能被重写
    a. 父类的抽象方法可以被子类覆盖为非抽象方法: 子类实现父类抽象方法;
    b. 父类的抽象方法可以被子类覆盖为抽象方法: 重新声明父类的抽象方法;

    重载
    同一个类中,方法名相同 参数列表不同,不讨论返回值的多个方法,叫重载。

    多态
    同一个行为具有不同的表现形式 继承 重写 父类的引用指向子类的对象
    调用的是子类的方法
    使用多态的对象调用方法时:
    编译: 看父类中是否有这个方法/接口中是否有这个方法
    运行: 执行具体实现类中的方法


    static
    类加载时 先静态代码块 非静态代码块 再构造器
    static变量存在方法区,实例变量存在堆区
    【静态代码块用来给静态变量赋初始值】。

    public class B
    {
    public static B t1 = new B();
    public static B t2 = new B();
    {
    System.out.println("构造块");
    }
    static
    {
    System.out.println("静态块");
    }
    public static void main(String[] args)
    {
    B t = new B();
    }
    }
    静态域首先加载 :
    静态变量,静态方法,静态块。
    t1 t2 再静态块:
    构造块 构造块 静态块 构造块

    本类的静态方法可以用类名.方法名 方法名调用。(本类中为什么可以直接方法名调用静态方法?因为静态方法是程序启动时直接放在内存中)

    this super
    this();//代表无参构造方法
    1。this.方法名 调用本类中其他方法
    2。this.属性名 调用本类中属性名
    3。this(参数列表) 构造器 (构造方法之间可以互相调用,普通方法不可以调用构造方法)
    4。隐藏式调用 直接方法名调用

     this()和super()为构造方法,作用是在JVM堆中构建出一个对象。因此避免多次创建对象,同一个方法内只能调用一次this()或super()。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现【以此来创建对象】,防止异常。

  • 相关阅读:
    Centos 环境变量
    Centos 多线程下载工具-axel
    【Sprint3冲刺之前】项目可行性研究报告
    【Sprint3冲刺之前】TDzhushou软件项目测试计划书
    【Sprint3冲刺之前】日历表的事件处理和管理(刘铸辉)
    【Sprint3冲刺之前】项目完成时间表
    【Sprint3冲刺之前】敏捷团队绩效考核(刘铸辉)
    【每日Scrum】第八天(4.29) TD学生助手Sprint2
    【每日Scrum】第七天(4.28)Sprint2总结性会议
    需求分析
  • 原文地址:https://www.cnblogs.com/yxj808/p/14948947.html
Copyright © 2020-2023  润新知