java 块语句 和引用类型
1、java中存在块语句,块语句分为四种
1、静态块
2、普通块
3、构造块
4、同步块
静态块的执行时机是在class文件装载的时候;静态块只会执行一次,
多个静态块的时候,按出现顺序执行,存放类的信息,用来在生成类之前进行的初始化,对一些static 变量赋值。如果某些代码必须要在项目启动时候就执行的时候,我们可以采用静态代码块,这种代码是主动执行的。
普通块存在于方法体中,用于设置变量的作用域,
构造块,初始对象信息,每创建一个对象,初始化一次,先于构造器执行
当一个类有很多个构造方法,每个构造方法里都要重复执行一段代码时,可以把这段代码放入进构造块中,每次创建对象时都会被执行。
同步块:
请点下面:
http://hi.baidu.com/jiangyangw3r/item/a3d53ed6bb72b21e20e2504c
其中,
在一个类中,静态块,构造方法和构造块的执行顺序为:(类第一次加载的时候)
父类静态块,子类的静态块,父类的构造块,父类的构造方法,子类的构造块,子类的构造方法
程序代码如下:
Parent:
public class Parent {
{
System.out.println("我是父类的普通语句块");
}
Parent(){
System.out.println("我是父类的构造方法");
}
static{
System.out.println("我是父类的静态语句块");
}
}
Child:
public class Child extends Parent{
static {
System.out.println("我是子类的静态语句块");
}
{
System.out.println("我是子类的普通语句块");
}
Child(){
System.out.println("我是子类的构造方法");
}
}
Test:
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Child child = new Child();
}
}
程序的输出如下:

2、引用分类(不是引用类型分类)
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
1、强引用:
2、软引用
3、弱引用
4、虚引用
请看下面的网址:
http://java.chinaitlab.com/oop/716371.html
java 块语句 和引用类型的更多相关文章
- 【转】Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下final ...
- Java finally语句到底是在return之前还是之后执行(JVM字节码分析及内部体系结构)?
之前看了一篇关于"Java finally语句到底是在return之前还是之后执行?"这样的博客,看到兴致处,突然博客里的一个测试用例让我产生了疑惑. 测试用例如下: public ...
- 关于Java中语句符号及格式的理解
关于Java中语句符号及格式的理解 这篇文章是撰写的第一篇文章,在此作一下博主是一名在读的工科研究生,种种原因,研二开始决定转行从事程序员工作.开始的自学之路并不算非常顺畅,也走了一点弯路,但一直都坚 ...
- Java-Runoob:Java 条件语句
ylbtech-Java-Runoob:Java 条件语句 1.返回顶部 1. Java 条件语句 - if...else 一个 if 语句包含一个布尔表达式和一条或多条语句. 语法 if 语句的语法 ...
- Java 基础 - 基本类型和引用类型
ref: https://www.cnblogs.com/ysocean/p/8482979.html#_label2 ------------------ 这里再给大家普及一个概念,在 Java 中 ...
- javascript语句——表达式语句、块语句、空语句和声明语句
× 目录 [1]表达式 [2]块语句 [3]空语句[4]声明 前面的话 如果表达式在javascript中是短语,那么语句(statement)就是javascript整句或命令.表达式计算出一个值, ...
- java中四种引用类型
java中四种引用类型 今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...
- 【Demo 0002】Java基础-语句
本章学习要点: 1. 掌握Java关健语句使用方法; 2. 理解与语句相关的关键字用法; 一.Java 关键语句 Java语句以及关联关键字与C完全相 ...
- 7#Java基本语句语法
Java基本语句语法https://github.com/DuGuQiuBai/Java/blob/master/day03/day03%E6%80%BB%E7%BB%93.txt 1:位运算符(了解 ...
随机推荐
- php使用sftp上传文件
搞这个SFTP文件传输搞了一整天真是醉了,从sftp安装,到php的ssh2扩展安装,最后到php应用ssh2来上传文件:最后就没有最后了 Failure creating remote file: ...
- java.security.InvalidKeyException: Illegal key size 解决办法
下载对应的文件并替换到指定目录 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6 Jav ...
- go语言使用go-sciter创建桌面应用(四) 固定窗口大小
有些时候我们需要创建的应用窗口大小不可改变. demo5.go代码如下: package main; import ( "github.com/sciter-sdk/go-sciter/wi ...
- 在Struts2框架中使用Servlet的API
1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的 ...
- 完全卸载jdk
完全卸载jdk 如(卸载jdk1.7.0_80), 当卸载jdk时出现删除信息不全,导致无法安装,可通过此方法实现完全卸载. 1.打开系统运行输入regedit(注册表)分别查找以下路径 (1) ...
- vue 获取组件 和 dom 对象 ref/el
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Vue 安装脚手架 工具 vue-cli (最新)
假如您安装过旧版脚手架工具(vue-cli),您可以通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli卸载. Vue CLI 需要Node ...
- c#devexpres窗体划分 以及panelcontrol 相关操作
想模仿flashfxp 做一个svn上传的客户端 左侧为本地目录,右侧为svn服务器目录 准备用devexpress 的 控件实现,顺便练习一下devexpress 相关使用. 1:要实现菜单栏工具 ...
- SharpSvn 调用在运行时提示加载程序集出错,或有依赖项
策略后引用: SharpSvn, Version=1.8009.3299.43, Culture=neutral, PublicKeyToken=d729672594885a28日志: 尝试下载新的 ...
- UVA 11235 (RMQ) 频繁出现的数值
题目大意是给出一个非降序排列的数组,然后n个询问,每次询问一个区间内出现次数最多的数的次数. 首先要弄清楚题目的是一个非降序的数组,那么说明相等的数都会在一起,类似于11223334569这样的,那么 ...