摘要: 1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 一个棘手的 Java 问题,如果 Java编程语言不是你设计的,你怎么能回答这个问题呢。Java编程的常识和深入了解有助于回答这种棘手的 Java 核心方面的面试问题。 为什么 wait,notify 和 notifyAll 阅读全文
posted @ 2020-06-17 14:32 兰亭笑笑声 阅读(1734) 评论(0) 推荐(0) 编辑
摘要: NIO和IO: 概念:Nio和Io有相同的作用和目的,实现方式不同。NIO主要用到的是块,所以NIO的效率比IO要高,在Java API中提供了两套Nio,一套是针对输入输出NIO,一套是网络编程NIO NIO和IO的主要区别: IO: 面向流 属于阻塞IO 不具有选择器 NIO: 面向缓冲 非阻塞 阅读全文
posted @ 2020-06-11 16:16 兰亭笑笑声 阅读(134) 评论(0) 推荐(0) 编辑
摘要: rabbitMq相关技术 什么是MQ? 消息队列(message Queue)本质上是个队列 FIFO先进先出 队列中放的是消息。 主要用途: 不同进程/线程thread之间的通信 为什么会使用消息队列? 1. 不同进程(process)之间传递消息的时候,两个进程之间耦合度过高,当改变其中一个进程 阅读全文
posted @ 2020-06-10 17:10 兰亭笑笑声 阅读(378) 评论(0) 推荐(0) 编辑
摘要: java设计模式: 单例模式: 分为懒汉式和饿汉式 懒汉式:刚开始不会创建bean 在需要的时候才会创建,此时存在线程安全问题(线程不安全) 饿汉式:项目初始化自动创建好bean,后续不需要在次创建,此时不存在线程安全问题,但是浪费内存资源 之后优化两种单例模式的弊端 双检索模式:项目初始化如果已经 阅读全文
posted @ 2020-05-25 13:59 兰亭笑笑声 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1.关于redis的缓存击穿和雪崩 缓存击穿:redis缓存系统是根据key来查询value的值,当value不存在的时候,就会去访问数据库(DB),如果大量的请求进来找不到与之对应的value时,会对数据库造成巨大压力,以至于导致数据库瘫痪,这就叫缓存击穿。 解决方案:1.使用布隆过滤器 2.不管 阅读全文
posted @ 2020-01-16 11:39 兰亭笑笑声 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 2.布隆过滤器的分析 布隆过滤器实质上是一种数据结构,是一种巧妙的概率型数据结构。 作用:高效的插入和查询 主要特点:它能告诉你这个结果 是否存在可能存在或者不存在。 相对于list map set 的优点:高效 内存占用小,但是其返回的结果是概率性 并不是确切的值。 解析:布隆过滤器是一个bit数 阅读全文
posted @ 2020-01-16 10:51 兰亭笑笑声 阅读(120) 评论(0) 推荐(0) 编辑
摘要: package cn.com.yitong.test; import java.util.Arrays;import org.junit.Test; public class DemoTest { @Test public void bubbleSort() { /** * 冒泡排序 */ int[ 阅读全文
posted @ 2018-09-14 15:55 兰亭笑笑声 阅读(102) 评论(0) 推荐(0) 编辑
摘要: package cn.com.yitong.test; import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;import java.uti 阅读全文
posted @ 2018-09-14 14:04 兰亭笑笑声 阅读(215) 评论(0) 推荐(0) 编辑
摘要: java并发编程中最长用到的关键字就是synchronized了,这里讲解一下这个关键字的用法和容易混淆的地方.synchronized关键字涉及到锁的概念, 在java中,synchronized锁大家又通俗的称为:方法锁,对象锁 和 类锁 三种. 先上结论! 1 无论是修饰方法还是修饰代码块都是 阅读全文
posted @ 2018-09-13 11:46 兰亭笑笑声 阅读(6503) 评论(2) 推荐(3) 编辑
摘要: <1>.什么是Shell? shell解释:引用别人的话说:“Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。” 简而言之,shell是命令解释器之外的一种编程语言。 shell可以做什么:批处理、自动化管理、监控管理、 阅读全文
posted @ 2018-09-10 18:07 兰亭笑笑声 阅读(126) 评论(0) 推荐(0) 编辑