java基础

成员变量和局部变量

1,在内存中的位置不同

成员变量:在类中定义

局部变量:在方法中定义或者方法的参数

2,在内存中的位置不同

成员变量:在堆内存(成员变量属于对象,对象进堆内存)

局部变量:在栈内存(局部变量属于方法,方法进栈内存)

3,生命周期不同

成员变量:随着对象的创建而存在,随着对象的销毁而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

4,初始化值是不同

成员变量:有默认初始化值引用类型默认为空

局部变量:没有默认初始值必须定义赋值然后才能使用

注意:局部变量名称可以和成员变量名称一样在方法中使用的时候采用的是就近原则

1 构造方法名称与类名相同没有返回值声明

2 构造方法用于初始化数据

3 每一个类中都有一个默认的无参构造方法

4 如果类中有显式的构造方法那么默认构造方法将无效

5 如果有显式的构造方法还想保留默认的构造方法需要显式的写出来

6 构造方法可以有多个但参数不一样称为构造方法的重载

7 在构造方法中调用另一个构造方法使用this(......)该句代码必须在第一句

8 构造方法之间的调用必须要有出口

9 给对象初始化数据可以使用构造方法或者setterr方法通常情况下两者都会保留

10 一个好的编程习惯是要保留默认的构造方法为了方便一些框架代码使用反射来创建对象

1、继承是发生在多个类之间

2、继承使用关键字extends

3 、Java只能单继承,允许多层继承

4、是被继承的类叫父类,继承父类的类叫子类

5、在父类中的非私有属性和方法可以被指类继承

6、构造方法不能被继承

7、创建对象会调用构造方法,调用构造方法不一定就是创建该类对象

8、实例化子类对象会先调用父类的构造方法,如果父类中没有默认的构造方法,那么子类必须显式地通过super来调用父类的带参构造方法,super也只能在纸类构造方法中的第一句

  1. 定义一个接口使用interface关键句

  2. 在一个接口中只能定义常量抽象方法jdk 1.8之后可以定义默认的实现方法

  3. 接口可以继承多个接口

  4. 一个具体类实现接口使用implements关键字

  5. 一个类可以实现多个接口

  6. 抽象类实现接口可以不实现接口的方法

  7. 在接口中定义的方法设有声明访问修饰符默认为public

  8. 接口不能有构造方法

  9. 接口不能被实例化

  10. 抽象类可以没有抽象方法有抽象方法的类必须是抽象类

  11. 非抽象类继承抽象类必须实现所有抽象方法

  12. 抽象类可以继承抽象类可以不实现父类的抽象方法

  13. 抽象类可以有方法实现和属性

  14. 抽象类不能被实例化

  15. 抽象类不能声明为Final

  16. 抽象类可以有构造方法

单例设计模式

简单工厂模式

抽象类应用---模板方法模式

接口应用---策略模式

静态代理模式

适配器模式

装饰者模式

生产者与消费者应用案例

相关推荐
栈帧之外15 分钟前
【C++】STL之set
开发语言·c++
霸道流氓气质1 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
AOI小白新手上路1 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库
catchadmin1 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
jimy12 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
狗凯之家源码网2 小时前
纯 PHP+MySQL 应用市场系统源码实测!
开发语言·mysql·php
dishugj3 小时前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
苜蓿muxu3 小时前
常用代码命名规范
java
geovindu3 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模