一、何谓方法System.out.println():调用系统System类out对象的方法println()。Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合。方法包含于类或对象。方法在程序中被创建,在其他地方被引用。设计方法的原则:方法的本意是功能块,就是实现某个功能语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样
一、Solr简介        由于搜索引擎功能在门户社区对提高用户体验有着重在门户社区涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有几种方案可供选择: 基于Lucene自己进行封装实现站内搜索。工作量及扩展性都较大,不采用。 调用Google、Baidu的API实现站内搜索。同第三方搜索引擎绑定太死,无法满足后期业务扩
java io体系 如图可以看出,java的io按照包来划分的话可以分为三大块:io、nio、aio,但是从使用角度来看,这三块其实揉杂在一起的,下边我们先来概述下这三块:io:主要包含字符流和字节流,我们常用的文件读写,流处理等都要用到,也是本次介绍的重点。jdk1.7之后的io底层部分类经已改为使用阻塞的nio实现了nio:jdk1.4后加入,多路非阻塞(多路IO复用模型),此外还实现了bu
转载 2023-08-13 23:05:21
64阅读
前言之前的学习也是为了让我们更好的理解GC,GC是我们学习Jvm的核心,因为我们后面的优化,为什么会出现oom,怎么调整堆空间的大小等等。GC算法第一种标记算法:引用计数法在对象添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数+1,当引用失效时,计数-1,如果计数=0,表示没有其他对象引用,就可以被回收。这个算法无法解决循环依赖的问题。比如A,B对象相互引用,这样就会计数增加,不
# Java算法底层逻辑 ## 引言 Java是一门非常强大的编程语言,广泛应用于各种领域。在软件开发算法是一项重要的技术,它能够帮助我们解决各种问题,提高程序的效率和性能。在本篇文章,我们将深入探讨Java算法底层逻辑,并通过代码示例来加深理解。 ## 算法的基本概念 算法是一系列解决问题的步骤和规则的集合。在计算机科学算法是指解决特定问题的有限步骤的描述。算法可以用来解决各
原创 2023-10-13 07:05:38
26阅读
前言之前的学习也是为了让我们更好的理解GC,GC是我们学习Jvm的核心,因为我们后面的优化,为什么会出现oom,怎么调整堆空间的大小等等。GC算法第一种标记算法:引用计数法在对象添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数+1,当引用失效时,计数-1,如果计数=0,表示没有其他对象引用,就可以被回收。这个算法无法解决循环依赖的问题。比如A,B对象相互引用,这样就会计数增加,不
转载 2023-07-24 17:25:27
72阅读
1. HashSet底层原理 基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,hashset实现简单,hashset操作是调用底层hashmap的方法。默认初始一个容量未16负载因子为0.75的hashmap。2. HashMap底层原理 HashMap是基于哈希表的Map接口的非同步实现。 允许使用null值和null键。无序。 HashMap数据结构“数组+链表+
转载 2023-11-07 06:27:28
55阅读
一、分词的概念分词:就是把我们要查询的数据拆分成一个个关键字,我们在搜索时,ElasticSearch会把数据进行分词,然后做匹配。默认的中文分词器会把每一个中文拆分,比如“迪丽热巴”,会拆分成“迪”,“丽”,“热”,“巴”,显然,这并不符合我们的要求,所以ik分词器(中文分词器)能解决这个问题。二、IK分词器的分词算法ik分词器存在两种分词算法:ik_smart:称为智能分词,网上还有别的称呼:
转载 2023-07-13 15:14:39
22阅读
JDK1.8之前HashMap在jdk1.8之前HashMap底层采用的数组+链表;HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。HashMap储存的是键值对,HashMap很快。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。数组:存储区间连续,占用内
“ ACID 事务底层内部实现原理”Hello,大家好。今天是周二(2020-03-24),还是那句俗语 “一日之计在于晨” ,因此分享给大家的是 「mysql 模块」- ACID 内部实现原理。想必在 mysql ,事务大家一定不陌生,但是我估计了解最多的是它 ACID 的表名特性含义吧。事务,我们想要达到什么结果呢?无非不就是 可靠性 与 并发 处理。今天就让我
一、Core概述1、Core概述在Solr、每一个Core、代表一个索引库、里面包含索引数据及
原创 2023-07-17 14:30:06
54阅读
目前在Java存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchroniz
转载 2024-01-11 11:38:45
41阅读
 Java 常用排序算法/程序员必须掌握的 8大排序算法分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 1.直接插入排序 (1)基本思想:在要排序的一组数,假
转载 2023-07-24 16:34:08
78阅读
文章目录前言String概述应用场景底层原理embstr结构raw结构embstr和raw的转换总结系列文章目录 前言Redis 是一个开源的、基于内存的、支持多种数据结构的高性能键值数据库。其中,string 类型是 Redis 最基本的数据结构,也是最常用的数据结构。string 类型可以存储字符串、整数或者浮点数,可以用于实现缓存、计数器、分布式锁等功能。本文将介绍 Redis strin
锁:synchronized 和 reentrantlock 一、synchronized 1、CAS(compare and swap) 为了提高性能,JVM很多操作都依赖CAS实现,一种乐观锁的实现。本文锁优化中大量用到了CAS,故有必要先分析一下CAS的实现。 CAS:Compare and Swap。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。 否则,处理器不
lib <lib>   标签指令可以用来告诉 Solr 如何去加载 solr plugins(Solr 插件 ) 依赖的 jar 包,在 solrconfig.xml 配置文件的注释中有配置示例,例如: <lib dir="./lib" regex=
Solr常用检索语法 概要 本文对Solr常用检索语法进行介绍。说明 为了更好的介绍Solr常用语法,约定Solr服务器地址:http://localhost:8080/solr,已部署检索实例sample。Solr常用检索语法 结果集返回格式:&wt=json&indent=onwt参数定义返回封装的数据格式,可选值有:xml、json、Python、ruby、ph
数据库1、索引聚簇索引Innodb 聚簇索引不是一种单独的索引类型,其实是数据的存储方式。聚簇索引将数据存储与索引放在了一起,找到了索引也就找到了数据。 例如 hashmap<key,object> 找打key就找到了对应的value 主键索引就是一个局促索引MyISAM 中所有索引都是一致的 与数据分开存储非聚簇索引(辅助索引,二级索引)非聚簇索引存储的key为当前索引 valu
索引:索引的定义: 索引是mysql为了快速查询而创造的一种数据结构索引: B+Tree形容一下B+Tree , 数据都保存在叶子节点,在其他节点只是保存多个元素和指针数据存储模型engine = mySarm 或者 InNoDB mysql索引如何优化:1.找到慢sql,2.explai
转载 2023-06-14 17:32:27
59阅读
在前面几篇文章,我们也已经学习了关于List、Set的常用集合,今天学习最常用的Map集合:HashMap。 在学习HashMap之时,首先应该清楚明白:HashMap的工作原理: HashMap基于hashing原理,通过put()和get()方法存储和获取对象。当我们将键值对传递给put()方法时,它调用对象的hashCode()方法来计算hashCode,然后找到bucket位置来存储对象
  • 1
  • 2
  • 3
  • 4
  • 5