Java基础知识

Java从1.7到1.8的升级 ⭐️2

有很多,但是最重要的就是Lambda表达式以及Stream流了

ConcurrentHashMap的实现⭐️2

JDK1.7是数组+列表

JDK1.8是数组+列表+红黑树

红黑树的结构和应用

  • 红黑树是一种自平衡的二叉查找树
  • 节点要么是红色要么是黑色
  • 红黑树的根节点一定是黑色
  • 红色的叶子节点一定是黑色的
  • 从根节点出发,到每一个叶子节点的末尾,都包含相同数目的黑色节点
  • 红黑树的应用:HashMap

B+树的结构和应用

首先B树的结构:B树的每个叶子节点都存数据,但是相邻的叶子节点之间没有指针连接

B+树的结构:非叶子节点不存数据只存数据的索引,并且相邻的叶子节点有指针相互连接

这种底层是一个双向链表,双向链表的结构更适用于我们的范围查找

应用:在查询一条数据的时候很显然B树更加适合因为每个叶子节点都存数据,最好的情况就是O(1)

但是在范围查找的时候B树的确定就暴露出来了,因为如果使用B树作为Mysql的索引的话,在查询过程中会产生大量的I/O所以在综合考虑下下选择B+树作为Mysql的索引

Java中IO流的分类

  • 从数据的流向:输入流、输出流
  • 处理的字节单位:字节、字符

static的作用

  • static关键字可以修饰:属性、方法、内部类、代码块;
  • static修饰的资源属于类级别,是全体对象共享的资源
  • 使用static修饰的属性、静态属性是在类加载过程中初始化的,使用类名.属性进行访问

类加载的过程

java文件从编码到最终运行分成俩个阶段:编码期、运行期

编码期就是执行Javac命令让java文件变成,class文件

运行期就是把.class文件交给JVM去执行

而类加载的过程就是:将.class文件的元数据加载到内存,创建class并且解析、初始化类变量的过程

Java异常的基类

Throwable是 Java 语言中所有错误和异常的基类。它有两个主要的子类:Error 和 Exception,这两个类分别代表了 Java 异常处理体系中的两个分支。

深拷贝、浅拷贝的区别

浅拷贝:拷贝基本数据类型的值、引用类型的地址值、而对于引用类型变量指向的堆中的对象不会拷贝。

深拷贝:完全拷贝一个对象,拷贝被拷贝对象的成员变量的值,堆中的对象也会拷贝一份。

重载和重写的区别

重载:一个类有多个名字,但是参数的个数不相同的方法

重写:子类和父类有一样的方法(参数相同、返回值相同、方法名字相同、但是方法体可能不同)

double和float的区别

范围:float的指数位有8位,而double的指数位有11位

精度:float是单精度 double是双精度

double和float的精度损失

float的精度为7~8位有效数字,7位肯定能保证,8位的值也存在。

double的精度为16~17位有效数字

针对浮点数丢失精度的问题,我们可以通过BigDecimal来解决

java里如何精确表示小数

通过BigDecimal来解决

java里的数据结构

数组、链表、栈、队列、二叉树、哈希表

java里的数据类型

基础数据类型:byte、short、int、long、float、double、char、布尔

引用数据类型:接口、数组、类

jre、jdk、jvm的概念

JVM:Java Virtual Machine,也就是 Java 虚拟机,是 Java 实现跨平台的关键所在,针对不同的操作系统,有不同的 JVM 实现。JVM 负责将 Java 字节码转换为特定平台的机器码,并执行。

JRE:Java Runtime Environment,也就是 Java 运行时环境,包含了运行 Java 程序所必需的库,以及 Java 虚拟机(JVM&#x

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值