java基础

一、关于Static修饰的变量

首先Static修饰的变量是放在方法区内存空间中的,在运行时Static方法先赋值然后才是main方法的执行,在类加载的时候就对Static修饰的变量进行了赋值。总之被Static修饰的都会在类加载的时候执行,也是按照自上而下顺序执行。main方法在类加载后才会执行。Static修饰的静态代码块只能执行静态的东西。静态方法和静态变量需要通过类名或对象来访问(实际上都是通过类名.来访问),静态方法只能在静态代码块中执行或者main方法中调用。

StaticTESTpublic class StaticTest {static{System.out.println("Hello!");//在静态代码块中输出}private static int i=100;//定义了一个被static修饰的int型ipublic static void main(String[] args) {System.out.println("i ="+i);//在main方法中打印出iint i= 10;//在main方法中定义一个局部变量i;System.out.println("i ="+i);Dayin();//调用Dayin方法}public static void Dayin(){System.out.println("i ="+i);}static {System.out.println("Hello everyone!");}
}
//运行结果:
/*
Hello!
Hello everyone!
i =100
i =10
i =100
*/因为静态代码块实在类加载的时候就执行了并且同样按照顺序执行所以先输出了"Hello!"再输出了"Hello everyone!"同时给i赋值了100。然后进入main压栈,首先打印了i是100,之后定义了一个局部变量i赋值为10接着打印了i是10,最后调用静态方法Dayin但此时这个方法中的i是静态的所以值是100,其实main方法中打印了两个i并不是一样的一个是定义在类中的存在方法区内存中而另一个只是定义在main方法中的局部变量。

实例代码块

public class Test {public Test(){System.out.println("执行构造方法");//Test类的构造方法}{System.out.println("这是一个实例代码块!");}
static int i;//定义一个静态整型变量ipublic static void main(String[] args) {System.out.println("Hello!");Test t1=new Test();//创建一个Test类的对象}{System.out.println("i ="+i);}
}
//运行结果:
/*Hello!
这是一个实例代码块!
i =0  (因为没有给i赋值所以int的默认值为0)
执行构造方法
*/
实例代码块在构造方法执行之前执行,构造方法每执行一次,实例代码块就会被提前执行一次。同样实例代码块也是顺序执行的。

2、无参构造方法及作用

无参构造方法一般是用来初始化对象和给变量赋初值等的。无参构造方法可写可不写但你如果不写java会给一个默认的无参构造方法。但当你写了有参构造方法的时候,就必须写一个无参构造方法。此时java不会给默认的无参构造方法,如果没有无参构造方法那么就会报错,无参构造方法是为了new出对象。PS:继承中子类的构造方法都是默认调用父类的无参构造方法。

public class WCGZ {private int num;private String name;public WCGZ(int num,String name){System.out.println("num ="+num);System.out.println("name ="+name);}public static void main(String[] args) {WCGZ s1 =new WCGZ(1,"李白");WCGZ s2 =new WCGZ();/*报错:WCGZ中的WCGZ(int num,String name)无法应用于WCGZ s2 =new WCGZ();*/}
}正确代码如下:
public class WCGZ {private int num;private String name;public WCGZ(int num,String name){System.out.println("num ="+num);System.out.println("name ="+name);}public WCGZ(){System.out.println(num);System.out.println(name);}public static void main(String[] args) {WCGZ s1 =new WCGZ(1,"李白");WCGZ s2 =new WCGZ();}
}
运行结果如下:
num =1
name =李白
0
null

Java基础(Static关键字)相关推荐

  1. Java基础-static 关键字解析

    参考文章: https://www.cnblogs.com/dolphin0520/p/3799052.html static的应用: 1.static是为了在没有创建任何对象的前提下,仅仅通过类本身 ...

  2. java基础——static 关键字小节

    static 用于修饰成员 修饰成员变量和成员函数 被修饰过的成员的特点:   1.随着类的加载而加载   2.优先于对象而存在   3.被所有对象所共享   4.可以直接被类名调用

  3. 【零基础学Java】—static关键字概述(十六)

    [零基础学Java]-static关键字概述(十六) 一.static关键字 二.static关键字修饰成员变量 /*** @author :CaiCai* @date : 2022/4/8 11:1 ...

  4. java的static关键字

    java的static关键字 静态变量和静态方法 static关键字最基本的用法是: 1.被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2.被static ...

  5. 面试官:兄弟,说说Java的static关键字吧

    读者乙在上一篇我去系列文章里留言说,"我盲猜下一篇标题是,'我去,你竟然不知道 static 关键字'".我只能说乙猜对了一半,像我这么有才华的博主,怎么可能被读者猜中了心思呢,必 ...

  6. Java基础super关键字、final关键字、static关键字、匿名对象整理

    super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...

  7. java static是单例_JAVA基础-static关键字及单例设计模式

    static关键字 基本概念使用static关键字修饰成员变量表示静态的含义, 此时成员变量由对象层级提升为类层级, 也就是整个类只有一份并被所有对象共享. 该成员变量随着类的加载准备就绪, 与是否创 ...

  8. JAVA基础之关键字、保留字和标识符

    关键字: 1.关键字(keyword)的定义和特点 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 官方地址: https://docs.oracle ...

  9. Java基础语法-关键字、数据类型

    JRE.JDK.JVM Java基础语法 注释.标识符.关键字 标识符注意点 所有标识符都应该以字母(A-Z 或者a-z),美元符($).或者下划线(_)开始 首字符之后可以是字母(A-Z 或者a-z ...

最新文章

  1. Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系
  2. 腾讯-视频打标签算法探讨
  3. java面试题总结(二)----java中级面试题 含答案
  4. django用sqlite跟mysql_django框架学习:九. django连接mysql,sqlite
  5. linux js脚本无法响应,执行Linux shell脚本时出错
  6. [渝粤教育] 中国地质大学 计算机系统结构(新) 复习题 (2)
  7. 自动驾驶仿真相关调研
  8. 标准正态分布怎么算_标准正态分布函数的快速计算方法
  9. 传感器技术-电容式传感器(学习笔记六)
  10. Make sure ‘SystemCfg‘ is registered using qRegisterMetaType
  11. Vulnhub DC-7
  12. 如何在word中同一位置处插入多篇连续文献
  13. 不用刷新,用 dfuse 流式搜索提供即时用户体验
  14. MVP结合(RecycleView,Retorfit,GreenDao和EventBus)数据展示
  15. STM32F4应用-GPIO
  16. 将两个数组不同的元素拼接成一个字符串
  17. 在clubof.net上建立了个人主页
  18. EVE模拟器完整路由拓扑实验报告
  19. 吃货贴 | 「咸、甜、辣」如何影响肠道菌群?
  20. 安卓手机/Android11系统无法访问android文件夹下的data目录,怎么解决?

热门文章

  1. 初学者安装ns3详细步骤
  2. polyglot:Pipeline 多语言NLP工具
  3. 用于AR/MR的光波导足迹分析
  4. 镜花水月 Houdini to Krakatoa(h2k) Mirroonce to Krakatoa (mx2k)1亿粒子
  5. LIF-MDF6000-6KMG80I FPGA现场可编程门阵列 封装BGA
  6. MSSQL优化案例系列-在Where子句使用or连接条件使索引失效
  7. #hibernate中的检索方式
  8. Tomasulo算法
  9. 我国无线电频率划分规定
  10. 该怎样运用EDIUS中的无极变速