Java八大排序算法
排序算法的介绍
排序也称排序算法(SortAlgorithm),排序是将 一组数据,依 指定的顺序进行 排列的过程。
排序的分类
按照是否使用内存可以分为内部排序和外部排序两种:
内部排序:
指将需要处理的所有数据都加载到 内部存储器( 内存)中进行排序。
外部排序法:
数据量过大,无法全部加载到内存中,需要借助 外部存储( 文件等)进行排序。
按照是否稳定可以分为稳定排序和非稳定排序两种:
如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是 稳定 的。反之,则是 非稳定 的。
排序算法的实现
参考一:Java实现八大排序算法
参考二:尚硅谷Java数据结构和java算法,韩顺平数据结构和算法...
AQS源码解析
AQS简介
java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。
AQS就是AbstractQueuedSynchronizer,它是为实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)提供的一个框架。
源码分析
从ReentrantLock进入
可以看到ReentrantLock默认构建了NonfairSync,即非公平锁
public ReentrantLock() {
sync = new NonfairSync();
}
public ReentrantLock(boolean fair) {
sync = fair ? new FairSync() : new ...
Elastic Stack 环境部署
ELK简介
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。
Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。
Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。
Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。
ELK安装
利用docker部署ELK(ElasticSearch + Logstash + Kibana),...
ConcurrentHashMap源码解析
尚未完成,参考资料:https://www.cnblogs.com/zerotomax/p/8687425.html
几个重要属性
private static final int MAXIMUM_CAPACITY = 1 << 30;
private static final int DEFAULT_CAPACITY = 16;
static final int TREEIFY_THRESHOLD = 8;
static final int UNTREEIFY_THRESHOLD = 6;
static final int MIN_TREEIFY_CAPACITY = 64;
static final int MOVED = -1; // 表示正在转移
sta...
SpringMvc执行流程
一、入口
众所周知,Servlet是由tomcat接收http请求然后转成可识别的HttpServlet去处理;
SpringMvc的请求入口是DispatcherServlet,类图如下所示:
可以看到DispatcherServlet是HttpServelt的子类,所以我们依旧可以从doService方法进行源码追踪。
doService里面会进入doDispatch方法
try {
doDispatch(request, response);
}
doDispatch:
protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exce...
Idea插件
1、Alibaba Cloud Toolkit
远程shell连接服务器,文件上传,项目部署。。。。
2、Alibaba Java Code GuideLines
Java开发手册规范,检测代码不规范的地方
3、Camel Case
驼峰转换,Shift+Alt+u,可以对字符串一直转换成想要的格式
4、CodeGlance
右侧显示代码缩略图,可以快速定位
5、FindBugs -Idea
检测代码中会出现的问题
6、Free Mybatis Plugin
实现dao快速跳转到xml
7、GenerateAllsetter
生成object的set方法(alter+enter)
8、GenerateSerialVersionUID
...
牛客网2020面经大汇总
网址
当前整理进度:【苏宁】苏宁java管培面经
【阿里】阿里java开发一面凉经
【阿里巴巴】
阿里巴巴Java社招面经
一面(电话面)
Servelt的生命周期
线程的状态
加密算法(非对称,对称,MD5)
数据库事务ACID四大特性
二面(电话面)
Java的内存模型
JVM的垃圾回收机制
HashMap、Hashtable、ConcurrentHashMap的区别,同步器实现机制。
使用过哪些ORM框架,
数据库事务的四大特性
注解处理器
原子类底层机制(cas, Unsafe)
快排实现方式。
三面(视频面)
ES的检索机制(query-then-fetch)
面试官问如果现在要搜一个词,按相关度排序,如何获取排名在(100-120)之间的文档,针对于“用...
共计 13 篇文章,2 页。