Java学习

Java学习

Java基础

  1. java是强类型的语言:

    • 所有的变量必须先声明再使用;
    • 指定类型的变量,只能装对应类型的数据;
    • 强类型的语言更安全/健壮;
  2. Java类型:

    • 基本数据类型:

      ​ 整型:byte short int long;

      ​ 浮点型:float double;

      ​ 字符型:char;

      ​ boolean:boolean;

    • 引用数据类型:数组 类 接口 枚举

  3. 基本数据类型和引用数据类型的区别:

    • 基本数据类型的赋值:直接将该值存入变量所在内存;
    • 引用数据类型的赋值:将该对象所在第一个内存单元的编码(内存地址)存入变量,引用类型变量所指的对象在堆里。
  4. 方法的传参机制:

    • 值传递:传入的只是参数的副本,并不是参数本身;
    • 如果传递的参数是引用类型,参数的副本与参数本身指向同一对象,因此方法通过参数副本修改对象时,会影响参数本身所指向的对象;
  5. java程序的内存可分为:

    • 堆(heap)内存:Java虚拟机启动时分配的一块永久的 很大的内存区,堆内存只有一个;(new出来的东西,都在堆内存)
    • 栈内存:每次方法运行分配一块临时很小的内存区,每个方法都有自己对应的栈区;(在方法中定义的局部变量(不管是什么类型),都放在对应的方法栈,方法结束后,对应栈区就会被回收。)
  6. 数组声明:

    java
    //第一种
    int[] iArr = new int[]{20,30,40,50};
    //第二种
    int[] iArr2 = new int[4];

  7. 遍历数组(foreach):只能访问数组元素的值,不能修改。

    java
    for(int it : iarr) {//it表示数组元素
    System.out.println(it);
    }

  8. Java的3,4,5:

    • 3:类 接口 枚举
    • 4:4个修饰符–>(private | public | protected) final static abstract
    • 5:5大成员:–>成员变量 方法 构造器 内部类 初始化块

面向对象

  1. 类:某一类对象的统称,相当于是一个概念性的(不具体存在的东西);

    对象:现实中所能接触的各种“东西”。

  2. 类体:成员变量 方法 构造器 内部类 初始化块;

    修饰符:public final | abstract

    (1). 成员变量(field):

    • [修饰符] 类型 变量名 [ = 初始值];
    • 修饰符:(public | protected | private) final static transient(序列化)
    • 类型:任意基本类型或引用数据类型
    • 成员变量用于描述该类或对象的状态,因此通常建议用名词;项目中只定义感兴趣的状态。
    • 变量:
      • 成员变量(类里定义):可以不需要显式指定初始值,系统可以自动分配初始值;
        • 类变量:类变量属于类本身,当系统初始化类时,就会为类分别分配空间,并执行初始化。每个类都只能有一个类变量;
        • 实例变量:系统每次创建对象时,都需要为该对象的实例变量分配空间,并初始化,即程序中有几个对象,系统就会为这些对象的实例变量分配对应空间。
      • 局部变量(方法中定义):必须显式指定初始值,否则编译会报错;
        • 形参
        • 普通的局部变量
        • 代码块的局部变量

    (2). 方法(method):

    [修饰符] 返回值类型 方法名(形参列表) {
    //方法体;
    }
    • 修饰符:(private | public | protected) (final| abstract) static;
    • 方法:用于描述该类或对象的行为,因此通常为动词。项目中,只定义项目感兴趣的行为;

    (3).构造器(constructor):

    [修饰符] 构造器名 (形参列表) {
    
    }
    • 作用:new调用构造器来创建对象(构造器必须用new调用,这样可以返回一个初始化完成的对象)不能用static修饰;如果你没有为类写构造器,系统会默认为该类提供一个无参的构造器;
    • 构造器名一定要与类名相同;
  3. 面向对象的三大特征:封装 继承 多态

    (1). 封装:(合理的隐藏,合理的暴露)隐藏内部实现细节,将一些操作界面暴露出来,如果通过暴露的界面来操作对象,该对象的内部状态不会被破坏。

    • 包:不同公司或不同项目可能定义同名的类,为了解决类名冲突的问题,Java引入了“包”的机制;包的本质就是在类名添加一个前缀;(推荐用公司的域名倒写,再加项目名)

    • 访问控制符:public private protected 不写

      • private(私有):类访问权限,该修饰符修饰的成员只能在该类中被访问;
      • 不写(包访问权限):该修饰符修饰的成员,只能在该类或者该类所在的包内被访问;
      • protected(子类访问权限):该修饰符修饰的成员,只能在该类或该类所在的包以及该类的子类中被访问;
      • public(公共):该修饰符修饰的成员,可以在任意地方被访问;
private不写protectedpublic
当前类
同一个包不可
子类不可不可
任意不可不可不可

(2). 继承:是一种类与类之间的关系,是一种由一般到特殊的关系,子类是一种特殊的父类(子类:小类;父类:大类);

   [修饰符] class 类名 extends 父类 {

   }
  • 继承的作用:代码复用(站在巨人的肩膀上);
  • Java是单继承的,只能有一个直接父类;如果不显式的继承父类,Java默认是继承Object类

    (3). 多态:同一类型的多个实例,在执行同一方法,呈现出多种的行为特征;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值