OOP的主要思想
OOP认为程序是由对象组成的,这些对象有自己的属性和能够执行的操作。在OOP中,只需要关注对象的外表,不必关心其内部结构;绝大多数程序员不必关心对象的具体实现,只要保证对象满足他们的需求就可以了。OOP是以数据为第一其次才是操作数据的算法。
OOP的关键是让每一个对象负责执行一组相关的任务。如果一个对象依赖另一个对象负责处理的任务,那么他就去访问那个包含该任务的对象。对象之间的所有通信都是通过方法调用完成。通过封装对象数据,最大限度地提高可重用性,减少数据的依赖性,并将程序的调试时间降到最低。
访问权限修饰符protected和(defaul)比较
protected受到package和继承的保护,也就是说只有在同一个package下的类才能访问这些成员,通过在不同package中可以产生对象或是继承后访问类成员和直接使用父类的成员。
如果声明一个成员时,没有加上任何的修饰符public,protected,private,就叫做(defaul)。它的限制比protected严格,只有在同一个package中的类才能互相的访问对象,在不同package中就算继承也没办法使用。
final、finally和finalize的区别是什么?
final关键字
我们首先来说说final。它可以用于以下四个地方:
1. 定义变量,包括静态的和非静态的。
2. 定义方法的参数。
3. 定义方法。
4. 定义类。
我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一
个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是
一个对象,就表示这个变量被赋予的引用是不可变的,这里需要提醒大家注意的是,不可改
变的只是这个变量所保存的引用,并不是这个引用所指向的对象。在第二种情况下,final的
含义与第一种情况相同。实际上对于前两种情况,有一种更贴切的表述final的含义的描述,
那就是,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟
机为变量设定的默认值不记作一次赋值。
被final修饰的变量必须被初始化。初始化的方式有以下几种:
1. 在定义的时候初始化。
2. final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。
3. 静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。
4. final变量还可以在类的构造器中初始化,但是静态final变量不可以。
最后我们再来回顾一下final用于类的情况。这个大家应该也很熟悉了,因为我们最常用的
String类就是final的。由于final类不允许被继承,编译器在处理时把它的所有方法都当作
final的,因此final类比普通类拥有更高的效率。而由关键字abstract定义的抽象类含有必须
由继承自它的子类重载实现的抽象方法,因此无法同时用final和abstract来修饰同一个类。
同样的道理,final也不能用来修饰接口。 final的类的所有方法都不能被重写,但这并不表
示final的类的属性(变量)值也是不可改变的,要想做到final类的属性值不可改变,必须
给它增加final修饰。
finally语句
接下来我们一起回顾一下finally的用法。这个就比较简单了,它只能用在try/catch语句中
并且附带着一个语句块,表示这段语句最终总是被执行。
finalize方法
最后,我们再来看看finalize,它是一个方法,属于java.lang.Object类,它的定义如下:
protected void finalize() throws Throwable { }
众所周知,finalize()方法是GC(garbage collector)运行机制的一部分。
在此我们只说说finalize()方法的作用是什么呢?
finalize()方法是在GC清理它所从属的对象时被调用的,如果执行它的过程中抛出了无法捕
获的异常(uncaught exception),GC将终止对改对象的清理,并且该异常会被忽略;直到
下一次GC开始清理这个对象时,它的finalize()会被再次调用。
接口与抽象类的区别
简单来说,接口可以说是一个完全抽象的类,因为接口中所有的方法都是抽象的。
一:构造函数,接口不像抽象类需要构造函数,它只有一下规范,功用的定义声明。
二:抽象类中除了方法以外,还可以有类和实例属性,而接口中就只能有类常量而已。类常量被final和static修饰。
Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
List, Set, Map是否继承自Collection接口?
List,Set是 Map不是
ArrayList和Vector的区别。
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
HashMap和Hashtable的区别
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
分享到:
相关推荐
Java 期末复习题涵盖了许多Java语言的核心概念,以下是这些题目涉及的关键知识点的详细解析: 1. **Unicode编码**:Java中的`char`类型用于存储Unicode字符,每个`char`占用两个字节,因此可以存储包括中文在内的...
Java SE复习资料通常涵盖以下几个核心领域: 1. **基础语法**:这是学习Java的第一步,包括数据类型(如基本类型和引用类型)、变量、运算符、控制结构(如if-else、switch、for、while循环)、方法、数组等。理解...
### Java考试复习资料详解 #### 一、架构模式:B/S与C/S - **B/S架构**(Browser/Server,浏览器/服务器)是一种通过Web浏览器进行访问的应用系统架构。客户端只需要一个Web浏览器即可,无需安装任何软件。所有的...
这个“java_复习题库”包含了丰富的学习资料,旨在帮助学习者巩固Java编程的知识点,提升技能水平。以下是一些核心的Java编程知识点,通过复习题库可以深入理解和掌握: 1. **基础语法**:Java的基础包括变量、数据...
"JAVA书本复习题答案整合"是一个精心整理的资源包,它集合了多套Java书本复习题目及其对应的答案,旨在帮助学习者高效地备考期末考核。 1. **Java基础知识**:复习题可能涵盖了Java的基础语法,如变量、数据类型、...
复习Java,首先需要理解其基本概念和技术要点。 一、Java基础知识 1. Java语言的特点: - 跨平台性:Java代码通过JVM(Java虚拟机)实现“一次编写,到处运行”。 - 面向对象:Java支持类、对象、封装、继承、...
### Java基础复习知识点详解 #### 开发中的注意事项 在Java编程初期,经常会出现一些常见的错误,比如找不到文件、单词拼写错误、括号不匹配以及中英文混淆等问题。这些问题虽然简单,但却是初学者最易犯的错误。 ...
java考试复习大纲Word版
Java EE的复习笔记是学习这个复杂框架的重要参考资料,尤其对于开发者来说,深入理解其核心概念和技术是必不可少的。 首先,Struts是Java EE中的一个MVC(Model-View-Controller)框架,它的主要任务是分离业务逻辑...
java基础复习.xmind
### Java考试复习内容 #### Java概述 - **JavaSE与JavaEE的区别:** - JavaSE(Java Standard Edition):标准版Java,适用于桌面应用程序开发。 - JavaEE(Java Enterprise Edition):企业版Java,主要面向Web...
Java是一种流行的面向对象的编程语言,它起源于1995年,由Sun Microsystems公司推出。Java语言的主要设计目标是能够“一次编写,到处运行”,这种特性被称为Java的平台无关性。Java从C++语言中继承了许多优点,例如...
体实现的方法,通常存在于抽象类中,用于提供子类继承并进行具体实现的接口。在Java中,如果一个类包含抽象方法,那么该类必须声明为抽象类,使用...在复习过程中,不仅要理解这些概念,还要能够熟练应用到实际编程中。
Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。为了准备Java考试,你需要对以下几个关键知识点有深入的理解: 1. **环境变量配置**:在使用Java开发时,我们需要设置`JAVA_HOME`、`...
这意味着在不创建类的对象的情况下也可以访问这些成员。 2. **用途**:通常用于存储常量或者类级别的状态。 #### 子类调用父类成员 2. **关键字**:通过使用关键字`super`我们可以在子类中调用被子类隐藏的父类的...
【Java 考试复习指南】 1. Java 编译过程:Java 源程序文件(扩展名为 .java)经过Java编译器编译后,会生成字节码文件(扩展名为 .class)。这是Java程序运行的基础,因为JVM(Java虚拟机)执行的是字节码。 2. ...
java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来java 复习资料 很全 要的来...
"Java复习题3"显然聚焦于帮助学习者巩固和深化对Java语言的理解。在这个复习题集中,我们可能会涉及众多Java的基础概念和高级特性。下面将就Java的一些核心知识点进行详细阐述。 1. **基本语法**: Java是一种静态...
"java复习.zip"这个压缩包包含了一份全面的Java复习资源,涵盖了Java基础知识、面试笔试题、逻辑题以及各大公司的Java题目,还特别提到了SSH框架,即Struts、Spring和Hibernate这三个流行框架的综合应用。...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。本文将深入探讨Java的基础知识,包括它的分类、基本数据类型、变量声明、类型转换、条件控制、循环结构、运算符以及数组。 首先,Java有...