- 为了深入学习elasticsearch,研究其源码是种有效途径,本文简述了从下载到编译构建再运行起来的全部过程 为了深入学习elasticsearch,研究其源码是种有效途径,本文简述了从下载到编译构建再运行起来的全部过程
- 线程安全问题概述 卖票问题分析单窗口卖票一个窗口(单线程)卖100张票没有问题单线程程序是不会出现线程安全问题的多个窗口卖不同的票3个窗口一起卖票,卖的票不同,也不会出现问题多线程程序,没有访问共享数据,不会产生问题多个窗口卖相同的票3个窗口卖的票是一样的,就会出现安全问题多线程访问了共享的数据,会产生线程安全问题 线程安全问题代码实现模拟卖票案例创建3个线程,同时开启,对共享的票进行出售... 线程安全问题概述 卖票问题分析单窗口卖票一个窗口(单线程)卖100张票没有问题单线程程序是不会出现线程安全问题的多个窗口卖不同的票3个窗口一起卖票,卖的票不同,也不会出现问题多线程程序,没有访问共享数据,不会产生问题多个窗口卖相同的票3个窗口卖的票是一样的,就会出现安全问题多线程访问了共享的数据,会产生线程安全问题 线程安全问题代码实现模拟卖票案例创建3个线程,同时开启,对共享的票进行出售...
- 基于JVM的开源数据处理语言主要有Kotlin、Scala、SPL,下面对三者进行多方面的横向比较,从中找出开发效率最高的数据处理语言。本文的适用场景设定为项目开发中常见的数据处理和业务逻辑,以结构化数据为主,大数据和高性能不作为重点,也不涉及消息流、科学计算等特殊场景。 基本特征适应面Kotlin的设计初衷是开发效率更高的Java,可以适用于任何Java涉及的应用场景,除了常见的信息管理系... 基于JVM的开源数据处理语言主要有Kotlin、Scala、SPL,下面对三者进行多方面的横向比较,从中找出开发效率最高的数据处理语言。本文的适用场景设定为项目开发中常见的数据处理和业务逻辑,以结构化数据为主,大数据和高性能不作为重点,也不涉及消息流、科学计算等特殊场景。 基本特征适应面Kotlin的设计初衷是开发效率更高的Java,可以适用于任何Java涉及的应用场景,除了常见的信息管理系...
- 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙... 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙...
- 一、问题产生一般使用ArrayList时,都需要为ArrayList指定泛型,比如String或者一自己定义的对象,比如ArrayList<String> l = new ArrayList<>();有时候ArrayList里面会嵌套另一个ArrayList,比如ArrayList<ArrayList<String>> arrayLists这就引出一个问题,如果ArrayList<Arra... 一、问题产生一般使用ArrayList时,都需要为ArrayList指定泛型,比如String或者一自己定义的对象,比如ArrayList<String> l = new ArrayList<>();有时候ArrayList里面会嵌套另一个ArrayList,比如ArrayList<ArrayList<String>> arrayLists这就引出一个问题,如果ArrayList<Arra...
- 一、前言在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只说一下大概的用处,让大家有个概念性的认识。 二、校验阶段装载之后的阶段就是校验阶段了,该阶段的目的就是确保上一阶段读进来的二进制字节流中包含的信息符合虚拟机的规范,并且不会危害虚拟机自身。校验主要分为四个方向:文件格式校验、元数... 一、前言在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只说一下大概的用处,让大家有个概念性的认识。 二、校验阶段装载之后的阶段就是校验阶段了,该阶段的目的就是确保上一阶段读进来的二进制字节流中包含的信息符合虚拟机的规范,并且不会危害虚拟机自身。校验主要分为四个方向:文件格式校验、元数...
- 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗?首先我们来看一张图:图中除了最底下的那个加载器是我们没有讲到的,其余的都有说到过。其实底下那个就是我们自己实现的类加载器,用于自定义加载c... 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗?首先我们来看一张图:图中除了最底下的那个加载器是我们没有讲到的,其余的都有说到过。其实底下那个就是我们自己实现的类加载器,用于自定义加载c...
- 写在前面分享一些设计模式的笔记。陆续整理,按照设计模式类型,创建型,结构型,行为型发布博文会用通俗的话梳理一些自己的理解,结合开发中的实际场景,理解不足小伙伴帮忙指正,虚心接受 ^_^「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」在23种设计模式... 写在前面分享一些设计模式的笔记。陆续整理,按照设计模式类型,创建型,结构型,行为型发布博文会用通俗的话梳理一些自己的理解,结合开发中的实际场景,理解不足小伙伴帮忙指正,虚心接受 ^_^「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」在23种设计模式...
- 一、前言今天我们讲类加载机制5个阶段中的第一个阶段,加载,又叫装载。为了便于阅读,以下都叫做装载。装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类加载器,也可以使用用户自己定义的加载器,只需... 一、前言今天我们讲类加载机制5个阶段中的第一个阶段,加载,又叫装载。为了便于阅读,以下都叫做装载。装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类加载器,也可以使用用户自己定义的加载器,只需...
- 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文... 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文...
- String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBuffer 是为解决上面提到拼接产生... String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBuffer 是为解决上面提到拼接产生...
- jsp jsp
- Java 读写ClickHouse APIJava读取ClickHouse中的数据API 。一、首先需要加入maven依赖<!-- 连接ClickHouse需要驱动包--><dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2.... Java 读写ClickHouse APIJava读取ClickHouse中的数据API 。一、首先需要加入maven依赖<!-- 连接ClickHouse需要驱动包--><dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2....
- 1588. 所有奇数长度子数组的和:给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。 样例 1输入: arr = [1,4,2,5,3] 输出: 58 解释: 所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,... 1588. 所有奇数长度子数组的和:给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。 样例 1输入: arr = [1,4,2,5,3] 输出: 58 解释: 所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,...
- 本篇文章将介绍JavaSE基础语法,第一位选手是我们的照妖镜,说错了,是反射!第二位选手是我们的枚举大哥,最后一位压轴登场的是永远看不清内心的Lambda表达式,同时这也是博主JavaSE专栏的最后一篇文章,我们完结撒花了!但是其实并没有将Java的全部语法介绍完毕,主要差了注解和IO相关的语法,这些内容就不在JavaSE的专栏中更新了,我们放在JavaEE系列专栏中更新! 本篇文章将介绍JavaSE基础语法,第一位选手是我们的照妖镜,说错了,是反射!第二位选手是我们的枚举大哥,最后一位压轴登场的是永远看不清内心的Lambda表达式,同时这也是博主JavaSE专栏的最后一篇文章,我们完结撒花了!但是其实并没有将Java的全部语法介绍完毕,主要差了注解和IO相关的语法,这些内容就不在JavaSE的专栏中更新了,我们放在JavaEE系列专栏中更新!
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签