
java面试
文章平均质量分 66
java工程师面试总结
&orange
主要用于记录平时自己学到的东西,文章仅代表个人理解,有什么不对的地方,欢迎大家批评指正。
展开
-
网络IO模型以及实际应用
本文主要介绍了几种不同的网络IO模型,以及实际项目中使用到的Reactor模型等。我们常说的网络IO模型,主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。原创 2024-04-10 13:23:03 · 985 阅读 · 0 评论 -
Java类加载过程解析
当写好一个 Java 程序后,会经过编译阶段,生成.class文件当后续需要运行和使用类型时,会将程序对应的.class文件加载到虚拟机内存中 (方法区)同时也会对数据进行校验、转换解析和初始化,最终形成可以被 JVM 使用的 Java 类型该 Java 类型其实就是 Class 类型,Class 类型和其他类型一样,如:Integer 等。每个.class文件对应一个 Class 类型的对象,有且仅有一个上述的过程就被称作位 JVM 的类加载机制!!转载 2024-04-03 17:56:23 · 468 阅读 · 0 评论 -
基础知识(八股文)总结
着操作的不断执行,hash表保存的键值对会逐渐的增多或者减少,这时就会暴露一些问题。如果hash表很大,但是键值对太少,也就是hash表的负载(dictht->used/dictht->size)太小,就会有大量的内存浪费;如果hash表的负载太大,就会影响字典的查找效率。这时候就需要进行rehash将hash表的负载控制在一个合理的范围。原创 2023-09-28 14:51:05 · 169 阅读 · 0 评论 -
SQL题目
查找入职员工时间排名倒数第三的员工所有信息select * from employees where hire_date = ( select distinct hire_date from employees order by hire_date desc limit 2,1)原创 2021-03-31 19:59:50 · 90 阅读 · 0 评论 -
Java基础知识点
基础类型转换为字符串三种方法原创 2021-03-31 19:53:02 · 100 阅读 · 0 评论 -
Java并发
通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢?JDK中提供的类正是为了解决这样的问题。类主要解决的就是让每个线程绑定自己的值,可以将类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。如果你创建了一个变量,那么访问这个变量的每个线程都会有这个变量的本地副本,这也是变量名的由来。他们可以使用get()和set()方法来获取默认值或将其值更改为当前线程所存的副本的值,从而避免了线程安全问题ThreadLocal 内存泄漏问题。原创 2021-01-29 22:14:11 · 133 阅读 · 0 评论 -
Spring等框架知识点
控制翻转与依赖注入控制翻转在单一职责原则的设计下,很少有单独一个对象就能完成的任务。大多数任务都需要复数的对象来协作完成,这样对象与对象之间就有了依赖。一开始对象之间的依赖关系是自己解决的,需要什么对象了就New一个出来用,控制权是在对象本身。但是这样耦合度就非常高,可能某个对象的一点小修改就会引起连锁反应,需要把依赖的对象一路修改过去。如果依赖对象的获得被反转,具体生成什么依赖对象和什么时候生成都由对象之外的IOC容器来决定。对象只要在用到依赖对象的时候能获取到就可以了,常用的方式有依赖注入和依赖查原创 2021-01-07 12:43:26 · 108 阅读 · 0 评论 -
数据库知识点
MySQL存储引擎区别InnoDB: 支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。MyISAM: 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。MEM原创 2021-01-07 12:42:39 · 130 阅读 · 0 评论 -
字节面试题-如何实现二个进程交替打印一个字符串
1、使用volatile关键字修饰 当前index。public class Main1 { volatile int x = 0; String string="thefreedom"; Main1() { new Thread(() -> { while (x < string.length()) { while (x % 2 == 0) ; if(x<st原创 2021-01-04 16:45:17 · 237 阅读 · 1 评论 -
Java枚举简析
Java枚举简析。什么是枚举枚举是JDK1.5版本新增的特性(泛型、For-each等如今被广泛应用的特性也是由JDK1.5时所新增的),另外到了JDK1.6后switch语句支持枚举类型。枚举出现前的背景使用一组int常量(称作int枚举模式),例如:public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static fin.转载 2020-06-04 09:12:19 · 280 阅读 · 0 评论 -
java知识点-面试
首先spi接口是java核心类库的一部分,所以是由java启动类加载器来加载,但是spi的具体实现类只能由应用类加载器来加载,显然启动类是没法找到SPI的实现类。一旦channel进入confirm模式,所有在该信道上面发布的消息都将会被指派一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列之后,rabbitMQ就会发送一个Ack给生产者(包含消息的唯一ID),这就使得生产者知道消息已经正确到达目的队列了.如果rabiitMQ没能处理该消息,则会发送一个Nack消息给你,你可以进行重试操作。原创 2020-06-01 21:36:49 · 217 阅读 · 1 评论 -
java多线程顺序打印ABC
importjava.util.*;//importjava.util.concurrent.locks.LockSupport;importjava.util.concurrent.locks.LockSupport;publicclasstest{staticThreadthreadA,threadB,threadC;publicstatic...原创 2025-01-17 17:26:42 · 431 阅读 · 0 评论 -
Java单例模式最佳实践
Java单例模式最佳实践双重检查//两次判空,第一次是为了不必要的同步,第二次是在singleton等于null的情况下才创建实例。//可以用synchronized锁静态方法getSingleton。但是这样每次获取单例都要加锁太重;可以先进行判断;当前对象不为空;我们再进行加锁;进行新增单例对象;public class Singleton { private volatil...原创 2020-04-07 09:06:40 · 334 阅读 · 0 评论