当前位置: 首页 > news >正文

硅基计划2.0 学习总结 壹 Java初阶


 

一、初见Java

(1)Java简介

首先不得不承认Java是一门优秀的程序设计语言

其系列的计算机软件和跨平台体系包括国内的生态链完善是C/C++语言难以弥补的

(2)Java SE

全称Java Standard Edition,是Java体系的基础

(3)Java EE

全称Java Platform Enterprise Edition,是Java体系的进阶

##它们的区别:SE可在JVM标准下运行,而EE需要特定的服务器

二、Java语言特点

简洁安全

去除了C++中指针、多重继承等复杂特性,自带垃圾回收,杜绝内存泄漏风险
纯面向对象

万物皆对象,通过接口实现灵活扩展,反射机制支持运行时动态解析
跨平台能力

基于字节码和JVM实现"一次编写,到处运行",严格规范数据类型保证移植一致性
健壮高效

异常处理机制+强类型验证,JIT编译器优化使性能接近C++水平
并发网络

原生支持多线程编程,完善网络库为分布式开发提供基础设施

三、Hello World

给出Java中的Hello World代码。你会发现为什么在Java中是这么大一坨,跟C/C++区别很大

public class Try {public static void main(String[] args) {System.out.println("hello world");}
}

如果你学过C++,就知道上面的Try是一个类名,下面的好像是一个“函数”,里面跟着打印结果

但是在Java中并不存在函数一说,在Java中

最外层的是类,中间层是方法(你可以理解为函数)里层是语句三个部分组成

我们画个图来解释下

 因此这段代码就可以理解为在一个名字叫Try的类中,通过main方法,执行了一条打印语句

四、文档注释

这个是来声明文档信息的,网上有很多对应教程,建议声明关键必要的信息

五、上手实操写代码


本次使用的IDE是Idea2025.1.1社区版


在ieda我们创建一个新项目,注意你的项目名是和代码的类名是一致的

我们正好来讲标识符的常用命名规则(驼峰命名法)

类名:大驼峰,一般类名由多个单次组成,则每个单次首字母都要大写,比如:

方法名,变量名:小驼峰,多个单词中从第二个单次开始的首字母都要大写,比如:

int simpleNum = 10;

Java中写代码与C语言不同,不需要一个个代码手搓

回车就可以完成各条语句的撰写,比如sout表示输出打印,main表示main方法等

而且我们发现,在Java中printlen可以打印任何类型字符,无论是整形还是字符

printlrn表示打印后换行,print直接打印不换行,而printf表规范打印(不常用)

public static void main(String[] args) {System.out.println("hello world");System.out.println("666");System.out.println("12.56");System.out.println("你好世界");System.out.print("simple");System.out.printf("%d",15);    }

六、Java中八种基本类型

有字节型(Byte),整型,短整型,长整型,单精浮点型,双精浮点型

字符型(Java中占两个字节,其存储字符范围也比C/C++中广很多)

布尔型(boolean,只有true和falsel,没有表示0和1)

七、变量(基本类型八大类)

在Java中变量如果没有初始化,会直接报错,而不是像C/C++为随机值

接下来我们每个基本类型挨个举例

(1)整型(int)——4字节

public static void main1(String[] args) {//这样可以把其他的main方法注释掉int a = 10;System.out.println(a);System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);}

我们要打印整型的最大值需要使用Integer方法中的MAX_VALUE和MIN_VALUE这两个功能

 (2)长整型(long)——8字节

 public static void main(String[] args) {//这里也是一样,可以通过这种方式注释掉long num1 = 10L;System.out.println(num1);System.out.println(Long.MAX_VALUE);//wow,打印长整型的最大值和最小值直接用首字符大写的Long呀System.out.println(Long.MIN_VALUE);}

推荐大写的L啦,小写的也可以,但是小写的经常被误认为数字1啦

同理我们打印最值,使用Long方法中的MAX_VALUE和MIN_VALUE这两个功能

(3)短整型(short)——2字节

 public static void main(String[] args) {short num2 = 32767;System.out.println(num2);System.out.println(Short.MAX_VALUE);//原来短整型也是这么个包装名System.out.println(Short.MIN_VALUE);}

 打印最值,使用Short方法中的MAX_VALUE和MIN_VALUE这两个功能

(4)字节类型)byte——1字节

 public static void main(String[] args) {byte num3 = 127;//哇塞,byte类型表示的范围真的很小呢System.out.println(num3);System.out.println(Byte.MAX_VALUE);//这个也是一样的包装名呢System.out.println(Byte.MIN_VALUE);}

 打印最值,使用Byte方法中的MAX_VALUE和MIN_VALUE这两个功能

为什么我们给四种变量?

这是为了合理运用空间,分配空间 

(5)双精度浮点型(double)——8字节

  public static void main(String[] args) {int simple1 = 1;int simple2 = 2;System.out.println(simple1 / simple2);//输出0double num4 = 1.0;//小数默认是double型double num5 = 2.0;//当然这里的两个num数据写1和2也可以,相除后仍是0.5System.out.println(num4 / num5);System.out.println(Double.MAX_VALUE);//可以看到是一个科学计数法System.out.println(Double.MIN_VALUE);}

为什么两个整型相除是0呢?这是因为执行整数除法的时候,舍弃小数部分

如果你想得到小数,可以使用double类型进行计算,算出的结果就是你想要的小数啦

打印最值,使用Double方法中的MAX_VALUE和MIN_VALUE这两个功能,数字比较大

(6) 单精度浮点型(float)——4字节

 public static void main(String[] args) {float num6 = 12.5f;float simple3 = 1.0f / 3.0f;double simple4 = 1.0 / 3.0;System.out.println(simple3);//结果是0.33333334System.out.println(simple4);//结果是0.3333333333333333System.out.println(Float.MAX_VALUE);System.out.println(Float.MIN_VALUE);}

对于float类型数据,我们结尾要加上f来强调

如果不写,默认是double类型,大空间类型存入小空间类型,有数据丢失风险

那么float和double都可以表示小数,那它们有什么区别呢

double类型更大,说明它精度更高,能够存储更精确小数

打印最值,使用Float方法中的MAX_VALUE和MIN_VALUE这两个功能

(7)字符型(char)——2字节

  public static void main(String[] args) {char ch = 'A';char ch2 = '早';char ch3 = 97;System.out.println(ch);System.out.println(ch2);//注意char类型的包装名是CharacterSystem.out.println(Character.MAX_VALUE);System.out.println(Character.MAX_VALUE);System.out.println(ch3);//打印的就是Unicode编码里的97对应的字符}

 Java中的char类型与C/C++不同,它是有两个字节大小,那就说明它可以存入更多字符,包括中文汉字哦,而且它没有符号位,说明都是正数

它采用Unicode编码,具体可以去这个网站看看→youyoy第三方网站对于Unicode编码汇总

它表示的范围比ASCII编码范围更大,而且它包含ASCII编码

打印最值,注意这里的方法名是Character中的MAX_VALUE和MIN_VALUE这两个功能

但是你会发现打印不出来,这是因为有些字符是不可打印字符

(8)布尔类型(boolean)——未明确大小

public static void main(String[] args) {boolean sign1 = true;boolean sign2 = false;//boolean simple5 = sign1+sign2;//这行代码直接报错System.out.println(sign1);System.out.println(sign2);}

注意在Java中不存在true表示1,false表示0的用法

打印输出也只是打印输出true和false,并且还不能进行加减

如果运行我注释那一行的代码,会直接报错的

一般布尔类型都是未明确大小的,但是在oracle虚拟机中默认定义为1字节


 


 

八、类型转换

分为自动类型转换(隐式)和强制类型转换(显示),分别是编译器自动和人为主动

(1)自动类型转换

  public static void main(String[] args) {int num7 = 5;long num8 = num7;//这里就把5从整型转换成长整型float f = 12.5f;double fPro = f;//这里就把12.5从float类型转换成double类型System.out.println(num8);System.out.println(fPro);}

针对的是小的类型转成大的类型,比如示例中的int转double,float转double

(2)强制类型转换

  public static void main(String[] args) {double num9 = 12.12345678;float num10 = (float) num9;System.out.println(num10);byte num11 = (byte) 128;System.out.println(num11);
}

针对的是大的类型转小的类型,比如示例中的double转float

但是会存在一个问题,由于float只能精确到小数点6位,当发生强制类型转换的时候,会产生数据丢失的风险

还有一个问题,如果你强制转换的数在转换后的类型中超出范围了会发生什么?

就比如我上面示例代码中的byte类型,结果我们看到是-128,为什么呢?

这里就涉及到了数据溢出的原理

你把它想象成一个钟表,当你超过范围了溢出的数据指向溢出的方向,进入溢出区域的范围

 九、整型提升

    public static void main(String[] args) {int num12 = 20;long num13 = 40;long ret = num12 + num13;System.out.println(ret);byte num14 = 10;byte num15 = 30;int ret2 = num14 + num15;System.out.println(ret2);//但是你想强行转换也可以,但可能产生数据丢失问题(数据超出类型范围的时候)byte ret3 = (byte) (num14 + num15);System.out.println(ret3);}

什么时候发生整型提升呢,当一个小的类型和一个大的类型进行加减运算时,由于小的类型数据范围比较小,不方便统一运算,因此就提升为数据类型较大的那一个,对应的就用数据较大的那个类型来接收

如果同类型相加,假如数据类型小于int类型,则相加的时候先提升为int类型再进行计算

因为在进行加减运算时,CPU运算逻辑要求这样

十、字符串类型

public static void main(String[] args) {String str1 = "hello world ";System.out.println(str1);String str2 = "hello everyone";String ret4 = str1 + str2;System.out.println(ret4);//hello world hello everyoneint num16 = 10;int num17 = 40;System.out.println(str2 + num16 + num17);//hello everyone1040System.out.println(num16 + num17 + str2);//50hello everyoneSystem.out.println(str2 + (num16 + num17));//hello everyone50}

 大部分跟C/C++逻辑类型,但是有一点比较特殊

在Java中,字符串之间使用加号,表示拼接的意思

但是有个细节需要我们注意,+确实是在字符串中表示拼接作用

但是如果你+号两侧中字符串类型的位置不一样,会导致结果不同

为什么两者的情况不同呢?

原来是字符串变量在前面,执行拼接指令,在后面则等前面的变量值执行完了,再执行后面

但如果你就是向字符串在前的时候拼接上比如变量相加的结果呢?很简单,加个括号就可以了

 ##与其他类型的转换

 public static void main(String[] args) {int num18 = 10;String str3 = num18 + "";System.out.println(str3);System.out.println(String.valueOf(num18));//这样也可以强制转换//String转intString strOther = "hello world";int otherInt = Integer.parseInt(strOther);}

int转string,我们可以给字符的结果加上“”或者是使用Srring方法中的valueof功能

反之string转int,目前我认知的只能使用Integer方法中的parseInt功能

而且这种转换编译器也会报出警告

十一、运算符简略介绍

(1)Java特殊介绍

例子一:

public static void main(String[] args) {int num19 = 50;int num20 = 0;//System.out.println(num19/num20);System.out.println(11.0 % 2.0);//结果是1.0}

 上面的num19/num20这段代码会报错

因为num20是一个0的值,计算异常,也就是0不能作为除数

Java中有一种特殊求余的方式,小数点求余,这是在C/C++中所没有的

例子二:

在C语言中,这段代码:3<num22<5的最终结果是true为真,但是在Java中无法通过编译

这是因为第3<5判断后,返回的类型是true

而true和5不是同一个类型,无法比较,Java中对类型的检查非常严格

(2)增量运算符问题

 public static void main(String[] args) {int num21 = 10;num21 += 1.5;System.out.println(num21);//为何打印的结果是11呢?}

 因为你num21是一个整型类型,你加上一个1.5相当于是double类型,10会发生整型提升

计算后的结果本应该是11.5,但是你的num21是int类型

会进行强制转化,舍弃小数部分,不会四舍五入,因此上述计算式子等同于

num21 = (int) (num21 + 1.5);System.out.println(num21);//这里的打印结果就是12了

(3) 短路求值

public static void main(String[] args) {int num22 = 4;int num23 = 2;boolean ret5 = num22 > num23 && 1 > 2;System.out.println(ret5);//打印结果是false,因为两边同时为真整个式子才为真boolean ret6 = num22 > num23 || 1 > 2;System.out.println(ret6);//打印结果为true,只要两边有一边为真整个式子就是真//针对程序抛出异常,我们使用短路来确保安全boolean retError3 = num22 > num23 || (1 / erroSimple) > 2;System.out.println(retError3);//输出为true,右边式子不会计算,不会执行右边的抛出异常

但是在Java中,如果是按位与和按位或,则不会短路,会产生程序抛出异常

为了避免这种情况,我们善于利用短路来确保我们代码安全

int erroSimple = 0;
boolean retError = num22>num23&(1/erroSimple)>2;//如果你不使用短路,会发生程序抛出异常//报错信息→→Exception in thread "main" java.lang.ArithmeticException: / by zero
boolean retError2 = num22>num23|(1/erroSimple)>2;//同理会发生程序抛出异常,Exception in thread "main" java.lang.ArithmeticException: / by zero
System.out.println(retError);
System.out.println(retError2);

十二、位运算符

位运算符之前在C语言中已经计算过了,这里不做过多介绍,这里举一个例子来看看

但是在Java中有一种特殊的右移,无符号右移,就是右移后甭管你是正数还是负数,一律添上0

public static void main(String[] args) {int num24 = 0xf;//这是十六进制数字,f代表15int ret7 = ~0xf;System.out.println(ret7);//诶,打印结果是-16,为什么呢?取反是按原码取反//同样移位操作符也讲过,这里我举一个特殊例子int num25 = -1;int ret8 = num25 >> 1;System.out.println(ret8);//结果还是-1//以下是Java独有的无符号右移int ret9 = num25 >>> 1;System.out.println(ret9);//结果是2147483647,一个非常大的数}

以下是利用deepseek进行解读为什么打印结果是-16,注意红框框里的字“绝对值” 

以下是利用deepseek进行解读为什么ret9是一个非常大的数

十三、条件操作符&&运算符优先级

 public static void main(String[] args) {int ret10 = 1 > 0 ? 2 : 4;//问号左边式子必须是布尔类型的判断System.out.println(ret10);}

 跟C语言有些类似,但是这个操作符的值必须是有其他值去接收结果值来接收

至于优先级,与其记那么多规则,

还不如直接添加括号,想让哪个部分先算就把哪个部分加括号即可


本文章所用代码:Git码云仓库链接


作者水平有限,文章难免有些疏漏错误,欢迎指正,我们友好交流


END

相关文章:

硅基计划2.0 学习总结 壹 Java初阶

一、初见Java &#xff08;1&#xff09;Java简介 首先不得不承认Java是一门优秀的程序设计语言 其系列的计算机软件和跨平台体系包括国内的生态链完善是C/C语言难以弥补的 &#xff08;2&#xff09;Java SE 全称Java Standard Edition&#xff0c;是Java体系的基础 &am…...

逆向破解:x64dbg

文章目录 一、CPU窗口1、反汇编窗口2、寄存器窗口3、栈地址窗口4、十六进制数据窗口5、堆栈参数解析窗口 二、常用快捷键三、字符串检索功能四、调试功能1、上一步 一、CPU窗口 1、反汇编窗口 2、寄存器窗口 寄存器窗口用于显示和解释当前线程环境下CPU寄存器的各种状态值和内…...

从MCU到SoC的开发思维转变

目录 1、硬件设计 2、软件开发 3、调试与测试 4、电源管理 微控制器单元&#xff08;MCU&#xff09;和系统级芯片&#xff08;SoC&#xff09;是嵌入式开发中最常见的两种处理器类型。MCU以其简单、低功耗的特点&#xff0c;广泛应用于特定控制任务&#xff1b;而SoC凭借强…...

3DGS-to-PC:3DGS模型一键丝滑转 点云 or Mesh 【Ubuntu 20.04】【2025最新版!!】

一、引言 3D高斯泼溅(3DGS)是一种新兴的三维场景表示方法&#xff0c;可以生成高质量的场景重建结果。然而&#xff0c;要查看这些重建场景&#xff0c;需要特殊的高斯渲染器。大多数3D处理软件并不兼容3D高斯分布模型&#xff0c;但它们通常都兼容点云文件。 3DGS-to-PC项目提…...

互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-3

互联网大厂Java求职面试&#xff1a;优惠券服务架构设计与AI增强实践-3 场景背景 面试场景设定在一家大型互联网公司&#xff0c;面试官为拥有10年以上经验的技术总监&#xff0c;专注于高并发、高可用系统的架构设计。候选人郑薪苦是一名技术潜力十足的程序员&#xff0c;擅…...

ABP-Book Store Application中文讲解 - 前期准备 - Part 3:Acme.BookStore项目模块详解

ABP-Book Store Application中文讲解-汇总-CSDN博客 本文通过对Acme.BookStore项目各模块的详解&#xff0c;让大家知道每个project用来干什么的&#xff0c;他们之间的引用关系是什么&#xff0c;同时知道怎样添加新的功能模块。 Acme.Bookstore 是主要 ABP Studio 模块的主…...

智慧城市综合运营管理系统Axure原型

这款Axure原型的设计理念紧紧围绕城市管理者的需求展开。它旨在打破传统城市管理中信息孤岛的局面&#xff0c;通过统一标准接入各类业务系统&#xff0c;实现城市运营管理信息资源的全面整合与共享。以城市管理者为中心&#xff0c;为其提供一个直观、便捷、高效的协同服务平台…...

Java中进阶并发编程

第一章、并发编程的挑战 并发和并行&#xff1a;指多线程或多进程 线程的本质&#xff1a;操作系统能够进行运算调度的最小单位&#xff0c;是进程&#xff08;Process&#xff09;中的实际工作单元 进程的本质&#xff1a;操作系统进行资源分配和调度的基本单位&#xff0c…...

cursor 出现问题 为客户解决问题

文档出自&#xff1a;https://www.kdocs.cn/l/cp5GpLHAWc0p...

【氮化镓】GaN在不同电子能量损失的SHI辐射下的损伤

该文的主要发现和结论如下: GaN的再结晶特性 :GaN在离子撞击区域具有较高的再结晶倾向,这导致其形成永久损伤的阈值较高。在所有研究的电子能量损失 regime 下,GaN都表现出这种倾向,但在电子能量损失增加时,其效率会降低,尤其是在材料发生解离并形成N₂气泡时。 能量损失…...

用drawdb.app可视化创建mysql关系表

平时自己建表,没有可视化图形参考 为了便于理解,用drwadb画mysql关系表 drawDB | Online database diagram editor and SQL generator...

模型上下文协议(MCP):AI的“万能插座”

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 一、MCP解决什么问题&#xff1f; \quad 在过去的几年中&#xff0c;AI大模型快速发展&#xff0c;从横空出世的GPT到“AI界拼多多”DeepSeek&am…...

初识 Pandas:Python 数据分析的利器

在数据分析、数据清洗和可视化等领域&#xff0c;Python 无疑是最受欢迎的语言之一&#xff0c;而在 Python 的数据处理生态中&#xff0c;Pandas 是最核心、最基础的库之一。如果你接触数据分析、机器学习、金融建模&#xff0c;或者只是想处理一些 Excel 表格&#xff0c;那么…...

Python教程(四)参数提取pymysql

Python&#xff08;四&#xff09; 本系列其他教程&#xff1a; Python教程(二)&#xff1a;函数、异常、模块&包、文件读取、常用模块 Python教程(三)&#xff1a;类&对象、闭包、装饰器、类型注解 Python教程(三)&#xff1a;类&对象、闭包、装饰器、类型注解、…...

Halcon案例(一):C#联合Halcon识别路由器上的散热孔

本案例分3部分 识别效果,分别显示识别前后识别后;代码展示,分别是Halcon源码和Halcon转为C#的代码代码解释(解释在源码中) 原图如下: 处理后的图像: Halcon源码&#xff1a; *读取一张图像 read_image (Image, progres)*获取图像大小 get_image_size (Image, Width, Height)*关…...

SC5061串口设备联网服务器,4路RS-232,4路422/485串行接口

串口设备联网服务器&#xff0c;简称串口服务器。能够将RS-232/485/422串口设备联入TCP/IP网络&#xff0c;实现RS-232/485/422串口与TCP/IP网络接口的数据双向传输&#xff0c;使得串口设备能够具备联网功能&#xff0c;根据串口数量的不同&#xff0c;可以分为单串口、两串口…...

谈AI/OT 的融合

过去的十几年间&#xff0c;工业界讨论最多的话题之一就是IT/OT 融合&#xff0c;现在&#xff0c;我们不仅要实现IT/OT 的融合&#xff0c;更要面向AI/OT 的融合。看起来不太靠谱&#xff0c;却留给我们无限的想象空间。OT 领域的专家们不要再当“九斤老太”&#xff0c;指责这…...

RAGFlow 初步尝试 (01)

1. 起因&#xff0c; 目的: 简单尝试一下。 2. 先看效果 3. 过程: 目的: 研究 RAG 的实现过程。 实用目的&#xff1a; 对于一本电子书&#xff0c; pdf&#xff0c;我在读书的时候&#xff0c;可以问一写些问题。对一个 github 项目&#xff0c;可以迅速理解文件的关系。…...

Linux 服务器用 SSH 拉取多个 Git 工程

在一台 Linux 服务器上用 SSH 拉取两个 Git 工程&#xff0c;而这两个工程对应的是 不同的 Git 账号&#xff08;SSH Key&#xff09;&#xff0c;做法&#xff1a; 使用 SSH Config 配置多个 Git 账号 场景假设&#xff1a; 工程 A 的仓库地址&#xff1a;gitgithub.com:com…...

测试文章标题01

模型上下文协议&#xff08;Model Context Protocol, MCP&#xff09;深度解析 一、MCP的核心概念 模型上下文协议&#xff08;Model Context Protocol, MCP&#xff09;是一种用于规范机器学习模型与外部环境交互的标准化框架。其核心目标是通过定义统一的接口和数据格式&am…...

如何禁止chrome自动更新

百度了一下 下面这个方法实测有效 目录 1、WINR 输入 services.msc 2、在Services弹窗中找到下面两个service并disable 3、验证是否禁止更新成功&#xff1a; 1、WINR 输入 services.msc 2、在Services弹窗中找到下面两个service并disable GoogleUpdater InternalService…...

【C++重载操作符与转换】构造函数和复制控制

目录 一、构造函数&#xff1a;对象的初始化引擎 1.1 构造函数的定义与分类 1.2 初始化列表&#xff1a;高效且安全的初始化方式 1.3 显式构造函数与类型安全 二、复制控制&#xff1a;管理对象的生命周期 2.1 复制构造函数&#xff1a;深拷贝的核心 2.2 赋值运算符重载…...

CATIA高效工作指南——常规配置篇(二)

一、结构树&#xff08;Specification Tree&#xff09;操作技巧精讲 结构树是CATIA设计中记录模型历史与逻辑关系的核心模块&#xff0c;其高效管理直接影响设计效率。本节从基础操作到高级技巧进行系统梳理。 1.1 结构树激活与移动 ​​激活方式​​&#xff1a; ​​白线…...

神经生物学+图论双buff,揭示大脑语言系统的拓扑结构

摘要 近年来&#xff0c;神经影像数据分析的进展促进了大脑网络整合中适应性变化的表征。本研究提出了一种融合知识驱动与数据驱动的独特方法&#xff0c;为更精确地理解这些变化提供了新思路。通过运用图网络分析&#xff0c;并结合特定领域脑网络系统的现有神经生物学知识&am…...

Kotlin 懒初始化值

Kotlin 懒初始化值&#xff1a;深入理解 lateinit 与 by lazy 在 Kotlin 开发中&#xff0c;懒初始化&#xff08;Lazy Initialization&#xff09; 是一种常见的优化技巧&#xff0c;它允许我们将对象的初始化延迟到真正需要使用时再执行。Kotlin 提供了两种核心机制来实现懒…...

高速系统设计实例设计分析

在上几章的内容中&#xff0c;我们从纯粹高速信号的理论分析&#xff0c;到 Cadence 工具的具体使用都做了详细的讲解和介绍。相信读者通过前面章节的学习&#xff0c;已经对高速系统的设计理念及 Cadence 相应的设计流程和工具有了一个基本的认识。但是&#xff0c;对于高速电…...

数据结构与算法学习-JavaScript的Array.prototype.reduce()方法

一、语法 array.reduce(callbackfn, initialValue);callbackfn (accumulator, currentValue, currentIndex, array) > {// 回调逻辑 } callbackFn 为数组中每个元素执行的函数。 其返回值将作为下一次调用 callbackFn 时的 accumulator 参数。对于最后一次调用&#xff0c…...

[Java][Leetcode simple] 189. 轮转数组

借助辅助数组 借助一个辅助数组tmp保存后面k个元素然后逆序循环&#xff0c;使用数组前面n-k个元素覆盖最后到后面最后把前k个元素从tmp中拿回来public void rotate(int[] nums, int k) {int len nums.length;k k % len;int[] Ra new int[len];int cnt 0;for (int i len-k…...

Hadoop 的代理用户(Proxy User)​ 功能解释

在$HADOOP_HOME/etc/hadoop下的core-site.xml 配置里&#xff0c;可以新增hadoop集群的代理用户。 在集成配置中&#xff0c;会经常用到。它属于 Hadoop 安全机制的一部分。 以下是对该配置效果的详细说明及示例&#xff1a; 配置效果 <!-- 允许用户 hadoop 从主机 hadoop…...

day06_java中的流程控制语句

流程控制语句 Java提供了一些流程控制语句&#xff0c;来控制程序的执行流程 顺序结构 任何编程语言中最常见的程序结构就是顺序结构顺序结构就是程序从上到下逐行地执行&#xff0c;中间没有任何判断和跳转如果main方法的多行代码之间没有任何流程控制&#xff0c;则程序总是…...

机器学习实战:归一化与标准化的选择指南

在机器学习实战中——是否需要归一化&#xff08;Normalization&#xff09;或标准化&#xff08;Standardization&#xff09;&#xff0c;取决于所使用的模型类型。 ✅ LightGBM / XGBoost 是否需要归一化或标准化&#xff1f; 不需要。 &#x1f527; 原因&#xff1a; L…...

【内蒙古】《内蒙古自治区本级政务信息化建设项目预算支出标准(试行)》(内财预〔2024〕1449号)-费用标准解读系列

内蒙古自治区政务服务与数据管理局在2024年11月29日发布了《内蒙古自治区本级政务信息化建设项目预算支出标准(试行)》&#xff08;内财预〔2024〕1449号&#xff09;。该文件适用于自治区本级各部门、单位非涉密政务信息化建设项目(以下简称建设项目)经费的预算编制、审核。下…...

文本数据可视化

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 原理 操作步骤 图像展示 【实验目的】 了解什么是文本可视化 掌握文本可视化的相关技术 文本信息的提取和可视表达 本次实验是将某一文本进行可视化生成词云图片 尝试构造文本指纹 【实验原理】…...

qt命名空间演示

#ifndef CIR_H #define CIR_Hnamespace cir {double PI3.141592653;//获取圆行周长double getLenthOfCircle(double radius){return 2*PI*radius;}//获取圆形面积double getAreaOfCircle(double radius){return PI*radius*radius;}} #endif // CIR_H#include <iostream> …...

Android学习总结之布局篇

一、大厂面试高频布局真题解析 1. ConstraintLayout vs RelativeLayout 深度对比 真题问法&#xff1a; "为什么说 ConstraintLayout 是 RelativeLayout 的替代方案&#xff1f;两者在布局原理、性能、复杂场景处理上有什么核心区别&#xff1f;" 核心考点解析&am…...

星际篮球争霸赛/MVP争夺战 - 华为OD机试真题(A卷、Java题解)

华为OD机试题库《C》限时优惠 9.9 华为OD机试题库《Python》限时优惠 9.9 华为OD机试题库《JavaScript》限时优惠 9.9 针对刷题难&#xff0c;效率慢&#xff0c;我们提供一对一算法辅导&#xff0c; 针对个人情况定制化的提高计划&#xff08;全称1V1效率更高&#xff09;。 看…...

RNN(循环神经网络)原理与结构

1 RNN&#xff08;循环神经网络&#xff09;原理与结构 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一类专门用于处理序列数据&#xff08;如时间序列、文本、语音等&#xff09;的深度学习模型。与传统的前馈神经网络不同&#xff0c;RNN在每个时间…...

Claude深度解析:从技术原理到实战应用的全栈指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言:AI编程新纪元中的Claude 在生成式AI技术爆发的2024年,Anthropic的Claude系列模型以卓越的长文本处理能力和精确的代码生成质量,正在重塑程序员的开发范式。当开发者…...

9.渐入佳境 -- 套接字的多种可选项

前言 套接字具有多种特性&#xff0c;这些特性可通过可选项更改。本章将介绍更改套接字可选项的方法&#xff0c;并以此为基础进一步观察套接字内部。 一、套接字可选项和I/O缓冲大小 我们进行套接字编程时往往只关注数据通信&#xff0c;而忽略了套接字具有的不同特性。但是…...

AI日报 - 2024年05月13日

&#x1f31f; 今日概览 (60秒速览) ▎&#x1f680; 技术突破 | Flow-GRPO将在线RL引入流匹配模型&#xff0c;提升性能并降低训练成本&#xff1b;「层内循环」(ILR)技术无需增加参数即可提升Transformer性能。▎&#x1f4ac; 行业热议 | ICML强制作者参会政策引发广泛争议…...

开发工具分享: Web前端编码常用的在线编译器

1.OneCompiler 工具网址&#xff1a;https://onecompiler.com/ OneCompiler支持60多种编程语言&#xff0c;在全球有超过1280万用户&#xff0c;让开发者可以轻易实现代码的编写、运行和共享。 OneCompiler的线上调试功能完全免费&#xff0c;对编程语言的覆盖也很全&#x…...

Android学习总结之线程池篇

一、线程池参数调优实战真题 真题 1&#xff1a;直播 APP 弹幕加载线程池设计 题目描述&#xff1a;直播 APP 需要实时加载弹幕数据&#xff08;网络请求&#xff0c;IO 密集型&#xff09;&#xff0c;同时渲染弹幕视图&#xff08;UI 操作需切主线程&#xff09;&#xff0…...

03.Golang 切片(slice)源码分析(二、append实现)

Golang 切片&#xff08;slice&#xff09;源码分析&#xff08;二、append实现&#xff09; 前言&#xff1a; Golang 切片&#xff08;slice&#xff09;源码分析&#xff08;一、定义与基础操作实现&#xff09; 在前面的文章我们介绍了&#xff0c;切片的结构体与创建\扩容…...

Python实例题:pygame开发打飞机游戏

目录 Python实例题 题目 pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本 代码解释 初始化部分&#xff1a; 游戏主循环&#xff1a; 退出部分&#xff1a; 运行思路 注意事项 Python实例题 题目 pygame开发打飞机游戏 pygame-aircraft-game使用 Pygame 开发…...

MySQL创建了一个索引表,如何来验证这个索引表是否使用了呢?

MySQL创建了一个索引表,如何来验证这个索引表是否使用了呢&#xff1f; 1. 使用 EXPLAIN 分析查询执行计划 在 SQL 查询前添加 EXPLAIN 关键字&#xff0c;查看 MySQL 优化器是否选择了你的索引。 示例&#xff1a; EXPLAIN SELECT * FROM db关键输出字段&#xff1a; typ…...

Go语言多线程爬虫与代理IP反爬

有个朋友想用Go语言编写一个多线程爬虫&#xff0c;并且使用代理IP来应对反爬措施。多线程在Go中通常是通过goroutine实现的&#xff0c;所以应该使用goroutine来并发处理多个网页的抓取。然后&#xff0c;代理IP的话&#xff0c;可能需要一个代理池&#xff0c;从中随机选择代…...

Linux文件编程:操作流程与内核机制

在 Linux 操作系统中&#xff0c;一切皆文件&#xff0c;这意味着从硬盘上的数据文件、设备驱动、到管道、套接字等都以文件的形式存在。Linux 的文件系统将这些不同类型的文件统一抽象成文件对象&#xff0c;允许程序通过文件描述符来访问它们。 一、核心概念解析 文件描述符…...

用短说社区搭建的沉浸式生活方式分享平台

你是否想打造一个融合小红书式种草基因与论坛深度互动的全新社区&#xff1f;本文依托短说社区论坛系统的社区功能规划&#xff0c;一起来规划&#xff0c;如何搭建一个集内容分享、社交互动、消费决策于一体的沉浸式生活社区。 短说社区的界面样式支持普通资讯列表或瀑布流列…...

【ASR学习笔记】:语音识别领域基本术语

一、基础术语 ASR (Automatic Speech Recognition) 自动语音识别&#xff0c;把语音信号转换成文本的技术。 VAD (Voice Activity Detection) 语音活动检测&#xff0c;判断一段音频里哪里是说话&#xff0c;哪里是静音或噪音。 Acoustic Model&#xff08;声学模型&#xff0…...

2025年best好用的3dsmax插件和脚本

copitor 可以从一个3dsmax场景里将物体直接复制到另一个场景中 Move to surface 这个插件可以将一些物体放到一个平面上 instancer 实体器&#xff0c;举例&#xff1a;场景中有若干独立的光源&#xff0c;不是实体对象&#xff0c;我们可以使用instancer将他变成实体。 paste …...