代码改变世界

随笔档案-2019年01月

浅析MySQL InnoDB的隔离级别

2019-01-16 21:09 by 码畜的一生, 3087 阅读, 收藏,
摘要: MySQL InnoDB存储引擎中事务的隔离级别有哪些?对应隔离级别的实现机制是什么? 本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制。 隔离性简介 隔离性主要是指数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的"独立"环境执行,意思就是多个事务并发执行时,一个事务 阅读全文

Redis和mysql数据怎么保持数据一致的?

2019-01-16 21:06 by 码畜的一生, 18258 阅读, 收藏,
摘要: 需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。 读取缓存步骤一般没有什么问题, 阅读全文

java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

2019-01-15 16:56 by 码畜的一生, 2192 阅读, 收藏,
摘要: 当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序中没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数 Java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。 Java不支持像C++那样的复制构造函 阅读全文

java面试题 wait和sleep区别

2019-01-15 16:45 by 码畜的一生, 323 阅读, 收藏,
摘要: sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间 wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁, 阅读全文

2000w数据,redis中只存放20w的数据,如何保证redis中的数据都是热点数据

2019-01-13 22:55 by 码畜的一生, 1976 阅读, 收藏,
摘要: redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。 redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db 阅读全文

详解Java内存区域?虚拟机类加载机制?

2019-01-11 23:16 by 码畜的一生, 316 阅读, 收藏,
摘要: 一、Java运行时数据区域 1、程序计数器 “线程私有”的内存,是一个较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器。Java虚拟机规范中唯一一个没有OutOfMemoryError情况的区域。 字节码解释器工作时就说通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、 阅读全文

Java集合框架面试题目

2019-01-09 21:28 by 码畜的一生, 412 阅读, 收藏,
摘要: 1.为什么Map接口不继承Collection 接口? Set是无序集合,并且不允许重复的元素 List是有序的集合,并且允许重复的元素 而Map是键值对 它被视为是键的set和值的set的组合 Map被设计为键值对的集合,所以不需要继承Collection 接口 2.HashMap和Hashtab 阅读全文

sping Bean 的生命周期是如何被管理

2019-01-08 14:25 by 码畜的一生, 715 阅读, 收藏,
摘要: 1. 实例化一个Bean,也就是我们通常说的new 2. 按照Spring上下文对实例化的Bean进行配置,也就是IOC注入 3. 如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是Spring配置文件中Bean 阅读全文

Mybatis经常被问到的面试题

2019-01-07 12:21 by 码畜的一生, 1072 阅读, 收藏,
摘要: 1. #{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换。 Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理${}时,就是把${}替换成变量的值。 使用#{}可以有效的防止SQL注入,提高 阅读全文

Redis面试题

2019-01-07 12:08 by 码畜的一生, 265 阅读, 收藏,
摘要: Redis有哪些数据结构? 字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、 Pub/Sub。Redis Module,像BloomFilter,RedisSearch,R 阅读全文

java多线程面试题

2019-01-07 12:04 by 码畜的一生, 188 阅读, 收藏,
摘要: 1、什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。2、线程和进程有什么区别?线程是进程的子集, 阅读全文

HashMap原理

2019-01-07 11:50 by 码畜的一生, 235 阅读, 收藏,
摘要: HashMap是数组+链表实现的,既然用到hash散列,那么肯定不可避免的会出现冲突问题,HashMap解决冲突的方法是拉链法,因为这里有用到数组,那么当容量不足的时候就需要进行扩容操作了,在HashMap中有个术语叫冲突,当冲突几率越来越高的时候就需要进行扩容操作了,那什么情况就叫冲突几率高呢?就 阅读全文

高并发架构系列:MQ消息队列的12点核心原理总结

2019-01-03 21:12 by 码畜的一生, 1523 阅读, 收藏,
摘要: 消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。 无论是 RabbitMQ、RocketMQ、ActiveMQ、Kafka还是其它等,都有的一些基本原理、术语、机制等,总结分享出来,希望大家在使用消息 阅读全文

大话程序员系列:一张图道尽程序员的出路

2019-01-02 23:12 by 码畜的一生, 1428 阅读, 收藏,
摘要: 最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图一张,看之豁然开朗。独乐乐不如众乐乐,share了: 术语表 程序员:撰写代码,生产软件,辅助提高社会生产率的脑力劳动者。据说喝的是咖啡,抽的是烟,产的是代码。他们是计算机诞生后才逐渐兴起的一个群体,鱼龙混杂,有高飞天上的白富美 阅读全文