做网站的标准流程视觉设计师作品集

news/2025/9/22 20:16:37/文章来源:
做网站的标准流程,视觉设计师作品集,免费空间列表,培训加盟文章目录1、static存在的主要意义2、static的独特之处3、static应用场景4、静态变量和实例变量的概念5、静态变量和实例变量区别【重点常用】6、访问静态变量和实例变量的两种方式7、static静态方法8、static静态代码块9、static变量与普通变量区别10、静态内部类11、静态导包1… 文章目录1、static存在的主要意义2、static的独特之处3、static应用场景4、静态变量和实例变量的概念5、静态变量和实例变量区别【重点常用】6、访问静态变量和实例变量的两种方式7、static静态方法8、static静态代码块9、static变量与普通变量区别10、静态内部类11、静态导包12、static注意事项13、final与static的藕断丝连提到static关键字相信大家都不陌生这是相对比较难以理解的一个关键字相信各位也都能深深感受的到本篇文章将好好总结一下static这个关键字。 在开始讲static之前我想让各位看一段有意思的代码 public class Test {static{System.out.println(test static 1);}static{System.out.println(test static 2);}public static void main(String[] args) {} }看完程序小白童鞋发话了啥玩意main方法中啥都没有能运行啥博主你个星星星… 运行结果 test static 1 test static 2小白童鞋:那啥…那啥…博主我说啥了我啥都没说… 其实上面的代码懂的自然懂不懂的自然就不懂了因为上面的代码涉及到JVM的类加载了当然不在本篇博客文章的范畴内如果有兴趣理解上面的程序这篇文章可能会对你有所帮助 这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析 1、static存在的主要意义 static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象也能使用属性和调用方法 static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方类中可以有多个static块。在类初次被加载的时候会按照static块的顺序来执行每个static块并且只会执行一次。 为什么说static块可以用来优化程序性能是因为它的特性:只会在类加载的时候执行一次。因此很多时候会将一些只需要进行一次的初始化操作都放在static代码块中进行。 2、static的独特之处 1、被static修饰的变量或者方法是独立于该类的任何对象也就是说这些变量和方法不属于任何一个实例对象而是被类的实例对象所共享。 怎么理解 “被类的实例对象所共享” 这句话呢就是说一个类的静态成员它是属于大伙的【大伙指的是这个类的多个对象实例我们都知道一个类可以创建多个实例】所有的类对象共享的不像成员变量是自个的【自个指的是这个类的单个实例对象】…我觉得我已经讲的很通俗了你明白了咩 2、在该类被第一次加载的时候就会去加载被static修饰的部分而且只在类第一次使用时加载并进行初始化注意这是第一次用就要初始化后面根据需要是可以再次赋值的。 3、static变量值在类加载的时候分配空间以后创建类对象的时候不会重新分配。赋值的话是可以任意赋值的 4、被static修饰的变量或者方法是优先于对象存在的也就是说当一个类加载完毕之后即便没有创建对象也可以去访问。 3、static应用场景 因为static是被类的实例对象所共享因此如果某个成员变量是被所有对象所共享的那么这个成员变量就应该定义为静态变量。 因此比较常见的static应用场景有 1、修饰成员变量 2、修饰成员方法 3、静态代码块 4、修饰类【只能修饰内部类也就是静态内部类】 5、静态导包 以上的应用场景将会在下文陆续讲到… 4、静态变量和实例变量的概念 静态变量 static修饰的成员变量叫做静态变量【也叫做类变量】静态变量是属于这个类而不是属于是对象。 实例变量 没有被static修饰的成员变量叫做实例变量实例变量是属于这个类的实例对象。 还有一点需要注意的是static是不允许用来修饰局部变量不要问我问什么因为java规定的 5、静态变量和实例变量区别【重点常用】 静态变量 静态变量由于不属于任何实例对象属于类的所以在内存中只会有一份在类的加载过程中JVM只为静态变量分配一次内存空间。 实例变量 每次创建对象都会为每个对象分配成员变量内存空间实例变量是属于实例对象的在内存中创建几次对象就有几份成员变量。 6、访问静态变量和实例变量的两种方式 我们都知道静态变量是属于这个类而不是属于是对象static独立于对象。 但是各位有木有想过静态成员变量虽然独立于对象但是不代表不可以通过对象去访问所有的静态方法和静态变量都可以通过对象访问【只要访问权限足够允许就行】不理解没关系来个代码就理解了 public class StaticDemo {static int value 666;public static void main(String[] args) throws Exception{new StaticDemo().method();}private void method(){int value 123;System.out.println(this.value);}}猜想一下结果我猜你的结果是123哈哈是咩其实 运行结果 666当然肯定有一些基础非常扎实的大佬会问为什么会有同学认为输出是123 。里面定义的value123只是一个很普通的局部变量而已 。和成员变量没有半毛钱关系 。和静态变量也没有关系。是的确实如这位大佬说的一样只是博主我说的同学是小白同学站在小白童鞋的角度上所以还望大佬理解见谅我举的这个StaticDemo例子主要目的是说明一下this也是可以访问static的变量的value123只是一个跑龙套的配角旨在让小白同学认清其中的关系。 回过头再去品味一下上面的那段话你就能非常客观明了了这个思想概念要有只是这种用法不推荐 因此小结一下访问静态变量和实例变量的两种方法 静态变量 类名.静态变量 对象.静态变量(不推荐) 静态方法 类名.静态方法 对象.静态方法(不推荐) 7、static静态方法 static修饰的方法也叫做静态方法不知道各位发现咩有其实我们最熟悉的static静态方法就是main方法了小白童鞋喔好像真的是哦。由于对于静态方法来说是不属于任何实例对象的this指的是当前对象因为static静态方法不属于任何对象所以就谈不上this了。 还有一点就是构造方法不是静态方法 8、static静态代码块 先看个程序吧看看自个是否掌握了static代码块下面程序代码继承关系为 BaseThree—— BaseTwo—— BaseOne BaseOne类 package com.gx.initializationblock;public class BaseOne {public BaseOne() {System.out.println(BaseOne构造器);}{System.out.println(BaseOne初始化块);System.out.println();}static {System.out.println(BaseOne静态初始化块);}}BaseTwo类 package com.gx.initializationblock;public class BaseTwo extends BaseOne {public BaseTwo() {System.out.println(BaseTwo构造器);}{System.out.println(BaseTwo初始化块);}static {System.out.println(BaseTwo静态初始化块);} }BaseThree 类 package com.gx.initializationblock;public class BaseThree extends BaseTwo {public BaseThree() {System.out.println(BaseThree构造器);}{System.out.println(BaseThree初始化块);}static {System.out.println(BaseThree静态初始化块);} }测试demo2类 package com.gx.initializationblock;/*注这里的ABC对应BaseOne、BaseTwo、BaseThree * 多个类的继承中初始化块、静态初始化块、构造器的执行顺序在继承中先后执行父类A的静态块父类B的静态块最后子类的静态块然后再执行父类A的非静态块和构造器然后是B类的非静态块和构造器最后执行子类的非静态块和构造器*/ public class Demo2 {public static void main(String[] args) {BaseThree baseThree new BaseThree();System.out.println(-----);BaseThree baseThree2 new BaseThree();} }运行结果 BaseOne静态初始化块 BaseTwo静态初始化块 BaseThree静态初始化块 BaseOne初始化块BaseOne构造器 BaseTwo初始化块 BaseTwo构造器 BaseThree初始化块 BaseThree构造器 ----- BaseOne初始化块BaseOne构造器 BaseTwo初始化块 BaseTwo构造器 BaseThree初始化块 BaseThree构造器至于static代码块运行结果不是很清晰的童鞋详细讲解请看这篇Static静态代码块以及各代码块之间的执行顺序 以上仅仅是让各位明确代码块之间的运行顺序显然还是不够的静态代码块通常用来对静态变量进行一些初始化操作比如定义枚举类代码如下 public enum WeekDayEnum {MONDAY(1,周一),TUESDAY(2, 周二),WEDNESDAY(3, 周三),THURSDAY(4, 周四),FRIDAY(5, 周五),SATURDAY(6, 周六),SUNDAY(7, 周日);private int code;private String desc;WeekDayEnum(int code, String desc) {this.code code;this.desc desc;}private static final MapInteger, WeekDayEnum WEEK_ENUM_MAP new HashMapInteger, WeekDayEnum();// 对map进行初始化static {for (WeekDayEnum weekDay : WeekDayEnum.values()) {WEEK_ENUM_MAP.put(weekDay.getCode(), weekDay);}}public static WeekDayEnum findByCode(int code) {return WEEK_ENUM_MAP.get(code);}public int getCode() {return code;}public void setCode(int code) {this.code code;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc desc;} } 当然不仅仅是枚举这一方面还有我们熟悉的单例模式同样也用到了静态代码块如下 public class Singleton {private static Singleton instance;static {instance new Singleton();}private Singleton() {}public static Singleton getInstance() {return instance;} }9、static变量与普通变量区别 static变量也称作静态变量静态变量和非静态变量的区别是静态变量被所有的对象所共享在内存中只有一个副本它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的在创建对象的时候被初始化存在多个副本各个对象拥有的副本互不影响。 还有一点就是static成员变量的初始化顺序按照定义的顺序进行初始化。 10、静态内部类 静态内部类与非静态内部类之间存在一个最大的区别我们知道非静态内部类在编译完成之后会隐含地保存着一个引用该引用是指向创建它的外围内但是静态内部类却没有。没有这个引用就意味着 1、它的创建是不需要依赖外围类的创建。 2、它不能使用任何外围类的非static成员变量和方法。 代码举例静态内部类实现单例模式 public class Singleton {// 声明为 private 避免调用默认构造方法创建对象private Singleton() {}// 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问private static class SingletonHolder {private static final Singleton INSTANCE new Singleton();}public static Singleton getUniqueInstance() {return SingletonHolder.INSTANCE;} } 当 Singleton 类加载时静态内部类 SingletonHolder 没有被加载进内存。只有当调用 getUniqueInstance()方法从而触发 SingletonHolder.INSTANCE 时 SingletonHolder 才会被加载此时初始化 INSTANCE 实例并且 JVM 能确保 INSTANCE 只被实例化一次。 这种方式不仅具有延迟初始化的好处而且由 JVM 提供了对线程安全的支持。 11、静态导包 静态导包格式import static 这两个关键字连用可以指定导入某个类中的指定静态资源并且不需要使用类名调用类中静态成员可以直接使用类中静态成员变量和成员方法 // Math. --- 将Math中的所有静态资源导入这时候可以直接使用里面的静态方法而不用通过类名进行调用 // 如果只想导入单一某个静态方法只需要将换成对应的方法名即可import static java.lang.Math.; // 换成import static java.lang.Math.max;具有一样的效果public class Demo {public static void main(String[] args) {int max max(1,2);System.out.println(max);} }静态导包在书写代码的时候确实能省一点代码可以直接调用里面的静态成员但是会影响代码可读性所以开发中一般情况下不建议这么使用。 12、static注意事项 1、静态只能访问静态。 2、非静态既可以访问非静态的也可以访问静态的。 13、final与static的藕断丝连 到这里文章本该结束了的但是static的使用始终离不开final字眼二者可谓藕断丝连常常繁见我觉得还是很有必要讲讲那么一起来看看下面这个程序吧。 package Demo;class FinalDemo {public final double i Math.random();public static double t Math.random(); }public class DemoDemo {public static void main(String[] args) {FinalDemo demo1 new FinalDemo();FinalDemo demo2 new FinalDemo();System.out.println(final修饰的 i demo1.i);System.out.println(static修饰的 t demo1.t);System.out.println(final修饰的 i demo2.i);System.out.println(static修饰的 t demo2.t);System.out.println(t1 demo2.t ); // System.out.println( demo2.i );//编译失败} } 运行结果final修饰的 i0.7282093281367935static修饰的 t0.30720545678577604final修饰的 i0.8106990945706758static修饰的 t0.30720545678577604t1 1.307205456785776 static修饰的变量没有发生变化是因为static作用于成员变量只是用来表示保存一份副本其不会发生变化。怎么理解这个副本呢其实static修饰的在类加载的时候就加载完成了初始化而且只会加载一次也就是说初始化一次所以不会发生变化 至于final修饰的反而发生变化了是不是巅覆你对final的看法关于final详细讲解博主也准备好了一篇文章程序员你真的理解final关键字吗 ok,文章就先到这里了希望这篇文章能够帮助到你对static的认识若有不足或者不正之处希望谅解并欢迎批评指正 参考 《java编程思想》 http://baijiahao.baidu.com/s?id1601254463089390982wfrspiderforpc https://blog.csdn.net/qq_34337272/article/details/82766943 https://www.cnblogs.com/dolphin0520/p/3799052.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发工程师面试问哪些问题南京做网站南京乐识赞

爬虫项目实战0x01 目标分析最近发现一个比较好的欧美音乐下载网站,可以下载大部分高质量欧美音乐。该爬虫项目要实现自动化批量获取用户想要下载的音乐。本文从网站分析、爬虫设计、代码实现三个方面出发,系统介绍该爬虫项目。项目完整代码在Github中可以…

网站建设博客作业动漫制作专业就业方向和前景

CentOS6.5安装详细教程1、准备好CentOS-6.5.iso文件,并刻录到光盘中,放入光驱,重启服务器,修改BIOS为光驱启动,之后开始进入安装:2、按任意键,进入引导菜单。按上下键,移动光标&…

外贸推广建站公司百度网站推广服务商

一、前言 本文使用的虚幻引擎5.3.2,继点击场景3D物体的两种处理方式的基础完成对3D物体的点击触发后,我们需要制作一个可以弹窗显示该物体信息的UI面板,同时保证弹窗可以跟随物体。另外还讲了一种UI上的悬浮提示跟随弹窗。 二、实现 2.1、创…

网站开发的学习方法室内设计效果图qq群

文章目录1. 题目2. DFS 解题1. 题目 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。 在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动…

四川建设工程网站新市区做网站

在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。 从命令提示窗口中选择 MySQL 数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库。 在 MySQL 中,要选择要使用的数据库,可…

Android 中获取稳定时间的方法 - 指南

Android 中获取稳定时间的方法 - 指南2025-09-22 20:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

【精品资料鉴赏】RPA财务机器人应用(基于UiPath)教材配套课件 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

如何让AI生成多页面APP原型图?AI原型设计实用指南

引言 很多产品经理已经在实际项目中开始使用AI原型设计工具,尤其是在制作APP原型图、小程序原型图等产品项目中。AI可以帮助产品经理快速产出原型图,但是也有一些容易被忽视的实用功能。例如:如何一次性生成多个页面…

国外优秀网站建设公司淄博优化网站

默认为递增顺序&#xff1b;注&#xff1a;一下例子希望自己再次复习时&#xff0c;可以用笔在纸上画画内存图。 包括有: 选择排序冒泡排序插入排序 1.选择排序 <--------------------------------------选择排序---------------------------------------> 1、选择排…

北京摇号网站维护企业网站优化托管

1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些…

做网站成都求几个能用的地址2021

文章目录一、第1种方式1. 因依赖2. 工具类测试方法3. 服务端接收二、第2种方式三、第3种方式3.1. 引依赖3.2. 工具类测试3.3. 服务端代码一、第1种方式 1. 因依赖 <!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --><dependency>…

广州翼讯资讯科技有限公司 网站地方建立网站做SEM

go-zero整合单机版Redis并实现增删改查 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 go-zero微服务入门教程&#xff08;点击进入&#xff09; 本教程主要实现go-zero框架整合单机版Redis&#xff0c;并暴露接口实现对Redis数据的增删改查。 本…

政务网站建设经验交流发言百度推广怎么运营

目录 1、QT介绍 2、QT的特点 3、QT模块 3.1基本模块 3.2扩展模块 4、QT工程创建 1.选择应用的窗体格式 2.设置工程的名称与路径 3.设置类名 4.选择编译器 5、QT 工程解析 xxx.pro 工程配置 xxx.h 头文件 main.cpp 主函数 xxx.cpp 文件 6、纯手工创建一个QT 工程…

嘉兴型网站系统总部在什么网站上可以做中学数学家教

全世界只有3.14 % 的人关注了青少年数学之旅在这个资讯丰富且易获取的时代&#xff0c;越来越多的人不愿意花时间阅读书籍&#xff0c;碎片化阅读成了主流。人们获取的东西多而杂&#xff0c;很难系统、全面。海量信息对人是冲击&#xff0c;更是诱惑。谁不想了解天下奇闻&…

网站建设先进跟我学seo从入门到精通

前言 从刚开始学习阶段&#xff0c;一直是用的keil5开发stm32程序&#xff0c;自从看到稚晖君推荐的CLion开发嵌入式程序后&#xff0c;这次尝试在CLion上开发stm32程序。 1、配置CLion用于STM32开发的环境 这里我就不详细写了&#xff0c;没必要重新写&#xff0c;网上教程很多…

商城网站微信支付接口申请流程网站留言板怎么做

《基于单片机的物流皮带传输监控系统设计 实物仿真》 整体功能&#xff1a; 本设计采用以单片机为核心控制器&#xff0c;以及传感器检测部分作为输入部分&#xff0c;以报警、显示、洒水、排烟、电机停止模块作为输出部分&#xff0c;构成整个物流皮带传输监控系统。 本设计…

北京哪个网站最好重庆哪个网站建设比较好

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的迷宫矩阵 maze &#xff08;下标从 0 开始&#xff09;&#xff0c;矩阵中有空格子&#xff08;用 . 表示&#xff09;和墙&#xff08;用 表示&#xff09;。 同时给你迷宫的入口 entrance &#xff0c;用 entrance [entra…

简洁的网站建设合同武进做网站的公司

通信&#xff0c;在古代是通过书信与他人互通信息的意思。 今天&#xff0c;“通信”这个词的外沿已经得到了极大扩展&#xff0c;它目前的大意是指双方或多方借助某种媒介实现信息互通的行为。 如果按照当代汉语的方式理解“通信”&#xff0c;那么古代的互遣使节、飞鸽传书…

济南网站建设直播苗木企业网站源码

一、首先需要思考&#xff0c;我们在页面导出excel&#xff0c;用python导出如何写入文件的 封装前需要确认python导出excel接口返回的是一个什么样的数据类型 如下&#xff1a;我们先看下不对返回结果做处理&#xff0c;直接接收数据类型是一个对象&#xff0c;无法获取返回值…

代码随想录算法训练营第五天 | leetcode 242 349 202 1

有效的字母异位词 题目:判断两个字符串的字母是否一样 解题思路:通过字母在Ascll表对应的数字可以定义一个26容量大小的数组,将字符串包含的字母映射到数组中,再用另一个字符串对数组进行操作 代码如下: class So…