thinkphp大型网站开发,建设工程企业资质工作网站,wordpress怎么播放视频,国家高新技术企业认定条件和要求一、static关键字是什么#xff1f;
static修饰的代码属于类#xff0c;定义的变量存储在方法区的静态常量池当中 二、static可以修饰什么
1.static修饰变量
static修饰的变量叫做类变量#xff0c;被所有该类产生的对象所共享#xff0c;存储在方法区的静态常量池中
2…
一、static关键字是什么
static修饰的代码属于类定义的变量存储在方法区的静态常量池当中 二、static可以修饰什么
1.static修饰变量
static修饰的变量叫做类变量被所有该类产生的对象所共享存储在方法区的静态常量池中
2.static修饰方法
static修饰是的方法属于静态方法static修饰的方法才能调用static修饰的方法
3.static修饰代码块
static修饰的代码块在main方法运行之前运行其目的是优化程序 三、java为什么设计static关键字
因为要方法类去使用自己的方法和变量
1.假设不使用static关键字 则如果方法和变量属于非静态只有在对象当中才会被分配内存空间也就是说只能由对象调用。如下 2.使用static关键字 对于static修饰的变量或者方法我们建议使用类去调用虽然对象也可以做到但是不推荐。 而从上一张图可以看出如果没有static关键字那么类是不可以调用自己的属性和方法的只能用对象去调用 四、static关键字修饰方法具体用法
1.static修饰的方法无法调用到非静态方法
2.在非静态方法当中可以调用到静态方法 为什么在非静态方法中可以调用静态方法 因为hhh被static修饰属于类变量存储在方法区的静态常量池当中被所有对象所共享。然而 fff()方法想要表达的时候就已经创建好了对象那么静态方法一定是存在的。 五、 非运行状态输出代码结果
一套基本的流程 示例代码1 代码流程介绍
程序执行先去找main()方法启动程序
1.首先先去扫描Test类返现Test类有父类Base类先去扫描父类,发现Base类没有父类
2.将Base.class加载进方法区此时Base类当中的static代码块执行
3.将Test.class加载进方法区此时Test类当在的static代码块执行
4.main方法入栈----执行new Test();去创建Test类的对象
5.创建子类对象之前先创建父类对象所以先执行Base()构造器在执行Test()构造器! | 示例代码2 输出 代码流程介绍
1.main方法在哪里我们就先去扫描那个类---首先去扫描Test类发现没有父类也没有static修饰的代码那么编译Test类并且将main方法入栈
2.执行new Demo(----);在执行之前扫描Demo类发现没有父类所以编译Demo类在编译的过程中static代码块按顺序优先执行
3.首先输出的是11
4.执行 public static Demo demo new Demo( );此时会涉及到调用Demo构造方法所以输出
5.输出22
6.编译完毕,回到main方法当中继续执行new Demo( ---);现在可以创建对象了也就是进行到了运行阶段
7.通过调佣构造器创建对象:--- 六、Java的值传递 首先静态常量池中有一个变量aa的默认值为0main执行调用modify(a)方法入栈注意方法的变量是局部变量只在该方法中起作用。java进行值传递此时执行a然后出栈局部变量也就没用了最后输出a的值此时的a是静态常量池中的变量a值为0。