Java面试
冷冷~~
冷场王
展开
-
Java集合类型——持续更新
更新时间第一版:20200703问题 1. 整理全部的数据类型 2. 每个数据类型的底层数据结构、是数组、链表、栈、散列表、队列、红黑树、二叉树、B树 3. 对比每种数据类型的区别 4. 每种数据类型的使用场景java数据结构主要接口和类枚举(Enum)位集合(BitSet)向量(Vector)栈(Stack)字典(Dictionary)哈希表(HashTable)属性(Properties)集合(其中包括接口和实现类)看后缀:Set,List.原创 2020-07-03 18:00:45 · 210 阅读 · 0 评论 -
数据结构——红黑树
红黑树红黑树超级链接R-B TREE 红黑树红黑树,是一种特殊的二叉查找树,红黑树的每个节点都有存储位,表示节点的颜色,红或者黑红黑树五大特性每个节点不是黑色就是红色根节点一定是黑色每个空的(NIL)叶子节点都是黑色,所谓的叶子节点都是NIL、一般都没有显示出来的节点如果一个节点是红色的,则它的子节点必须是黑色的,红色节点的父节点都是黑色的,从根节点到叶子节点的所有路径上不能有2个连续的红色节点从一个节点到该节点的子孙节点的所有路径上包含相同数量的黑节点红黑树 对比 2-3-4原创 2020-07-02 16:22:12 · 282 阅读 · 0 评论 -
数据结构——B树
B树B树的概念B树是一种平衡的多路搜索树,多用于文件系统、数据库实现B树的特点一个节点可以存储超过两个元素,可以拥有超过2个子节点;而二叉树的每个节点最多可以存储1个元素,并且一个父节点不能拥有超过2个子节点拥有二叉搜索树的一些性质平衡,每个节点的所有子树高度一致树的高度相比二叉树不会更高m阶B树的性质(m>=2)假设一个节点存储的元素个数为X根节点:1 <= x <= x-1非根节点:clie(m/2) - 1 <= x <= x-1如果有子节点原创 2020-07-02 16:21:20 · 350 阅读 · 0 评论 -
数据结构——二叉树
二叉树(Binary Tree)为什么要有二叉树二叉树结合了有序数据,链表两者的优势,在树种查找数据的素的和有序数组中一样快,插入数据和删除数据的速度和链表一样快树的概念节点、根节点、父节点、子节点、兄弟节点节点高度:子树的个数树的高度:所有节点度中最大值叶子节点:度为0的节点非叶子节点:度不为0的节点层数:根节点在第一层,开始计算节点的深度:从根节点到当前节点的唯一路径上的节点数量节点的高度:从当前节点到最远叶子节点的路径上的节点总数树的深度:所有节点深度中的最大值树的原创 2020-07-02 16:20:36 · 158 阅读 · 0 评论 -
数据结构——基础知识
基本知识点复杂度对比执行次数复杂度非正式术语12O(1)常数阶2n+1O(n)线性阶2n^2+2n+1O(n^2)平方阶2log2n+1O(logN)对数阶n3+n2+n+100O(n^3)立方阶2^nO(2^n)指数阶O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)算法优化方向原创 2020-07-02 16:18:50 · 169 阅读 · 0 评论 -
MySql面试题整理
简单说两句:在整理MySql数据库知识点之前,我对于MySql的了解在 CRUD、创建数据库、表、设计字段、创建索引的基本层面。对于sql语句的优化也就记住了创建索引、用exists代替in,分表分库、读写分离。但是你要问我索引怎么设计,什么时候索引会失效、分表怎么分、数据库字段长度都要设置成多少、tinyint能存多少,int能存多少,varchar能存多少,数据库编码gbk和utf-8区别、MyISAMh和InnoDB什么区别,各自适合哪种场景。我基本说不上来。每次升级把数据库提交给负责人的时候都是心.原创 2020-06-29 18:08:26 · 165 阅读 · 0 评论 -
Mysql表设计原则
表设计原则mysql存储原理记录存储方式记录按行存储在页内按照主键顺序页内单向链表页间双向链表基本数据类型tinyint,smallint,mediumint,int,bigint,float, double,decimal(存储类型,cup不支持直接计算)varchar,charMySQL的数据类型中长度的含义字节:8位=1个字节字符:gbk编码中一个字符占2个字节,utf-8编码中一个字符占3个字节对于gbk类型,行长度最大为65535,则varchar列的最大长度算法原创 2020-06-28 15:26:39 · 720 阅读 · 0 评论 -
MyISAM与InnoDB存储引擎性能比较
简介存储引擎descMyISAM高速引擎,查询速度快,但不支持事务InnoDB5.5版本后MySql默认数据库,支持事务和行级锁,速度比MyISAM慢-InnoDBMyISAM存储文件.frm 表定义文件.ibd 数据文件和索引文件.frm 表定义文件 .myd 数据文件 .myi 索引文件锁表锁、行锁表锁事务支持不支持CRUD读、写读多count查询扫表有专门存储的地方索引结构B+TreeB+原创 2020-06-28 15:19:18 · 297 阅读 · 0 评论 -
Java线程——线程池使用介绍
参考文章:线程池:https://www.jianshu.com/p/210eab345423Java并发编程——线程池:https://www.cnblogs.com/dolphin0520/p/3932921.html示例:package com.xzf.threadpool;import java.util.concurrent.ArrayBlockingQueu...转载 2019-03-15 21:14:15 · 143 阅读 · 0 评论 -
Java线程——Callable与Runnable的区别
Runnable其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。Runnable的声明如下 : public interface Runnable { /* * @s...原创 2018-08-06 18:13:35 · 22144 阅读 · 0 评论 -
Java线程——run()与start()的区别
转自:https://blog.csdn.net/xuxurui007/article/details/7685076(写的太好了)java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用T...转载 2018-08-06 09:53:40 · 338 阅读 · 0 评论 -
Java线程——线程控制基本方法
线程操作基本方法isAlive() 判断线程是否还未终止 getPriority() 获取线程的优先级数值,返回值 setPriority() 设置线程的优先级 Thread.sleep() 将当前线程睡眠指定毫秒数 join()调用某线程的该方法,将当前线程与该线程“合并”,等待该线程结束,再恢复当前线程的运行yield()让出cpu,当前线程进入就绪队列等待调度wai...转载 2018-08-03 17:54:29 · 1496 阅读 · 0 评论 -
Java线程——Runnable和Thread的区别
Runnable 是接口Thread 是类,且实现(implement)了Runnable接口Thread源码:public class Thread implements Runnable{ private static class Caches { static final ConcurrentMap subclassAudits = n...原创 2018-08-03 17:14:58 · 303 阅读 · 0 评论 -
终于理清楚 线程池和数据库连接池 是什么了
首先我们要知道一个事情:什么是线程,什么是进程? 线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。 进程是正在运行的程序的实例,或者:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。Java 线程的周期(五个状态):New ...转载 2018-07-16 12:02:59 · 9365 阅读 · 0 评论 -
JVM类的加载JVM内存JVM垃圾回收机制
总结JVM面试的三大块: Java类的加载过程 JVM内存堆栈 JVM垃圾回收机制 JVM五大内存区域 Java虚拟机栈 这是线程私有的,生命周期与线程相同,存储局部变量,动态链接,方法,操作栈等 如果栈操作深度大于虚拟机所允许的深度,将抛出stackOverFlowError 如果栈申请不到足够的内存,将抛出outOfMemory...转载 2018-07-19 22:25:34 · 304 阅读 · 0 评论 -
Java数据结构
java.util包中三个重要的接口及特点:List(列表)、Set(集合,集合中元素唯一)、Map(key-value,key唯一)。不同类的实现各有差异:是否同步,线程安全,是否有序常用类继承树 Collection(所有集合类的接口)List、Set方法都继承自Collection接口Collections(操作集合的工具类)它提供了许多方便的方法,包括求两个集...转载 2018-07-20 13:47:17 · 159 阅读 · 0 评论 -
数据库优化
建立索引 B-Tree索引,哈希表索引,索引是一种数据结构, B-Tree它们是时候复杂度低,查找,删除,插入操作都可以,B-Tree中的数据是有序的 哈希表是将索引列的值作为索引的键值,和键值对应实际的值是指向该表中相应行的指针如何在使用SQL创建索引: CREATE INDEX name_indexON Employee (Employee_Name) ...原创 2018-07-20 16:00:45 · 179 阅读 · 0 评论 -
Java线程——面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么...转载 2018-08-07 17:36:09 · 201 阅读 · 0 评论 -
简单粗暴TCP协议之握手
简单粗暴看TCP/IP首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。【注意】中断连接端可以是Client端,也可以是Server端。假设Client端发起...转载 2018-07-19 22:32:51 · 226 阅读 · 0 评论