JAVA复习小点点儿

复习JAVA知识的小漏洞

1. 语句块
由{}构成在方法里。语句块内定义的变量只能属于自己,外部不能使用。语句块外部的变量在语句块内不能重复定义但可以使用,外部不能使用语句块内变量。

public class Testyujukuai {
    public static void main(String[] args) {
        int n=0;
        double d=1.28;
        {//语句块
           //int n=100;//编译ERROR:不能重复定义!
            n=20;//内部可以用外部的
            String s="gggg";
        }
        //s="bbb";//ERROR:外部不能用内部
    }
}

2.方法重载小点点儿
条件:形参类型、个数、顺序不同
只有返回值不同不可重载、形参名称不同不能重载!
3.JAVA虚拟机内存
在这里插入图片描述
JAVA虚拟机内存有三个区域:虚拟机栈Stack、堆Heap、方法去method area
(1)栈的特点:
①栈描述方法的内存模型,每个方法被调用都会创建一个内存栈帧来存储局部变量、操作数、方法出口,对象地址等。
②JVM为每一个线程创建一个栈,存放该线程的执行方法的信息。
③栈属于线程私有、不共享。
④方法执行完就会:先进后出,后进先出。
⑤栈是连续的内存空间,由系统自动分配,速度快。
(2)堆的特点:
①堆用于存储创建好的对象和数组(数组也是对象)。
②JVM只有一个堆,所有线程共享。
③堆是不连续的空间,灵活分配,速度慢。
④堆被所有线程共享,因此在堆的区域上,会被垃圾回收器进一步划分。
(3)方法区:
①方法区实际也是堆,只是用于存储类、常量相关的信息!有常量池,存放文本字符串、final常量。
②JVM只有一个方法区,各个线程共享。
③方法区用来存放永远不变的内容,类信息、静态变量、字符串常量。
**4.**静态变量、静态方法
①static方法中不可以直接访问非静态成员。
②static变量只有一份。
③属于类、被类所有实例对象共享、在载入时被初始化。
④一般用类名.类变量/方法来调用。
在这里插入图片描述
5.静态初始化块
构造方法用于对象的初始化!静态初始化块用于类操作的初始化,静态初始化块中不能直接访问非static成员。
静态初始化块的执行顺序:
先执行Object类的静态初始化块,再向下执行子类的静态初始化块。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值