java 类,方法,变量,对象

1.Java运行环境

JRE(Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行 Java 程序。JRE 是运行 Java 程序所必须环境的集合,包含JVM标准实现及 Java 核心类库。它包括 Java 虚拟机、Java 平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit) 又称 J2SDK(Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)和运行环境(提 供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。如果你下载并安装了 JDK,那么你不仅可以开发 Java 程序,也同时拥有了运行 Java 程序的平台。JDK 是整个 Java 的核心,包括了Java 运行环境(JRE),一堆 Java 工具 tools.jar 和 Java 标准类库 (rt.jar)。

2.Java基础概念

2.1.类,方法,变量,对象

(1)类:类是一个模板,它描述一类对象的行为和状态。

如:在类中可以定义变量,方法

public class Animal {}

(2)方法:写在类中,在方法中,可以按照逻辑去编写,比如动物可以奔跑,我们可以定义run的方法。

如:

public class Animal {

    public void run(){
 
        System.out.println("跑起来,孩子们");
 
    }
}

(3)变量:可以写在类中,方法中,写在不同的位置,不同类型,在类启动的时候,加载的顺序,以及回收的机制是不一样的。

        (3.1)变量的声明方法:

                数据类型 + 变量名:这里以int 类型,其他类型类似

单个变量声明单个赋值多个变量声明(逗号隔开)多个赋值
int aint a= 10int a,b,cint a=1,b=2,c=3

        (3.2)变量的类型,位置

类变量(静态变量)实例变量局部变量
类型说明

独立于方法之外的变量,用 static 修饰,

加上final,变成常量

声明在一个类中,独立于方法之外的变量,不过没有 static 修饰。类的方法中的变量(方法、构造方法或者语句块中)
加载及回收1.无论一个类被创建了多少对象,只拥有类变量的一份拷贝,静态变量在第一次被访问时创建,在程序结束时销毁1.当类被实例化时,即创建一个对象,实例变量就会创建,当对象销毁时,则实例变量销毁

1.当方法、构造方法或者语句块执行时被创建,当执行完后被销毁

2.在栈上分配

使用

1.一般用public修饰,方便类的调用者调用,

2.数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null,

3.变量的值可以在声明的时候指定,也可以在构造方法中指定,也可以在静态语句块中初始化

1.访问修饰符能用于局部变量,通过不同的访问修饰符,能够控制实例变量的访问权限

2.不需要声明,可以直接使用。实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。

3.变量的值可以在声明时指定,也可以在构造方法中指定;

1.访问修饰符不能用于局部变量,即不能用 public/static 等来修饰

2.没有默认值,声明后必须初始化才能使用

 (3.3)详述静态变量和实例变量的区别

静态变量

实例变量

局部变量

定义位置

 在类中,方法外

在类中,方法外

方法中,或者方法的形式参数

初始化值

有默认初始化值

有默认初始化值

无,先定义,赋值后才能使用

调用方式

对象调用,类名调用

对象调用

随方法产生,方法结束后销毁

存储位置

方法区

堆中

栈中

生命周期

与类共存亡

与对象共存亡

与方法共存亡

别名

类变量

成员变量

 1.类变量属于类,当类加载后,类变量会被分配空间,使用是,无需创建对象直接就可以使用,通过类名就可以调用静态变量。

实例变量属于某个对象,所以需要创建类的对象才能调用;

2.类的静态变量被所有对象共享,任何对象都可以访问类的静态变量,不管是哪个对象修改了静态变量的值,对于其他对象来说也是改变了,

实例变量来说的,是属于某个对象,其中一个对象改变了值,对其他对象来说是没有进行改变的

class A {
    public static int staticInt=1;
    public int memberInt=1;
    public A(){
        staticInt+=1;
        memberInt+=1;
    }

}

class B {
    public static String staticString="我是声明赋值的静态小变量,haha";
    static {
        staticString="我是静态代码块中的大变量,lala";
        System.out.println(staticString);
    }
    public B(){
        staticString="我是构造方法中赋值的静态中变量,erer";
        System.out.println(staticString);

    }

}
public class runVariables {
    public static void main(String[] args) {
        System.out.println("用类名直接调取类变量:"+A.staticInt);
        A aa=new A();
        System.out.println("通过创建对象:类变量为:"+A.staticInt+",成员变量为:"+aa.memberInt);
        A aa2=new A();
        System.out.println("通过再创建第二个对象:类变量为:"+A.staticInt+",成员变量为:"+aa2.memberInt);
        System.out.println("------------------------------------------------");
        System.out.println("静态代码块作用啦!!!!!:"+B.staticString);//在加载类的时候,静态代码块起作用
        B bb=new B();//创建对象的时候,读取构造方法中的值
        System.out.println("经过静态代码块和构造方法塑造后,猜猜最后我是谁:"+B.staticString);

    }
}

 运行结果为:

用类名直接调取类变量:1
通过创建对象:类变量为:2,成员变量为:2
通过再创建第二个对象:类变量为:3,成员变量为:2
------------------------------------------------
我是静态代码块中的大变量,lala
静态代码块作用啦!!!!!:我是静态代码块中的大变量,lala
我是构造方法中赋值的静态中变量,erer
经过静态代码块和构造方法塑造后,猜猜最后我是谁:我是构造方法中赋值的静态中变量,erer

待续-----

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值