什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其 ...
分类:
其他好文 时间:
2020-05-31 15:47:48
阅读次数:
57
1.加载2.连接(1)校验: 查看字节码的数据是否以“cafe”开头 jdk版本是否可以运行字节码的数据 (2)准备 成员变量赋默认值 常量(final) (3)解析 String -->String类型对应的class地址 3.初始化<clinit>类初始化 (1)静态变量的显式初始化代码,赋值代 ...
分类:
其他好文 时间:
2020-05-31 10:59:45
阅读次数:
63
一、类与对象及其使用 1.类与对象概述 1) 描述现实世界事物 ①属性就是该事物的描述信息(事物身上的名词)。 ②行为就是该事物能够做什么(事物身上的动词)。 2) Java中最基本的单位是类 ①成员变量就是事物的属性。 ②成员方法就是事物的行为。 3) 定义类其实就是定义类的成员(成员变量和成员方 ...
分类:
编程语言 时间:
2020-05-31 00:38:18
阅读次数:
94
作为初学者的我们,常常看到关于标题中这种形式的代码,那么向上转型时方法和成员变量到底调用谁的呢?这样写的意义在哪呢? 首先我们来看一段代码: 1 class Father{ 2 3 int i = 100; 4 static int j = 101; 5 final int m = 102; 6 7 ...
分类:
编程语言 时间:
2020-05-29 22:53:01
阅读次数:
124
开头注意:static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 根据定义变量位置的不同,可以将变量分为成员变量和局部变量。 成员变量是 定义在一个类的变量:类中方法外局部变量是定义在一个方法内的变量:方法中 ...
分类:
编程语言 时间:
2020-05-29 21:44:05
阅读次数:
74
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。 由于抽象类不能实例化对象 ...
分类:
编程语言 时间:
2020-05-28 16:16:31
阅读次数:
74
数组 一、概述 相同类型数据的有序集合 每个数组元素可以通过下标来访问它们(0~length-1) 数组的长度是确定的,一旦被创建,它的大小就不可改变 数组属于引用类型,也可以看成对象,每个数组元素相当于改对象的成员变量 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对 ...
分类:
编程语言 时间:
2020-05-27 20:07:31
阅读次数:
62
1. 数据封装 更方便的设置类的成员变量 (1)BeanUtils类 http://commons.apache.org/proper/commons-beanutils/ (2)使用1.9版本Beanutils的populate方法出错 java.lang.NoClassDefFoundError ...
分类:
编程语言 时间:
2020-05-27 12:15:17
阅读次数:
81
Aggregation(聚合)、Composition(组合)、Dependency(依赖) 关于以上三者的关系介绍用以下说话比较好理解和记忆: 两个类之间的关系,例如类A和B。 1、Composition 若B是A的成员变量,且B在A的构造函数种生成(new),则构成组合关系。 2、Aggrega ...
分类:
其他好文 时间:
2020-05-26 15:02:32
阅读次数:
78
@ 一、类的加载概述 加载 就是指将class文件读入内存,并为之创建一个Class对象 任何类被使用时系统都会建立一个Class对象 连接 验证:是否有正确的内部结构,并和其他类协调一致 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:将类的二进制数据中的符号引用替换为直接引用 初始化 ...
分类:
编程语言 时间:
2020-05-26 01:01:43
阅读次数:
66