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

第二阶段:基础加强阶段总体介绍

Java语法的学习笔记
 下面放复习的文档链接,如果有需要可以前往下载获取,这个仓库还有关于mysql、hadoop、python等的复习部分,并且每个文档有着对应的代码部分。文章作为复习使用,更多代码内容见链接如下:
https://gitee.com/zhang-huile/LearnForJob

目录

第二阶段:基础加强阶段总体介绍

一、static

        一)static修饰成员变量

        1.static是什么?

        2.static修饰的成员变量叫什么?怎么使用?有啥特点?

        3.无static修饰的成员变量叫什么?怎么使用?有啥特点?

    二)类变量应用场景

        1.类变量的应用场景

        2.案例导学

        3.成员变量有几种?各自在什么情况下被定义?

        4.访问自己类中的类变量,是否可以省略类名不写?

    三)static修饰成员方法

        1.static修饰成员方法叫什么?如何使用?

        2.无static修饰成员方法叫什么?如何使用?

    四)static修饰成员方法的应用场景

        1.类方法的应用场景:

        2.工具类是什么?

        3.使用工具类来设计工具类有啥好处?

        4.案例导学      (util3)

        5.为什么工具类的方法要用类方法,而不能用实例方法?

        6.工具类定义时有什么要求?

    五)static的注意事项

    六)static的应用知识   (block5)

 1.代码块

        2.单例设计模式

二、继承

    1.什么是继承?继承后有啥特点

    2.带继承关系的类,java会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?

    3.使用继承有啥好处?

一)继承的相关注意事项

    1.权限修饰符   (modifer)

    2.单继承、Object类   (extendsfeature  继承的特点)

    3.方法重写   (override)

    4.方法重写是什么?

    5.重写方法有哪些注意事项?

    6.子类访问其他成员(成员变量、成员方法)的特点   (access 就近原则  谁近访问谁)

    7.子类构造器的特点   (constructor)

    8.补充知识:this()调用兄弟构造器   (this)

    9.super(...)调用父类构造器的常见应用场景是什么?

    10.this(...)的作用是什么?

    11.this(...)和super(...)的使用时需要注意什么?


第二阶段:基础加强阶段总体介绍

一、static

学习内容:
        static  、  设计模式:单例   、继承

        一)static修饰成员变量

        1.static是什么?

                叫静态,可以修饰成员变量、成员方法
                    成员变量按照有无static修饰,分为两种:
                1).类变量   : 有static修饰,属于类所有,在计算机中只有一份,会被类的全部对象共享
                2).实例变量(对象的变量) : 没有static修饰,属于对象所有,每个对象都有一份,互不影响
                    推荐通过使用 类名.类变量 进行访问类变量

        2.static修饰的成员变量叫什么?怎么使用?有啥特点?

            类变量(静态成员变量)
            类名.类变量名 访问类变量(推荐)
            对象名.实例变量名 访问实例变量(不推荐)
            属于类,与类一起加载一次,在内存中只有一份,会被类的所有对象共享

        3.无static修饰的成员变量叫什么?怎么使用?有啥特点?

            实例变量(非静态成员变量)
            对象名.实例变量名
            属于对象,每个对象都有一份,互不影响

    二)类变量应用场景

        1.类变量的应用场景

        在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义成类变量来记住。

        2.案例导学

        例如:系统启动后,要求用户类可以记住自己创建了多少个用户对象。

        3.成员变量有几种?各自在什么情况下被定义?

            类变量:数据有需要一份,且需要被共享(访问,修改)
            实例变量:每个对象都要有一份,数据各不同(如:name、score、age等)

        4.访问自己类中的类变量,是否可以省略类名不写?

                可以的
            注意:在某个类中访问其他类里的类变量,必须带类名访问。

    三)static修饰成员方法

         成员方法的分类:
            类方法:有static修饰的成员方法,属于类
                类名.类方法名()(推荐)
                对象名.类方法名()(不推荐)
            实例方法:
                没有static修饰的成员方法,属于对象
                对象名.实例方法名()

        1.static修饰成员方法叫什么?如何使用?

            类方法(静态方法)
            属于类,可以直接用类名访问,也可以用对象访问
            类名.类方法名()
            对象名.类方法名()(不推荐)

        2.无static修饰成员方法叫什么?如何使用?

            实例方法(非静态方法)
            属于对象,只能用对象名访问
            对象名.实例方法名()

    补充知识:搞懂main()方法
        是一个类方法
 

        public class hello {public static void main(String[] args) {for(int i=0;i<args.length;i++){System.out.println(args[i]);}}}

    四)static修饰成员方法的应用场景

        1.类方法的应用场景:

             类方法最常见的应用场景是做工具类。

        2.工具类是什么?

            工具类中的方法就是一些类方法,每个方法都是用来完成一个功能的,工具类就是给开发人员共同使用的。

        3.使用工具类来设计工具类有啥好处?

            提高了代码的复用性;调用方便,提高了开发效率。

        4.案例导学      (util3)
        5.为什么工具类的方法要用类方法,而不能用实例方法?

            因为类方法可以直接用类名访问,而实例方法只能用对象名访问。
            实例方法需要创建对象来调用,此时对象只是为了调用方法,对象占内存,这样会浪费内容。
            即实例方法需要创建对象来调用,会浪费内存。
        多学一招:因为工具类没有创建对象的需求,建议将工具类的构造进行私有。则不能实例化对象,只能通过类名调用方法。

        6.工具类定义时有什么要求?

                工具类不需要创建对象,建议将工具类的构造器私有化。

    五)static的注意事项

            使用类方法、实例方法的几点注意事项
            类方法中可以直接访问类的成员,不可以直接访问实例成员
            实例方法中既可以访问类成员,也可以直接访问实例成员。
            实例方法中可以出现this关键字,类方法中不可以出现this关键字。

    六)static的应用知识   (block5)

 1.代码块

        代码块是类的五大成分之一(成员变量、构造器、方法、内部类、代码块)

            代码块按照有无static修饰,分为两种:
                1)静态代码块:格式
                                static{}
                    特点:;类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次。
                    作用:完成类的初始化,例如:对类变量的初始化赋值。
                   静态代码块在类加载时执行,且只执行一次;构造器在创建对象时执行,每创建一个对象就执行一次。
                2)非静态代码块:格式
                                {}
                     特点:每次创建对象时,执行实例代码块,并在构造器前执行。
                     作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。

        2.单例设计模式

                什么是设计模式?
                一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
                设计模式有20多种,对于20多种软件开发种会遇到的问题。
            关于设计模式主要学什么?
                1)解决什么问题?
                2)怎么写?

            单例设计模式
                确保一个类只有一个对象。
                写法:
                    把类的构造器私有
                    定义一个变量记住类的每一个对象。
                    定义一个类方法,返回对象。
                            饿汉式单例:拿对象时,对象早就创建好了。
                                            public class A {
                                                //2.定义一个类变量,记住类的一个对象
                                                private static A a = new A();
                                                //1.私有类的构造器
                                                private A(){
                                                }
                                                //3.定义一个方法,返回类的对象
                                                public static A getObject(){
                                                    return a;
                                                }
                                            }
            单例模式的应用场景、有啥好处?
                任务管理器、获取运行时对象
                在这些业务场景下,使用单例模式,可以避免浪费内存。
                            懒汉式单例:拿对象时,才开始创建对象。。
                            写法:
                                把类的构造器私有
                                定义一个类变量用于存储对象。
                                提供一个类方法,保证返回的是同一个对象。
                                        public class B {
                                            //2.定义一个类变量,用于存储这个类的一个对象
                                            private static B b;
                                            //1.把类的构造器私
                                            private B() {{
                                            }
                                            }
                                            //定义一个类方法,这个方法要保证第一次创建一个对象,后面调用时都会返回这个对象。
                                            public static B getInstance() {
                                                if (b == null) {
                                                    System.out.println("第一次创建对象!");
                                                    b = new B();
                                                }
                                                return b;
                                            }
                                        }
            单例:对于经常使用的写饿汉式,不经常用的懒汉式。

二、继承

    1.什么是继承?继承后有啥特点

        继承就是使用extends关键字,让一个类和另一个类建立起的一种父子关系。
        字类可以继承父类的非私有的成员。

    2.带继承关系的类,java会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?

         带继承关系的类,Java会用类和其父类,这多张设计图一起创建类的对象。
        对象能直接访问什么成员,是由子父类这多张设计图共同决定的,这张设计图对外暴露了什么成员,对象就可以访问什么成员。

    3.使用继承有啥好处?

        减少了重复代码的编写,提高了代码的复用性。

一)继承的相关注意事项

    1)权限修饰符
    2)单继承、Object类
    3)方法重写
    4)子类中访问其他成员的特点
    5)子类构造器的特点
    6)注意事项小结

    1.权限修饰符   (modifer)

        就是用来限制类中的成员(成员变量、成员方法、构造器、代码块....)能够访问的范围
        private 、 protected 、 public 、缺省...

    2.单继承、Object类   (extendsfeature  继承的特点)

        继承的两个注意事项:
            java是单继承的,Java中的类不支持多继承,但是支持多层继承。
            Object类是所有类的父类(祖宗),所有类都继承了Object类。

    3.方法重写   (override)

        当子类觉得父类的方法不好用,或无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖
        父类的这个方法,这个就是方法重写。
            注意:重写后,方法的访问,java会遵循就近原则。

    4.方法重写是什么?

        子类写了一个方法名称,形参列表与父类某个方法一样的方法会去覆盖父类的该方法

    5.重写方法有哪些注意事项?

        建议加上@Override注解,可以校验重写是否正确,同时可读性好。
        子类重写父类方法时,访问权限必须大于或者等于父类被重写的方法的权限。
        重写的方法返回值类型,必须与被重写方法的返回值一样,或者范围更小。
        私有方法、静态方法不能被重写

    6.子类访问其他成员(成员变量、成员方法)的特点   (access 就近原则  谁近访问谁)

         成员变量:
        当父类、子类、子类中方法都有同名的成员(eg:都叫name)时,子类访问成员的优先级是:
            按照就近原则,在方法中,优先访问自己方法中的,如果想访问子类的成员,需要使用this.name。
            如果想访问父类的成员,需要使用super.name。
        成员方法:
        当子类和父类都有同名的成员方法(eg:都叫getName())时,子类访问方法的优先级是:
            按照就近原则,在方法中,优先访问自己方法中的,如果想访问父类的成员方法,需要使用super.getName()。

    7.子类构造器的特点   (constructor)

        子类构造器的特点:
            子类的全部构造器,都会先调用父类的构造器,再执行自己。

        子类构造器是如何实现调用父类构造器的?
            默认情况下,子类的全部构造器的第一行代码都是super(),它会调用父类的无参构造器。
            如果父类没有无参构造器,则我们必须再子类构造器的第一行手写super(),调用父类的有参构造器。

    8.补充知识:this()调用兄弟构造器   (this)

在任意类的构造器中,是可以通过this(..)去调用该类的其他构造器。
        在一个构造器中,this()和super()不能同时出现。

    9.super(...)调用父类构造器的常见应用场景是什么?

为对象中包含父类这部分的成员变量进行赋值。

    10.this(...)的作用是什么?

 在构造器中调用本类的其他构造器

    11.this(...)和super(...)的使用时需要注意什么?

都必须放在构造器的第一行。
 

相关文章:

第二阶段:基础加强阶段总体介绍

Java语法的学习笔记 下面放复习的文档链接&#xff0c;如果有需要可以前往下载获取&#xff0c;这个仓库还有关于mysql、hadoop、python等的复习部分&#xff0c;并且每个文档有着对应的代码部分。文章作为复习使用&#xff0c;更多代码内容见链接如下: https://gitee.com/zha…...

Callable Future 实现多线程按照顺序上传文件

/** * 异步上传 BiopsyFlow 中的所有视频和音频文件到暂存服务器 */ private List<String> uploadBiopsyFlowFiles(BiopsyFlow biopsyFlow, SyncFile SyncFile) { List<String> fileBase64List syncFile.getFileBase64List(); if (CollectionUtils.is…...

leetcode283-移动零

leetcode 283 思路 本题是通过把数组中所有不为0的数字前置&#xff0c;实现把所有的0后置的效果 双指针法 slow 充当指针&#xff0c;记录当前零应该被移到的位置。而 i 用来遍历整个数组&#xff0c;检查每个元素。如果当前元素不为零&#xff0c;就将其与 slow 位置上的…...

【dify+docker安装教程】

目录 一、dify安装包下载 二、运行环境配置 1、下载docker 2、安装 2.1 新建文件夹 2.2 安装 2.3 命令安装 3.下载完成后需要重启电脑&#xff0c;注意保存文档&#xff01;&#xff01;注意保存&#xff01;&#xff01;注意&#xff01;&#xff01;&#xff08;血的教…...

GPU虚拟化实现(五)

GPU虚拟化实现(五) 章节回顾初步介绍详细介绍核心数据结构核心功能和运作机制初始化显存分配显存释放显存溢出检查显存类型检查查看分配信息代码执行流程假设例子总结章节回顾 在上一章,简单介绍了项目拦截cuda函数的流程,其本质上与拦截nvml函数的流程是一致的,都是首先…...

C++——入门基础

文章目录 一、前言二、C的发展历史2.1 C的诞生2.2 C的重要性 三、C的应用3.1第一个C程序3.2 C版3.2 C版3.3 C版与C版的区分 3.2 namespace关键字3.2.1 namespace的意义3.2.2C中域的分类3.2.3 namespace的定义3.2.4 namespace的实质3.2.5 namespace的嵌套 3.3 作用域运算符 &…...

AT2401C与RFX2401C问题处理资料

1、AT2401C 可以 PIN 对 PIN 替代 RFX2401C 吗&#xff1f; 答&#xff1a;AT2401C 可以 PIN 对 PIN 替换 RFX2401C&#xff1b;同时 CB2401 也可以 PIN 对 PIN 替换 RFX2401C&#xff1b;我们主要推 AT2401C 这款芯片&#xff0c;如果客户产 品需要过认证或者应用于音频产品建…...

微信小程序连续多个特殊字符自动换行解决方法

效果图 .wxml <view class"container"><text>没转换{{text}}</text><view style"height: 60rpx;" /><text>转换后{{convert}}</text> </view>.js Page({data: {text:&#xff01;&#xff01;&#xff01;&am…...

【Linux实践系列】:进程间通信:万字详解命名管道实现通信

&#x1f525; 本文专栏&#xff1a;Linux Linux实践项目 &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 与其等待完美的风&#xff0c;不如学会在逆风中调整帆的角度——所有伟大航程都始于此刻出发的勇气 ★★★ 本文前置知…...

【TS入门笔记4---装饰器】

TS入门笔记4 TypeScript---装饰器一、装饰器基础1. 定义与作用&#xff1a;装饰器是一种特殊类型的声明&#xff0c;它可以被附加到类声明、方法、访问符、属性或参数上&#xff0c;用来修改类的行为。在 TypeScript 里&#xff0c;装饰器本质上是一个函数&#xff0c;它接收不…...

大学之大:韩国科学技术研究院2025.4.28

韩国科学技术研究院&#xff08;KAIST&#xff09;作为韩国理工科教育与科研的旗舰机构&#xff0c;其发展历程深刻反映了韩国从工业化到科技强国的转型轨迹。以下从历史沿革、学科优势、教学特色、科研创新、教育规模、资源投入及未来战略等维度展开全面分析&#xff1a; 一、…...

【QT】QT控制硬件

QT控制硬件 1.上位机程序开发2.具体例子控制led灯3. linux中的函数跟QT类里面的函数同名&#xff0c;发生冲突4.示例代码 1.上位机程序开发 QT做一个上位机程序&#xff0c;控制底层的硬件设备(下位机) 总结&#xff1a; 在构造函数里面去初始化&#xff0c;打开硬件驱动在析…...

Spring的BeanFactory和FactoryBean的区别

​ ‌BeanFactory和FactoryBean在Spring框架中扮演着不同的角色&#xff0c;具有不同的功能和用途。‌ 定义与角色 ‌BeanFactory‌&#xff1a;BeanFactory是Spring IoC容器的核心接口&#xff0c;用于管理和维护Bean的定义、创建和生命周期。它是Spring IoC容器的基础&…...

【JavaScript】if语句

JS中的程序是从上到下一行一行执行的。 通过流程控制语句可以控制程序执行流程&#xff0c;使程序可以根据一定的条件来选择执行语句。 语句的分类&#xff1a; 1、条件判断语句 2、条件分支语句 3、循环语句 条件判断语句&#xff1a;使用条件判断语句可以在执行某个语句之前进…...

PostgreSQL oracle_fdw 扩展解析

PostgreSQL oracle_fdw 扩展解析 oracle_fdw 是 PostgreSQL 的一个外部数据包装器(Foreign Data Wrapper)扩展&#xff0c;允许 PostgreSQL 直接连接和操作 Oracle 数据库。以下是全面详细的使用指南&#xff1a; 一、安装与配置 1. 前置要求 Oracle 客户端库&#xff1a;必…...

从信息传输到智能互动,融云的全球智能通信云服务进化

4 月 24 日-25 日&#xff0c;GTC2025 全球流量大会在深圳福田会展中心举办&#xff0c;融云携全球智能通信云解决方案亮相。 在大会首日的开幕式峰会上&#xff0c;融云高级研发总监李宏博受邀分享《从信息传输到智能互动&#xff0c;融云的全球智能通信云服务进化》。 作为连…...

关于https请求丢字符串导致收到报文解密失败问题

加密方法&#xff1a;AES两次URLEncoder 问题现象&#xff1a;服务端收到的报文中少了类似%25这样的字符&#xff0c;导致解密失败 问题分析&#xff1a;用RequestBody接受 也有可能是springboot自动做了一次解码URLDecoder&#xff0c;自己只需要解码一次就好了...

Rust 学习笔记:修复所有权常见错误

Rust 学习笔记&#xff1a;修复所有权常见错误 Rust 学习笔记&#xff1a;修复所有权常见错误错误一&#xff1a;返回栈上的引用错误二&#xff1a;没有足够的权限错误三&#xff1a;别名和可变性错误四&#xff1a;从集合中拷贝一个元素&#xff08;转移所有权&#xff09;错误…...

Unity3D引擎框架及用户接口调用方式相关分析及汇总

分析目的 目前外网3D手游绝大部基于Unity3D引擎进行开发,Unity3D引擎属于商业引擎,引擎整理框架的运行机制较为神秘,本文介绍Unity引擎框架、对象组织方式、用户接口与引擎交互方式等原理,通过本文的分析和介绍可了解Unity3D框架中大致执行原理。 实现原理 Unity引擎作为…...

喷泉码在物联网场景下的案例分析

在物联网复杂场景下,无线传感器网络作为信息感知前端,面临能量受限、信道不稳定、多跳传输可靠性差等难题,严重制约物联网系统运行效能。传统基于反馈重传的通信机制在无线传感器网络中难以为继。其 ACK 确认操作频繁,大幅增加能耗,且在动态网络拓扑中,反馈易丢失,致使数…...

OpenCV 图形API(69)图像与通道拼接函数------将一个 GMat 类型的对象转换为另一个具有不同深度GMat对象函数convertTo()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将一个矩阵转换为另一种数据深度&#xff0c;并可选择进行缩放。 该方法将源像素值转换为目标数据深度。最终应用 saturate_cast<> 以避免…...

考研系列-计算机组成原理第七章、输入/输出系统

一、I/O接口 1.I/O接口概念 现在的I/O接口有些集成在南桥芯片上...

使用vue3 脚手架创建项目

1.创建项目 并 运行 1.1 创建项目 vue create abcd 1.2 运行 创建好项目后&#xff0c;命令行会提示你运行项目 npm run serve 2.介绍各个目录 node_modules : 项目依赖包&#xff0c;其中包括很多基础依赖&#xff0c;自己也可以根据需要安装其他依赖 assets文件夹&a…...

云服务器被黑客攻击应急响应与加固指南(上)

一、入侵检测与应急处理 1. 异常行为检测 # 查看异常登录记录 sudo lastb | awk {print $3} | sort | uniq -c | sort -nr sudo grep "Failed password" /var/log/auth.log | awk {print $11} | sort | uniq -c# 检查可疑进程 ps auxf | grep -E (curl|wget|bash|s…...

联合体union的特殊之处

一个联合体union的长度等于其内部长度最大的成员的长度。 union的所有成员共享同一块内存空间&#xff0c;可以利用这个特性读取数据的字节存储方式。 #include <stdio.h>int check_endian() {union {short s; // 2 字节&#xff08;short&#xff09;char c[2]…...

Spring系列五:手动实现Spring底层机制 第三部分

&#x1f497;实现任务阶段5 &#x1f35a;bean后置处理器实现 bean后置处理器实现 思路:先完成原生Spring 使用Bean后置处理器的案例, 然后实现自己的bean后置处理器 bean的生命周期~传送门 在idea中 shortcuts: shiftshift , 输入 InitializingBean, 搜索. 在zzw-spring…...

AGV、AMR机器人控制器x86/RK3588/NV各有什么优劣势?

以下是关于AGV/AMR机器人控制器解决方案中x86、RK&#xff08;瑞芯微&#xff09;、NV&#xff08;英伟达&#xff09;平台优劣势的综合分析&#xff1a; 一、核心性能对比 平台优势局限性适用场景‌x86‌1. 多核高频CPU支持复杂算法运算&#xff0c;适合大规模路径规划及多机…...

[ACTF2020 新生赛]Include [ACTF2020 新生赛]Exec

[ACTF2020 新生赛]Include 因为前端过滤的太多了 所以直接使用 日志包含 搞 包含这个 /var/log/nginx/access.log [ACTF2020 新生赛]Include蚁剑连接 翻看 flag{1ce7a81e-0339-44ef-a398-a7784d3efe37} [ACTF2020 新生赛]Exec [ACTF2020 新生赛]Exec 127.0.0.1 |echo <?…...

23种设计模式 -- 工厂模式

Java 工厂模式示例代码 下面我将展示三种常见的工厂模式实现&#xff1a;简单工厂模式、工厂方法模式和抽象工厂模式。 1. 简单工厂模式 java // 产品接口 interface Shape {void draw(); }// 具体产品类 class Circle implements Shape {Overridepublic void draw() {System…...

【25软考网工】第四章(2)WLAN通信技术、WLAN频谱与信道

目录 一、WLAN通信技术 1. 扩展频谱通信 1&#xff09;扩频通信种类 2&#xff09;技术关系 2. 应用案例 1&#xff09;例题:扩频通信概念判定 2&#xff09;例题:跳频扩频技术描述 3&#xff09;例题:扩频通信技术标准 3.知识小结 二、WLAN频谱与信道 1. WLAN网络分…...

MetaEditor - 自动交易和技术指标编辑器

功能特点 代码编辑功能&#xff1a;支持多种编程语言&#xff0c;如 MQL4 和 MQL5&#xff0c;方便交易者根据自己的需求编写自动交易策略和技术指标。它提供了代码高亮、自动缩进、语法检查等功能&#xff0c;有助于提高代码编写的效率和准确性。调试与测试工具&#xff1a;配…...

关于华为云OneAccess登录认证过程介绍

这里主要介绍的是OAuth2认证的一个流程&#xff0c;分享一下实际开发过程中的实现逻辑 1、后端先根据接口文档的细节内容&#xff0c;然后拼接好url并且以String的类型返回给前端 2、此时前端会访问本连接&#xff0c;然后就会跳转到第三方页面&#xff0c;用户进行登录后&am…...

Spring - 简单实现一个 Spring 应用

一、为什么需要学习Spring框架&#xff1f; 1.企业级开发标配 超过60%的Java项目都使用Spring生态&#xff08;数据来源&#xff1a;JetBrains开发者报告&#xff09;。 2.简化复杂问题 通过IoC和DI&#xff0c;告别new关键字满天飞的代码。 3.职业竞争力 几乎所有Java岗…...

数据展示功能界面设计与实现及终端控制界面思路(17)

文章目录 一、本章说明二、传感数据展示功能实现2.1 实现目标2.2 具体实现2.2.1 需要在.pro 文件添加2.2.2 mainwindow.h 头文件2.2.3 mainwindow.cpp 文件2.2.4 实现界面展示三、项目源码文件四、终端节点控制五、Qt打包EXE一、本章说明 注:本节为【基于STM的环境监测系统(…...

opendds编译开发(c#封装)

opendds是对DDS协议的开源实现&#xff0c;具体可以查阅官网。 我使用的是源码编译开发&#xff0c;博文只针对windows平台。 环境准备 环境安装 1.visual studio 2022,我是企业版&#xff0c;安装需要选择c 2.Per下载安装,下载链接&#xff1a;https://strawberryperl.com…...

电子监管码预检剔除装置提示盒尺寸过短

问题&#xff1a;电子监管码预检剔除装置提示盒尺寸过短 现象&#xff1a;自动线监控程序报警提示“盒尺寸过短”。 原因&#xff1a;分盒设备拨盒的力度和距离、盒子在传送带的角度或传送带速度有所变化都会导致自动线出现“盒尺寸过短” 解决方法&#xff1a;根据传送带的速…...

【C++11特性】Lambda表达式(匿名函数)

一、函数对象 在C中&#xff0c;我们把所有能当作函数使用的对象当作函数对象。 一般来说&#xff0c;如果我们列出一个对象&#xff0c;而它的后面又跟有由花括号包裹的参数列表&#xff0c;就像fun(arg1, arg2, …)&#xff0c;这个对象就被称为函数对象。函数对象大致可分为…...

【北京】昌平区某附小v3700存储双控故障维修案例

2025年4月22日&#xff0c;接到一位通过网络找到我们的北京老师求助&#xff0c;反馈该学校一台V3700存储的磁盘分区无法正常读取了&#xff0c;老师在机房检查时发现存储后面2个控制器均亮警告灯。急需修复该设备读取里面资料用于周末运动会所需。于是在网上找到我们协助进行排…...

汤晓鸥:计算机视觉的开拓者与AI产业化的先行者

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 汤晓鸥&#xff1a;计算机视觉的开拓者与AI产业化的先行者 一、学术与创业之路 1. 从…...

MATLAB实现神经网络的OCR识别

使用说明&#xff1a; ‌运行要求‌&#xff1a; MATLAB R2020b 或更新版本已安装 Deep Learning Toolbox推荐使用GPU加速&#xff08;训练时在代码开头添加 gpuDevice(1)&#xff09; ‌代码特点‌&#xff1a; 使用MATLAB自带的MNIST手写数字数据集包含数据可视化、网络架构…...

车载软件架构 --- AUTOSAR的方法论

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

Java 的创新与变革之路:从 JDK 7 到 JDK 23

Java 作为一种广泛应用的编程语言&#xff0c;其发展历程与 JDK&#xff08;Java Development Kit&#xff09;的演进紧密相连。自 JDK 7 起&#xff0c;Java 语言不断引入重大特性&#xff0c;持续重塑开发格局&#xff0c;推动性能、功能和开发体验的提升。本文将深入剖析 JD…...

​LangChain、LlamaIndex、MCP、Spring AI、Ollama​ 和 ​DeepSeek​ 的定义、关系及典型架构设计

以下是 LangChain、LlamaIndex、MCP、Spring AI、Ollama 和 DeepSeek 的定义、关系及典型架构设计解析&#xff1a; 一、核心组件定义与功能 1. LangChain 定位&#xff1a;构建复杂 大语言模型&#xff08;LLM&#xff09;应用的通用框架。功能&#xff1a; 支持链式调用&am…...

Docker安装的mysql限制ip访问

1.问题背景 docker安装了mysql服务&#xff0c;服务器为Redhat9&#xff0c;我们希望通过防火墙规则直接限制访问的来源ip&#xff0c;只允许特定ip进行访问&#xff0c;其余ip需要被禁止。 2.排查过程 1.首先尝试了通过firewalld方式添加对应的防火墙规则&#xff0c; sud…...

怎么样才能在idea中写入spark程序

一、准备环境 1.安装Scala插件 专业版IDEA自带Scala插件&#xff0c;社区版需手动安装 确保插件版本与IDEA版本匹配 2.选择用哪个构建工具 sbt‌&#xff1a;适用于依赖管理简单、快速迭代的项目&#xff0c;需提前安装sbt工具24。 ‌Maven‌&#xff1a;适合熟悉Java生态…...

MySQL的数据类型

目录 数据类型分类 数值类型 tinyint bit ​编辑 小数(float) 小数(decimal) 字符串类型 char varchar 日期和时间类型 String类型 enum set find_ in_ set函数 我们今天来学习MySQL的数据分类。 数据类型分类 MySQL的字符型就是相当于字符串类型&#xff0c;所…...

Vue 中局部指令(directives)的用法详解

在 Vue.js 中&#xff0c;指令是一种特殊的属性&#xff0c;用于在 DOM 元素上绑定特殊行为。除了 Vue 内置的指令&#xff08;如v-model、v-if&#xff09;&#xff0c;还可以自定义指令来封装可复用的功能。 什么是局部指令&#xff1f; 局部指令是在单个组件中定义和使用的…...

mac 基于Docker安装minio服务器

在 macOS 上基于 Docker 安装 MinIO 是一个高效且灵活的方案&#xff0c;尤其适合本地开发或测试环境。以下是详细的安装与配置步骤&#xff0c;结合了最佳实践和常见问题的解决方案&#xff1a; 一、安装 Docker Desktop 下载安装包 访问 Docker 官网&#xff0c;下载适用于 …...

Redis常用数据结构解析:从原理到实战应用

作为一名开发者&#xff0c;我深知Redis在缓存、队列等场景中的重要性。但要用好Redis&#xff0c;必须对其核心数据结构有透彻理解。本文将结合我的实践经验&#xff0c;详细讲解Redis五种最常用的数据结构及其典型应用场景&#xff0c;帮助你在开发中游刃有余。 一、String&…...

Druid监控sql导致的内存溢出

问题 druid监控sql在网页端显示&#xff0c;我的服务插入sql比较大&#xff0c;druid把执行过的sql保存在DruidDataSource类的成员变量JdbcDataSourceStat dataSourceStat&#xff1b; JdbcDataSourceStat类中的LinkedHashMap<String, JdbcSqlStat> sqlStatMap中&#…...