Java之JVM内存分类&static关键字&游离块&静态游离块&设计模式(单例模式)&final关键字知识点整理

JVM内存分类

  1. 程序计数器内存:记录程序执行的行号,是和线程相关的,每当创建一个线程就会有一块程序计数器内存。
  2. 堆内存 :是用来存储new出来的对象。堆内存中的对象不是共享的,意味着每new一个对象就会创建一个新
    的对象,对象是没有大小限制的。垃圾回收器监测堆内存中的对象,如果对象没用了,垃圾回收器对其进行
    回收。
  3. JVM栈内存:JVM栈内存是一个先进先出的数据结构,每执行一个方法时,就会把方法的栈帧压入到JVM栈内
    存中,当执行完这个方法,就把栈帧从JVM栈内存中弹出。
  4. 本地方法栈内存:当Java程序调用其他语言的程序时,其他语言方法在执行时使用的是本地方法栈内存。
  5. 方法区 :把类加载到方法区内存中。
    解释 NullPointerException 空指针异常,当调用一个对象的方法或使用一个对象属性时,JVM会有一个指针
    指向这个对象,方法中的this就是这个对象,属性是哪个对象的。如果这个对象是null,就会抛出空指针异
    常。
    换句话,也就是调用了一个空引用的属性或方法,就会抛出空指针异常。

static关键字
static是静态的意思,staitc修饰属性、方法、内部类、游离块,静态的属性和方法是属于类的,而不是对象的;静态属性对象之间是共享的。
可以通过类名直接调用静态的属性和方法了,不建议使用对象调用了

语法要求:在静态的方法中不能使用非静态的属性和方法,以及this关键字,在非静态的方法中可以调用任何的属
性和方法

游离块的概念
在类中可以定义游离块

public class Person extends Animal{
    
//游离块(初始化块) 
{
   
 //当调用构造器时,在执行构造器中代码前先执行游离块 
 //当每个构造器都要初始化一下相同的代码,就可以写在游离块中 
 System.out.println("执行了Person的游离块"); }
 public Person(){
    
 System.out.println("执行了Person的构造器"); 
 }
 public static void method(){
    
 }
 public static void main(String[
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值