![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试题
文章平均质量分 93
面试题总结
緈諨の約錠
成功是留给有准备的人,努力了不一定成功,不努力一定失败!
展开
-
ThreadLocal的内存泄露分析以及如何避免?
前言在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露、强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这样情况发生,增强系统的健壮性。内存泄露内存泄露为程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光,广义并通俗的说,就是:不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露。强引用与弱引用强引用,使用最普遍的转载 2021-08-17 23:38:59 · 956 阅读 · 5 评论 -
MySQL数据库三范式
设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。一般来说,数据库只需要满足第三范式就行了。第一范式:保证每列的原子性第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足了第一范式。第一范式转载 2021-08-17 23:21:46 · 428 阅读 · 0 评论 -
HikariCP数据连接池基础介绍
1 什么是数据库连接池连接池是一种常用的技术,为什么需要连接池呢?这个需要从TCP说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是TCP链接,建立连接就需要3次握手了,假设后台服务跟数据库的单程的访问时间需要10ms,那么光是建立连接就花了30ms,并且TCP还有慢启动的机制,实际上一次查询可能还不止1次TCP来回,查询效率就会大大降低。2 为什么需要连接池 为了解决上述问题,我们就需要维护一些长链接,这样就不用每次都去建立连接,毕竟建..转载 2021-08-15 22:49:14 · 1113 阅读 · 2 评论 -
Java常见的线程池有哪些?
1、什么是线程池java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。一个线程池包括以下四个基转载 2021-08-15 22:08:00 · 2279 阅读 · 3 评论 -
Spring框架中的单例bean是线程安全的吗?
结论: 不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型 1、singleton:单例,默认作用域。 2、prototype:原型,每次创建一个新对象。 3、request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。转载 2021-08-15 13:42:21 · 7358 阅读 · 0 评论 -
中高级Java程序员,你不得不掌握的基本功,挑战20k+
文章目录1 前言2 自我介绍3 Java SE3.1 Java访问控制修饰符3.2 Java中抽象类与接口有何区别?3.3 Java中super关键字与final关键字3.4 final修饰的对象,有几种初始化方式3.5 Java中方法的重载(Overload)与方法的覆盖(Override)3.6 Java基础知识总结,干货来啦3.7 Java基础面试题干货系列(一)3.8 Java中的String是不可变的,Why?3.9 Java反射基础入门,一篇就够啦3.10 面向对象与面向过程3.11 Java基原创 2021-08-12 23:17:02 · 65381 阅读 · 54 评论 -
MySQL的四种事务隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了.转载 2021-08-12 23:13:10 · 676 阅读 · 1 评论 -
HashMap、Hashtable、ConcurrentHashMap的区别和原理浅析
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:new转载 2021-08-12 22:21:17 · 935 阅读 · 0 评论 -
史上最全的Java JDBC编程详细教程,你值得拥有~
package com.insist.day08.review;import java.io.BufferedReader;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import原创 2020-06-07 16:49:13 · 4479 阅读 · 2 评论 -
Java中File类,你知道有哪些api方法吗?
423432原创 2020-06-06 16:55:41 · 2123 阅读 · 0 评论 -
面试官您好,请不要再问我Java中的io流
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录1 Java中流的定义2 Java中流的分类2.1 字节流和字符流2.2 输入流和输出流2.2.1 InputStream(字节输入流)2.2.2 OutputStream(字节输出流)2.2.3 Reader(字符输入流)2.2.4 Writer(字符输出流)3 文件流1 Java中流的定义流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络.原创 2020-06-06 07:52:01 · 912 阅读 · 1 评论 -
Java中的异常(Exception),史上最全的教程来啦~
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录1 前言2 什么是异常3 异常的分类3.1 异常的类图结构3.2 异常的分类4 异常的处理4.1 异常捕获处理4.1.1 try、catch和finally4.1.2 异常捕获处理4.2 throws抛出处理4.3 getMessage()和printStackTrace()5 异常的捕获顺序6 方法覆盖中的异常处理7 总结8 final、finally、finalize 的区别?9 谈谈你Java异常处理.原创 2020-05-24 14:06:20 · 21671 阅读 · 29 评论 -
Java基础面试题干货系列(三)
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录前言面试基础知识总结1 Java中访问控制修饰符有哪些,有何区别?2 两个对象值相同equals结果为true,可以有不同的 hashCode值?3 编写程序,从键盘上输入年月日,打印该日期对应这一年的第几天前言越来越感觉到基础知识的薄弱,所以,这里作一下总结,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题和知识点。博主打算每期更新10个面试知识点,后续.原创 2020-05-23 17:57:22 · 1615 阅读 · 1 评论 -
Java中参数传递(值传递还是引用传递)
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。先看基本类型作为参数传递的例子:public class Test1 { public static void main(String[] args) { int n = 3; System.out.println("Before change, n = " + n).转载 2020-05-18 09:11:48 · 1985 阅读 · 0 评论 -
Java基础面试题干货系列(二)
创作不易,如果觉得这篇文章对你有帮助,各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录前言面试基础知识总结12345678910前言越来越感觉到基础知识的薄弱,所以,这里作一下总结,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题和知识点。博主打算每期更新10个面试知识点,后续慢慢迭代更新。博主这里总结的目的在于,为童鞋们提供面试的参考知识点之外,博主也可以巩固自己的基础知识,工作几年的人都知道,如果稍微不留神,慢慢的,你的基础知识忘记的差不.原创 2020-05-17 20:05:02 · 1737 阅读 · 0 评论 -
反射都不会,还敢说自己会Java?
文章目录一、反射机制1.1 框架1.2 什么是反射机制?1.3 反射的优点二、获取Class对象三、 Class对象的功能3.1 获取功能3.2 Field:成员变量3.2.1 测试的实体类3.2.2 测试getFields和getField(String name)方法3.2.3 测试 getDeclaredFields 和 getDeclaredField(String name)方法3.3 ...转载 2020-05-05 15:18:00 · 204 阅读 · 0 评论 -
Java中的String是不可变的,Why?
文章目录Java中的String为什么是不可变的什么是不可变对象?区分对象和对象的引用为什么String对象是不可变的?String对象真的不可变吗?Java中为什么String要设计成不可变的Java中的String为什么是不可变的什么是不可变对象?众所周知, 在Java中, String类对象是不可变的,那么,到底什么是不可变的对象呢?可以这样认为:如果一个对象,在它创建完成之后,不能...翻译 2020-05-02 22:36:09 · 2319 阅读 · 0 评论 -
Java基础面试题干货系列(一)
文章目录Java基础前言1 下面的代码创建了几个对象2 String对象是如何保证其对象的内容不可改变3 持续更新中。。。Java基础前言最近,感觉压力比较大,所以挑战下基础面试题,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题。1 下面的代码创建了几个对象String str = new String("Hello");以上代码,实际...原创 2020-05-02 14:59:41 · 2242 阅读 · 0 评论 -
Java面试题:final修饰的对象,有几种初始化方式
final修饰的对象初始化时分两种情况:第一种:修饰成员对象时有3种初始化方式:1,在定义变量时直接赋值 2,声明完变量后在构造方法中为其赋值 3,声明完变量后在构造代码块中为其赋值第二种:修饰类对象(静态对象)1,在定义类变量时直接赋值 2,在静态代码块中赋值下面我们建立一个例子看看详细情况:public class TestFinal {// 一、使...转载 2020-04-19 19:47:57 · 2197 阅读 · 0 评论