摘要:
阿里菜鸟 二叉搜索树遍历思路? 前中后 根左右 左根右 左右根 数据库索引原理? b+树,遍历层级低,io次数少 非自增id,维护索引代价很大(页分裂);空间占用大; 有什么类型索引?各有什么特点? 对比hash索引、数组索引、b+树 hash索引 无法范围查询 数组查询 维护成本高 inner j 阅读全文
摘要:
携程网 问了实习项目,承担什么职位?有什么困难? 为什么选用这个技术? 聊了下Nacos的源码,主要说了服务端注册和客户端注册的源码 项目怎么解决Redis和MySQL数据库不一致问题? 先删除缓存,再更新数据库 问题 请求1先把cache中的A数据删除;请求2从DB中读取数据将将数据A写入cach 阅读全文
摘要:
AQS&管程模型 MESA模型 管程模型 public void method() { synchronized (this) { // do something } } AQS模型 Reentrantlock示例 简单示例 public class LockDemo { static Lock l 阅读全文
摘要:
BIO 相关API Java流操作有关的类或接口: 详见如下图: Java流类图结构: 【备注:】IO中大量使用了装饰模式(装饰模式详解详见流中的说明) 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 阅读全文
摘要:
IO 模型 BIO (Blocking I/O) BIO 属于同步阻塞 IO 模型 。 同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。 在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的 阅读全文
摘要:
JAVA基础串讲 知识整体梳理 八种基本类型,byte的范围 基本类型、对象、数组 引用传递和值传递 equals和==的区别 equals()和hashcode()方法 String不可变的理解,String, StringBuilder和StringBuffer String.intern()方 阅读全文
摘要:
Java内存模型详解 硬件内存架构 理解内存模型架构以及Java内存模型如何与它协同工作也是非常重要的。 现代计算机硬件架构的简单图示: 多CPU:一个现代计算机通常由两个或者多个CPU。其中一些CPU还有多核。从这一点可以看出,在一个有两个或者多个CPU的现代计算机上同时运行多个线程是可能的。每个 阅读全文
摘要:
数组类创建过程 【结论】数组类本身并不是由类加载器负责创建的,而是由JVM直接在内存中动态构造出来的 理解: String[] Student[] Integer[] int[] 【结论】数组不是类加载器创建的而是java虚拟机直接创建的,知道这个结论就可以了,因为数组不属于类 核心就是: 创建数组 阅读全文
摘要:
Mysql串讲 知识总结 【索引相关】 索引的本质,什么情况下添加索引呢 索引实现的数据结构:哈希表,有序数组,搜索树(即使B树) mysql中索引的实现,为什么最后是B+树呢,带有顺序访问指针的B+Tree mysql中myisam和Innodb的区别,mysql的存储引擎有那些呢 联合索引,即索 阅读全文
摘要:
NIO NIO详解 NIO 是non-blocking的简称,从JDK1.4提出,可以替代标准的Java IO API。 Java NIO 由以下几个核心部分组成: Channels(通道) Buffers(缓存区) Selectors(选择器) NIO主要有三大核心部分:Channel(通道),B 阅读全文
摘要:
lambda表达式 lambda表达式说明 Lambda表达式是Java8引入的,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。Lambda表达式其实核心是函数式编程,而Java本身是面向对象的编程。 不采用Lambda的老方法 ,创建线程: Run 阅读全文
摘要:
Synchronized详解 简单介绍 synchronized中文意思是同步,也称之为同步锁。 synchronized的作用是保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果。 synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种 阅读全文
摘要:
多线程高级类 concurrent包的结构层次 在针对并发编程中,Doug Lea大师为我们提供了大量实用,高性能的工具类,针对这些代码进行研究会让我们队并发编程的掌握更加透彻也会大大提升我们队并发编程技术的热爱。这些代码在java.util.concurrent包下。 其中包含了两个子包:atom 阅读全文
摘要:
多线程基础 多线程相关概念 线程和进程的概念 从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。 相对使用多进程来说,多线程的优势: 进程之间不能共享内存,但线程之间共享内存非常容易。 系统创建线程所分配的资源相对创建进 阅读全文
摘要:
泛型与反射 泛型 泛型说明 泛型,即“参数化类型”。简单的说 泛型就是函数的参数类型可以变化 接口、类和方法也都可以使用泛型去定义,以及相应的使用。在具体使用时,可以分为泛型接口、泛型类和泛型方法, 由于接收来自外部使用时候传入的类型实参。那么对于不同传入的类型实参,生成的相应对象实例的类型是不是一 阅读全文
摘要:
synchronized有什么作用,底层是如何实现的呢 【答案解析】 方法或代码块的互斥性来完成实际上的一个原子操作。(方法或代码块在被一个线程调用时,其他线程处于等待状态) 所有的Java对象都有一个与synchronzied关联的监视器对象(monitor),允许线程在该监视器对象上进行加锁和解 阅读全文
摘要:
多线程同步 synchronized synchronized关键字 synchronized, wait, notify 是任何对象都具有的同步工具。wait/notify必须存在于synchronized块中。详情如下: 方法或代码块的互斥性来完成实际上的一个原子操作。(方法或代码块在被一个线程 阅读全文
摘要:
汉德信息 自我介绍 原始jdbc使用流程 //首先加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //提供JDBC连接的URL String url="jdbc:mysql://0.0.0.0:3306/xxxx"; String username=" 阅读全文
摘要:
任拓数据科技 自我介绍 聊我的项目 项目中的网页有没有安全机制?防sql注入等等 {} 权限认证,shiro、springsecurity,认证授权 json数据裸奔 对数据加密,MD5加密 权限认证,shiro 项目中遇到的问题?跨域 为什么跨域?解决方法? 几个算法(括号匹配、排序高考分数、身份 阅读全文
摘要:
招银网络 自我介绍 实习项目的具体情况 ES的具体操作 Redis的常用数据结构 string 缓存 session共享 分布式锁 int embstr简单动态字符串 简单动态字符串 list 消息队列 ziplist linkedlist hash 存储对象 ziplist hashtable s 阅读全文