1 变量

1.1 变量的【定义】

1.2 变量的【作用域】

1.3 变量的【初始值】

1.4 补充:缓存变量

1.5 变量的【分类】与【未初始化情况】

2 类对象

2.1 类对象的初始化/构造过程

  • 1 【对象】的初始化流程

  • 2 实验
class Base{
static { System.out.println("[Base:static area]"); }//step1
{ System.out.println("Base:instance area"); }//step3
Base(){ System.out.println("<Base:constructor>"); }//step4
}
public class Create extends Base{
static { System.out.println("[Create:static area]"); }//step2
{ System.out.println("Create:instance area"); }//step5
Create(){//step6
// super();//默认:首先调用super()
System.out.println("<Create:constructor>");
}
public static void main(String args[]){ Create create = new Create(); }
}
//Output
[Base:static area]
[Create:static area]
Base:instance area
<Base:constructor>
Create:instance area
<Create:constructor>
  • 3 360公司2020春招技术C卷试题

    (题目小有改动)
class Clazz {
public static int x;
public boolean z;
public static String printX(Clazz clazz) { return "x:" + clazz.x; }
public static String printZ(Clazz clazz){ return "z:" + clazz.z; }
} public class Singleton {
private static Singleton singleton = new Singleton();
public int counter0;//[值域/类的属性 →基本类型变量] 默认 初始化为0
public static int counter1;//[值域/类的属性] 默认 初始化为0
public static int counter2 = 0;//[值域/类的属性]
public Clazz clazz;//[值域/类的属性 → 引用类型变量]
private Singleton() {
int x;//[局部变量]
// System.out.println(x);//局部变量未初始化 ∴编译时报错 [局部变量]
System.out.println(Clazz.printX(clazz));//x:0 /[值域/类的属性 → 引用类型变量 de 静态属性]
// System.out.println(Clazz.printZ(clazz));//运行时报错 (ExceptionInInitializerError) [值域/类的属性 → 引用类型变量 de 非静态属性]
counter0++;
counter1++;
counter2++;
}
public static Singleton getInstance(){ return singleton; }
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println(singleton.counter0);//1
System.out.println(Singleton.counter1);//1
System.out.println(Singleton.counter2);//0
}
}
x:0
1
1
0

[Java]变量及其初始化 与 类对象的初始化的更多相关文章

  1. JAVA之等号、传类对象参数与c++的区别

    在JAVA中用等号对类对象进行赋值,实际上操作的是对象的地址. eg: package MyText; class ClassA { int value; public void seta(int v ...

  2. C++派生类中如何初始化基类对象(五段代码)

    今天收到盛大的面试,问我一个问题,关于派生类中如何初始化基类对象,我在想派生类对于构造函数不都是先构造基类对象,然后在构造子类对象,但是如果我们在成员初始化列表先初始化派生类的私有成员,在函数内去调用 ...

  3. Java类的初始化与实例对象的初始化

    Java对象初始化详解 2013/04/10 · 开发 · 1 评论· java 分享到:43 与<YII框架>不得不说的故事—扩展篇 sass进阶篇 Spring事务管理 Android ...

  4. 《Java核心技术》 -- 读书笔记 ② - 类 | 对象 | 接口

    对象vs对象变量 “对象” 描述的是一个类的具体实例,他被java虚拟机分配在 "堆" (Heap)中. “对象变量” 为一个对象的引用(对象变量的值=记载着具体对象的位置/地址) ...

  5. JAVA反射机制教程-获取类对象

    1. 什么是类对象 类对象,就是用于描述这种类,都有什么属性,什么方法的 2. 获取类对象 获取类对象有3种方式(1). Class.forName(2). Hero.class(3). new He ...

  6. 113-PHP使用instanceof判断变量是否为某个类对象

    <?php class ren{ //定义人类 } class mao{ //定义猫类 } $ren=new ren(); //实例化一个人类的对象 $mao=new mao(); //实例化一 ...

  7. java类对象的初始化顺序

    在下面这个例子中,我们分别在父类和子类中测试了静态代码块.普通代码块.静态成员变量.普通成员变量.构造器.静态内部类. 一:代码块及变量测试 class Field{ public static St ...

  8. C++ 类对象的初始化顺序 ZZ

    C++构造函数调用顺序 1.     创建派生类的对象,基类的构造函数优先被调用(也优先于派生类里的成员类): 2.    如果类里面有成员类,成员类的构造函数优先被调用:(也优先于该类本身的构造函数 ...

  9. Java在的时候,类定义HashSet初始化方法

    Java非常多的时间,应使用HashSet搜索功能,类的则定义,是HashSet类型的,我们定义数据成员之后,不好直接调用add函数来实现初始化,这个时候怎么办? 我们能够这样来做: public s ...

  10. java socket之传输实体类对象

    一.TCP编程     TCP协议是面向连接的.可靠地.有序的,以字节流的方式发送数据.java实现TCP通信依靠2个类:客户端的Socket类和服务器端的ServerSocket类. 基于TCP通信 ...

随机推荐

  1. ubuntu16.04openssh升级

    wget http://zlib.net/zlib-1.2.11.tar.gz tar xf zlib-1.2.11.tar.gz && cd zlib-1.2.11/ ./confi ...

  2. api进阶Day1文件的创建、删除、访问、设置过滤器并查询。目录的删除、创建。

    文件的创建: package file; import java.io.File; import java.io.IOException; /* create:创建 new:新 file:文件 使用F ...

  3. Java实现图片上传返回上传地址

    **关于在实际开发中最常用也是用的最多的Java实现文档.图片上传.***一.准备阶段*文档.图片上传有几种方式,包括传统的ajax上传,云上传,这里给大家实现通过代码将图片上传至七牛云服务器并返回图 ...

  4. nRF51822蓝牙学习 进程记录 3:蓝牙协议学习--简单使用

    三天打鱼两天晒网,又学起了蓝牙,不过还好的是终于开始学习蓝牙协议部分了. 但是,一看起来增加了蓝牙协议的例程,真是没头绪啊.本身的教程资料解说太差了,看青风的蓝牙原理详解也是一头雾水. 经过不断地看各 ...

  5. PriorityQueue&&Function overload

    用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue    #include <iostream>    #include ...

  6. java的两种线程

    java中的两种线程     守护线程与用户线程 守护线程:就是服务于用户线程的线程,例如垃圾回收的线程及时最典型的守护线程.不需要上层逻辑的介入 用户线程:就是程序自己创建的线程 守护线程; 守护线 ...

  7. VulnHub靶场练习之 grotesque:2

    步骤1:信息收集 拿到靶机首先看一下开放的端口 可以看到开放了很多端口 比如22 ssh.80 http等等 那么就先访问一下80看一下 页面没有什么有用的东西 查看一下网页源代码 也没有找到什么有价 ...

  8. 登录:ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME

    问题描述:在用pl/sql登录soctt用户时,显示: 解决办法:在tnsnames.ora文件中添加(文件位置的查找方法见文章末尾) ORCL = (DESCRIPTION = (ADDRESS = ...

  9. vue树形结构图

    1.下载插件:cnpm i vue2-org-tree 2.下载less-loader不然报错(this.getOptions is not a function):npm install less- ...

  10. vTaskList() 介绍

    vTaskList() 使用注意:使用 vTaskList() 前需使能: make menuconfig -> Component config -> FreeRTOS -> En ...