- 博客(411)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
原创 一文学会使用Java数组
在Java中,数组是一种基本的数据结构,用来存储固定大小的同类型元素序。固定大小,数组是一个容器,这个容器在使用时大小就已经确定了,之后就不能再改变了同类型元素,容器只能存放同一种类型的元素,在定义数组时要制定元素类型。
2024-05-23 12:14:09 475
原创 深入理解浮点数:阶码为什么要加上偏移量等4个问题
其实非常简单,“单精度”(Single Precision)占用了32个字节,“双精度”(Double Precision)占用64个字节,后者是前者的2倍,是单、双的关系。总之,尽管浮点数的精度损失是一个现实问题,但其广泛的应用范围、动态的精度调整能力以及硬件层面的支持,使其成为处理实数运算不可或缺的工具。与浮点数相比,定点数的小数点位置是固定的,这意味着其表示的数值范围相对有限,但每个数值的精度是确定的。浮点数能够表示从极小的数(接近0)到极大的数(接近无穷大),这是任何固定大小的定点数都无法比拟的。
2024-05-23 09:16:59 623
原创 为什么0.2 + 0.1 ≠ 0.3:一文彻底搞懂浮点数float和double
顾名思义,浮点数就是小数点可以浮动的数,是计算机表示数据的方式。要了解浮点数,先回忆下科学计数法,数字3140,可以有如下多种表示方法:同一个数,有不同的表示方法,区别在于小数点的位置不一样,整数和小数部分是可变的,指数也随之改变,非常灵活。浮点数就是用二进制格式的科学计数法表示的数字。以小数112.5为例,用科学计数法可以表示为:计算机是如何表示这个数字的呢?
2024-05-22 16:47:22 696
原创 深入理解循环控制语句 - while
while循环作为一种基本的循环控制结构,在Java编程中扮演着重要角色。它提供了灵活的循环机制,尤其适用于循环次数不确定或条件复杂的场景。通过与for循环的对比,我们可以看到两者各有优势,适用场景不同。掌握while循环及其与for循环的区别,能让我们在面对不同问题时,更加游刃有余地选择最合适的循环结构,编写出既高效又易于维护的代码。
2024-05-22 10:34:32 244
原创 深入理解循环控制语句 - for
for循环在Java中用于控制代码块重复执行固定次数。①初始化语句,循环开始前执行一次,通常用于设置循环计数器的初始值②条件判断语句,循环开始后,每次循环前执行,如果结果为true,则执行循环体;否则,循环结束。③条件控制语句,循环开始后,每次循环后执行,通常用于改变循环计数器的值④循环体语句,循环开始后,每次循环执行for (初始化语句;条件判断;条件控制语句) {// 循环体,需要重复执行的代码for。
2024-05-21 11:11:49 933
原创 深入理解条件控制语句 :switch
switch语句是一种多分支选择结构,它根据表达式的值来决定执行哪个代码块。相比于一系列嵌套的if-elseswitch在处理等值判断时更为清晰和高效。
2024-05-20 13:29:39 504
原创 深入理解条件控制语句 :if-else
if-else语句是一种二分支选择结构,用于根据条件的真假来决定执行哪一段代码。if (条件) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块。
2024-05-20 11:29:51 865
原创 详解byte的范围:一个神奇的圈搞定-128是怎么来的
有这样一个思考题:byte是有符号整数,所以最高位是符号位,有效数字位只有7位,用二进制原码表示其范围为:11111111 ~ 01111111,换算成二进制是-127 ~ 127。但是,这个答案,对吗?显然是不对的,众所周知,byte表示的范围是-128~127。但是,-128是从哪里来的呢?这和计算机存储数字的方式有关,计算机并不是直接存储数字的二进制原码,而是以反码的形式进行存储。本文以byte类型为例,通过详细分析其范围,深入理解反码。
2024-05-19 20:31:21 998
原创 掰碎嚼烂彻底掌握:搞定原码、反码、补码
原码,简单来说,就是直接将一个数转换成二进制形式表示,包括符号位。在计算机中,通常用最高位作为符号位,0表示正数,1表示负数。比如,+5的8位原码是00000101,而-5的8位原码则是10000101。思考题:基本数据类型中,byte类型占用一个字节,那么其表示的数据范围是多少?,换算成二进制是-127 ~ 127。但是,这个答案,对吗?反码主要用于的计算机系统中处理负数对于正数,其反码与原码相同对于负数,除了符号位保持不变外,其余各位都要按位取反(0变1,1变0)。
2024-05-19 14:32:18 820
原创 纪实生产环境事故1:Integer等号使用错误导致肝到半夜12点
在一个忙碌的项目周期末尾,我们的团队正紧锣密鼓地准备着新功能上线。系统的核心模块之一是一个复杂的库存管理系统,负责处理数百万级别的商品库存更新。在代码审查和多次测试后,我们自信满满地部署了新版本。然而,就在上线后的几个小时内,系统开始出现异常——部分商品的库存数量莫名奇妙地出现了错误,有的甚至被清零。
2024-05-17 21:37:46 644
原创 Java数据类型:引用类型
引用类型,顾名思义,是用于存储对象引用(或称为句柄)的数据类型。引用类型不是类或者对象,只是变量的一种类型。当我们声明一个引用类型的变量时,该变量并不直接存储对象本身(如下图的变量obj1),而是存储了指向对象在内存中位置的一个地址(如下图的堆地址1这意味着,通过引用类型的变量,能够间接地操作对象。通过引用类型的变量对Java对象进行操作,赋予Java对象以生命力。通过本文的解析与示例,希望读者能更加深入地掌握引用类型,灵活运用这一强大工具,构建更加高效、健壮的Java应用程序。
2024-05-16 10:19:08 762
原创 Char类型、转义及字符集:Java中的字符串奥秘
在Java中,char是一种基本数据类型,用于存储单个字符。每个char类型变量占用2字节(即16位)的内存空间。通过本文的探讨,本文介绍了Java中char类型的特性及其与Unicode的关系,还学习了如何利用转义序列在字符串中嵌入特殊字符以及字符集和字符编码的知识。实际上,在开发过程中,因为字符集不同而导致乱码的情况并不鲜见。所以,有必要掌握这部分知识。
2024-05-15 12:19:54 732
原创 技艺高超的魔法师:Java运算符
Java运算符是构建复杂程序的基础,掌握它们的使用和优先级对于写出高效、清晰的代码至关重要。通过本文的介绍和实例,希望能帮助读者更好地理解和运用这些运算符,让代码表达更加精准和高效。记住,实践是学习的最好方式,不断编写代码并探索不同的场景,你会越来越熟练地掌握它们。
2024-05-14 14:42:57 792
原创 Java入门最小必要知识:变量及其本质
在Java中,变量是程序中存储数据的最基本单元,❶它有一个特定的数据类型(如int、double等),❷并被赋予一个标识符(即变量名),用于在程序的不同部分引用该存储位置的数据。可以将其想象成一个容器,用来存放各种类型的信息,这些信息在程序执行过程中可能会发生变化。
2024-05-13 09:09:01 494
原创 如何快速变得专业:掌握类的基本概念-类/方法/关键字/变量/数据类型/注释
通过上述“猫”类的示例,我们不仅复习了Java的基本概念,还见识了如何将这些概念应用于实际编程中。掌握类与对象、方法的定义与调用、关键字的意义、变量的使用、数据类型的区分以及合理运用注释,是成为Java专业开发者不可或缺的基石。实践是学习的最佳途径,建议读者动手尝试编写并运行代码,不断探索Java的奥秘,逐步提升自己的编程技能。随着经验的积累和技术的深化,你将能够更自信地面对复杂的项目和挑战,真正步入专业开发者的行列。
2024-05-12 22:09:54 694
原创 Idea入门:一分钟创建一个Java工程
1,启动Idea后,选择 [New Project]2,完善工程信息3,点击 Create创建工程。
2024-05-11 16:55:20 551 1
原创 Java开发工具Idea的下载与激活
5,下拉找到[Version 2023.2],Windows下载exe文件,本文以Windows为例。2,进入官网之后点击[Support],点击浮窗左侧[Download and Install]6,下载完成之后点击安装,建议安装在D盘,安装过程非常简单,一直点击[Next],直到完成。4,进入下载界面,点击右下角的[Other versions]3,跳入如下新界面,点击Download进入下载界面。建议从官网下载,安全、可靠。
2024-05-11 10:10:05 238 2
原创 傻傻分不清楚:JDK/JRE/JVM的区别和联系
在Java开发的世界里,JDK、JRE和JVM是三个经常听到的术语。对于初学者来说,它们的概念和区别可能会让人感到困惑。这篇文章详细解释下三个组件的含义、它们之间的区别和联系。
2024-05-10 16:01:57 704
原创 一定行:从零起步进入Java世界
英文名:James Gosling中文名:詹姆斯·高斯林祖籍:加拿大出生年:1955照片:从照片可以看出,程序员掉头发是有传统的。说他是Java之父,并非是说Java完全是他一个人创造出来的。真实情况是:他是主力之一,机缘巧合之下,他名声最大。Java这门风靡世界、长盛不衰的语言背后,还有很多默默无闻但贡献巨大的专家。
2024-05-10 11:12:20 652
原创 Java:就业市场上的常青树-永远的宠儿
除了兴趣,我们学习编程最主要的目标是找一份好工作,选择合适的编程语言就非常重要了,毕竟选择大于努力,男怕选错行,学编程最怕选错语言。比如,如果你选Perl,那就糟糕了,基本上可以断定:你失败了。如果选Java呢?
2024-05-09 10:46:52 810
原创 MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法
rewriteBatchedStatements
2023-02-09 15:06:37 350 1
原创 docker-/var/lib/docker数据迁移
docker默认目录是/var/lib/docker,位于系统盘上,占用空间比较大,计划迁移到新挂在的盘上。第一步,在新盘上创建文件夹mkdir -p /data/docker/lib第二步,复制文件到新目录rsync -avz /var/lib/docker /data/docker/lib/注意,复制时连带父目录docker一起复制过来,所以复制后docker的镜像存储在 /data/docker/lib/docker/下第三步,设置docker镜像的挂在目录修改docker.ser
2022-05-28 06:32:28 1513 1
原创 docker报错:ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to
修改了/etc/docker/daemon.json之后,启动容器报错:Creating network "datahub_network" with the default driverERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network...............Creating network "datahub_netw
2022-05-26 17:58:22 1686 1
原创 安装Apache Atlas遇到的错误
安装apache atlas,启动atlas server报错,查看logs/atlas.20220524-115239.out文件:Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'graphTransactionInterceptor' defined in URL [jar:file:/usr/local/service/atlas/s
2022-05-24 15:01:42 940 1
原创 坚持的力量:mysql学习第19天-为什么用了索引字段却不走索引
有三种情况,即使你用了索引字段,mysql在执行sql的时候也不会走sql。一,索引字段用函数比如,create_time上使用了索引,但如下sql却不会走索引:select * from t where month(t) = 7原因是month(t)破坏了索引字段在索引树上的有序性,索引之所以快,就是因为索引在各层上是有序的。二,隐式字段类型转换如果索引字段my_id是varchar类型,如下sql不走索引:select * from t where t.my_id = 1因为在mys
2022-05-12 10:10:43 1106
原创 elasticsearch-datastream总结
一,什么是datastreamdatastream是为了更方便的管理时序数据的生命周期而基于ilm扩展的特殊功能。二,datastream的特点1,文档必须有@timestamp字段2,定义ilm时无需定义iml别名3,可以对datastream进行插入和查询文档,但不能删除和更新文档4,datastream像别名一样管理多个真实索引,索引的名称规则:.ds-datastream名称-yyyy.MM.dd-六位序列号如下(假设datastream名称是test-data-stream)
2022-05-12 07:03:44 703
原创 ElasticSearch开启xpack后登录失败
用浏览器通过9200端口连接elasticsearch,一直失败:我还一直以为是证书的问题,也忽略了后台的报错信息的真实意义。放了一天再来看,才发现是密码问题。联想到早上删除了data目录,连密码也删掉了。于是重新设置密码。elasticsearch-setup-passwords auto...
2022-04-28 19:36:03 1572
原创 elasticsearch-ingest-pipeline总结
一,ingest节点的作用ingest节点在稳定写入前对文档进行指定的预处理,类似大数据的ETL二,ingest的使用默认集群每个节点都具有ingest的作用,通常建议配置具有单一职责的ingest节点。确定ingest节点后,要定义pipeline,pipeline中指定具体的逻辑。三,ingest的使用总结1,定义pipelinePUT _ingest/pipeline/indexed_at{ "processors": [ { "script": {
2022-04-24 07:36:50 1860
原创 elasticsearch启动报错:master not discovered yet
通过命令启动: bin/elasticsearch -E node.name=hotnode -E cluster.name=geektime -E path.data=hot_data -E node.attr.my_node_type=hot报如下错误,master not discovered yet,错误信息提到了node1,我想启动的节点名称是hotnode,不叫node1,为什么会出现node1呢?查看配置文件,原来配置文件配置了master的初始化节点是node1:把这个注释
2022-04-12 08:12:41 4326
转载 elastisearch启动报错:org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAIL
使用命令启动一个ES进程:bin/elasticsearch -E node.name=warmnode -E cluster.name=geektime -E path.data=warm_data -E node.attr.my_node_type=warm报错:[2022-04-12T07:40:22,156][WARN ][r.suppressed ] [warmnode] path: /.reporting-*/_search, params: {index=.
2022-04-12 07:48:08 1401
原创 elasticsearch配置xpack集群间加密认证时报错:
通过证书配置集群间节点通信认证:bin/elasticsearch -E node.name=node1 -E cluster.name=geektime -E path.data=node1_data -E http.port=9200 -E xpack.security.enabled=true -E xpack.security.transport.ssl.enabled=true -E xpack.security.transport.ssl.verification_mode=certifica
2022-04-11 08:16:52 3352
原创 Elasticsearch:系统已经配置环境变量的情况下使用Elasticsearch自带的jdk启动
修改elasticsearch bin目录下的elasticsearch-envvim elasticsearch-env注意下面代码:如果变量ES_JAVA_HOME不为空,则会使用ES_JAVA_HOME这个变量,这个变量默认是没有配置,可以按照图上所示配置ES_JAVA_HOME这个变量,这个变量执行es安装包自带的jdk目录:...
2022-04-06 21:55:31 3018 5
原创 linux下source之后环境变量重复
在linux中修改了jdk的环境变量,使用java -version验证,没有生效,使用echo $PATH打印环境变量,发现环境变量重复,老的jdk的环境变量并没有删除,新旧jdk环境变量都存在,旧的在后面覆盖了新的环境变量。这是为什么呢?在配置文件中已经注释掉了老的环境变量啊。原因类似于缓存,PATH的值在当前窗口下保存在内存中,但配置文件中使用PATH拼接新的配置时,PATH中保存的老的环境变量没有被覆盖,而是直接拼接上新的配置。解决办法:打开新的窗口,执行source命令。...
2022-04-06 08:24:53 2146
原创 Spark优化,多线程提交任务,提升效率
val listBuffer = new ListBuffer[Future[String]] val service: ExecutorService = Executors.newFixedThreadPool(4) for (i <- 0 to 3) { val task: Future[String] = service.submit(new Callable[String] { override def call(): String = {
2022-03-30 12:01:04 4027
原创 Hive3.1.2整合Spark3.0.0-HiveOnSpark
一,整合原理1,HiveOnSparkHive是一个Sql解析引擎,其不具备计算能力,Hive将Sql解析成为物理执行计划,将物理执行计划交由计算引擎执行计算,默认的执行引擎是MapReduce,但MapReduce执行速度慢,随着Spark的崛起,Hive也支持使用Spark作为计算引擎,这就是HiveOnSpark2,SparkOnHive比较容易混淆,二者差距还是很大的,SparkOnHive只是使用了Hive的元数据服务,Sql解析由Spark完成、计算也由Spark完成。二,整合步骤
2022-03-26 09:29:17 6358 7
原创 flume-使用KafkaChannel读取不到数据
使用TAILDIR监听日志写入KafkaChannel。配置如下:a1.sources = r1a1.channels = c1#描述sourcea1.sources.r1.type = TAILDIRa1.sources.r1.filegroups = f1a1.sources.r1.filegroups.f1 = /opt/module/applog/log22/app.*a1.sources.r1.positionFile = /opt/module/flume/taildir_po
2022-03-25 07:04:07 2950 1
2.Hadoop-lzo.7z lzo源码+包
2021-11-21
squirrelsqlclientxz.7z
2021-06-01
hadoop2.7.5-Windows版.zip
2021-04-15
java多线程设计模式
2016-01-23
空间数据分析与R实践
2016-01-05
android界面卡死,光标还在闪烁,没有ANR,百分百必现,求大神解救?
2020-04-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人