修饰符

修饰符

权限修饰符

public 公共的 本类 /同包/子类/当前项目下的任意位置

protected 受保护的 本类 /同包/子类

默认不写 默认的 本类 /同包

private 私有的 本类

1.可以修饰:类/属性/方法/构造方法

(修饰类时只能使用public和默认不写的)

特征修饰符

finall 最终的不可改的

可以修饰

变量
如果定义变量时没有赋初始值,给遍历一次存值的机会(因为变量在栈内存空间内,没有默认值)
一旦遍历存储一个值后,相当于常量,再也不能改变了
如果修饰的变量是基本数据类型,则变量内的值不允许更改
如果修饰的变量是引用数据类型,则变量内的地址不允许更改
属性
属性是全局变量,存储在对内存的对象空间的一个空间
属性如果没有赋初值,有默认值存在
用final修饰后,必须给属性赋初值,否则编译报错
方法
修饰方法表示方法不能被重写
修饰类表示类不能继承

static 静态的

可以修饰属性/方法/块/内部类
静态元素在类加载时初始化,创建的非常早,此时没有创建对象
静态元素存储在静态元素区中,每一个类有一个自己的区域,与别的类不冲突,
静态元素只加载一次,全部类对象和类本身共享
由于静态元素区加载的时候,有可能没有创建对象,可以通过类名.的方式直接调用
可以理解为静态元素不属于任何一个对象,属于类本身

内存管理:栈内存创建开始用完就回收,堆内存提供GC回收,静态元素区GC无法管理,所以静态元素常驻内存

非静态成员(堆内存对象里)中可以访问静态成员(静态区)
静态成员中可以访问静态成员(都存在静态区里)
静态成员中不可以访问非静态成员
静态成员中不能使用this和super关键字

abstract 抽象的

可以修饰类/方法。

用abstract修饰的方法,只有方法的结构,没有方法执行体的方法叫做抽象方法
用abstract修饰的类叫做抽象类

特点

抽象类中不是必须含有抽象方法的,抽象方法必须放在抽象类或接口中

什么叫抽象类,抽象类的特点

可以含有一般的属性,private,static,final的属性
可以含有一般的方法,private,static,final的方法,允许含有抽象方法
可以含有一般块,静态块
可以含有构造方法,但不能通过调用构造方法直接创建对象,只能通过子类继承来使用

类之间的关系

抽象类 直接单继承 抽象类
抽象类 直接单继承 具体类
具体类 不能直接继承 抽象类,需要子类重写抽象方法或子类也变成抽象类	

native 本地的

Java源代码中看到native就已经再也看不见后续代码了
后续会调用其他的编程语言执行内存的操作,帮我们操作内存

transient 瞬时的短暂的,序列化时使用

synchronized 同步的,线程时使用

volatile 不稳定的

接口

不能含有一般的属性,只能含有公有的静态的常量

不能含有一般的方法,只能含有公有的抽象的方法

不能含有一般块和静态块

没有构造方法,不能创建对象,只能通过子类多实现执行操作

抽象类直接多实现接口
具体类不能直接多实现接口
接口直接多继承接口

类的加载顺序问题

在这里插入图片描述

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值