首页
学习
活动
专区
工具
TVP
发布

Java 学习

专栏作者
221
文章
261517
阅读量
27
订阅数
【进击面试_04】Java 虚拟机
JVM 是 Java 虚拟机 Java Virtual Machine 的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入 Java 语言虚拟机后,Java 语言在不同平台上运行时不需要重新编译。Java 语言使用 Java 虚拟机屏蔽了与具体平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Demo_Null
2021-03-15
3210
【进击面试_03】Java 并发
☞ JMM 是什么   JMM(Java 内存模型:Java Memory Model,简称 JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,定义了程序中各个共享变量的访问规则,即在虚拟机中将变量存储到内存和从内存读取变量这样的底层细节。   根据 JMM 的设计,系统存在一个主内存(Main Memory),Java 中所有实例变量都储存在主存中,对于所有线程都是共享的。每个线程都有自己的工作内存(Working Memory)是私有数据区域。线程对变量的操作(读取赋值等)必须在工作内存中进行,首先要将变量从主内存拷贝的自己的工作内存空间,然后对变量进行操作,操作完成后再将变量写回主内存,不能直接操作主内存中的变量,各个线程中的工作内存中存储着主内存中的变量副本拷贝。不同的线程间无法访问对方的工作内存,线程间的通信必须通过主内存来完成。
Demo_Null
2021-03-04
2690
【进击面试_02】Java 多线程
进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
Demo_Null
2021-03-04
3210
【进击面试_01】Java 集合
  ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足需要扩容时,就要将旧的数组复制到新的数组中。当从 ArrayList 的中间位置插入或者删除元素时,对数组进行复制、移动需要的代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。
Demo_Null
2021-03-02
3560
【全文检索_11】Logstash 基本使用
  Logstash 是由 JRuby 编写的,使用基于消息的简单架构,在 JVM 上运行(本篇博客主要介绍 Logstash 基本使用,介绍请见 ☞【全文检索_09】Logstash 基本介绍)。Logstash 的事件处理流水线有三个主要角色完成:inputs → filters → outputs。必须定义这些过程的配置才能使用 Logstash,尽管不是每一个都必须的。在过滤器的部分,它可以对数据源的数据进行分析,丰富,处理等等,但是我们可以不使用过滤器。在输出的部分,我们可以有多于一个以上的输出。
Demo_Null
2021-03-02
7150
【全文检索_10】Filebeat 基本使用
  Filebeat 是 Beats 的一员,用于转发和集中日志数据的轻量级传送工具。当面对成百上千、甚至成千上万的服务器、虚拟机和容器生成的日志时,Filebeat 将为您提供一种轻量型方法,监视指定的日志文件或位置,收集日志事件,并将它们转发到 Elasticsearch、 Logstash 等。
Demo_Null
2021-03-02
1.3K0
【全文检索_09】Logstash 基本介绍
  ELK 是 Logstash(收集)、Elasticsearch(存储 + 搜索)、Kibana(展示),这三者的简称,以前称为 ELK Stack,现在称为 Elastic Stack,后来还加入了 Beats 来优化 Logstash。我们之前介绍了 Elasticsearch 和 Kibana 的简单使用,现在重点介绍一下 Logstash。   Logstash 是一个开源数据收集引擎,具有实时管道功能。Logstash 可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。Logstash 使用 JRuby 开发,Ruby 语法兼容良好,非常简洁强大,经常与 ElasticSearch,Kibana 配置,组成著名的 ELK 技术栈,非常适合用来做日志数据的分析。当然 Logstash 也可以单独出现,作为日志收集软件,可以收集日志到多种存储系统或临时中转系统,如 MySQL,redis,kakfa,HDFS, lucene,solr 等,并不一定是 ElasticSearch。
Demo_Null
2021-03-02
5140
【全文检索_08】Spring Data Elasticsearch
  Spring Data Elasticsearch 是 Spring Data 项目的一部分,该项目旨在为新数据存储提供熟悉且一致的基于 Spring 的编程模型,同时保留特定于存储的功能。Spring Data Elasticsearch 项目提供了与 Elasticsearch 搜索引擎的集成。 Spring Data Elasticsearch 的关键功能区域是一个以 POJO 为中心的模型,该模型用于与 Elastichsearch 文档进行交互并轻松编写存储库样式的数据访问层。   从 Elasticsearch 7 开始不推荐使用 TransportClient,并将在 Elasticsearch 8 中将其删除。Spring Data Elasticsearch 也支持 TransportClient,前提是使用的 Elasticsearch 中可用,Spring Data Elasticsearch 从 4.0 版本开始已弃用使用 TransportClient 的类。现在 High Level REST Client 是 Elasticsearch 的默认客户端,它在接受并返回完全相同的请求/响应对象时直接替代 TransportClient。
Demo_Null
2021-03-02
2.1K0
【全文检索_07】JestClient 操作 Elasticsearch
  Elasticsearch Java API 有四类 client 连接方式:TransportClient、 RestClient 、Jest、 Spring Data Elasticsearch。其中 TransportClient、RestClient 是 Elasticsearch 原生的 api,TransportClient 会在 8.0 版本中删除,替代的是 HighLevelRestClient,它使用 HTTP 请求而不是 Java 序列化请求。Spring Data Elasticsearch 是 Spring 集成的 Elasticsearch 开发包。本章介绍如何使用 JestClient 操作 Elasticsearch。
Demo_Null
2021-02-04
2.1K0
【全文检索_05】Elasticsearch 基本使用 ㈠
  如上图所示,我们就创建一个名为 my_index 的索引并在其下创建了 id 为 001 的文档,在创建索引时我们并没有指定 Mapping,所以在添加数据时会自动帮我们匹配数据类型。可以使用 GET my_index/_mapping 查看索引的 Mapping。
Demo_Null
2021-02-02
5340
【全文检索_06】Elasticsearch 基本使用 ㈡
在 MySQL 中查询所有数据使用 SELECT * FROM table,在 Elasticsearch 中我们使用 GET 索引/_search 来查询所有数据。响应内容不仅会告诉我们哪些文档被匹配到,而且这些文档完整的内容也包含在其中。
Demo_Null
2021-02-02
3280
【全文检索_04】Elasticsearch 基础入门
  Elaticsearch 简称为 es,es 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB(1PB=1024TB) 级别的数据。es 也使用 java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。
Demo_Null
2021-02-01
4230
【全文检索_03】Lucene 基本使用
  在上一文 【全文检索_02】Lucene 入门案例 中我们使用 Lucene 默认分词器对中文版双城记进行分词,这个操作其实是有问题的。哎?!我们明明分词成功而且搜索到了啊,怎么会有问题。我们之前成功搜索是因为我们搜索的是一个关键字,而不是一个关键词。我们先来看一下默认分词器的分词效果是怎么样的。
Demo_Null
2021-02-01
4490
【全文检索_02】Lucene 入门案例
  Lucene 是 apache 软体基金会发布的一个开放原始码的全文检索引擎工具包,由资深全文检索专家 Doug Cutting 所撰写,它是一个全文检索引擎的架构,提供了完整的建立索引和查询索引,以及部分文字分析的引擎,Lucene 的目的是为软体开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene 在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上建立的,思想是相通的。 Lucene 是根据关健字来搜寻的文字搜寻工具,只能在某个网站内部搜寻文字内容,不能跨网站搜寻。
Demo_Null
2021-01-27
3600
【全文检索_01】核心理论
  全文检索是 20世纪末产生的一种新的信息检索技术。经过几十年的发展,特别是以计算机技术为代表的新一代信息技术应用,使全文检索从最初的字符串匹配和简单的布尔逻辑检索技术演进到能对超大文本、语音、图像、活动影像等 非结构化数据 进行综合管理的复合技术。由于内涵和外延的深刻变化,全文检索系统已成为新一代管理系统的代名词,衡量全文检索系统的基本指标和全文检索的内涵也发生巨大变化。
Demo_Null
2021-01-26
7020
设计模式 ☞ 行为型之责任链模式
责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。责任链模式也叫职责链模式。
Demo_Null
2021-01-20
4160
设计模式 ☞ 行为型之策略模式
  策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。   在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。
Demo_Null
2021-01-18
3700
设计模式 ☞ 行为型之状态模式
  状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态就会发生改变,从而使其行为也发生改变。如人都有高兴和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。   状态模式的解决思想是:当控制一个对象状态转换的条件表达式过于复杂时,把相关“判断逻辑”提取出来,用各个不同的类进行表示,系统处于哪种情况,直接使用相应的状态类对象进行处理,这样能把原来复杂的逻辑判断简单化,消除了 if-else、switch-case 等冗余语句,代码更有层次性,并且具备良好的扩展力。
Demo_Null
2021-01-18
3220
设计模式 ☞ 行为型之解释器模式
  解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用“编译原理”中的解释器模式来实现了。
Demo_Null
2021-01-18
2270
设计模式 ☞ 行为型之备忘录模式
  备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。每个人都有犯错误的时候,都希望有种“后悔药”能弥补自己的过失,让自己重新开始,但现实是残酷的并没有这种操作。但是在计算机中很多应用软件都提供了这项功能,如 Word、Photoshop、IDEA 等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态;这就是备忘录模式,备忘录模式能记录一个对象的内部状态,当用户后悔时能撤销当前操作,使数据恢复到它原先的状态。
Demo_Null
2021-01-18
3520
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档