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

Java从入门到“放弃”(精通)之旅——类和对象全面解析⑦

Java从入门到“放弃”(精通)之旅🚀——类和对象全面解析⑦

一、面向对象初探

1.1 什么是面向对象?

Java是一门纯面向对象的语言(OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

面向对象的特点

  • 更符合人类对事物的认知方式
  • 对大型程序的设计、扩展和维护更加友好
  • 通过对象之间的交互来完成任务

1.2 面向对象 vs 面向过程

让我们通过洗衣服的例子来理解两者的区别:

传统洗衣服(面向过程)
在这里插入图片描述
在这里插入图片描述

现代洗衣服(面向对象)
在这里插入图片描述
在这里插入图片描述

  • 对象:人、衣服、洗衣粉、洗衣机
  • 交互过程:人将衣服放进洗衣机、倒入洗衣粉、启动洗衣机
    面向对象方式不关注具体洗衣过程,而是通过对象间的交互完成任务。

二、类的定义和使用

2.1 什么是类?

类是用来对一个实体(对象)进行描述的,主要描述该实体具有哪些属性(外观尺寸等)和哪些功能(用来做什么)。

例如,洗衣机类的属性和功能:

  • 属性:品牌、型号、重量、尺寸、颜色等
  • 功能:洗衣、烘干、定时等

2.2 类的定义格式

// 创建类
class ClassName {field;  // 字段(属性)或成员变量method; // 行为或成员方法
}

洗衣机类示例

class WashMachine {// 成员变量(属性)public String brand;   // 品牌public String type;    // 型号public double weight;  // 重量public double length;  // 长public double width;   // 宽public double height;  // 高public String color;   // 颜色// 成员方法(功能)public void washClothes() {  // 洗衣服System.out.println("洗衣功能");}public void dryClothes() {   // 脱水System.out.println("脱水功能");}public void setTime() {      // 定时System.out.println("定时功能");}
}

2.3 小练习

2.3.1 定义狗类

在这里插入图片描述
在这里插入图片描述

class PetDog {// 属性public String name;   // 名字public String color;  // 颜色// 行为public void bark() {System.out.println(name + ":旺旺旺~~");}public void wag() {System.out.println(name + ":摇尾巴~~");}
}
2.3.2 定义学生类

在这里插入图片描述

public class Student {// 属性public String name;public String gender;public short age;public double score;// 方法public void DoClass() {System.out.println("按时上课,不要迟到,如果请假,及时去补");}public void DoHomework() {System.out.println("教务系统,完成作业,一旦拖沓,神仙难救");}public void Exam() {System.out.println("考试目的,了解学情,人人必考,暴露问题");}
}

注意事项

  1. 一般一个文件只定义一个类
  2. main方法所在的类通常用public修饰
  3. public修饰的类必须与文件名相同
  4. 不要轻易修改public类的名称

三、类的实例化

3.1 什么是实例化?

用类类型创建对象的过程称为类的实例化,在Java中使用new关键字。

实例化示例

class PetDog {public String name;public String color;public void bark() {System.out.println(name + ":旺旺旺~~~");}public void wag() {System.out.println(name + ":摇尾巴~~~");}
}public class Main {public static void main(String[] args) {// 通过new实例化对象PetDog dogH = new PetDog();dogH.name = "小黄";dogH.color = "黑黄";dogH.bark();dogH.wag();PetDog dogS = new PetDog();dogS.name = "赛虎";dogS.color = "棕色";dogS.bark();dogS.wag();}
}

输出结果

小黄: 旺旺旺~~~
小黄: 摇尾巴~~~
赛虎: 旺旺旺~~~
赛虎: 摇尾巴~~~

3.2 类和对象的关系

  1. 类是一个模型,用于描述实体
  2. 类是一种自定义类型,可以用来定义变量
  3. 一个类可以实例化多个对象
  4. 类比:类就像建筑设计图,对象是根据设计图建造的实际房子
    在这里插入图片描述

四、this引用

4.1 为什么需要this引用?

考虑以下日期类:

public class Date {public int year;public int month;public int day;public void setDay(int year, int month, int day) {year = year;    // 这里会有歧义month = month;day = day;}
}

问题:

  1. 形参名与成员变量名相同时,赋值语句有歧义
  2. 多个对象调用同一方法时,方法如何知道操作的是哪个对象的数据?

4.2 this引用解决方案

public class Date {public int year;public int month;public int day;public void setDay(int year, int month, int day) {this.year = year;   // 使用this明确指向当前对象的成员变量this.month = month;this.day = day;}public void printDate() {System.out.println(this.year + "/" + this.month + "/" + this.day);}
}

4.3 this引用特性

  1. this的类型:对应类类型引用
  2. this只能在成员方法中使用
  3. 在成员方法中,this只能引用当前对象
  4. this是成员方法的第一个隐藏参数,编译器自动传递

五、对象的构造及初始化

5.1 构造方法

构造方法是一种特殊成员方法,用于初始化对象。

public class Date {public int year;public int month;public int day;// 构造方法public Date(int year, int month, int day) {this.year = year;this.month = month;this.day = day;System.out.println("Date(int,int,int)方法被调用了");}public void printDate() {System.out.println(year + "-" + month + "-" + day);}public static void main(String[] args) {Date d = new Date(2021, 6, 9);  // 自动调用构造方法d.printDate();  // 输出:2021-6-9}
}

5.2 构造方法特性

  1. 名字必须与类名相同
  2. 没有返回值类型,void也不行
  3. 创建对象时由编译器自动调用,生命周期内只调用一次
  4. 可以重载
  5. 用户未定义时,编译器生成默认无参构造方法
  6. 构造方法中可通过this调用其他构造方法
  7. 通常使用public修饰

5.3 默认初始化和就地初始化

默认初始化:成员变量未显式初始化时,Java会赋予默认值

数据类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0
char‘\u0000’
booleanfalse
referencenull

在这里插入图片描述

就地初始化:声明成员变量时直接赋初值

public class Date {public int year = 1900;public int month = 1;public int day = 1;// ...
}

六、封装

6.1 封装概念

封装是面向对象三大特性之一,将数据和操作数据的方法有机结合,隐藏对象的属性和实现细节,仅对外公开接口。

举个栗子🌰:
计算机厂商在出厂时,在外部套上壳子,将内部实现细节隐藏起来,仅仅对外提供开关机、鼠标以及键盘插孔等,让用户可以与计算机进行交互即可。
在这里插入图片描述

6.2 访问限定符

Java提供四种访问权限:

在这里插入图片描述

封装示例

public class Computer {private String cpu;     // private: 仅本类可访问private String memory;  // private: 仅本类可访问public String screen;   // public: 任何类可访问String brand;          // default: 同包可访问public Computer(String brand, String cpu, String memory, String screen) {this.brand = brand;this.cpu = cpu;this.memory = memory;this.screen = screen;}public void Boot() {System.out.println("开机---");}
}

6.3 包(package)

包是对类的封装机制,用于更好地组织类。(可以理解为目录)

在这里插入图片描述

包的导入

import java.util.Date;  // 导入特定类
import java.util.*;     // 导入整个包(不推荐)

自定义包

package com.example.demo;public class Test {// 类内容
}

七、static成员

7.1 static修饰成员变量

static修饰的成员变量属于类,所有对象共享。

public class Student {private String name;private static String classRoom = "Bit306";  // 静态成员变量public static String getClassRoom() {return classRoom;}
}public class Test {public static void main(String[] args) {System.out.println(Student.getClassRoom());  // 输出:Bit306}
}

7.2 static修饰成员方法

静态方法属于类,不依赖于特定对象实例。

public class Student {private static String classRoom = "Bit306";public static String getClassRoom() {return classRoom;}
}

静态方法特性

  1. 属于类方法
  2. 推荐通过类名调用
  3. 不能访问非静态成员变量
  4. 不能调用非静态方法
  5. 无法重写

八、代码块

8.1 普通代码块

定义在方法中的代码块。

public class Main {public static void main(String[] args) {{int x = 10;System.out.println("x1 = " + x);}int x = 100;System.out.println("x2 = " + x);}
}

8.2 构造代码块(实例代码块)

定义在类中,用于初始化实例成员变量。

public class Student {private String name;private int age;// 实例代码块{this.name = "bit";this.age = 12;System.out.println("实例代码块执行");}public Student() {System.out.println("构造方法执行");}
}

8.3 静态代码块

使用static定义,用于初始化静态成员变量。

public class Student {private static String classRoom;// 静态代码块static {classRoom = "bit306";System.out.println("静态代码块执行");}
}

注意事项

  • 静态代码块只会执行一次
  • 多个静态代码块按定义顺序执行
  • 实例代码块每次创建对象都会执行

九、内部类

9.1 实例内部类

未用static修饰的成员内部类。

public class OutClass {private int a = 10;// 实例内部类class InnerClass {public void print() {System.out.println(a);  // 可以直接访问外部类成员}}
}

9.2 静态内部类

用static修饰的成员内部类。

public class OutClass {private static int b = 20;// 静态内部类static class InnerClass {public void print() {System.out.println(b);  // 只能访问外部类静态成员}}
}

9.3 局部内部类

定义在方法中的内部类。

public class OutClass {public void method() {class InnerClass {public void print() {System.out.println("局部内部类");}}InnerClass inner = new InnerClass();inner.print();}
}

9.4 匿名内部类

没有名字的内部类,通常用于实现接口或抽象类。

interface Message {void send(String msg);
}public class Test {public static void main(String[] args) {Message m = new Message() {  // 匿名内部类@Overridepublic void send(String msg) {System.out.println("发送消息:" + msg);}};m.send("Hello");}
}

十、对象的打印

默认打印对象时输出的是对象的哈希码,可以通过重写toString()方法自定义输出。

public class Person {String name;String gender;int age;public Person(String name, String gender, int age) {this.name = name;this.gender = gender;this.age = age;}@Overridepublic String toString() {return "Person[name=" + name + ", gender=" + gender + ", age=" + age + "]";}public static void main(String[] args) {Person p = new Person("张三", "男", 25);System.out.println(p);  // 输出:Person[name=张三, gender=男, age=25]}
}

总结

本文全面介绍了Java中类和对象的各个方面,包括:

  1. 类的定义和实例化
  2. 成员变量和成员方法
  3. this引用的使用
  4. 构造方法和对象初始化
  5. 封装特性和访问控制
  6. static成员的使用
  7. 各种代码块的作用
  8. 内部类的分类和使用
  9. 对象的打印和toString()方法

掌握这些内容是学习Java面向对象编程的基础,希望本文能帮助大家更好地理解和运用这些概念。在实际开发中,合理使用面向对象的特性可以让代码更加清晰、可维护性更高。

在这里插入图片描述
JavaSE往期专栏

  • Java从入门到“放弃”(精通)之旅——启航①
  • Java从入门到“放弃”(精通)之旅——数据类型与变量②
  • Java从入门到“放弃”(精通)之旅——运算符③
  • Java从入门到“放弃”(精通)之旅——程序逻辑控制④
  • Java从入门到“放弃”(精通)之旅——方法的使用⑤
  • Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥
    在这里插入图片描述

相关文章:

Java从入门到“放弃”(精通)之旅——类和对象全面解析⑦

Java从入门到“放弃”(精通)之旅🚀——类和对象全面解析⑦ 一、面向对象初探 1.1 什么是面向对象? Java是一门纯面向对象的语言(OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想&a…...

无回显RCE

在CTF和实战渗透中,不是每一个命令执行点都有回显,有时我们审了半天代码,却发现好不容易找到的命令执行没有回显,但是这并不代表这段代码不能被我们利用,在无回显的情况下也是可以利用的 首先我们来写一个最简单的php…...

DQN在Gym的MountainCar环境的实现

DQN on MountainCar 引言 在本次实验里,我构建了DQN和Dueling DQN,并在Gymnasium库的MountainCar环境中对它们展开测试。我通过调整训练任务的超参数,同时设计不同的奖励函数及其对应参数,致力于获取更优的训练效果。最后&#…...

typescript判断是否为空

1 判断数据类型 1.1 基础数据类型 比如number,string,boolean,使用typeof,返回值是string类型: 例如: if("number" typeof(item)) {egret.log("item的类型是number"); } else if(&…...

JavaScript forEach介绍(JS forEach、JS for循环)

文章目录 JavaScript forEach 方法全面解析基本概念语法详解参数说明 工作原理与其他循环方法的比较forEach vs for循环forEach vs map 实际应用场景DOM元素批量操作数据处理 性能考量常见陷阱与解决方案无法中断循环异步操作问题 高级技巧链式调用(不使用 forEach …...

C语言之图像文件的属性

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 图像文件属性提取系统设计与实现 目录 设计题目设计内容系统分析总体设计详细设计程序实现…...

Java链表反转方法详解

一、理解链表结构 假设链表节点定义为: class ListNode {int val;ListNode next;ListNode(int x) { val x; } } 二、迭代法反转链表 核心思路 逐步反转每个节点的指针方向,最终使整个链表反向。 步骤拆解 初始化三个指针: prev&#xf…...

lmm-r1开源程序是扩展 OpenRLHF 以支持 LMM RL 训练,用于在多模态任务上重现 DeepSeek-R1

一、软件介绍 文末提供程序和源码下载学习 lmm-r1开源程序是扩展 OpenRLHF 以支持 LMM RL 训练,用于在多模态任务上重现 DeepSeek-R1。 二、简介 小型 3B 大型多模态模型(LMMs)由于参数容量有限以及将视觉感知与逻辑推理相结合的固有复杂性…...

Java学习笔记(数组,方法)

一,数组 1.数组初始化 1.1动态初始化 格式:数据类型[] 数组名 new 数据类型[数组长度]; int[] arr new int[3]; // 定义长度为3的int数组,元素默认值为0 double[] scores new double[5]; // 长度5,元素默认0.0 String[…...

嵌入式---零点漂移(Zero Drift)

一、零点漂移的定义与本质 零点漂移(简称“零漂”)指传感器在输入信号为零(或理论上应输出固定零值)时,输出信号随时间、温度、环境等因素变化而偏离初始零点的现象。 核心特征:无输入时输出非零且缓慢变…...

健身房管理系统设计与实现(springboot+ssm+vue+mysql)含万字详细文档

健身房管理系统设计与实现(springbootssmvuemysql)含万字详细文档 健身房管理系统是一个全面的解决方案,旨在帮助健身房高效管理日常运营。系统主要功能模块包括个人中心、会员管理、员工管理、会员卡管理、会员卡类型管理、教练信息管理、解聘管理、健身项目管理、…...

C语言if

一、题目引入 如果从键盘输入58,则以下程序输出的结果是多少? 二、运行结果 三、题目分析 因为这道题中的多个if是并列结构 所以只要条件满足都会执行 这一题58满足所有的条件 所以可以运行出来 也就是说每个if里面的条件都满足 所以都会打印出来 而下面的这种情况就是 if e…...

XSS学习1之http回顾

1. HTTP的基本结构与工作流程 HTTP是一个请求-响应协议,基于客户端与服务器之间的交互。每次用户通过浏览器请求某个资源时,HTTP协议都会完成一系列的步骤。 HTTP请求: HTTP请求由以下几个部分构成: 请求行: 请求方…...

小迪抓包技术算法加密(6-9天)

抓包技术 https://blog.csdn.net/2301_81015455/article/details/147014382 算法加密入门(了解) 在实际测试中安全性高一些得采用得都是AES等高安全加密,遇到这种,放弃你啥都不知道测个毛啊,所以直接run!!! 大部分解密时碰撞式…...

Tkinter与ttk模块对比:构建现代 Python GUI 的进化之路

在 Python GUI 开发中,标准库 tkinter 及其子模块 ttk(Themed Tkinter)常被同时使用。本文通过功能对比和实际案例,简单介绍这两个模块的核心差异。 1. 区别 Tkinter:Python 标准 GUI 工具包(1994年集成&…...

【数据结构入门训练DAY-18】信息学奥赛一本通T1331-后缀表达式的值

文章目录 前言一、题目二、解题思路总结 前言 本次训练内容: 栈的复习。栈模拟四则运算计算问题的练习。训练解题思维。 一、题目 从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加()、减…...

时序预测 | Transformer-LSTM-SVM时间序列预测(Matlab完整源码和数据,适合基础小白研究)

时序预测 | Transformer-LSTM-SVM时间序列预测(Matlab完整源码和数据,适合基础小白研究) 目录 时序预测 | Transformer-LSTM-SVM时间序列预测(Matlab完整源码和数据,适合基础小白研究)效果一览基本介绍代码…...

【HarmonyOS 5】makeObserved接口详解

【HarmonyOS 5】makeObserved接口详解 一、makeObserved接口是什么? makeObserved 接口(API version 12 起可用)用于将非观察数据转为可观察数据,适用于三方包类、Sendable 装饰的类、JSON.parse 返回的对象、collections.Array…...

色谱图QCPColorMap

一、QCPColorMap 概述 QCPColorMap 是 QCustomPlot 中用于绘制二维颜色图的类,可以将矩阵数据可视化为颜色图(热力图),支持自定义色标和插值方式。 二、主要属性 属性类型描述dataQCPColorMapData存储颜色图数据的对象interpol…...

【数据结构_12】二叉树(4)

一、二叉树的层序遍历 思路:可以按照先序的方式来遍历这个树,递归的时候,给递归方法,加上辅助的参数,level表示当前层数,递归过程中,根据level的值,决定当前整个节点要放到哪个list中…...

HCIA-Datacom高阶:vlan、vlanif、单臂路由、静态路由、ospf综合实验

本实验拓扑图如下:实验包含 AR1、AR2、AR3 路由器,LSW1(三层交换机)、LSW2、LSW3 交换机,以及 PC1-4 和 Server1。AR1 与 LSW2 通过单臂路由连接,AR2 与 AR3、LSW1 构成 OSPF 网络,AR1 与 AR2 间…...

HTTP 1.0 和 2.0 的区别

HTTP 1.0 和 2.0 的核心区别体现在性能优化、协议设计和功能扩展上,以下是具体对比: 一、核心区别对比 特性HTTP 1.0HTTP 2.0连接方式非持久连接(默认每次请求新建 TCP 连接)持久连接(默认保持连接,可复用…...

如何一键批量删除多个 Word 文档中的页眉和页脚

在工作中,许多 Word 文档的页眉页脚中包含公司名称、Logo、电话等信息,用于对外宣传。但有时我们需要批量删除这些页眉页脚信息,尤其当信息有误时,手动逐个删除会增加工作量,导致效率低下。本文将介绍一种便捷的方法&a…...

关于编译树莓派内核系统的总结

1.首先获取官方的内核系统源码: 然后在源码根目录执行命令: 🌟ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- KERNELkernel8 make bcm2712_defconfig (注意这里的是树莓派5的64位的) 🌟ARCHarm CROSS_COM…...

AIGC赋能插画创作:技术解析与代码实战详解

文章目录 一、技术架构深度解析二、代码实战:构建AIGC插画生成器1. 环境配置与依赖安装2. 模型加载与文本提示词构建3. 图像生成与参数调优4. 风格迁移与多模型融合 三、进阶技巧:参数调优与效果增强四、应用场景代码示例1. 游戏角色设计2. 广告海报生成…...

平衡二叉树(leetcode刷题)

题目描述: 给定一个二叉树,判断它是否是 平衡二叉树 (平衡二叉树 是指该树所有节点的左右子树的高度相差不超过 1。) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:true示例 2&#xff1…...

【数据结构 · 初阶】- 带环链表

目录 一.基本结构 二.判断一个单链表带不带环 三.2个问题 1.为什么 slow 走 1 步,fast 走 2 步,他们会相遇,会不会错过?请证明。 2.为什么 slow 走 1 步,fast 走 X 步 ( X > 3 ),他们会相遇&#x…...

ClickHouse简介

OLAP与ClickHouse的定位 OLAP的核心概念 OLTP:服务于高并发、低延迟的短事务操作(如银行转账、订单支付),强调数据的增删改查(CRUD)和事务一致性(ACID)。 OLAP:专注于大…...

强制重装及验证onnxruntime-gpu是否正确工作

#工作记录 我们经常会遇到明明安装了onnxruntime-gpu或onnxruntime后,无法正常使用的情况。 一、强制重新安装 onnxruntime-gpu 及其依赖 # 强制重新安装 onnxruntime-gpu 及其依赖 pip install --force-reinstall --no-cache-dir onnxruntime-gpu1.18.0 --extra…...

分布自定义shell脚本(详写)附带全代码

涉及知识全排列 常见指令 小知识点 操作系统 什么是进程 进程控制 步骤 1:项目准备 在开始编写代码之前,你需要创建一个新的项目文件夹,并在其中创建一个 .cpp 文件,例如 my_shell.cpp。同时,确保你已经安装了 C…...

windows拷贝文件脚本

1、新建脚本文件xxx.bat,名字任意,后缀未.bat即可,将以下内容拷贝进去,修改src和des为自己文件的目录即可。 echo off :: 设置字符集为UTF-8,命令窗口能正确显示中文字符。 chcp 65001 rem 读取当前目录并进入当前目…...

Arduino编译和烧录STM32——基于J-link SWD模式

一、安装Stm32 Arduino支持 在arduino中添加stm32的开发板地址:https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json 安装stm32开发板支持 二、安装STM32CubeProgrammer 从stm32网站中安装:https://ww…...

Java表达式2.0

1 .数据类型转换 自动类型转换的规则 自动类型转换遵循一定的规则,这些规则确保了转换的合理性和安全性。以下是自动类型转换的主要规则: 容量小的类型自动转换为容量大的类型 Java中,数据类型的容量从小到大依次为:byte → shor…...

【概率论,算法】排列的峰值期望

Surtr1 的珂学难题 题目链接:https://ac.nowcoder.com/acm/contest/107965/E 给定一个长度为 n n n 的排列 p p p,排列中任一位置如果满足以下条件,则称该位置为 峰值: 位置 1:若存在元素,满足 p [ 1 ] > p […...

清理C盘组合拳:最高释放空间80GB+

分享一套系统化的C盘清理方案,涵盖从基础清理到深度优化的8个关键步骤,结合安全性与效率,可快速释放5-50GB空间: 一、精准定位空间占用源(必备工具) 空间可视化分析 使用 TreeSize Free 或 WizTree 扫描C…...

容器中的对象切片问题

C 容器(如 std::vector、std::list 等) 通常存储对象的副本,而非指向对象的指针。因此,当与继承结合使用时,可能导致 切片(Object Slicing) 问题,即仅存储基类部分,丢失派…...

SpringBoot编写单元测试

pom.xml引入单元测试的坐标 <!--单元测试坐标--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>编写单元测试类 测试类…...

二、在springboot 中使用 AIService

在上一篇文章中&#xff0c;我们介绍了如何使用langchain4j实现简单的问答功能&#xff0c;本篇文章我们将介绍如何在springboot中使用AIService。 1.实现原理 先看下AiService注解所在的依赖langchain4j-spring-boot-starter中包含什么内容&#xff1a; 1.1 event.AiServi…...

拼多多面经,暑期实习Java一面

项目中的设计模式 mysql连接过程&#xff0c;索引&#xff0c;分库分表场景&#xff0c;路由策略 redis使用场景&#xff0c;分片集群怎么搭建与路由&#xff0c;数据一致性 分布式锁怎么用的&#xff0c;具体使用参数 线程池怎么用的&#xff0c;过程 sql having 分布式事务 如…...

Function calling LLMs 的 MCP:AI开发的双剑合璧

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创AI未来! 🚀 在 MCPs 成为主流(或者像现在这样火得一塌糊涂)之前,大多数 AI …...

数字系统与编码

1. 数字系统&#xff08;Number Systems&#xff09; 1.1 常见数字系统 系统基数符号集示例应用场景二进制20, 11010计算机底层电路、数据存储八进制80-717Unix文件权限&#xff08;如chmod 755&#xff09;十进制100-942日常计算十六进制160-9, A-F0x1F内存地址、颜色编码&a…...

Pytorch实战

1、安装 安装 conda, Python工具大全&#xff0c;方便管理多个 Python 环境&#xff0c;必须选择跟自己环境配套的版本。 https://www.anaconda.com 网速慢的&#xff0c;可以参考国内源&#xff0c;也可以去这里看看&#xff1a; torch PyPI Index of /anaconda/miniconda…...

如何高效利用呼叫中心系统和AI语音机器人

要更好地使用呼叫中心系统和语音机器人&#xff0c;需要结合两者的优势&#xff0c;实现自动化、智能化、高效率的客户服务与业务运营。以下是优化策略和具体实践方法&#xff1a; 一、呼叫中心系统优化 1. 智能路由与IVR优化 智能ACD&#xff08;自动呼叫分配&#xff09; …...

LeetCode[232]用栈实现队列

思路&#xff1a; 一道很简单的题&#xff0c;就是栈是先进后出&#xff0c;队列是先进先出&#xff0c;用两个栈底相互对着&#xff0c;这样一个队列就产生了&#xff0c;右栈为空的情况&#xff0c;左栈栈底就是队首元素&#xff0c;所以我们需要将左栈全部压入右栈&#xff…...

using用法整理

using 的极简新手教程&#xff0c;用最直白的语言和代码解释&#xff1a; 美图美图 一、核心作用&#xff1a;给类型起别名 目的&#xff1a;让复杂类型名变短、变好记。 例子&#xff1a; // 原名&#xff1a;std::vector<std::string> // 起个别名就叫 StringList…...

《猎豹夕阳》

年少时很喜欢的一篇文章&#xff0c;曾和挚友一遍又一遍的记诵&#xff0c;今天又偶然遇到他&#xff0c;转载如下&#xff1a; 我第一次见到它&#xff0c;是在风雪的夜里。我不会抱怨这种天气&#xff0c;因为我是个优秀的登山探险者&#xff0c;我必须在这种天气下工作。我…...

【AI训练环境搭建】在Windows11上搭建WSL2+Ubuntu22.04+Tensorflow+GPU机器学习训练环境

一、安装Ubuntu 拿到该文件Ubuntu-22.04.tar 通过wsl导入该虚拟机镜像&#xff0c;然后查看wsl虚拟机列表。 wsl --import Ubuntu-22.04-tensorflow D:\wsl-data\Ubuntu-22.04-tensorflow D:\wsl-data\temp\Ubuntu-22.04.tarwsl -l 进入虚拟机 wsl -d Ubuntu-22.04-tensorfl…...

如何轻松实现用户充值系统的API自动化测试

在现代软件开发中&#xff0c;API&#xff08;应用程序编程接口&#xff09;作为连接不同系统和模块的关键组件&#xff0c;其重要性日益凸显。随着软件应用的互联性不断增强&#xff0c;API的数量和复杂度也在不断增加。传统的API测试方法面临着诸多挑战&#xff1a; 1.手动测…...

Python 一等函数( 高阶函数)

高阶函数 接受函数为参数&#xff0c;或者把函数作为结果返回的函数是高阶函数&#xff08;higherorder function&#xff09;。map 函数就是一例&#xff0c;如示例 5-2 所示。此外&#xff0c;内置函 数 sorted 也是&#xff1a;可选的 key 参数用于提供一个函数&#xff0c…...

用于手部康复设备的TinyML语音分类嵌入式人工智能模块

论文标题 英文标题&#xff1a;TinyML Speech Classification Embedded AI Module for Hand Rehabilitation Device 中文标题&#xff1a;用于手部康复设备的 TinyML 语音分类嵌入式人工智能模块 作者信息 Arkorn Numsomran&#xff1a;Triam Udom Suksa Pattanakarn Suvarna…...