自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 数据地图搜索功能模块项目总结【springBoot+Elasticsearch】

这个模块主要是对近期所做的一个项目的一个总结,主要是针对数据地图中的一个搜索功能做一个优化。那么什么是数据地图呢?针对此次项目中的数据地图,数据地图是基于元数据中心构建的一站式企业数据资产目录,可以看作是元数据中心的界面。数据开发、分析师、数据运营、算法工程师可以在数据地图上完成数据的检索,解决了不知道有哪些数据?到哪里找数据?如何准确的理解数据的难题。数据地图提供了多维度的检索功能,使用者可以按照表名、列名、注释、主题域、分层、指标进行检索,结果按照匹配相关度进行排序。...

2022-08-03 15:30:51 4996 5

原创 SpringBoot整合Kafka消息队列并实现发布订阅和消费

SpingBoot整合Kafka,实现基本的订阅与消费pom依赖 --版本和springboot相关 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>配置文件 ymlspring.kafka.bootstrap-servers=

2022-04-11 11:03:18 12272 9

原创 springBoot整合ElasticSearch【代码直接复制可用】(超级详细)

前期准备工作安装Elasticsearch+Kibana需要先安装好jdk(这个自行下载安装,就不过多说了)官方下载地址点击下载https://www.elastic.co/cn/downloads/elasticsearch建议不要下载过高版本的,也不要下载过低版本的,博主6、7、8版本都下载过,为别再出错,建议下载和我同一个版本,博主使用的是7.8.1。具体操作如下:第一步:第二步:下载指定安装包后,选择合适的位置保存压缩包,并解压好,打开bin目录,在bin里打开cmd输入elast

2022-03-17 18:56:11 11735 13

原创 当“对象”是垃圾时,如何回收,快学习垃圾收集算法

分代收集理论目前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”的理论进行设计,分代收集理论都是建立在弱分代假说(Weak Generational Hypothesis)和强分代假说(Strong Generational Hypothesis)弱分代假说:绝大多数对象都是朝生夕灭的。强分代假说:熬过越多次数垃圾收集过程的对象就越难以消亡。这两个假说共同奠定了多款常用的垃圾收集器的一致性的设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(对象熬过垃圾回收过程的次数)分

2021-04-08 16:03:43 12521 29

原创 想知道对象死没死?看这一篇就够了(引用计数算法、可达性分析算法)

如何判断对象已死引用计数算法(Reference Counting)在对象中添加一个引用计数器,每当一个地方引用它,计数器就加一;当引用失效时,计数器就减一;任何时刻计数器为零的对象就是不可能在被使用的。客观的说,引用计数算法虽然占用了一些额外的内存空间来计数,原理简单,效率也很高,但是在Java领域,至少主流的Java虚拟机里面都没有选用引用计数法来进行内存管理,主要原因是,这个算法有很多例外要处理,比如对象之间相互循环引用解决起来就很麻烦。import org.junit.Test;publ

2021-04-07 17:53:46 11623 57

原创 LeetCode-55【跳跃游戏】

LeetCode-55题名:跳跃游戏描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长

2022-04-14 11:31:16 3878 2

转载 java面试全解

文章目录 面试前的工作自我介绍充足的知识储备 javaSEJMM内存模型jdk1.8新特性java语言的特征如何实现跨平台谈谈你对面向对象的认识理解聊聊面向对象的特征,封装,继承,多态访问权限对象创建过程? 从jvm的角度出发,延伸到对象在内存中的存储空间Java类初始化顺序java中创建对象的方式对象克隆,浅克隆,深克隆构造方法对象与引用静态static抽象类和接口Object判断两个对象是否相等String特征为什么不可变String类不可变性的好处? 为什么设计为不可变.String的值不...

2022-04-09 10:56:55 10248 2

原创 Kafka入门

Kafka是一个分布式系统,由通过高性能TCP网络协议进行通信的服务器和客户端组成。它可以部署在本地和云环境的裸机硬件、虚拟机和容器上。服务器:Kafka作为一个或多个服务器的集群运行,可以跨越多个数据中心或云区域。其中一些服务器形成存储层,称为代理。其他服务器运行Kafka Connect以将数据作为事件流持续导入和导出,以及将Kafka与现有的系统(例如关系数据库以及其他kafka集群)集成。为了实现关键任务用例,Kafka集群具有高度可扩展性和容错性:如果其中任何一个服务器出现故障,其他服务器将

2022-03-18 14:05:01 12260 2

原创 ElasticSearch(超详细解说)[springBoot整合ES并简单实现增删改查]

ElasticSearch简介ElasticSearch:智能搜索,分布式搜索引擎。是ELK的一个组成。是一个产品,而且是非常完善的产品,ELK代表的是:E就是ElasticSearch,L就是Logstach,K即使KibanaE:ElasticSearch 搜索和分析的功能;L:Logstach 搜索数据的功能,类似于flume(使用方法几乎跟flume一模一样)。是日志收集系统K:Kibana 数据可视化(分析),可以用图标的方式来去展示,文不如表,表不如图,是可视化平台。ElasticS

2022-03-16 16:11:55 15301 6

原创 springBoot常用注解【Mysql+ClickHouse】项目搭建

springBoot什么是SpringBoot?springBoot就是用来简化Spring应用的初始搭建以及开发过程,让开发者不需要经过繁琐的配置就可以进行开发,可以将尽力关注与、于业务逻辑的框架。从根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。springBoot并不是一个全新的框架,他不是spring解决方案的一个替代品,而是spring的一个封装。所以,以前可以用spring做的事,springBoot都可以做。springBoot是一个非常好的微服务开发

2022-02-22 14:34:05 13299 15

原创 深入理解ClickHouse(这一篇就够了)

clickhouse是一个用于联机的(OLAP)的列式数据库管理系统(DBMS)

2022-02-21 13:14:59 12335 8

原创 带你快速了解经典垃圾收集器,全是干货,一发入魂!!!

1.Serial收集器Serial收集器是最基础、历史最悠久的收集器,它是一个单线程工作的收集器,当它进行垃圾收集时,必须暂停其他工作线程,直到它收集结束。从Serial收集器到Parallel收集器再到Concurrent Mark Sweep(CMS)和Garbage First(G1)收集器,最终至现在的垃圾收集器的最前沿成果Shenandoah 和 ZGC等,它们越来越精细、优秀。但它们用户线程的停顿时间任然没有任何办法彻底消除。即使如此Serial收集器与其他单线程相比,任然有着优于其他收集器

2021-04-09 11:12:39 11520 16

原创 Java对象的创建、内存布局和访问定位

对象的创建当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析或初始化过。如果没有,那就先执行相应的类加载过程指针碰撞:为对象分配空间的任务实际上便等同于把一块确定大小的内存块从Java堆中划分出来。假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配的内存就仅仅是把指针向空闲方向挪动一段与对象大小相等的距离,这种分配方式

2021-04-06 17:37:42 10358 9

原创 Java内存区域

Java运行时数据区域java虚拟机在执行java程序的过程中会把他所管理的内存划分位若干个不同的数据区域。这些区域各自有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动结束而建立销毁 。程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器,在Java虚拟机的概念模型(“概念模型”它代表了所有虚拟机的统一外观,但各款具体的Java虚拟机并不一定要完全按照着这个概念模型的定义进行设计,可能会通过一些更高效率

2021-04-05 14:20:03 10107 7

原创 JAVA GUI

一、GUI(图形用户接口)用图形的方式来显示计算机操作界面,更方便直观java.awt(抽象窗口工具包),需要调用本地系统方法实现功能,属于重量级控件javax.swing在AWT的基础上,建立的一套图形界面系统,其中提高了更多的组件,完全由java实现,增强了移植性,属于轻量级控件Frame类方法都在下面的实例中进行演示事件监听机制a) 事件源:事件发生的地方  b) 事件:要发生的事件  c) 事件处理:针对发生的事情做出处理方案  d) 事件监听:将事件源和事件关联起来适配器设计

2021-01-22 10:35:43 201

原创 线程通信

线程通信线程通讯指的是多个线程通过消息传递实现相互牵制,相互调度,即线程间的相互作用。涉及三个方法:.wait一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。.notify一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。.notifyAll一旦执行此方法,就会唤醒所有被wait的线程。说明:.wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中。.wait(),notify(),notifyAl

2020-12-17 09:53:51 293

原创 java 线程同步

线程同步一.使用synchronized关键字由于每个java对象都有一个内置锁,用synchronized修饰方法或者代码块时,内置锁会保护整个方法或代码块,要想执行这个方法或者代码块必须获得其内置锁,运行时会加上内置锁,当运行结束时,内置锁会打开。由于同步是一种高开销的工作,所以尽量减少同步的内容,只需同步代码块就可以。(ps:synchronized是不能锁住不同对象的线程的,只能锁住同一个对象的线程,也就是说锁住的是方法所属的主体对象自身)1.修饰方法public class Sy_Thre

2020-12-17 09:38:24 4657

原创 java进程与线程

进程概念进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地

2020-12-17 09:37:00 429 3

原创 UDPJAVA

UDP协议UDP(User Datagram Protocol),用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,在数据传输过程

2020-12-17 09:34:54 9407

原创 java中的io流

概念java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。stram是从起源(source)到接收的(sink)的有序数据。IO流的分类按照不同的分类方式,可以把流分为不同的类型。常用的分类有三种:按照流的流向分,可以分为输入流和输出流。输入流: 只能从中读取数据,而不能向其写入数据。输出流:只能向其写入数

2020-12-17 09:28:03 187

原创 Java中的集合

集合java的集合主要分为List列表、Set集合、map(映射)。(1)List集合是一个有序的队列,每一个元素都有他的索引。第一个元素的索引值为0。​ List的实现类有LinkedList、ArrayList、Vector、Stack。List列表public class Dome3 implements Comparator<String> { public static void main(String[] args) { ArrayLis

2020-12-17 09:26:38 181

原创 Java中的SimpleDateFormat,Biginteger,BigDecimal

Java中的SimpleDateFormat 、BigInteger 、BigDecimal1.SimpleDateFormatSimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstan

2020-11-21 12:50:36 1690

原创 Java中的Math类、Random类

Java中的Math类、Random类1.Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。Math 类来自java.long.Math.random()```javapublic class Math_dome1 { public static void main(String[] args) { System.out.println(Math.abs(-2.0)); //绝对值 System.out.printl

2020-11-21 12:47:27 4653

原创 Java 字符串

字符串String类:字符串是由多个字符组成的一串数据(字符序列)的字符串常量,值改变后会重新创建一个新的对象其结构为:public final class String extends Object implements Serializable, Comparable, CharSequence构造方法import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.util.

2020-11-07 17:26:03 10458

原创 Java数组

数组数组是最基本的构造类型,它是一组相同类型数据的有序集合。数组本身是引用类型,即对象里面可以存储基本类型,也可以存储引用类型一维数组数组的声明数据类型(定义数组中可以存储的数据类型)[ ] 变量名(引用)数据类型 变量名 [ ];数组的创建Java中的数组在创建时,必须要为其定义长度,长度定义后就不能修改,在内存空间中是一个连续的空间。数组中如果储存的是基本类型,存储的是具体的值;如果存储的是引用类(类类型),会存储对象的引用public class Array_Dome1 {//

2020-11-03 18:14:50 173 1

原创 面向对象的三大特征——封装、继承、多态

Java面向对象学习笔记(第七篇)包:概念:物理上是文件夹,管理类作用:1.避免类重名 2. 按照不同的功能管理类 3. 控制访问权限命名规范:在包名中,可以使用.号来区分包的级别;包名一般情况下是小写第一级 指该项目的类型,如com,org,gov等,第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等第三级 指项目的名称,如:bcms,oa,erp,cms等第四级 指项目模块的名称,如:bean,action,exception等(包可以更好的管理逻辑相

2020-10-25 13:22:40 10795

原创 面向对象——构造方法

Java 基础学习笔记(第六篇)面向对象(POP[procedure oriented programming])和面向过程(OOP[object oriented programming])的设计思想面向过程:分析出解决问题所需要的步骤,然后把步骤一步一步的实现例如:把大象装进冰箱的问题:分析出一共分为三布,第一步:打开冰箱门;第二布:把大象塞进冰箱里;第二步:关上冰箱门。面向过程:以分类的方式进行思考和解决问题,面向对象的思维方式适用于处理复杂的问题,先使用面向对象的方式对整体关系做出分类,

2020-10-24 13:50:15 1822

原创 控制台输入、循环语句

Java 基础学习笔记(第五篇)控制台输入(使用标准输入串System.in,使用Scanner取得一个字符串或一组数字)在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以 取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。例: System.out.print(“输入”);Scanner sc

2020-10-18 12:05:07 10214 2

原创 Java基础代码入门练习题(你也来试试?)

Java 基础代码练习题1.一直青蛙在一口11米深的井底向上爬,白天向上爬3米,晚上向下滑2米,总共需要几天可以爬出.package com.Work;public class Frog_Dome { public static void main(String[] args) { int height = 11; int i=1; outer: while(height>=0){ height-=3;

2020-10-17 14:06:12 10471 4

原创 运算符

Java基础学习(第四篇)基本数据类型转换8种基本数据类型除了Boolean,其余其中之间都可以互相转换。默认转换:容量小的可以自动转换为容量大的,容量大的可以包含容量小的,参与混合运算时,小容量会自动转换为大容量。强制类型转换:容量大是的转换为容量小的。强制转换可能会出来两种问题:1,溢出 2,精度降低。public class data_type { public static void main(String[] args) { /** * 默认转换

2020-10-11 17:14:03 168 2

原创 Java基础数据类型

Java学习笔记(第三篇)Java变量定义:变量是程序中最基本的存储单元,程序执行中数值可变的. 本质上,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用.变量是通过使用变量名来访问这块区域的其要素包括变量名,变量类型。Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:[修饰符] type varName [=value][,varName[=value]……]pub

2020-10-10 17:33:33 226

原创 Java基础学习笔记

Java 基础学习笔记(第二篇)IDE(集成开发环境):是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具常用的Java开发工具有:Intellij IDEA (是由捷克的一家公司创建的 收费)Eclipse注释Java语言有三种注释方式:“//”用于单行注释,快捷键“ctrl+/”/用于多行注释,快捷键ctrl+shift+///***文档注释,多用于类方法、属性功能进行说明调用时可提示其功能介绍/关键字定义:被Java语言赋予了特殊含义,专门

2020-10-10 17:00:47 172

原创 Java基础学习笔记

Java基础学习笔记(第一篇)Java语言的特点:开源: 开源不是开放编译器的源代码,而是写了一个软件, 然后把这个软件的源代码发布到网上, 让大家都可以学习,改进,就是开源。要符合一定的规范,比如GPL 等。简单、高效面向对象:java是一种面向对象的语言。也就是说,这种程序设计,把现实中的所有的问题都当做一个个对象来解决,每个对象都有其独立的属性和方法,每个对象之间具有一定的联系,在面向对象设计编程中,不需要考虑对象的实现细节,每个对象都有自己的任务和功能。比如说汽车是一个对象,飞机也是一

2020-10-10 13:46:29 848 1

数据地图关键字检索设计文档.md

数据地图关键字检索设计文档.md

2022-07-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除