Java-基础1

  1. 基础常识

 计算机语言的发展迭代史

  • 第一代:机器语言
  • 第二代:汇编语言
  • 第三代:高级语言

        面向过程语言:C,Pasca,FORTAN

        面向对象语言:Java,C++

了解Java

Java之父  詹姆斯.高斯林(James Gosling)

Java是Sun公司1995年推出的一门高级编程语言,是一种面向Internet的编程语言。

Java技术体系平台

  • JavaSE 标准版(J2SE)
  • JavaEE 企业版(J2EE)
  • JavaME 小型板(J2ME)

Java 从C语言和C++语言继承了许多成分,也舍去了C语言中容易引起错误的指针等,也增加了C语言中没有的功能,比如垃圾回收机制自动拆、装箱,泛型等(取其精华,去其糟粕)

 Java语言的特点

  • 面向对象性:

        两个要素:类,对象

        三个特征:封装、继承、多态

  • 跨平台性:Write once ,Run Anywhere (一次编译,到处运行)
  • Java两种核心机制
    • Java虚拟机(JVM)

                JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据,内存,寄存器等

        垃圾收集机制

                不再使用的内存,应该回收---垃圾回收,垃圾回收在Java程序运行过程中自动进行,程序员无法准确控制和干预 。需要注意的是,即使有垃圾回收机制 ,但仍然会由于开发人员或系统的问题导致内存泄漏和内存溢出问题。                                    

 Java语言运行机制和运行过程

由外向内,用户编写Java代码,先被编译成字节码文件.class文件,然后到jvm--> 操作系统 --> 最终由硬件执行

第一个Java程序

打开记事本,内容写上

public class MyJava{
    public static void main(String[] args){
        System.out.println("Hello,World!");
    }
}

并保存,命名为MyJava,java 

打开cmd 

win +r 快捷键,然后输入cmd

进入刚才Java文件保存的目录

一些基础命令

    切换盘符(磁盘):磁盘名:   d:
    进入下一级文件  cd 文件名
    进入下一级多个文件    cd 文件名\文件名\文件名
    进入上一级文件:cd ..
    直接回根路径    cd \
    查看文件    dir
    清屏         cls
    退出cmd      exit

 

javac MyJava.java 

javac : 就是将文件编译成.class字节码文件,也就是换成计算机能看得懂的东西。

执行完之后,同目录会出现.class文件

然后使用java 命令 运行java文件

可能会出现的问题

如果出现源文件名不存在或者写错的 错误时,可能是路径问题或者后缀名隐藏问题

如果出现找到或无法加载主类错误,可能是文件名和类名不一致,也就是public class xx,对应的文件名也应该是xx.java

语句每行记得写分号。

总结:

        java文件可以声明多个class,但最终只能有一个public class 

        main() 是程序的入口

        System.out.println() : 输出括号的内容,并自动换行。

        System.out.print() : 只输出内容,不自动换行。

 EditPlus工具的使用

使用cmd编译和执行,太麻烦,可以使用editplus 开发工具舍去这些操作。

EditPlus的使用

下载地址:EditPlus官方下载_EditPlus官网下载_EditPlus电脑版下载

 安装没有特殊操作。更换安装地址安装既可。

安装完成后,打开软件,点击上方的工具,选择参数设置,可以修改颜色,字体等。

然后点击用户工具,点击添加工具,将javac 和java命令添加进去,然后只需要点击或者使用快捷键就可以编译和运行java。

点击添加工具,选择应用程序

新建javac , java

javac

java

菜单文字:javac
命令:jdk目录\bin\javac.exe
参数: $(Filename)
初始目录:$(FileDir)
动作: 捕捉输出


然后再添加工具


菜单文字:java
命令:jdk目录\bin\java.exe
参数: $(FileNameNoExt)
初始目录:$(FileDir)
动作: 无

 应用之后自动绑定快捷键

### RT-DETRv3 网络结构分析 RT-DETRv3 是一种基于 Transformer 的实时端到端目标检测算法,其核心在于通过引入分层密集正监督方法以及一系列创新性的训练策略,解决了传统 DETR 模型收敛慢和解码器训练不足的问题。以下是 RT-DETRv3 的主要网络结构特点: #### 1. **基于 CNN 的辅助分支** 为了增强编码器的特征表示能力,RT-DETRv3 引入了一个基于卷积神经网络 (CNN) 的辅助分支[^3]。这一分支提供了密集的监督信号,能够与原始解码器协同工作,从而提升整体性能。 ```python class AuxiliaryBranch(nn.Module): def __init__(self, in_channels, out_channels): super(AuxiliaryBranch, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): return F.relu(self.bn(self.conv(x))) ``` 此部分的设计灵感来源于传统的 CNN 架构,例如 YOLO 系列中的 CSPNet 和 PAN 结构[^2],这些技术被用来优化特征提取效率并减少计算开销。 --- #### 2. **自注意力扰动学习策略** 为解决解码器训练不足的问题,RT-DETRv3 提出了一种名为 *self-att 扰动* 的新学习策略。这种策略通过对多个查询组中阳性样本的标签分配进行多样化处理,有效增加了阳例的数量,进而提高了模型的学习能力和泛化性能。 具体实现方式是在训练过程中动态调整注意力权重分布,确保更多的高质量查询可以与真实标注 (Ground Truth) 进行匹配。 --- #### 3. **共享权重解编码器分支** 除了上述改进外,RT-DETRv3 还引入了一个共享权重的解编码器分支,专门用于提供密集的正向监督信号。这一设计不仅简化了模型架构,还显著降低了参数量和推理时间,使其更适合实时应用需求。 ```python class SharedDecoderEncoder(nn.Module): def __init__(self, d_model, nhead, num_layers): super(SharedDecoderEncoder, self).__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_layers=num_layers) def forward(self, tgt, memory): return self.decoder(tgt=tgt, memory=memory) ``` 通过这种方式,RT-DETRv3 实现了高效的目标检测流程,在保持高精度的同时大幅缩短了推理延迟。 --- #### 4. **与其他模型的关系** 值得一提的是,RT-DETRv3 并未完全抛弃经典的 CNN 技术,而是将其与 Transformer 结合起来形成混合架构[^4]。例如,它采用了 YOLO 系列中的 RepNCSP 模块替代冗余的多尺度自注意力层,从而减少了不必要的计算负担。 此外,RT-DETRv3 还借鉴了 DETR 的一对一匹配策略,并在此基础上进行了优化,进一步提升了小目标检测的能力。 --- ### 总结 综上所述,RT-DETRv3 的网络结构主要包括以下几个关键组件:基于 CNN 的辅助分支、自注意力扰动学习策略、共享权重解编码器分支以及混合编码器设计。这些技术创新共同推动了实时目标检测领域的发展,使其在复杂场景下的表现更加出色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值