1、代理模式的概念
可以为其它对象提供一种代理以控制对这个对象的访问,屏蔽对真实角色的直接访问。
2、为什么要重写toString()方法?
默认情况下,toString()方法返回的字符串是由对象的类名、“@”符号和对象的哈希码组成的。我们需要重写toString()方法,以便返回更有意义和有用的字符串表示形式。
3、this与super的区别
this关键字
this关键字代表当前对象,可以用于以下情况:
(1)区分成员变量和局部变量:如果在方法中定义了一个与成员变量同名的局部变量,可以使用this关键字来引用成员变量。
(2)调用当前对象的其他方法:在一个方法中调用当前对象的其他方法时,可以使用this关键字来引用当前对象。
(3)在构造函数中调用其他构造函数:在一个构造函数中调用同一个类的其他构造函数时,可以使用this关键字来引用其他构造函数。
super关键字
super关键字代表父类对象,可以用于以下情况:
(1)调用父类的构造函数:在子类的构造函数中,可以使用super关键字调用父类的构造函数。
(2)调用父类的成员变量或方法:在子类中可以使用super关键字来引用父类中的成员变量或方法。
4、在静态方法中是否可用this来调用本类的类方法?
不可以,静态方法不属于任何一个对象,所以不能够使用this关键字。
5、请谈谈你对代码块的理解
代码块(Block)是一组用花括号“{}”括起来的语句,它可以看作是一个独立的作用域,其中定义的变量只在该作用域内有效。
代码块的作用:对Java类或对象进行初始化
分类:
(1)局部代码块
局部代码块是定义在方法中的代码块,用于限制变量的作用范围,减少变量的生命周期,以便释放内存。
(2)初始化代码块
初始化代码块是定义在类中,没有static修饰符和方法名的代码块,用于对成员变量进行初始化。
(3)静态代码块
静态代码块是定义在类中,有static修饰符和没有方法名的代码块,用于对静态成员变量进行初始化。
6、请谈谈你对变量的理解
变量是存储数据值得容器。为了使数据的在程序中合法存在,所以我们使用变量。声明变量语法格式:数据类型 变量名称。比如:int a
7、请写出空指针异常的名字(英文),并描述其产生的原因
NullPointerException
它的产生原因是当程序试图访问一个空对象的属性或调用一个空对象的方法时,就会发生空指针异常。
为了避免空指针异常的发生,我们需要在使用对象之前,先对其进行非空判断,或者在定义对象时就进行初始化或赋值。
8、基本数据类型和引用数据类型有什么区别?
(1)存储方式不同
基本数据类型存储在栈(stack)中,而引用数据类型存储在堆(heap)中。
(2)初始化方式不同
基本数据类型在定义时会自动初始化为默认值,例如int类型的默认值为0,boolean类型的默认值为false。而引用数据类型在定义时默认为null,
(3)复制方式不同
基本数据类型在进行赋值或传递参数时,会复制它们的值到新的变量或参数中。而引用数据类型在进行赋值或传递参数时,会复制它们的引用(内存地址)到新的变量或参数中,即新的变量或参数会指向同一个对象。
(4)基本数据类型可以使用“==”和“!=”运算符进行比较,表示比较它们的值是否相等。而引用数据类型使用“==”和“!=”运算符比较的是它们的引用(内存地址)是否相等,即它们是否指向同一个对象。
标签:Java,变量,对象,代码,数据类型,笔记,学习,关键字,构造函数 From: https://www.cnblogs.com/wgh123/p/17368939.html