Java基础

121 阅读4分钟

本文涵盖

Java语言的发展历史
Java编译环境
Java基础语法

参考

Java全栈知识体系:pdai.tech/md/java/io/…
Java编程思想(第4版):weread.qq.com/web/reader/…
Java基础知识整理:www.cnblogs.com/jyd0124/p/j…

Java 语言

Java语言发展历史

image.png

Java程序运行机制

image.png

Java语言现状

TIOBE 开发语言排行版

image.png

关键字、操作符、数据类型

关键字

常用关键字.tiff

image.png

image.png

image.png

image.png

image.png

image.png

image.png

操作符

算术操作符
关系操作符 逻辑操作符 按位操作符 移位操作符 三元操作符 字符串操作符 类型转换操作符

image.png

数据类型

基本类型

image.png

类型转换(隐式转换、强制类型转换、类型提升)

image.png

image.png

image.png

自动拆装箱

image.png

image.png

IO

image.png

异常

image.png

泛型

泛型的实现原理

内部类

枚举

注解

JDK版本新特性

反射

什么是反射?Java中哪些场景下使用反射?Java反射有什么作用?Java中反射机制有什么优缺点?如何使用反射?Java反射API?

并发

image.png

FAQ

JDK、JRE、JVM 之间有什么区别和联系?

== 和 equal 有什么区别?

this 和 super有什么区别?

s1 = s1 + 1 和 s1 += 1有什么区别?

short s1 = 1; s1 = s1 + 1 有错吗?s1 += 1;有错吗?

i++ 和 ++i 的区别是什么?

Java是值传递还是引用传递?怎么理解值传递和引用传递?

static关键字有什么作用?static变量和实例变量有什么区别?

final、finally、finalize有什么区别?

私有方法能被重载/重写/继承吗?静态方法能被重载/重写/继承吗?构造方法能被重载/重写/继承吗?

Java异常有哪些分类?Error和Exception有什么区别?运行时异常和受检异常有什么区别?throw和throws的区别?

使用try-catch会影响性能吗?

什么是自动拆装箱?

怎么理解Java强制类型转换?自动类型转换?类型提升?

switch case 支持哪几种数据类型?

StringBuilder,StringBuffer的区别?默认容量大小?

String字符串如何实现编码转换?

main方法作用?如何向main方法传递参数?不用main方法如何运行一个类?main方法运行原理?

静态内部类和普通内部类的区别?

内部类和外部类的相互访问方式?

说说equals和hashCode?

Java 中的classpath环境变量作用?如何设置?

如何判断两个数字是否相等?

不可变类,不可变对象是什么?有什么好处?

深拷贝和浅拷贝区别?

String s = new String("abc"); 创建了多少个String对象?

Java 中IO流有哪几种?

Integer a = 128; Integer b = 128; Java中a == b成立吗?

JAVA中this和super有哪些用法区别?

为什么HashMap负载因子是0.75?

Java中常量有哪几种类型?

Java中实现多态的机制是什么?

内部类中引用其他类的成员有什么限制?

Java中JDBC调用数据库有哪几个步骤?

为什么有int类型还要设计Integer类型?

为什么静态方法中不能调用非静态方法或变量?

static修饰变量、代码块时何时执行?执行几次?

成员变量和局部变量有哪些区别?

Java中Hash冲突有哪些解决方法?

Java中BigDecimal类型如何加减乘除运算?

什么对称/非对称加密?有什么区别?有哪些实现方式?

OpenJDK和SunJDK的区别?

什么是Java事务?都有哪些类型?有什么区别?

Java中如何实现字符串中查找某字符出现的次数?

了解过字节码的编译过程吗?

RMI是什么?RMI体系结构分哪几层?

罗列每个JDK版本新特性?

Java中new一个对象的过程中发生了什么?

为什么for循环中不建议使用 "+" 进行字符串拼接?

Java中构造函数什么时候被调用执行?

空 "" 有什么作用?

Java中final关键字修饰一个变量时,是引用不能变还是引用的对象不能变?

什么是序列化和反序列化?如何实现?

简述一下布隆过滤器原理?布隆过滤器的误判率如何估算?

类加载过程和对象创建过程有什么区别?