使用rand6实现rand10

给定rand6()函数实现 private static int rand6(){ return (int)(Math.random()*6)+1; } rand6()可以得到1,2,3,4,5,6 rand6()-1可以得到0,1,2,3,4,5 (rand6()-1)*6可以...

2019-04-24 17:24:14

阅读数 2

评论数 0

面试中如何回答JVM垃圾回收机制

JVM中的垃圾回收了解吗 首先是如何标记存活对象,主要有两个算法,分别是引用计数法和可达性分析算法。 引用计数法:给一个对象添加一个引用计数器,当一个地方引用它时,计算器+1,不引用的时候-1,当引用计数器为0时说明该对象可回收。但是一旦出现互相引用的情况,就会出现无法回收的现象。所以JVM采...

2019-04-17 09:36:48

阅读数 33

评论数 0

面试中如何回答Java中的锁机制

Java中锁机制 Java中多线程加锁机制主要有两种,一种是JDK实现的lock,另外一种是JVM底层实现的Synchronized关键字。 Synchronized是JVM底层实现的,JVM原生支持synchronized,而reentrantlock是JDK实现的,并不是所有jdk版本都支持r...

2019-04-12 17:08:36

阅读数 48

评论数 1

web项目面试问题

项目如何保证安全性 1.弱口令漏洞 解决方案:最好使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密,或者多种加密方式叠加组合。 2.未使用用户名及密码登录后台可直接输入后台URL登录系统...

2019-04-09 19:49:56

阅读数 60

评论数 0

Spring高频面试题

Spring Boot的优势和Spring的区别 Spring Boot优势: 快速开发,提高了生产力,适合构建微服务系统 避免编写大量的样板代码、注释和xml配置 springBoot集成了很多成熟的组件,如mybatis、redis和mongdb等 Spring Boot劣势: 集成度...

2019-04-09 14:33:02

阅读数 56

评论数 0

MySQL面试问题

索引是什么?有什么作用以及缺点 定义:索引是存储引擎用于快速查找数据的一种数据结构。 MySQL数据库基本的索引类型:普通索引、唯一索引、主键索引和全文索引。 普通索引:允许被索引的数据列包含重复的列 唯一索引:不允许被索引的数据包含重复的列 主键索引:在一张表中只能定义一个主键索引,主键索引用于...

2019-03-25 16:04:58

阅读数 8908

评论数 4

HashMap相关面试问题

HashMap原理 hashMap内部包含了一个Entry类型的数组table transient Entry[] table; table数组中每个索引位置(可以将每个索引位置看成是一个桶bucket)存储着一条链表或者一棵红黑树。hashMap通过哈希算法计算出key对应的索引位置,不同的ke...

2019-03-07 09:58:23

阅读数 81

评论数 0

SpringBoot+MyBatis项目架构

2019-03-04 12:19:44

阅读数 95

评论数 0

Redis面试相关

缓存中间件-Memcache和Redis的区别 Memcache:代码层次类似Hash 支持简单数据类型 不支持数据持久化存储 不支持主从(主从服务器复制) 不支持分片 Redis: 数据类型丰富 支持数据磁盘持久化存储 支持主从 支持分片 Redis数据类型...

2019-03-03 11:16:15

阅读数 72

评论数 0

面试中如何回答分布式锁的实现

实现分布式锁的方法主要有四种: 数据库唯一索引 Redis的SETNX指令 Redis实现的RedLock算法 ZooKeeper的临时有序节点 第一种是通过数据库唯一索引,通过往数据库中插入唯一索引表示获取到锁,删除该唯一索引表示释放该锁。唯一索引可以保证当前数据库中该索引是唯一的。那么就可...

2019-03-03 10:06:59

阅读数 91

评论数 0

Java并发编程常见面试题夺命追问

1. 守护线程(Daemon)与用户线程(User)的区别 守护线程时程序运行时在后台提供服务的线程,当所有非守护线程结束后,也即程序终止时,所有守护线程都将一起被杀死。 main()是用户线程,JVM的垃圾回收线程就是一个守护线程 通过Thread类中的setDaemon(boolean ...

2019-02-24 20:54:25

阅读数 97

评论数 0

Java 并发编程(四)JVM中锁的优化

偏向锁、轻量级锁、重量级锁三者各自的应用场景 偏向锁:只有一个线程进入临界区 轻量级锁:多个线程交替进入临界区 重量级锁:多个线程同时进入临界区 偏向锁、轻量级锁都是JVM引入的锁优化手段,目的是降低线程同步的开销。比如以下的同步代码块: synchronized (lockOb...

2019-02-22 16:06:55

阅读数 95

评论数 1

图论算法(三)最短路径

最短路径

2019-02-18 11:06:32

阅读数 72

评论数 0

图论算法(二)最小生成树

图论算法之最小生成树 最小生成树 定义 原理 Prim算法延时实现 Prim算法jishi实现 Kruskalsuanfa

2019-02-17 11:33:44

阅读数 93

评论数 0

图论算法(一)深度优先搜索与广度优先搜索

图论算法之深度优先搜索与广度优先搜索 图论基础知识 图是由一组顶点和一组能够将两个顶点相连的边组成的(可以无边,但是至少包含一个顶点): 一组顶点: 通常用V(vertex)表示顶点集合 一组边: 通常用E(edge)表示边集合 图可以分为有向图和无向图: 无向...

2019-01-19 19:47:11

阅读数 78

评论数 0

散列表原理及实现

散列表原理及实现 散列表原理 散列表:使用算术操作将键转化为数组的索引来访问数组中的键值对, 使用散列表,可以实现常数级别的查找和插入. 使用散列的查找算法主要要解决的两个问题: 散列函数的设计(即如何用散列函数将被查找的键转化为数组的一个索引). 处理碰撞冲突的过程(即处理两个或多个键...

2019-01-12 15:53:23

阅读数 48

评论数 0

浅析树结构(三)红黑树

浅析树结构之红黑树 首先先来了解一下红黑树的五个性质 每个结点非红即黑。 根结点是黑的。 每个叶结点(这里叶节点指的是NULL结点)都是黑的。 如果一个结点是红的,那么它的两个儿子都是黑的。 对于任意结点而言,其到树末端即NULL节点的每条路径都包含相同数目的黑结点。 等等等...

2019-01-10 17:16:29

阅读数 56

评论数 0

浅析树结构(二)AVL平衡二叉树(AVL树原理及代码实现)

平衡二叉树 平衡二叉树定义 平衡二叉树有两种形式: 是一棵空树 是一个左右两个子树的高度差的绝对值不超过1,并且左右子树都是平衡二叉树的树 平衡二叉树的常用实现方法有AVL树,红黑树,替罪羊树,Treap,伸展树等. 在这里我们先谈AVL树,红黑树会在之后的文章...

2019-01-08 21:37:23

阅读数 71

评论数 0

浅析树结构(一)二叉查找树(BST树代码实现)

二叉查找树 二叉查找树定义 定义:一颗二叉查找树(BST)是一棵二叉树,其中每个结点都含有一个Comparable的键(以及相关联的值)且每个结点的键都大于其左子树中的任意结点的键而小于右子树的任意结点的键. 二叉查找树中搜索,插入,删除的复杂度等于树高,即O(log(n)) 二...

2019-01-08 15:46:06

阅读数 68

评论数 0

三张图详解从输入URL网址到网页呈现中间发生了什么

2018-12-24 16:38:31

阅读数 73

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭