首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java基础6:代码块与代码加载顺序

本文主要介绍了三种代码特性和使用方法。...代码块:用{}包围代码 java中代码块按其位置划分为四种: 局部代码块 位置:局部位置(方法内部) 作用:限定变量生命周期,尽早释放,节约内存 调用:调用其所在方法时执行 public class...} } 静态代码块 位置:类成员位置,用static修饰代码块 作用:对类进行一些初始化 只加载一次,当new多个对象时,只有第一次会调用静态代码块,因为,静态代码块...C(); C c2 = new C(); //结果,静态代码块只会调用一次,类所有对象共享该代码块 //一般用于类全局信息初始化 //静态代码块调用 //代码块调用...; } } 执行顺序 静态代码块 -----> 构造代码块 -------> 构造方法 关于抽象类和接口内容可以在上一节查看: https://blog.csdn.net/a724888/article

46600
您找到你想要的搜索结果了吗?
是的
没有找到

静态代码块、构造代码块以及构造函数加载顺序

构造代码块,和构造函数都存在于一个类中,只不过,他们执行先后顺序和执行次数不同。...加载时候,将静态成员变量(类变量),构造代码块,静态代码块以及静态方法加载到方法区静态部分,非静态方法以及构造方法加载到方法区非静态部分。...作用分析 静态代码块用于给类初始化,类加载时候就会被执行; 构造代码块用于给对应对象初始化,只要创建对象就会被执行,而且执行顺序优先于构造函数; 构造函数用于给对应对象初始化,只要创建对象,就会选择相应构造函数进行初始化...顺序为:初始化父类静态代码块->初始化子类静态代码块->初始化父类构造代码块->初始化父类构造方法->初始化子类构造代码块->初始化子类构造方法  根据输出结果,"before new Child()..."是在是在执行完静态代码块以后然后才输出,这就证明静态代码块是不需要创建对象就可以执行,只要加载完类文件就可以执行,而构造代码块以及构造方法是在执行创建对象时候才进行初始化

70120

延时加载 JS 代码,提高网页加载速度

如果网页中存在大量 javascript 代码会极大影响网页访问速度,下面就简单介绍一下如何延时加载 js 代码提高速度。...二.将js代码放到网页内容后面: 这个比较简单了,就不用说了,就是将 js 代码放在网页内容后面,一把是放在body最底部,这样也可以先加载内容再去执行 js 代码,也能够提高一定速度。...JS 广告代码延迟加载或是最后加载加快页面载入 JS 广告代码延迟加载或是最后加载加快页面载入,如果页面中有很多 JS 广告代码,或者其他 js/' target='_blank' class='u'...使用JS广告代码延迟加载或是最后加载方法以加快页面载入速度。...('my').src='include/php100.php'; ",3000);//延时3秒 第二,JS广告代码最后加载 在需要插入JS地方插入以下代码: 程序代码 <SPAN

7.7K30

HTML加载顺序

代码 1个image文件,及1个js请求image 总共是6个http request....然后我们看执行顺序(js执行, css应用等): 只要浏览器"看到了"了js代码,它就会执行 浏览器是从下到下,一行一行地执行 如果js代码位于一个函数或者对象中,则只有当函数或者对象被调用时才会执行...而所谓direct code(不处于函数或者对象中代码),则会从上到下顺序执行 当css文件下载完成时, 相应样式也会应用到DOM上 onload或者jquery$(document).ready...: 首先下载html 从上到下依次下载外部文件(js,css,img) 各个资源下载顺序是并行 你可能会奇怪如果js可以并行下载,那么可能位于DOM下面的代码会先执行, 首先可以肯定是 即使下面的...js先完成下载,也不会影响到整体从上到下执行顺序,浏览器会维护这种顺序关系, chrome这种方式也是未来浏览器一种趋势, 而这也是为什么chrome能够更快原因之一.

1.8K30

Java类加载顺序

前言 那一年,呼延十又回想起被加载顺序支配恐惧,笔试题上,好几个类,几个方法,几个输出语句,让你按照顺序写出输出.我真的是有一句…. 但是呢,我们还是有了解一下必要,在编码过程中有许多应用....正文 经常用来比较顺序,无非就是静态代码块,普通代码块,静态方法和普通方法. 这里直接说一下结论: 先静态后普通最后构造方法,先父类后子类....由于B类有父类,因此先加载A类. 加载A类静态代码块,输出A-----static. 加载B类静态变量,调用了方法,输出B----- static func....加载B类静态代码块,输出B----- static. 加载A类普通变量,private int i = aFunc();由于调用了方法,因此输出A----- default....在这期间,发现一些小知识点,也记录一下. 静态变量,静态代码加载顺序只和代码编写顺序有关. 普通变量及构造方法,顺序一定是先普通变量,再构造方法.

1.2K20

servlet与filter加载顺序

servlet与filter加载顺序 加载顺序 提到加载顺序,首先我们需要对sevlet中load-on-startup单独讨论 基本有以下几点: load-on-startup 元素标记容器是否应该在...它值必须是一个整数,表示servlet被加载先后顺序。 如果该元素值为负数或者没有设置,则容器会当Servlet被请求时再加载。...如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet优先级越高,就越先被加载。值相同时,容器就会自己选择顺序加载。...总结 filterinit方法在容器初始化时加载。第一次加载容器执行顺序随机,以后再次加载顺序以第一次加载顺序为准。...init方法没有在容器初始化加载,则先加载匹配servlet最后一个servletinit方法,再按顺序执行filter方法,最后再执行匹配最后一个servlet方法。

1.6K30

ClassLoader分类及加载顺序

1.主要分4类,见下图橙色部分 JVM类加载器:这个模式会加载JAVA_HOME/lib下jar包 扩展类加载器:会加载JAVA_HOME/lib/ext下jar包 系统类加载器:这个会去加载指定了...classpath参数指定jar文件 用户自定义类加载器:sun提供ClassLoader是可以被继承,允许用户自己实现类加载器 2.类加载加载顺序如图所示: ?...3.类加载顺序 JVM并不是把所有的类一次性全部加载到JVM中,也不是每次用到一个类时候都去查找,对于JVM级别的类加载器在启动时就会把默认JAVA_HOME/lib里class文件加载到JVM...中,因为这些是系统常用类,对于其他第三方类,则采用用到时就去找,找到了就缓存起来,下次再用到这个类时候就可以直接用缓存起来类对象了,ClassLoader之间也是有父子关系,没个ClassLoader...都有一个父ClassLoader,在加载类时ClassLoader与其父ClassLoader查找顺序如下图所示: ?

1.9K30

Java加载顺序实验

先准备3个逐层继承类User1,User2,User3 User2继承User1,User3继承User2 分别在类中准备构造函数,普通初始化块,静态代码块 public class User1 {...普通初始化块 User2构造函数调用 User3普通初始化块 User3构造函数调用 静态代码块------------->普通初始化块--------------->构造函数 构造函数先执行父类...,再执行子类原理: Java默认在无参构造函数中会执行super(),则会递归执行构造函数,因而先执行父类再执行子类 有参构造情况: 先扩展代码: public class User1 {...User3有参构造函数调用 image.png 显然执行只有创建User3执行了有参构造,User2和User1执行都是无参构造,他们并没有自动调用父类有参构造。...但如果对代码稍作修改,在有参构造前添加super(anme),即可执行父类有参构造了 public User3(String aname){ super(aname); this.name

91340

JS执行顺序

javascript给人直观感受是,从上往下执行,但实际上却不是这样,先看个例子 1. console.log(test); 2. var test = "你好"; 3. console.log(...因为javascript执行时,在同一个作用域内是先编译再执行 编译时候会编译 function 和 var 这两个关键词定义变量,编译完成后从上往下执行并向变量赋值 所以执行第1行时, var test...已经执行过了,所以test不会报错,而test2就会报错 需要注意是,对 var test 执行编译时,只是先定义了 test 这个变量,并不会把 "你好" 这个值赋给test,而是到第2行时才给test...赋值,这就是为什么第1行执行结果是 undefined 对于上面的例子,可以这样理解 //先编译 var 定义变量 1. var test; //编译完成后,从上到下执行代码 2. console.log...(test); 3. test = "你好"; 4. console.log(test); 5. console.log(test2); 再看一下function编译执行过程 例子 test();

9.2K60

【答疑解惑】Java类加载顺序

语音版: Java类初始化顺序这个问题经常出现在面试题中,这个面试题设计知识有类、对象、static关键字、初始化函数、类加载顺序,咱们一个一个来说。...类: 类描述了具有相同特性(数据元素)和行为(功能)对象集合,也是一个数据类型。比如说动物,它有重量、大小特征(数据元素),也有移动、吃行为(功能)。...对象: 对象是具有状态、行为和标识是上面类一个实例。...static: static表示“全局”或者“静态”意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。它是属于类不属于对象。...类加载顺序: static块和对象:无论写在类前面还是后面都会先执行,多个静态块或者对象执行顺序与写顺序一致,写在前面的先执行; 非静态块和对象:按照在类中写先后顺序执行; 初始化函数;

770120

Vue.js延迟加载代码拆分

顾名思义,延迟加载是一个懒惰地加载应用程序部分(块)过程。换句话说 - 只有在我们真正需要它们时加载它们。代码拆分只是将应用程序拆分为多个延迟加载代码一种处理方式。 ?...延迟加载允许我们拆分捆绑包并仅提供所需部分,这样用户就不会浪费时间下载和解析不会使用代码。...现在我们应该能够看到实际使用了多少下载代码。 ? 标记为红色所有内容都是当前路由上不需要东西,可以延迟加载。...现在是时候看看我们如何在我们自己Vue.js应用程序中使用延迟加载。 动态导入 我们可以使用webpack动态导入,轻松地加载我们应用程序某些部分。...在DOM中需要渲染组件之前,组件将不会加载。想要加载,只要v-if值更改为true即可。 总结 延迟加载,是使您Web应用程序更高效并减少js bundle大小最佳方法之一。

7.7K10

linux 设备驱动加载先后顺序

Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后顺序呢。 1、初始化宏 Linux系统使用两种方式去加载系统中模块:动态和静态。...静态加载:将所有模块程序编译到Linux内核中,由do_initcall函数加载 核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls...()该函数中会将在__initcall_start和__initcall_end之间定义各个模块依次加载。...可见驱动初始化顺序并不是和这个表定义顺序始终保持一致。...(记得PM操作 - resume/suspend顺序 是和这个表顺序保持一致) 2.2 怀疑和编译顺序有关 Z:\kernel\drivers\video\Makefile:背光驱动(backlight

3.3K40

Spring bean 加载顺序导致 bug 问题

二、spring bean 加载顺序 之前我一直以为 @Configuration 会比 @Service、@Component 优先执行。其实不对。看下面的代码片段: 文件结构: ?...我猜测应该是,spring 将上面带有注解类都放在一起,统一加载。默认是根据 包名+文件名称 来判断加载顺序。...三、设置 spring bean 加载顺序 有这么一个注解,@DependsOn,它可以指定依赖哪个 bean ,让自己在该 bean 之后加载。这样就可以实现 bean 顺序设置。...默认为 包名+文件名 来判断加载顺序。 如果需要指定加载顺序,可以使用 @DependsOn 注解。 文中还用到了 @PostConstruct 注解。...好啦,以上基本就是对 Spring bean 加载顺序导致问题 bug 思考,如果上述描述有欠缺或错误,欢迎指正,感谢。

6.3K20

JAVA中类内容先后加载顺序

类内容几个概念 a. 静态代码块 b. 构造代码块 c. 构造函数 d. 普通代码块 2. 类实例化执行顺序 a. 代码 b. 执行结果 ---- 1. 类内容几个概念 a....静态代码块 静态代码块在类被加载时候执行,并且只执行一次,它优先级是最高,在构造代码块和构造函数和main方法之前。如果有多个静态代码块,按代码编写顺序执行。...静态代码块只能在类里,不能在方法里,对于静态方法:在类加载时候,静态方法也已经加载了,但是我们必须要通过类名或者对象名才能访问,也就是说相比于静态代码块,静态代码块是主动运行,而静态方法是被动运行...普通代码块 普通代码块是在方法体中定义。且普通代码执行顺序和书写顺序一致。 2. 类实例化执行顺序 a....执行结果 根据上面的代码可以看到,我们main方法、构造代码块、静态代码块都是没有顺序放置,但是在输出结果里可以看到他们执行是有固定顺序,看下图: 在开发过程中可以根据具体业务去定义如何使用静态代码

56230
领券