面向对象---java代码块
概念:代码块是指用{}括起来的一段代码。
根据位置及声明的关键字不同,代码块可分为普通代码块、构造块、静态代码块、同步代码块4种。
1.普通代码块:
直接在方法中或在语句中定义
public class Test2 {
public static void main(String[] args) {
{ //定义普通代码块
int x = 30; //定义局部变量
System.out.println("普通代码块 x="+x);
}
int x = 100; //与局部变量名称相同
System.out.println("代码块之外 x="+x);
}
}
运行结果:
普通代码块 x=30
代码块之外 x=100
2.构造块:
构造代码块是直接写在类中的代码块。
public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
}
}
public class Test2 {
public static void main(String[] args) {
new Demo();
new Demo();
}
}
执行结果:
1、构造块。
2、构造方法
1、构造块。
2、构造方法
从输出结果发现:构造块优于构造方法执行,而且每次实例化对象时都会执行构造块。
静态代码块:
静态代码块是使用static关键字声明的代码块。
public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
static{
System.out.println("0、静态代码块");//定义静态代码块
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
}
}
public class Test2 {
static{ //在主方法所在的类中定义静态代码块
System.out.println("在主方法所在的类中定义静态代码块");
}
public static void main(String[] args) {
new Demo(); //实例化对象
new Demo();
}
}
执行结果:
在主方法所在的类中定义静态代码块
0、静态代码块
1、构造块。
2、构造方法
1、构造块。
2、构造方法
从输出结果发现:静态代码块优于主方法执行,在类中定义的静态代码块优于构造方法执行,而且不管产生多少个对象,静态代码块只执行一次。
4.同步代码块:
在代码块上加上synchronized关键字,主要使用在多线程上,此代码块称为同步代码块格式如下:
synchronized(同步对象){
需要同步的代码;
}
后续多线程再详细练习。
面向对象---java代码块的更多相关文章
- Java代码块详解
Java中代码块指的是用 {} 包围的代码集合,分为4种:普通代码块,静态代码块,同步代码块,构造代码块 普通代码块: 定义:在方法.循环.判断等语句中出现的代码块 修饰:只能用标签修饰 位置:普通代 ...
- java代码块的理解
最近在复习java基础,在看到java代码块的时候,忽然发现自己貌似对于java代码块一无所知,于是赶紧对着一些资料实战演练了一把. 对于java代码块,不难根据名称看出其实就是一些java语句的集合 ...
- java代码块执行顺序
父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...
- 夯实Java基础系列7:一文读懂Java 代码块和执行顺序
目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...
- 夯实Java基础系列7:Java 代码块和执行顺序
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- Java 代码块详解
注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 注:本文原链接:https://www.cnblogs.com/chloneda/p/java-c ...
- 0023 Java学习笔记-面向对象-初始化代码块
初始化代码块 在18篇-类的基本要素中说到,类的三大成员:成员变量.构造方法.方法,初始化代码块是类的第4个成员 初始化块用于对类或者对象的初始化, 一个类的初始化块可以有0-多个,按先后顺序执行 跟 ...
- 《java入门第一季》之面向对象(代码块一网打尽)
上一篇里面对代码块做出介绍,这里给出一个面试题,加深印象. 如有毁三观的地方,请见谅.拒绝黄赌毒 写程序的执行结果. class Student { static { System.out.print ...
- 08 java代码块的概述和分类
08.01_面向对象(代码块的概述和分类) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代 ...
随机推荐
- 推荐几个JSON工具
JSON查看 http://jsonviewer.codeplex.com/ JSON转类(非常好使) http://jsonclassgenerator.codeplex.com https://g ...
- Jumony Core 3,真正的HTML引擎
Jumony Core 3,真正的HTML引擎,正式版发布 2013-11-28 17:22 by Ivony..., 778 阅读, 18 评论, 收藏, 编辑 Jumony是一个开源项目,已经有三 ...
- poj2187(未完、有错)
凸包求直径(socalled..) 采用Graham+Rotating_Calipers,Graham复杂度nlogn,RC算法复杂度n,所以时间复杂度不会很高. 学习RC算法,可到http://cg ...
- [每日一题] OCP1z0-047 :2013-07-29 视图――别名
本题的考点是如何创建视图,对于视图的详细知识点,可以参考我的博客: http://blog.csdn.net/guoyjoe/article/details/8614677 好,接下来我们来做测试,先 ...
- Linux目录树详细说明
Linux目录树详细说明 目录树的主要部分有root(/)./USR./var./home等等.下面是一个典型的linux目录结构如下: / 根目录 /bin 存放必要的命令 /boot 存放内核以及 ...
- jQuery 2.0.3 源码分析Sizzle引擎解析原理
jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 先来回答博友的提问: 如何解析 div > p + ...
- C#中字符转换问题详解
C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名.数值类型间相互转换.字符的 ASCII 码和 Unicode 码.数值字符串和数值之 ...
- 扩展jquery easyui datagrid编辑单元格
扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...
- Caffe Ubuntu14.04 64位 的最快安装 (cuda7.5 + cudnn7.0 2016最新)
最近因为各种原因,装过不少次Caffe,安装过程很多坑,为节省新手的时间,特此总结整个安装流程. 关于Ubuntu 版本的选择,建议用14.04这个比较稳定的版本,但是千万不要用麒麟版!!!比原版体验 ...
- SQL Server 性能优化之——系统化方法提高性能
SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...