当前位置: 首页 > news >正文

静态代码块和非静态代码块的比较

非静态代码块如:

 

[java]  view plain  copy
 
  1. {  
  2.     System.out.println("2");  
  3. }  

以上代码块就是非静态的代码块,请注意这里的方法名、作用域、返回值、参数一概没有,非静态代码块会在每次类被调用或者被实例化时就会被执行。

 

静态代码块如:

 

[java]  view plain  copy
 
  1. static {  
  2.         System.out.println("3");  
  3.     }  

上面的代码块就是静态的代码块,同样没有方法名、作用域、返回值以及参数,静态代码块类似于静态变量,不论类被调用多少次,该区域代码只在第一次时执行一次

 

大家可以通过下面的代码做进一步的测试

 

[java]  view plain  copy
 
  1. public class test1 {  
  2.   
  3.     public static void main(String[] args) {  
  4.         // TODO Auto-generated method stub  
  5.         new test1();  
  6.         new test1();  
  7.     }  
  8.       
  9.     {  
  10.         System.out.println("2");  
  11.     }  
  12.     static {  
  13.         System.out.println("3");  
  14.     }  
  15.       
  16.     public test1(){  
  17.         System.out.println("1");  
  18.     }  
  19.   
  20. }  

输出结果为

 

3
2
1
2
1

从结果中发现静态代码块以及非静态代码块都会在构造函数前执行,首次访问时,静态代码块会在非静态代码块前执行

静态代码块是在类加载时自动执行的,非静态代码块是在创建对象时自动执行的代码,不创建对象不执行该类的非静态代码块

相关文章:

  • JDK 卸载
  • 前台页面优化全攻略(二)
  • Spring Boot多数据源连接8小时后断开的问题解决(MySQL)
  • xtream 示例介绍
  • iOS逆向之五-MACH-O文件解析
  • 从零开始配置git
  • php语法
  • 那天
  • [hihocoder1395] 最大权闭合子图
  • CodeDom系列目录
  • 转: Lua 语言 15 分钟快速入门
  • JavaScript多线程之HTML5 Web Worker
  • Qt学习: QPixmap实现的截屏程序代码示例
  • HDFS上创建文件、写入内容
  • 管理OCR与Voting Disk(原创)
  • ----------
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 08.Android之View事件问题
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • AngularJS指令开发(1)——参数详解
  • CSS魔法堂:Absolute Positioning就这个样
  • CSS实用技巧
  • flutter的key在widget list的作用以及必要性
  • java第三方包学习之lombok
  • Meteor的表单提交:Form
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Promise初体验
  • 计算机常识 - 收藏集 - 掘金
  • 深度学习入门:10门免费线上课程推荐
  • 微信公众号开发小记——5.python微信红包
  • 微信小程序实战练习(仿五洲到家微信版)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C++17) std算法之执行策略 execution
  • (八)Flask之app.route装饰器函数的参数
  • (二十四)Flask之flask-session组件
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (汇总)os模块以及shutil模块对文件的操作
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (一)为什么要选择C++
  • (转)shell调试方法
  • (转)socket Aio demo
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .equals()到底是什么意思?
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET建议使用的大小写命名原则
  • .NET命令行(CLI)常用命令
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @test注解_Spring 自定义注解你了解过吗?
  • @Transactional 竟也能解决分布式事务?
  • [<MySQL优化总结>]