
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
1.什么是搜索引擎全⽂文搜索引擎是⽬目前⼴广泛应⽤用的主流搜索引擎。它的⼯工作原理理是计算机索引程序通过扫描⽂文章中的每⼀一个词,对每⼀一个词建⽴立⼀一个索引,指明该词在⽂文章中出现的次数和位置,当⽤用户查询时,检索程序就根据事先建⽴立的索引进⾏行行查找,并将查找的结果反馈给⽤用户的。2.常见搜索引擎LuceneLucene是⼀一个Java全⽂文搜索引擎,完全⽤用Java编写。L...
hashing(散列法或哈希法)的概念散列法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。HashMap概念和底层结构HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映...
排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:时间复杂度与空间复杂度关于时间复杂度:平方阶 (O(...
场景:同一个用户在2秒内对同一URL的提交视为重复提交。思考逻辑:1.从数据库方面考虑,数据设计的时候,某些数据有没有唯一性,如果有唯一性,要考虑设置唯一索引,可以避免脏数据。2.从应用层面考虑,首先判断是单机服务还是分布式服务,则此时需要考虑一些缓存,利用缓存,来保证数据的重复提交。假设是分布式应用,则可以将用户的信息,例如token和请求的url进行组装在一起,存储到缓存存,例...
Java对象创建底层原理1.虚拟机遇到一条new指令时,首先检查这个对应的类能否在常量池中定位到一个类的符号引用;2.判断这个类是否已经被加载,解析,初始化3.为这个新生对象在java堆中分配内存空间,其中分配内存空间的方式有两种指针碰撞:分配内存空间包括开辟一块内存和移动指针两个步骤;非原子步骤可能出现并发问题,Java虚拟机采用CAS配上失败重试的方式保证更新操...
1.类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持 Java 语言的运行...
简介:JVM中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的。对象存活判断:引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象...
CountDownLatch 同步倒数计数器CountDownLatch允许一个或多个线程等待其他线程完成操作。CountDownLatch对象内部存有一个整数作为计数器。调用countDown()方法就将计数器减1,当计数到达0时,则所有等待者会停止等待。计数器的操作是原子性的。常用API构造方法CountDownLatch(int count)构造方法参数指定了计数的次数...







