(1)面向对象 (代码块,import关键字)

静态变量

静态成员变量和普通成员变量:
1 所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
2 内存中的位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
3 内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
4 调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用

代码块

局部代码块

1 声明方式和出现的位置
声明方式:{ },出现在方法体中
2 执行时机:
随着方法的执行而执行。
出了局部变量的作用域,该变量就会被回收
优点:限定变量生命周期,及早释放,提高内存利用率(其实在实际开发中没什么卵用(可读性考虑))

构造代码块

1 声明方式和出现的位置
声明方式:{ },出现在类中方法体之外
2 执行时机:
每次创建对象的时候执行
a 构造代码块和构造方法都是在创建对象的过程中执行的,构造代码块先于构造方法执行
3 使用场景:
使用构造代码块,来初始化成员变量的值
在构造方法中同样的部分,放入构造代码块中,每次调用的执行而且是先执行
4成员变量初始化有三种(其实已经申请内存,赋默认初值后了(堆中))
顺序:初始化语句(谁在前先执行谁)=构造代码块>构造方法

静态代码块

1 声明方式和出现的位置
声明方式:static{},出现在类中方法体之外
2 执行时机:
随着类加载而执行,因为在一个类中,在一个jvm中,最多且只会加载一次,所有静态代码块也只执行一次
3 使用场景:最多只会执行一次的代码(数据库的时候会用到)
静态代码块也是静态上下文的一种

同步代码块(多线程的时候再说)

package

使用package声明可以使文件中定义的类成为指定包的成员
声明方法:package 包名;中间用 .分割表示子包
注意事项:
并非每个java文件都必须有package关键字指定,该源文件中的类所属的包,没有指定的话,则属于默认包

import

1.在类名前面加上类所属的包名,中间用句点“.”分隔,称为类的完全限定名(Full Qualified Name),简称类的限定名,也就是包名.类名。在Java中通过类的全限定名来确定唯一的一个类

当在类体中使用了与当前类不同包的类名时,编译器编译时因为无法找到该类的定义而失败,有两个解决办法:
使用不同包类的完全限定名(很麻烦)
使用import声明,为编译器提供该类的定义信息
注意事项:
a.import声明一般紧跟在package声明之后,必须在类声明之前,其基本语法如下:
import <类的完全限定名>;
b.Java语言核心包java.lang包中的类将被隐式导入,可以直接使用其中的类
c.import声明提供了一种包的智能导入方式:
import <包名>.*;
包中的类将根据需要导入,不能嵌套导包,避免使用多条import声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值