4种Java代码块的作用讲解

时间:2017-06-28     来源:华清远见JAVA学院

今天华清Java学院小编要和大家分享的是Java代码块的作用,代码块是一种常见的代码形式,他用大括号“{}”将多行代码封装在一起,形成一个独立的代码区,这就构成了代码块。代码块的格式如下:

java中的代码块按其位置划分为四种:

Java代码块一:局部代码块

位置:局部位置(方法内部)

作用:限定变量的生命周期,尽早释放,节约内存

调用:调用其所在的方法时执行

举例:

class exampleDemo{

public void example(){

{

int a = 10;

System.out.println(a);

}}}

Java代码块二: 构造代码块

位置:类成员的位置,就是类中方法之外的位置

作用:把多个构造方法共同的部分提取出来,共用构造代码块

调用:每次调用构造方法时,都会优先于构造方法执行,也就是每次new一个对象时自动调用,对 对象的初始化

举例:

class exampleDemo{

{

int a = 10;

System.out.println(a);

}

public void example(){

}}

Java代码块三: 静态代码块

位置:类成员位置,用static修饰的代码块

作用:对类进行一些初始化 只加载一次,当new多个对象时,只有第一次会调用静态代码块,因为,静态代码块 是属于类的,所有对象共享一份

调用: new 一个对象时自动调用

举例:

class exampleDemo{

static {

int a = 10;

System.out.println(a);

}

public void example(){

}

}

执行顺序 静态代码块 -----> 构造代码块 -------> 构造方法

Java代码块四: 同步代码块

位置:方法内部

作用:达到线程安全的目的

调用: 线程调用该方法时

格式:

synchronized(obj){

// 需要同步执行的代码

}

obj 作为参数传递 相当于同步代码块的锁,可以是任意对象

同步代码块:

使用synchronized(obj){ } 裹起来的代码块,

在多线程环境下,对共享数据进行读写操作是需要互斥进行的,否则会导致数据的不一致性。常见的是synchronized用来修饰方法,其语义是任何线程进入synchronized需要先取得对象锁如果被占用了,则阻塞,实现了互斥访问共享资源。而synchronized也是有代价的。一个常见的场景是,一个冗长的方法中,其实只有一小段代码需要访问共享资源,这时使用同步块,就只将这小段代码裹在synchronized block,既能够实现同步访问,也能够减少同步引入的开销。 同步代码块须写在方法中。

synchronized(obj){

//code

}

Java代码块的作用很多,以上介绍了Java中常见的4种代码块极其各自的作用,希望以上的总结,对大家理解和使用Java代码块有所帮助。

java 代码块的作用_4种Java代码块的作用讲解相关推荐

  1. java mvc引擎_Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁。服务端渲染,我们使用最多的就是用他...

    Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁.服务端渲染,我们使用最多的就是用他来渲染HTML.下面我们看看他与spri ...

  2. java实现安全卡模块,一种Java卡防火墙漏洞的检测方法和装置的制造方法

    一种Java卡防火墙漏洞的检测方法和装置的制造方法 [技术领域] [0001]本发明涉及智能卡领域,尤其涉及智能卡领域中的一种Java卡防火墙漏洞的检测方法和装置. [背景技术] [0002]Java ...

  3. java如何解决缓存问题_4种常见的缓存问题及解决方案详解

    前言 使用缓存可以缓解大流量压力,显著提高程序的性能.我们在使用缓存系统时,尤其是大并发情况下,经常会遇到一些"疑难杂症".本文总结了一些使用缓存时常见的问题及解决方案,以后在遇到 ...

  4. Java多线程安全问题解决的两种方式代码案例

    需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 多线程安全问题 需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 模拟安全问题 p ...

  5. Java实现字符串反转的四种方式代码示例

    第一种 (最投机取巧的一种): private static void reverse1() {String s = "abcdefg";StringBuilder sb = ne ...

  6. java arraylist 删除回车符_2种Java删除ArrayList中的重复元素的方法

    这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet. ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素, ...

  7. java class b_“ [B””是哪种Java类型?

    我正在尝试通过Java代码(hibernate)从MySQL DB获得MD5加密的通行证.但是我既不能得到String也不能得到任何合理的Java类型. 我得到的唯一消息是此无用的消息: java.l ...

  8. Python表白代码合集:5种表白代码、比小心心、无限弹窗、520表白墙、抖音热门表白小软件、无套路表白

       一.介绍一下         写了5个Python表白代码,代码很简单,通俗易懂,都有注释.有什么问题联系本人QQ:483062431.文章最后教你们怎么打包成exe,如果你懒得搞懂代码怎么回事 ...

  9. Python表白代码合集:5种表白代码,找不到对象你来找我,这也太秀了叭

    文章目录 一.容我啰嗦两句 二.来吧,代码展示 1.给女神比个小心心 2.无限弹窗式表白 3.这货不是表白代码,悄悄送给你们 4.520表白墙 5.抖音热门表白小软件 6.无套路表白 三.写在最后 一 ...

最新文章

  1. Android SystemServer分析
  2. win10安装java不见了,win10安装java以及java配置遇到的坑
  3. 不错的html学习网址。
  4. 万字好文 | 数字化转型之道——数据治理体系能力提升
  5. cartographer坐标系_cartographer个人对框架解读
  6. usermod 修改用户信息
  7. 如何写出有效的引流文案?
  8. 生信可视化(part2)--箱线图
  9. C语言应用(2)——判断当前时间是否在一个时间段内(含跨天)
  10. hive动态分区 MapReduce 虚拟内存不足
  11. 考拉验数(自动化验数)设计方案和实现
  12. 不解决产能低下的问题,直供模式也拯救不了小米
  13. pythoneducoder苹果梨子煮水的功效_苹果梨子煮水的功效是什么呢
  14. arcgis10之给图层添加注记
  15. Spring Boot 打包分离依赖 JAR 和配置文件
  16. 《自然》杂志:面对“电车难题”,不同国家的人有不同的道德选择
  17. 企业网络和家庭网络区别
  18. 学人工智能数学要好吗?
  19. mysql 计算农历_MySQL 获取农历年函数
  20. 爬取豆瓣电影top250提取电影分类进行数据分析

热门文章

  1. MyBatisPlus_更新篇_入门试炼_03
  2. 用 Excel+VBA 与 SQL Server 数据库交互
  3. java swing图形界面开发设计器windowbuilder安装步骤详解
  4. java 设计模式 prototype_Java设计模式之Prototype原型模式
  5. 平板电脑可以开发php吗,PHP代码判断设备是手机还是平板电脑(两种方法)
  6. linux获取ip地址的接口,获取Linux上接口的IP地址
  7. win8能开发android的sdk么,Win8下Android SDK安装与环境变量配置教程
  8. Android app 标签,android 获取APP的唯一标识applicationId的实例
  9. c语言 自动化编译环境,《C编程.开始C》3.编译基础
  10. 编译 linux 3,linux内核的编译(3)