1、抽象类与抽象方法
具有抽象方法的类必然是抽象类
抽象类不一定具有抽象方法
2、抽象类、接口、抽象方法
抽象类中可以有抽象方法,但是接口中不能有抽象方法
3、类初始化顺序
父类静态块 静态属性 子类静态块 静态属性 父类初始化块 或者 父类属性 父类构造函数
子类初始化块 或者 子类属性 子类构造函数
父类构造函数中可以使用子类静态属性,所以静态的东西一般都会先初始化
4 java中的集合
Collection—>Quene
Collection—>List=>ArrayList LinkedList
Collection->Set->sortedSet=>TreeSet
=>HashSet<---(继承)LinkedHashSet
Map->SortedMap=>TreeMap
=>HashMap
HashMap的数据结构是数组(Entry)加链表(key相同,那么value将被上一个value引用)
HashSet的数据结构是HashMap
ArrayList的数据结构本质上是数组
LinkedList为双向链表并非继承于ArrayList
Set是一个集合,不含有重复元素,也是因为其本质上是HashMap通过Equals来判断是否重复
Collection接口通用的接口方法比如说size、interator
WeakHashMap 是为了解决键值已经死亡,而value无法取出这个问题,如果键值死亡,那么value值也随之不会引用到,而放入到垃圾对列中
5、ClassLoader
classloader bootstrapclassloader extclassloader appclassloader(systemclassloader) customerclassloader
bootstrapclassloader 是加载jdk/lib下的jar包中的class,本地代码进行编写的
extclassloader 是加载jdk/ext javax下扩展class
appclassloader是加载应用下的class classpath下的class
cutomerclassloader是自定义classloader
先从parent classloader进行加载,如果父无法加载那么就用子加载
6、接口和抽象类
类可以实现多个接口,但是不能继承多个类
接口是like -a 侧重于行为的相似,而抽象类侧重于is-a。
使用抽象类一般是在继承的时候使用抽象类,但是不恰当的引入继承会造成一些问题。
继承可以既继承属性又继承行为。另外继承是一种紧耦合,继承的滥用可以造成继承层次过多。另外,有些设计模式比如模版和策略,模版使用继承而策略使用接口,使用接口更容易进行算法的替换。
优先使用聚合而非继承。就是因为继承是一种紧耦合,往往导致继承了不该继承的方法,或者导致继承的层次过多。
7、面向对象设计的几个原则
开闭原则 对修改是封闭的,对扩展是开放的
单一职责原则 类的职责应该只有一个,应该只有一个修改它的原因。
迪米特替换原则 子类可以完全替换父类,客户端并不知道调用对象被替换了。
依赖倒置原则 依赖抽象而不是依赖实现
接口隔离原则 依赖一个接口,应该只是依赖其需要的接口
8、默认可见性为包可见性,相当于friendly 友元
9、JVM与JDK的区别
JDK包含JVM,JVM是运行时环境,但是JDK包括了开发环境,对源代码进行编译、然后调用与java类库运行在jvm上。
10、动态绑定就是方法调用的类的类型是动态确定的而不是编译时就确定的
分享到:
相关推荐
Java是一种面向对象的编程语言,它的设计理念是通过对象来封装数据和行为...以上就是Java面试中常见的问题及其答案,这些知识点涵盖了Java语言的关键特性和设计原则,对于Java开发者来说,理解和掌握这些内容至关重要。
java开发面试常问问题,包括java基础、web、各种框架等。
以下是一些Java面试中最常被问到的知识点,包括但不限于核心概念、数据结构与算法、多线程、集合框架、异常处理、IO流、网络编程以及设计模式等。 1. **核心概念**: - Java的特点:一次编写,到处运行(Write ...
Java面试中的问题涵盖了许多核心概念和技术,以下是针对这些常问问题的详细解释: 1. **final, finally, finalize**:final用于声明不可变的变量、类或方法;finally用于保证代码块始终执行,通常用于异常处理;...
这份"JAVA程序员面试 java面试资料集锦 经验 面试常问的问题 面试无忧"的资源旨在帮助你充分准备,提升面试成功的概率。 首先,Java面试通常会围绕以下几个核心领域展开: 1. **基础知识**:面试官会检查你对Java...
总结了在面试的时候常被问到的有关java项目上的常问问题,帮助顺利面试,但还是主要靠自己哦
### JAVA工程师面试常见问题及答案解析 #### 1. 事务隔离级别 事务隔离级别是数据库系统为了保证数据的一致性和防止并发操作引起的问题而设置的不同级别。主要有四种不同的隔离级别: - **READ UNCOMMITTED (未...
3. **Java面试常问问题** - **JVM相关**:了解JVM内存模型,理解堆、栈、方法区等区域的划分,以及垃圾回收机制。 - **并发编程**:讨论线程安全问题,如死锁、活锁、饥饿状态,以及如何避免这些问题。 - **...
以下是一些常见的Java面试知识点,这些内容可能出现在“Java面试常问题目”中: 1. **Java基础**: - 数据类型:了解基本类型和引用类型的差异,以及自动装箱拆箱的概念。 - 变量与作用域:理解变量的声明、初始...
Java作为一门广泛使用的编程语言,其面试基础知识涵盖...以上内容是Java面试基础方面的核心知识点,掌握这些内容不仅可以应对面试,也能提升实际开发能力。不断深入理解和实践,对于成为一名优秀的Java开发者至关重要。
Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte...
以下是对给定文件中提及的几个经典算法题目的深入解析,旨在帮助准备Java面试的开发者们全面掌握相关知识点。 ### 1. 打印九九乘法表 在Java中实现九九乘法表的打印,主要涉及到嵌套循环的应用。代码示例中,外层...
JAVA基础版面试常问问题
### Java面试中电商领域的常见问题解析 #### 一、多线程的应用场景及安全性 - **应用场景**: 在项目中虽然没有直接使用多线程,但许多现代技术内部封装了多线程功能,如MyBatis框架中的`sqlSession`、ActiveMQ、...
不过,依据文件标题“200道java程序员面试常问知识点”,我们可以推测该文档可能涉及以下Java程序员面试中的常见问题和知识点: 1. Java基础:包括数据类型、变量、运算符、控制流程(if-else,for循环,while循环...
Java面试中常常涉及到的数据结构和算法之一是红黑树。红黑树是一种自平衡的二叉查找树,它保持了二叉查找树的基本性质,同时引入了颜色规则来确保树的平衡,使得在插入和删除操作后能快速恢复平衡状态。红黑树的特性...
```java package com.jihe.interceptor; import java.util.Map; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class ...
包含java面试中关于集合常问的问题
【Java面试知识点详解】 1. **接口中的方法属性**: 在Java中,接口内的方法默认是抽象(abstract)和公共(public)的,但不能是静态(static)。因此,正确答案是 D:abstract かつ public。接口是用来定义对象...
08 15道面试常问的Java多线程面试题!.pdf 09 17道消息队列Kafka面试题!.pdf 10 18道非常牛逼的Nginx面试题!.pdf 11 20道顶尖的Spring Boot面试题!.pdf 12 20道面试官常问的JVM面试题!.pdf 13 22道面试常问的...