专栏首页Java患者Java基础知识(二)

Java基础知识(二)

static 关键字

  • 特点
    • 随着类的加载而加载
    • 优先于对象存在
    • 被类的所有对象共享
  • 注意事项
    • 静态方法:
    • 非静态方法:静态变量和成员变量的区别
    • 成员变量 : 只能访问静态变量
    • 成员方法 : 只能访问静态成员方法
    • 成员变量 : 可以是静态的,也可以是非静态的
    • 成员方法: 可以是静态的成员方法, 也可以是非静态的成员方法
    • 因为静态是随着类的加载而加载,this是随着对象的创建而存在
    • 静态比对象先存在
    • 在静态方法中是没有this关键字的,
    • 静态方法只能访问静态的成员变量和静态的成员方法
  • 所属不同:
    • 静态变量属于类,所以也称为类变量
    • 成员变量属于对象,所以也称为实例变量(对象变量)
  • 内存中位置不同:
    • 静态变量存储于方法区的静态区
    • 成员变量存储于堆内存
  • 调用不同
    • 静态变量可以通过类名调用,也可以通过对象调用
    • 成员变量只能通过对象名调用

main方法解释

  • public被jvm调用,访问权限足够大
  • static被jvm调用,不用创建对象,直接类名访问
  • void被jvm调用,不需要给jvm返回值
  • main一个通用的名称,虽然不是关键字,但是被jvm识别
  • String[] args 以前用于接收键盘录入的

代码块

在Java中,使用{}的代码被称为代码块

根据其位置和声明的不同,可以分为局部代码块,构造代码块, 静态代码块,同步代码块

局部代码块

  • 在方法中出现,限定变量生命周期,及早释放,提高内存利用率

构造代码块(初始化块)

  • 在类中方法外出现,多个构造方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

静态代码块

  • 在类中方法外出现, 并加上static修饰,用于给类进行初始化,在加载的时候就执行,并且只执行一次

代码陈述

class Student {
 static {
  System.out.println("Student 静态代码块");
 }
 
 {
  System.out.println("Student 构造代码块");
 }
 
 public Student() {
  System.out.println("Student 构造方法");
 }
}

class Demo2_Student {
 static {
  System.out.println("Demo2_Student静态代码块");
 }
 
 public static void main(String[] args) {
  System.out.println("我是main方法");
  
  Student s1 = new Student();
  Student s2 = new Student();
 }
}
 Demo2_Student静态代码块
    我是main方法
    Student 静态代码块
    Student 构造代码块
    Student 构造方法
    Student 构造代码块
    Student 构造方法

本文分享自微信公众号 - Java患者(gh_3a16ffdedb6a),作者:Zero

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java基础知识(二)

    ​ 面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Sma...

    shimeath
  • 【趣学程序】java基础知识(二)

    趣学程序-shaofeer
  • Java基础知识大全(二)

    二、面向对象 1、面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象, ...

    墨鬓
  • Java基础知识讲解(二)

    其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

    Weaster
  • Java基础知识(十二)--多线程通信

    用户7386338
  • 第一阶段-Java基础知识:【第二章 Java基础语法知识】

    在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的“潜规则”,通过你对命名的书写,别人一眼就能看出你是不是一个“...

    BWH_Steven
  • (建议收藏)Java基础知识笔记二(详细)

    2,使用步骤: (1)导包:importjava.util.Random (2)创建对象:Random r=new Random(); (3)获取随机数:int...

    用户7656790
  • JAVA基础知识

    Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。 Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。  Java 被设计成允许应用程...

    用户3003813
  • java基础知识

    Vector、Stack、HashTable、ConcurrentHashMap、Properties

    仇诺伊
  • Java 基础知识点(必知必会其二)

       1.如何将数字输出为每三位逗号分隔的格式,例如“1,234,467”?    1 package com.Gxjun.problem; 2 3 i...

    Gxjun
  • CI基础知识二

    1.日历类 $this->load->library(‘calendar’); echo $this->calendar->generate();//根据服...

    苦咖啡
  • ThinkPHP基础知识(二)

    今天闲来无事,继续来看我们的tp下一个教程(勉强叫做这个吧)。看前面的博客文章我们知道: ? 那么,我们怎么创建控制器和方法呢? 一、创建控制器和方法 创建控制...

    benny
  • Git基础知识(二)

    可以使用 git status -s 命令或 git status --short 命令,得到一种更为紧凑的格式输出。

    zx钟
  • Redis基础知识(二)

    redis中的事务是一组命令的集合,事务中的命令要么全部执行,要么都不执行,Redis 通过 MULTI 、DISCARD 、EXEC 和 WATCH 四个命令...

    没有故事的陈师傅
  • java基础知识01

    正所谓万丈高楼平地起,有了扎实的基础才能进阶更深奥的课程,才能让你后面的走得更轻松,学Java亦是如此!所以千万不能忽略基础的重要性,下面一起来温习一下那些容易...

    贪挽懒月
  • java基础知识02

    1、String字符串: 字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。用length()方法获取长度。

    贪挽懒月
  • java(一)基础知识

    西西嘛呦
  • Java基础知识(一)

    JRE: java Runtime Environment(java运行时环境)。即java程序的运行时环境,包含了java虚拟机,java基础类库。

    shimeath
  • Java基础知识(三)

    用户7386338

扫码关注云+社区

领取腾讯云代金券