随笔分类 -  技术杂说

上一页 1 ··· 3 4 5 6 7 8 下一页
摘要:HashMap和HashTable的区别? HashMap 不是线程安全的 HashMap 是 map 接口的实现类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap 允许 null key 和 null value,而 HashTable 不允许。 H 阅读全文
posted @ 2021-11-30 16:13 残城碎梦 阅读(72) 评论(0) 推荐(0) 编辑
摘要:Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式 阅读全文
posted @ 2021-11-30 12:42 残城碎梦 阅读(67) 评论(0) 推荐(0) 编辑
摘要:判断对象是否存活的算法包括: 引用计数算法 可达性分析算法 引用计数算法(Reference Counting) 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器加1;当引用失效时,计数器值减1;任何时刻计数器为0的对象就是不能再被引用的。 例如Object-C,Python语言使用引用计 阅读全文
posted @ 2021-11-30 08:57 残城碎梦 阅读(187) 评论(0) 推荐(0) 编辑
摘要:MySQL查询字段区不区分大小写? 答案:不区分。 如何解决需要区分英文大小写的场景 解决方案一 MySQL默认的字符检索策略:utf8_general_ci,表示不区分大小写。可以使用utf8_general_cs,表示区分大小写,也可以使用utf8_bin,表示二进制比较,同样也区分大小写 。 阅读全文
posted @ 2021-11-30 08:42 残城碎梦 阅读(226) 评论(0) 推荐(0) 编辑
摘要:单例模式介绍 单例模式(Singleton),是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。 比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取, 阅读全文
posted @ 2021-11-30 08:20 残城碎梦 阅读(264) 评论(0) 推荐(0) 编辑
摘要:同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个 阅读全文
posted @ 2021-11-29 22:58 残城碎梦 阅读(115) 评论(0) 推荐(0) 编辑
摘要:为什么需要消息队列 当系统中出现“生产“和“消费“的速度或稳定性等因素不一致的时候,就需要消息队列,作为抽象层,弥合双方的差异。“ 消息 ”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中,“ 消息队列 ”是在消息的传输过程中 阅读全文
posted @ 2021-11-29 22:12 残城碎梦 阅读(415) 评论(0) 推荐(0) 编辑
摘要:Comparable Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现。 如果add进入一个Collection的对象想要Collec 阅读全文
posted @ 2021-11-29 22:01 残城碎梦 阅读(46) 评论(0) 推荐(0) 编辑
摘要:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢? jdk1.7中的HashMap 扩容造成死循环 根源在transfer函数。 在对table进行扩容到newTable后,需要将原来数据转移到newTable中,在转移元素的过程中,使用的是头插 阅读全文
posted @ 2021-11-28 12:47 残城碎梦 阅读(154) 评论(0) 推荐(0) 编辑
摘要:Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文 阅读全文
posted @ 2021-11-28 12:25 残城碎梦 阅读(65) 评论(0) 推荐(0) 编辑
摘要:ArrayList 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。ArrayList 和 LinkedList 都实现 List 接口。先对List接口做一个简单的了解: 列表(list)是元素的有序集合,也称为序列。它提供了基于元素位置的操作,有助于快速访问、添加 阅读全文
posted @ 2021-11-28 11:26 残城碎梦 阅读(70) 评论(0) 推荐(0) 编辑
摘要:JDK1.7HashMap采用的是数据结构是:数组 + 链表 JDK1.8则采用的是:数组 + 链表 + 红黑树 在Java 8 之前,HashMap和其他基于map的类都是通过链地址法解决冲突,它们使用单向链表来存储相同索引值的元素。在最坏的情况下,这种方式会将HashMap的get方法的性能从O 阅读全文
posted @ 2021-11-28 10:36 残城碎梦 阅读(823) 评论(0) 推荐(0) 编辑
摘要:创建线程有几种不同的方式?你喜欢哪一种?为什么? 有四种方式可以用来创建线程: 继承Thread类 实现Runnable接口(实现Callable接口,主要解决返回值问题) 创建线程池(Executor框架或自定义线程池) 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在 阅读全文
posted @ 2021-11-28 10:00 残城碎梦 阅读(163) 评论(0) 推荐(0) 编辑
摘要:两者的定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和 阅读全文
posted @ 2021-11-28 09:54 残城碎梦 编辑
摘要:在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞。要搞清楚这些,就要了解 Redis 的过期策略和内存淘汰机制。 Redis采用的是定期删除 + 懒惰删除策略。 定期删除 阅读全文
posted @ 2021-11-28 09:07 残城碎梦 阅读(122) 评论(0) 推荐(0) 编辑
摘要:单点登录在现在的系统架构中广泛存在,它将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求。 共享Session 共享Session可谓是实现单点登录最直接、最简单的方式。将用户认证信息保存于Sessi 阅读全文
posted @ 2021-11-28 08:55 残城碎梦 阅读(29) 评论(0) 推荐(0) 编辑
摘要:怎么实现承载更多用户量的系统,通常来讲分为两个大方向,互相配合实现。 硬件架构改进,主要是使用阿里云这种多组件的云环境:通过负载均衡SLB,模版克隆的云服务器ECS,云数据库RDS,共享对象存储OSS等不同职责的云产品组合实现。 软件架构优化,主要是软件代码开发的规范:业务解耦合,架构微服务,单机无 阅读全文
posted @ 2021-11-28 08:07 残城碎梦 阅读(78) 评论(0) 推荐(0) 编辑
摘要:什么是缓存雪崩?怎么解决? 缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是,缓存击穿指并发查同一条数据。 如何解决呢? 对缓存做高可用,防止缓存宕机。 使用断路器,如果缓存宕机,为了防止系统全部宕机,限制部分流量进入DB,保证部分可用, 阅读全文
posted @ 2021-11-28 07:25 残城碎梦 阅读(34) 评论(0) 推荐(0) 编辑
摘要:equals() 的作用是用来判断两个对象是否相等。hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。 先祭一张图,可以思考一下为什么? 我们以“类的用途”来将“hashCode() 和 equals()的关系”分 阅读全文
posted @ 2021-11-27 22:47 残城碎梦 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。 Object类是Java中所有类的基类。位于java.lang包中,一共有13个方法。如下图: Object():O 阅读全文
posted @ 2021-11-27 21:31 残城碎梦 阅读(45) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页
点击右上角即可分享
微信分享提示