Java开发面试题
-
- Java基础篇
-
- Java8大基本数据类型
- Java的三大特性
- 面向对象
- 如果让你推销一款Java产品,你会怎么推销呢?(java的特点)
- JVM与字节码
- JDK与JRE
- << 位运算符
- 函数式接口
- StringBuilder和StringBuffer的区别
- 简单介绍下多态、重载、重写
- 成员变量和局部变量
- 自动装箱和拆箱
- String能被继承吗?
- 简单介绍一下static关键字
- super()和this()
- equals和==
- 关于常量池
- 抽象类与接口
- Java中的比较器(Comparable、Comparator)
- Java中的栈与堆
- final、finally、finalize
- 数组和链表的区别
- 为什么提出集合框架
- 集合的概述以及底层数据结构
- 并发与并行
- sleep和wait的区别
- 线程的生命周期
- 什么是线程、进程
- 线程和进程的区别
- 图解进程线程
- 什么是线程安全、为什么提出线程安全、如何实现?
- Thread 类中的start() 和 run() 方法有什么区别?
- Java中notify 和 notifyAll有什么区别?
- 泛型是什么?为什么使用?
- 概述反射和序列化
- 序列化的好处
- 使用JDBC的过程
- 数据库篇
- 数据结构篇
- 计算机网络篇
- web篇
- 框架篇(这里只涉及SSM)
- 声明
Java基础篇
Java8大基本数据类型
byte
short
int
long
float
double
char
boolean
占用空间
1字节(B)
2字节
4字节
8字节
4字节
8字节
不定 默认2字节
JVM未定义
初始值
0
0
0
0
0.0
0.0
空格
false
Java的三大特性
- 封装:隐藏内部功能的具体实现,只保留和外部交流数据的接口。例:汽车与发动机,不必知道发动机的实现原理,只需使用汽车给予的接口,插入钥匙。
- 继承:一个对象可以从它的父类继承所有的通用的属性和方法,并在无需重新编写原来的类的情况下对这些功能进行扩展;最大的好处是实现代码的高效重用。
- 多态:同一个动作作用于不同的对象 所产生不同的行为。例:人会吃饭,中国人用筷子,美国人用叉子。
面向对象
- 面向对象的核心,就是类和对象。Java中的面向对象的思想:万物皆对象。
- 类:是对一类事物的描述,是抽象的,看不见,摸不着。
- 对象:是实际存在的该类事物的每个个体 也称为实例 是具象的。
- 所以面向对象程序设计的重点是类的设计,而不是对象的设计。
- 类是对象的描述
对象叫做类的实例化(Instance)- 类不占内存,对象才占内存。
如果让你推销一款Java产品,你会怎么推销呢?(java的特点)
1.Java是面向对象的
2.Java是跨平台的;一次编译,到处运行
3.Java是多线程的
4.Java有GC,简化了开发
5.Java是分布式的
6.Java现在运用最广泛(有待商榷,python太猛了)
7.支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
8.支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);
9.编译与解释并存;
JVM与字节码
JVM:Java虚拟机(JVM)是运行 Java 字节码的虚拟机。
JVM有针对不同系统的特定实现,目的是使用相同的字节码,它们都会给出相同的结果(一次编译,到处运行)。
字节码:在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,一定程度上解决了传统解释型语言执行效率低的问题