Java面试
归彦
天再高又怎样,踮起脚尖就更接近阳光
展开
-
JVM内存结构
JVM内存结构jvm将虚拟机分为5大区域,分别是程序计数器、虚拟机栈、本地方法栈、Java堆、方法区1、方法区:存放已被加载的类的信息、常量、静态变量、就是编译器编译后的代码数据,后来在jdk1.8后编程了元数据区代替,方法区被分成两部分分别是:加载的类信息、运行时常量池,这个运行时常量池包存在堆中2、堆:Java堆是所有线程共享的一块内存,几乎所有对象的实例和数组都要在堆上分配内存,因此该区域经常发生垃圾回收操作3、本地方法栈:线程私有,保存native方法的信息,当一个jvm创建的线程调用nat原创 2022-04-08 09:10:14 · 1104 阅读 · 0 评论 -
关于Java顶级父类
Java的顶级父类是?objectobject有哪几个自带的方法(最少说5个)1、clone2、equals3、hashCode4、getClass5、wait6、notify7、notiftAll8、toString原创 2021-07-05 09:22:07 · 730 阅读 · 0 评论 -
数据库引擎MyISAM和InnoDB的区别
文章目录一、MyISAM二、InnoDB小结一、MyISAM1、不支持事物,但每次查询都是原子性2、支持表级锁,即每次操作是对整个表加锁3、采用非聚簇索引,索引文件的数据域储存指向文件的指针,弗索引域主索引一致,但是辅索引不用保证唯一性4、储存表的总行数5、储存表在文件夹中的显示:一个MyISAM表有三个文件:索引文件、表结构文件、数据文件二、InnoDB1、支持ACID事物,支持事物的四种隔离级别2、支持行级锁及外键约束,因此支持并发3、不储存表的总行数4、一个InnoDB引擎储原创 2021-05-31 11:30:22 · 494 阅读 · 1 评论 -
事务四大特性——一致性(Consistency)——MVCC
文章目录一、MVCC简绍二、聚簇索引中两个必要隐藏列三、readview一、MVCC简绍英文全称Multi-Version Concurrency Control,中文全称是多版本并发控制**作用:**读取数据时通过一种类似快照的方式将数据保存下来,这样读锁和写锁就不冲突,不同的事物session会看到自己版本的数据,版本链,而MVCC只在READ COMMITTED和REPEATABLE READ 两个隔离级别下工作,其他两个隔离级别和MVCC不兼容,因为READ UNCOMMITTED总是读取最原创 2021-05-31 10:36:49 · 482 阅读 · 1 评论 -
索引的基本原理
索引的基本原理随便说说其实在日常生活中对于所以我们一点都不陌生,比如小时候刚刚学认字是所用的字典的目录,相对于字典本身就是字典的索引,所以索引是需要有对象的,这里我们不谈所以的对象,仅仅对索引的基本原理做一个了解。有点东西**索引用来快速寻找那些具有特定的记录。**如果没有索引,一般来说执行查询时是需要遍历整个表的索引的原理:把无序数据变成有序的查询流程如下:...原创 2021-03-23 19:06:12 · 1020 阅读 · 0 评论 -
Java中如何实现一个IOC容器(个人理解&&简介版)
如何实现一个IOC容器(个人理解&&简介版)IOC——>控制反转:把原先我们代码里面需要实现的对象的创建、依赖的代码,反转给容器来帮忙实现图解如下:说说一些细节J3 - 白起1、在配置文件中指定需要扫描的路径2、定义一些注解,分别表示访问控制层,数据持久层,依赖注入注解,获取配置文件注解3、从配置文件中获取需要扫描的包路径,获取到当前路径下的文件信息及文件信息及文件夹信息,再将当前路径下所有以.class结尾的文件添加到一个Set集合中进行储存4、遍历这个Se原创 2021-03-19 16:07:48 · 963 阅读 · 1 评论 -
双亲委派模型
双亲委派模型(图解)原创 2021-03-16 21:48:16 · 344 阅读 · 0 评论 -
Java类加载器
JDK自带三个类加载器:BootstrapClassLoader、ExtClassLoader、AppClassLoader三者的关系图如下:其中BootstrapClassLoader是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME%/lib下的jar包和class文件。ExtClassLoader是AppClassLoader的父类加载器,负责加载%JAVA_HOME%/lib/ext文件夹下的jar包和class类AppClassLoader是自定义加载器的父类,原创 2021-03-11 19:13:27 · 465 阅读 · 1 评论 -
Java中字节码及其优势
文章目录一、Java编译器1.利用记事本写一段Java代码2.将记事本命名为 hello.java3.cmd+r命令,弹出DOS窗口输入如下命令 回车小结二、Java解释器三、采用字节码的好处一、Java编译器Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器,。这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码来将虚拟机代码转换为特定的系统机器码执行。在Java中,这种提供虚拟机理解的代码原创 2021-03-10 21:30:08 · 850 阅读 · 2 评论 -
Java中的异常体系(量少 but 质重)
文章目录前言异常分类前言异常,即不正常;在软件开发领域中指的是程序发生了不正常的情况。而在Java语言将程序执行中发生不正常情况称为“异常”,异常是一种对程序运行过程中发生错误时进行通知的机制。这里只说干货,挑重要的说算了异常分类在Java中所有异常都来自顶级父类Throwable,而顶级父类Throwable下面有两个子类Exception和Error,但是Error是程序无法处理的错误,一旦出现这个错误,程序将被迫停止运行。而Throwable另一个子类Exception不会导致程序停止,Ex原创 2021-03-10 19:41:10 · 360 阅读 · 1 评论 -
Java中抽象类与接口的区别
文章目录前言一、关于接口和抽象类的区别(面试初级回答)二、关于接口和抽象类的区别(面试高级回答)1.引入库2.读入数据总结前言学习Java已经近两个月,目前主要学MySQL数据库,感觉很久没有敲Java代码了,就在昨天,老师问了一个问题,什么是接口,接口怎么用,一下我居然回答不上,感觉对于接口的概念模模糊糊,答不上来,所以还得多回头看看,今天就先回顾——接口和抽象类的区别一、关于接口和抽象类的区别(面试初级回答)1、抽象可以存在普通成员函数,而接口中只能纯在public abstract 方法2、原创 2021-03-09 16:34:59 · 629 阅读 · 0 评论