JavaSE复习笔记(持续更新)

本文介绍了Java中的面向对象特性,包括this的作用、构造方法的使用以及标准JavaBean的定义。同时,讨论了内存分配的堆、栈和方法区,数据类型的差异,以及字符串操作的重点。此外,还涵盖了静态变量和方法、main方法、静态代码块以及单例设计模式的饿汉和懒汉实现。最后,文章提到了继承的基本概念和权限修饰符。
摘要由CSDN通过智能技术生成

面向对象

一、就近原则

二、this的作用

  • 区分成员变量和局部变量

三、构造方法

  • 方法名与类名完全一致
  • 没有返回值类型,连void都没有
  • 不能有return
  • 如果没写任何构造方法,虚拟机就会给我们加一个默认的空参构造方法
  • 如果已经定义了任意一种构造方法,系统将不提供默认的构造方法
  • 无参和全部参数的构造方法一般都要写,标准JavaBean这俩都要有
  • 构造方法可以重载
  • 创建对象时,虚拟机会自动调用构造方法,作用是给成员变量进行初始化

四、标准JavaBean

  • 用来描述一类事物的类

五、Java内存分配

  • 堆、栈、方法区

六、数据类型

  • 基本数据类型

    1. 数据值是存储在自己的空间中
    2. 赋值给其他变量,也是赋的真实的值,其他变量修改并不会影响自己
  • 引用数据类型

    1. 数据值是存储在其他空间中,自己空间存储的是地址值
    2. 赋值给其他变量,赋的是地址值

七、this的本质

  • 代表方法调用者的地址值

八、成员变量与局部变量

  • 位置不同
  • 前者有初始值,后者没有
  • 前者在堆中,后者在栈中
  • 前者随着对象创建而存在,消失而消失;后者随方法调用而存在,随运行结束而消失
  • 整个类有效,方法中有效

字符串

一、 String注意点

  • 字符串的内容是不会发生改变的,它的对象在创建后不能被更改
  • 利用字符数组字节数组创建字符串对象
  • StringTable(串池):当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在,不存在——创建新的,存在——复用

二、字符串比较

  • **==**号的作用:
    1. 基本数据类型比较的是数据值
    2. 引用数据类型比较的是地址值
  • boolean equals():比较字符串的具体值
  • boolean equalsIgnoreCase():比较字符串的具体值,并忽略大小写(英文状态下)
  • 键盘录入得到的字符串是通过new出来的

静态static

一、静态变量(类变量)

  • 被该类所有对象共享
  • 不属于对象,属于类
  • 随着类的加载而加载,优先于对象存在
  • 推荐用类名调用

二、静态方法(类方法)

  • 多用在测试类和工具类中
  • 推荐用类名调用
  • 静态方法中,只能访问静态
  • 非静态方法可以访问所有
  • 静态方法中没有this关键字

三、main方法

  • main方法是类方法
  • 虚拟机通过类名直接调用main方法

四、静态代码块

  • 类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次
  • 完成类的初始化,例如:对类变量的初始化赋值

五、单例设计模式

  • 确保一个类只有一个对象

  • 饿汉单例模式写法

    • 把类的构造器私有
    • 定义一个类变量记住类的一个对象
    • 定义一个方法,返回对象
    public class A {
        private static A a = new A();
        
        private A() {}
        
        public static A getInstance() {
            return a;
        }
    }
    
  • 懒汉单例模式写法

    • 把类的构造器私有
    • 定义一个类变量用于存储对象
    • 提供一个类方法,保证返回的是同一个对象
    public class B {
        private static B b;
        
        private B() {}
        
        public static B getInstance() {
            if (b == null) b = new B();
            return b;
        }
    }
    

继承

一、特点

  • 子类能继承父类的非私有成员(成员变量,成员方法)
  • 子类的对象是由子类、父类共同完成的

二、权限修饰符

修饰符在本类中同一个包下的其他类任意包下的子类任意包下的任意类
private
缺省
protect
public

protect:可以任意包下的子类访问,但不是说子类对象可以访问

三、Object类

  • Java中所有类都默认继承该类

四、注意事项

  • Java是单继承的,不支持多继承,但支持多层继承
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值