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

java语言学习(5)

第九章

目录

  • 类变量和类方法

  • 理解main方法语法

  • 代码块

  • 单列设计模式

  • final关键字

  • 抽象类

  • 接口

类变量/静态变量

该变量最大的特点就是会被本类的所有对象实例共享,类变量可以通过类名来访问

分析代码,探讨内存的分配

    class Child{private String name;public static int count = 0;//这个叫类变量或者叫静态变量public Child(String name){this.name = name;}public void join(){System.out.println(name+"加入了游戏");}}

在jbk8之前,我们认为是放在静态域里面的。

在jbk8之后,我们认为是放在堆里的。

在这里插入图片描述

不管static变量在哪里

  • static变量是同一个类所有对象共享

  • static类变量,在类加载时候就生成了

定义:类变量也叫静态变量/静态数学,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,统一任何一个该类的对象去修改它时,修改的也是同一个变量

语法

访问修饰符 static 数据类型 变量名; 【推荐】

static 访问内修饰符 数据类型 变量名;

访问

类名.类变量名 【推荐】

对象名.类变量名

【静态变量的访问修饰符的访问权限和范围和普通属性是一样的】

类变量细节

  • 当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量),比如:定义学生类,统计所有学生共交多少钱

  • 类变量是该类的所有对象共享的,而实例变量是每个对象独享的

  • 加上static称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量

  • 类变量可以通过类名.类变量名 或者 对象名.类变量名 来访问,但java设计者推荐我们使用 类名.类变量名方式访问。【前提,满足访问修饰符的访问权限和范围】

  • 实例变量不能通过 类名.类变量名 方式访问

  • 类变量是在加载时就初始化了,也就是说,即使你没有创建对象,只要类加载了,就可以使用类变量了

  • 类变量的生命周期是随类的加载开始,随着类消亡而销毁

注:静态变量是类加载的时候,就创建了,所以我们没有创建对象实例,也可以通过类名.类变量名来访问

类方法/静态方法

语法

访问修饰符 static 数据返回类型 方法名(){} 【推荐】

static 访问修饰符 数据返回类型 方法名(){}

调用

类名.类方法名

对象名.类方法名

说明

当方法使用了static修饰后,该方法就是静态方法

静态方法可以访问静态属性/变量

类方法的使用场景

  • 当方法中不涉及到任何和对象相关的成员,则可以将方法设计成静态方法,提高开发效率

  • 比如根据类中的方法utils

    • Math类

    • Arrays类

    • Collections集合类

  • 如果我们不希望创建实例,也可以调用某个方法(即当作工具来使用),这时把方法做成静态方法非常合适

小结:程序员实际开发,往往会将一些通用的方法,设计成静态方法,这样我们不需要创建对象就可以使用了,比如打印一维数组冒泡排序,完成某个计算任务…

类变量和类方法 注意事项

  • 类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区

    • 类方法中无this的参数

    • 普通方法中隐含着this的参数

  • 类方法中只能访问静态变量 或静态方法

  • 类方法可以通过类名调用,也可以通过对象名调用

  • 普通方法和对象有关,需要通过对象名来调用

理解main方法语法

  • main方法是虚拟机调用

  • java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public

  • java虚拟机在执行main()方法是不必创建对象,所以该方法必须是static

  • 该方法解释String类型的数组参数,该数组中保存执行java命令时传递给所允许的类的参数

特别提醒

  • 在main()方法中,我们可以直接调用main方法所在类的静态方法或静态属性

  • 但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员

代码块

定义:代码块又称为初始化块,属于类中的成员(是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过{}包围起来

与方法的差别:没有方法名,没有返回,没有参数,只有方法体,而且不能通过对象或类现实调用,而创建对象时隐式调用

基本语法

修饰符{

代码

};

说明

  • 修饰符可选,要写的话,自能写static

  • 代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块/非静态代码块

  • 逻辑语句可以为任何逻辑语句(输入,输出,方法调用,循环,判断)

  • ;好可写,可不写

理解

  • 相当于另外一种形式的构造器(对构造器的补充机制),可以做初始化的操作

  • 场景:如果多个构造器都要重复语句,可以抽取到初始化块中,提高代码的重用性

  • 不管调用哪个构造器,创建对象,都会先调用代码块的内容

细节1

  • static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象就会执行一次

  • 类声明时候被加载

    • 创建对象实例时(new)

    • 创建子类对象实例,父类也会被加载

    • 使用类的静态成员时(静态属性,静态方法)

  • 普通的代码块,在创建对象实例时,会被隐式调用,被创建一次,就会调用一次。如果只是使用的类的静态成员时,普通代码块并不会执行

小结:

  1. static代码块是类加载时执行,所以只会执行一次

  2. 普通代码块时在创建对象时调用的,创建一次,调用一次

  3. 类加载的3种情况,需要记住

细节2(调用顺序)

  • 调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码和多个静态变量初始化,则按他们定义的顺序调用)

  • 调用普通代码块和普通属性的初始化(注意:普通代码块和普通属性初始化的第哦啊用优先级一样,如果有多个普通代码块和多个普通属性初始化,则按定义顺序调用)

  • 调用构造方法

小结:静态 > 普通 > 构造

细节3(构造器)

  • 构造器的最前面其实隐含了 super() 和 调用普通代码块
    class A{public A(){//这里有隐藏执行要求//(1)super//(2)调用普通代码块//(3)执行构造器}}

细节4(继承关系)

  1. 父类的静态代码块和静态属性(优先级一样,按定义顺序执行)

  2. 子类的静态代码块和静态属性(优先级一样,按定义顺序执行)

  3. 父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)

  4. 父类的构造器

  5. 子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)

  6. 子类的构造器

单例设计模式

设计模式:是在大量的实践种总结和理论化之后的优选代码结构,编程风格,以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索

单例模式:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法

  • 单例模式

    • 饿汉式

      • 构造器私有化,防止直接new

      • 类的内部创建对象

      • 向外暴露一个静态的公共方法

      class GirlFriend{private String name;//单例模式----饿汉式//1.将构造器私有化//2.在类的内部直接创建对象(该对象是static)//3.提供一个公共的static方法,返回gf对象private static GrilFriend gf = new GirlFriend("好人");private GrilFriend(String name){this.name = name;}public static Grilfriend getInstance(){return gf;}}//饿汉式创建的对象一般是重量级对象//饿汉式创建了对象,可能会使用不到
  • 懒汉式

    • 构造器私有化

    • 定义一个static静态属性对象

    • 提供一个public的static方法,可以返回一个Cat对象

    • 懒汉式,只有当用户使用getInstance时,才返回cat对象,面对再次调用时,会返回上次创建的cat对象,从而保持了单例

      class Cat{private Cat(String name){this.name = name;}public static Cat getInstance(){if(cat == null){cat = new Cat("好人");}return cat;}}

饿汉式和懒汉式之间的区别

  • 二者最主要的区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例,而懒汉式是在使用时才创建

  • 饿汉式不存在线程安全问题,懒汉式存在线程安全问题。

  • 饿汉式存在浪费资源的可能。因为如果程序员一个对象实例都没有使用,那么饿汉式创建的对象就浪费了,懒汉式是使用时才创建,就不存在这个问题

  • 在我们javaSE标准类中,Java.lang.Runtime就是经典的单例模式

final关键字

final可以修饰类,属性,方法,局部变量。

使用final的情况

  • 当不希望类被继承时,可以用final修饰

  • 当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰

  • 放不希望类的某个属性的值被修改,可以用final修饰

  • 当不希望某个局部变量被修改,可以使用final修饰

细节

  • final修饰的属性又叫常量,一般用 XX_XX来命名

  • final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一

    • 定义时

    • 在构造器中

    • 在代码块中

  • 如果final修饰的属性是静态的,则初始化的位置只能是

    • 定义时

    • 在静态代码块

    • 注:不能在构造器中赋值

  • final类不能继承,但是可以实例化对象

  • 如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承

  • 一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法

  • final不能修饰构造方法(构造器)

  • final和static往往搭配使用,效率更高,底层编译器做了优化处理。(不会做类的加载)

  • 包装类(Integer,Double,Float,Boolean等都是final),String也是final类

    //例题
    public class Something{
    public int addOne(final int x){
    ++x;//错误的写法
    return x+1; //正确
    }
    }

抽象类

用法:当父类的某些方法,需要声明,但是于不确定如何实现时,可以将器声明为抽象方法,那么这个类就是抽象类

  • 所谓的抽象方法,就是没有实现的方法(没有方法体)

  • 当一个类中存在抽象方法时,需要将该类声明为抽象类

  • 一般来说,抽象类会被继承,由其子类来实现

介绍

  • 用abstract 关键字来修饰一个类时,这个类就叫抽象类

    • 访问修饰符 abstract 类名{}
  • 用abstract关键字来修饰一个方法时,这个方法就是抽象方法

    • 访问修饰符 abstract 返回类型 方法名(参数列表);

    • 没有方法体

  • 抽象类的价值更多资源是终于设计,是这记者设计好后,让子类继承并实现抽象类()

  • 抽象类,是考官比较爱问的知识点,在框架和设计模式使用较多

细节

  • 抽象类不能被实例化

  • 抽象类不一定要包含abstract方法,也就是说,抽象类可以没有abstract方法

  • 一旦类包含了abstract 方法,则这个类必须声明为abstract

  • abstract 只能修饰类和方法,不能修饰属性和其他的

  • 抽象类可以于任意成员【抽象类还是类】,比如:非抽象方法,构造器,静态属性…

  • 抽象方法不能有主体

  • 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类

  • 抽象方法不能使用private,final,static来修饰,因为这些关键子都是和重写相违背的

抽象类最佳实践-----模板设计模式

需求

  • 有多个类,完成不同的任务job

  • 要求能过得到各自完成任务的时间

补充知识:得到时间函数

long start System.currentIimeMillis();....long end System.currentIimeMillis();System.out.println(end - start)

模板设计如下

    public class data01 {public static void main(String[] args) {worker worker = new worker();worker.Time();}}abstract class Tool{public abstract void job();public void Time(){long time = System.currentTimeMillis();job();long time2 = System.currentTimeMillis();System.out.println("工作时间为" + (time2 - time));}}class worker extends Tool{public void job(){long all = 0;for (int i = 0; i < 1000; i++) {for (int j = 0; j < 1000; j++) {all++;}}System.out.println(all);}}

接口

介绍:接口就是给出一些没有实现的方法,封装到一起,到某个类要使用时候,在根据具体情况把这些方法写出来,语法如下

    public interface 接口名{//属性//方法}//在接口中,抽象方法可以省略abstruse关键字class 类名 implements 接口{自己的属性自己的方法必须实现的接口的抽象方法}//如果一个类implements 实现接口//需要将该接口的所有抽象方法都实现
  • 在Jdk 7 前 接口里的所有方法都没有方法体,即都是抽象方法

  • jdk8 后接口可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现。实现默认方法时需要使用default关键字修饰。

    //接口的实现public class data01 {public static void main(String[] args) {Dog dog = new Dog();Dog.text(dog);}}interface Too{public void speak();public void cry();}class Dog implements Too {public void speak(){System.out.println("Dog!");}public void cry(){System.out.println("汪汪汪汪!!!");}public static void text(Too too){too.speak();too.cry();}}

细节

  • 接口不能被实例化

  • 接口中使用的方法哦都是public方法,接口中抽象方法,可以不用abstract修饰

  • 一个普通类实现接口,就必须将该接口的所有方法都实现

  • 抽象类实现接口,可以不用实现接口的方法

  • 一个类同时可以实现多个接口

    • class Pig implements IB,IC{}
  • 接口中的属性,只能是final的,而且是public,static,final 修饰符

    • int a = 1;

    • 实际上是 public static final int a = 1;(必须初始化)

  • 接口中属性的访问形式:接口名.属性名

  • 一个接口不能继承其他的类,但是可以继承多个别的接口

    • interface A extends B,C{}
  • 接口的修饰符只能是public 和默认,这点和类的修饰符是一样的

例题

interface A{int a =23;
}
class B implements A{}//在main中B b = new B();
//b.a -----> 23
//A.a -----> 23
//B.a -----> 23

接口与继承类

小结:当之类继承了父类,就自动的拥有父类的功能。如果子类需要扩展功能,可以通过实现接口的方式扩展。

可以理解为 实现接口 是对java 单继承机制的一种补充

    //体会接口对于单继承机制的补充作用public class data01 {public static void main(String[] args) {LittleMonkey littleMonkey = new LittleMonkey(12, "大王");littleMonkey.swim();littleMonkey.play();}}interface Fish{void swim();}class Monkey{int age;String name;public Monkey(int age, String name) {this.age = age;this.name = name;}public void play(){System.out.println("Monkey played!");}}class LittleMonkey extends Monkey implements Fish{public LittleMonkey(int age, String name) {super(age, name);}public void swim(){System.out.println("LittleMonkey  can swim!");}}

继承的价值主要在于:解决代码的复用性和可维护性。

接口的价值主要在于:设计,设计好各种规范(方法),让其他类去实现这些方法,更加灵活

接口比继承更加灵活,继承是满足 is - a 的关系,而接口只满足 like - a 的关系

接口在一定程度上实现代码的解耦【接口的规范性+动态绑定】…后面会提及

接口的多态

  • 多态参数
//多态参数的实现public class data01 {public static void main(String[] args) {Phone phone = new Phone();Camera camera = new Camera();Tool.tool(camera);Tool.tool(phone);}
}interface USB{v}oid open();void close();
}class Phone implements USB{@Overridepublic void open() {System.out.println("手机连上了USB");}@Overridepublic void close() {System.out.println("手机连接断开");}
}class Camera implements USB{@Overridepublic void open() {System.out.println("相机连接");}@Overridepublic void close() {System.out.println("相机断开");}
}class Tool{public static void tool(USB usb){usb.open();usb.close();}
}
//数组存放也可以
  • 多态传递

相关文章:

java语言学习(5)

第九章 目录 类变量和类方法 理解main方法语法 代码块 单列设计模式 final关键字 抽象类 接口 类变量/静态变量 该变量最大的特点就是会被本类的所有对象实例共享&#xff0c;类变量可以通过类名来访问 分析代码&#xff0c;探讨内存的分配 class Child{private Str…...

基于SSM框架点餐管理系统(计算机毕业设计)论文,Java

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系统…...

独家首发 | 基于 KAN、KAN卷积的轴承故障诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…...

nginx-proxy-manager初次登录502 bad gateway

nginx-proxy-manager初次登录502 bad gateway 按照官方docker-compose安装后,页面如下: 默认账户密码: adminexample.com/changeme点击sign in,提示Bad Gateway 打开调试 重装后依然如此,最后查阅githup issue 找到答案 https://github.com/NginxProxyManager/nginx-proxy-…...

棋牌项目Go的日志打印问题

棋牌项目Go的日志打印问题 项目使用 go work 管理模块 github.com/spf13/viper 通过 application.yml 加载配置 $ tree . ├── README.md ├── common │ ├── application.yml │ ├── config │ │ └── config.go │ ├── go.mod │ ├── go.su…...

基于SpringBoot校园台球厅人员与设备管理系统设计与实现

1.1课题背景与意义 在Internet高速发展的今天&#xff0c;计算机的应用几乎完全覆盖我们生活的各个领域&#xff0c;互联网在经济&#xff0c;生活等方面有着举足轻重的地位&#xff0c;成为人们资源共享&#xff0c;信息快速传递的重要渠道。在中国&#xff0c;网上管理的兴起…...

样品前处理工作站自动化操作

样品前处理工作站通过集成多种技术和自动化模块&#xff0c;实现了对样品的高效、精准处理。以下是实现自动化操作的关键步骤和原理&#xff1a; 1、集成多种技术&#xff1a;工作站通常集成了液体处理、固相萃取、离心、过滤等多种技术。这些技术的结合使得工作站能够完成从样…...

在 Vue 3 中实现点击按钮后禁止浏览器前进或后退

在 Vue 3 中实现点击按钮后禁止浏览器前进或后退&#xff0c;我们可以通过 ref 和 watch 来管理状态&#xff0c;同时使用 onBeforeUnmount 来清理事件监听。 使用 Vue 3 实现&#xff1a; <template><div><button click"disableNavigation">点击…...

【Redis集群】使用docker compose创建docker集群,并暴露外部接口

使用 Docker Compose 创建一个 Redis 集群并暴露外部接口需要配置 docker-compose.yml 文件。以下是一个基本的步骤&#xff0c;包括 Redis 集群的创建和外部接口的暴露。 1、创建 docker-compose.yml 首先&#xff0c;您需要创建一个 docker-compose.yml 文件&#xff0c;配…...

RabbitMq 基础

文章目录 一、初识 MQ1.1 同步调用&#xff1a;1.2 异步调用&#xff1a; 二、RabbitMQ三、SpringAMQP3.1 依赖和配置文件3.2 消息发送和接收&#xff1a;3.2.1 消息发送&#xff1a;3.2.2 消息接收&#xff1a; 3.3 WorkQueues 模型&#xff1a;3.4 交换机类型&#xff1a;3.4…...

类文件结构详解

一、引言 Java 类文件是 Java 虚拟机执行的基本单元。它包含了 Java 程序的字节码以及其他重要的元数据信息。了解类文件结构可以帮助我们更好地理解 Java 程序的编译过程、运行机制以及如何进行优化。 二、类文件结构概述 Java 类文件采用一种紧凑的二进制格式&#xff0c;主…...

01_Linux

一.Linux简介 1.1 Linux介绍 Linux是一套免费使用和自由传播的操作系统。说到操作系 统&#xff0c;大家比较熟知的应该就是Windows和MacOS操作系统&#xff0c; 我们今天所学习的Linux也是一款操作系统 1.2 Linux发展历史 时间&#xff1a;1991年 地点&#xff1a;芬兰赫尔…...

区块链与AI结合:驱动Web3的未来发展

Web3作为下一代互联网的核心理念&#xff0c;强调去中心化、用户主权和透明性。而区块链技术和人工智能&#xff08;AI&#xff09;则是推动Web3发展的两大关键力量。两者的结合不仅为Web3带来了新的可能性&#xff0c;还推动了智能化、透明化、自治化等特点的实现。本文将探讨…...

如何解决 docker 容器中 “-bash: ping: command not found” 错误 ?

在 Docker 的世界里&#xff0c;遇到错误是学习曲线的一部分&#xff0c;其中一个常见的错误是&#xff1a; -bash: ping: command not found。当您在 Docker 容器中尝试使用 ping 命令来测试与其他网络机器或服务的连接&#xff0c;但该命令在您的容器环境中不可用时&#xff…...

Leetcode 每日一题 242.有效的字母异位词

目录 问题描述 示例 题目要求 解决方案 算法思路 过题图片 代码实现 算法分析 优化思路 优化后的代码实现 优化后的算法分析 题目链接 问题描述 给定两个字符串 s 和 t&#xff0c;我们需要编写一个函数来判断 t 是否是 s 的字母异位词。字母异位词指的是两个字符串…...

centos7搭建FTP详细讲解

文章目录 1、ftp服务1、工作原理2、工作模式3、身份验证模式4、ftp服务器配置5、ftp客户端操作 1、ftp服务 1、工作原理 ![img](https://img2023.cnblogs.com/blog/3210480/202412/ 3210480-20241208224333047-141845069.png) 是一个cs架构 2个通道&#xff0c;21端口为控制…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-build.py

build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...

JAVA-动态代理

文章目录 概要两种主要方式JDK 动态代理Proxy 类作用&#xff1a;常用方法&#xff1a; InvocationHandler 接口作用&#xff1a; 目标对象、代理对象、被代理对象JDK 动态代理工作原理 cjlib 动态代理demo 对比 概要 Java 动态代理利用 Java 的反射机制&#xff0c;可以在运行…...

【前端】React_Next.js

定期更新&#xff0c;建议关注、收藏&#xff01; 安装 要使用react的框架&#xff0c;都应当安装node.js conda install nodejs选择Next.js 并创建项目 npx create-next-applatest可以看到目录结构生成如下 作为网页中的一个子路由 想让其嵌入已经写好的项目中&#xf…...

深入理解malloc与vector:内存管理的对比

引言‌ 在编程中&#xff0c;内存管理是一个至关重要的环节。无论是C语言中的malloc函数&#xff0c;还是C标准库中的vector容器&#xff0c;它们都在内存分配和释放上扮演着关键角色。然而&#xff0c;它们的设计理念和用法有着显著的不同。本文将深入探讨malloc和vector的区…...

LeetCode题练习与总结:四数相加 Ⅱ --454

一、题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;n…...

AI绘画设计实战-Day1

AI绘画变现方向&#xff1a; 生成猫咪拟人化&#xff1b;老照片修复&#xff1b;生成奇幻场景&#xff0c;换上客户的脸&#xff1b;生成商品详情模特图&#xff1b;商品宣传图&#xff1b;建筑/室内设计方案&#xff1b; AI视频-变现方向&#xff1a; AI跳舞视频&#xff…...

【Windows】ImmGetContext函数不适合跨进程工作

1. 教授回复 ChatGPT-o1: ImmGetContext() is not designed to work across process boundaries. It is indicates that a thread should not access the input context created by another thread, which implies that the function is intended for use within the same proc…...

【Linux】进程间通信——System V共享内存

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…...

fastAPI快速使用

1. 安装: pip install fastapi 并且安装uvicorn来作为服务器&#xff1a; pip install uvicorn 最简单的 FastAPI 文件可能像下面这样&#xff1a; # main.pyfrom fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message&qu…...

ruoyi前后端不分离创建module

ruoyi创建module 1.创建表 2.在若依中创建module 3.注意选择maven 4.命名 5&#xff0e;把module加入到rouyi的pom.xml中 6.student 中加入common依赖 二.生成代码 2.1先创建目录 2&#xff0e;2导入创建的表 2.3 注意各种配置 2.4预览代码 2.5 生成代码 2.6…...

【AI日记】24.12.08 kaggle 比赛 Titanic-11

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容&#xff1a; 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习&#xff08;pandas&#xff0c;numpy&#xff0c;sklearn&#xff0c;seaborn&#xff0c;matplotlib&a…...

处理后端返回的时间格式问题

今天在做项目的时候&#xff0c;发现后端返回的时间格式是“2024-12-08T06:11:46.00000:00”。 通过查阅资料&#xff0c;我发现这是后端返回的ISO 8601标准时间格式。这种格式在前端展示时可能不符合用户习惯&#xff0c;需要转换为更常见的“yyyy-MM-dd HH:mm:ss”格式&…...

【读书笔记·VLSI电路设计方法解密】问题33:ASIC芯片构建的主要步骤是什么

如问题32所述,ASIC芯片构建的主要步骤包括:RTL编写、功能验证、逻辑综合、布局布线、最终逻辑验证、时序验证、物理验证以及流片(Tapeout)。 RTL编写(RTL Coding) 这一阶段将设计意图从自然语言(如英文或中文)翻译为计算机可模拟的语言,以便进行仿真验证设计意图。此外…...

[机器学习] 监督学习之线性回归与逻辑回归

这里写目录标题 一、监督学习概述二、线性回归&#xff08;一&#xff09;模型表示&#xff08;二&#xff09;损失函数&#xff08;三&#xff09;梯度下降算法导入所需库生成模拟数据&#xff08;可替换为真实数据&#xff09;初始化参数并进行训练可视化损失函数随迭代次数的…...

十五、全局搜索正则表达式

一.grep简介 grep 全程Globally search a Regular Expression and Print&#xff0c;是一种强大的文本搜索工具&#xff0c;它能使用特 定模式匹配&#xff08;包括正则表达式&#xff09;搜索文本&#xff0c;并默认输出匹配行。Unix的grep家族包括grep和egrep 二.grep的工作…...

kali Linux 安装配置教程(图文详解)

目录 一、下载安装VMware二、下载kali镜像三、安装kali到虚拟机 一、下载安装VMware 点我查看 二、下载kali镜像 官网下载&#xff1a;https://www.kali.org/get-kali/#kali-platforms 演示下载的为下图左边的&#xff0c;实际我们直接下载右侧虚拟机的直接使用就行 右侧下…...

QT QTableWidget::setModel”: 无法访问 private成员

//严重性代码说明项目文件行禁止显示状态 //错误C2248 “QTableWidget::setModel”: 无法访问 private 成员(在“QTableWidget”类中声明) QSqlQueryModel* sql_model; ui.tableView_database->setModel(sql_model); //ok ui.tableWidget_database->setModel(sql_model)…...

C#怎么判断电脑是否联网

在 C# 中&#xff0c;可以通过几种方法检测计算机是否联网。以下是几种常用的方式&#xff1a; 1. 使用 System.Net.NetworkInformation.Ping 类 通过发送一个 Ping 请求到公共 DNS 服务器&#xff08;如 Google 的 DNS 8.8.8.8&#xff09;来检测是否联网。这是最常见的一种…...

丢垃圾视频时间检测 -- 基于状态机的实现

文章目录 OverviewKey PointsPseudo-code Overview 需要考虑的方面 状态定义和转换条件时序约束空间约束异常处理 状态机的设计需要考虑的场景&#xff1a; 没有人人进入人携带垃圾人离开但垃圾留下垃圾消失异常情况&#xff08;检测失败、多人多垃圾等&#xff09; Key P…...

EEG2Rep自监督脑电大模型文献阅读

原文网址&#xff1a; EEG2Rep: Enhancing Self-supervised EEG Representation... - Google 学术搜索https://scholar.google.com/scholar?hlzh-CN&as_sdt0%2C5&qEEG2Rep%3AEnhancingSelf-supervisedEEGRepresentationThroughInformativeMaskedInputs&btnG 1.文…...

【前端知识】React简单入门

React语法介绍 概述一、产生背景与发展历程二、主要特点三、技术细节四、应用场景与优势五、学习与实践 JSX语法一、JSX的基本概念二、JSX的基本使用三、JSX中的JavaScript表达式四、JSX的条件渲染五、JSX的列表渲染六、JSX的样式处理七、JSX的其他注意事项 基础语法一、基础概…...

高通---Camera调试流程及常见问题分析

文章目录 一、概述二、Camera配置的整体流程三、Camera的代码架构图四、Camera数据流的传递五、camera debug FAQ 一、概述 在调试camera过程中&#xff0c;经常会遇到各种状况&#xff0c;本篇文章对camera调试的流程进行梳理。对常见问题的提供一些解题思路。 二、Camera配…...

电压电流声音信号采集与分析系统

基于Labview的电压电流与声音信号采集与分析系统可以同时采集&#xff1a;电压、电流与振动信号。该系统部件可以采集传感器的真实数据&#xff0c;而且可以对采集的信号进行时域与频域分析&#xff0c;并可以实时显示历史数据&#xff0c;保存历史数据。具体的功能如下&#x…...

MongoDB语法及MongoTemplate用法

文章目录 概念操作数据库语法数据库及文档操作文档操作 整合springboot的MongoTemplate用法springboot配置插入删除更新查询 概念 1.MongoDB 是一个文档数据库&#xff0c;数据以 BSON 方式存储&#xff08;类似于json&#xff09; 2.文档&#xff08;Document&#xff09;&am…...

【git reset】本地下载特定历史提交哈希值的github文件【未联网服务器】进行git reset操作

本地电脑下载git文件&#xff0c;并进行git reset操作 问题描述&#xff1a;解决方法&#xff1a;方法1&#xff1a;直接下载特定版本的github压缩包。方法二&#xff1a; 在本地windows电脑上安装git工具进行git reset版本回退&#xff0c;之后上传相应版本的压缩包到服务器上…...

【开源安全保护】如何安装JumpServer堡垒机

【开源安全保护】如何安装JumpServer堡垒机 什么是堡垒机 大家好&#xff0c;我是星哥&#xff0c;今天我以前来认识堡垒机 堡垒机&#xff08;Bastion Host&#xff09;&#xff0c;也称为跳板机&#xff08;Jump Server&#xff09;&#xff0c;是指在计算机网络中&#x…...

log4j漏洞复现--vulhub靶场

声明&#xff1a;学习过程参考了同站的B1g0rang大佬的文章 Web网络安全-----Log4j高危漏洞原理及修复(B1g0rang) CVE-2021-44228 RCE漏洞 Log4j 即 log for java(java的日志) &#xff0c;是Apache的一个开源项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输…...

K8s面试系列:K8s常用 API 资源总结速记

写在前面 博文内容为 K8s 中常用的API 资源简单总结适合对K8s 有基本认知,温习,面试准备的小伙伴内容涉及:API 资源组成 ,SSA 和 CSA 资源操作方式,以及下面资源类别简单描述 工作负载:Deployments,StatefulSets,HorizontalPodAutoscaler (HPA)…服务: Service,Ingress,E…...

汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动

故障现象 一辆2007款宝马650i车&#xff0c;搭载N62B48B发动机&#xff0c;累计行驶里程约为26万km。车主反映&#xff0c;发动机偶尔无法起动&#xff0c;故障频率较低&#xff0c;十几天出现1 次&#xff0c;且故障出现时起动机不工作。 故障诊断  接车后试车&#xff0c;…...

前端(三)html标签(2)

html标签(2) 文章目录 html标签(2)一、列表标签二、表格三、form表单 一、列表标签 html中的列表分为无序列表、有序列表和自定义列表。 <!--无序列表的使用--> <!--pycharm中可以用ul>li*3tab的快捷键快速生成无序列表--> <ul><li>秒杀</li&g…...

D91【python 接口自动化学习】- pytest基础用法

day91 pytest的setup&#xff0c;setdown详解&#xff08;三&#xff09; 学习日期&#xff1a;20241207 学习目标&#xff1a;pytest基础用法 -- pytest的setup&#xff0c;setdown详解&#xff08;三&#xff09; 学习笔记&#xff1a; setup、teardown详解&#xff08;三…...

云桌面:云计算桌面

目录 云桌面的定义和核心概念 技术架构详解 主流架构详解 管理成本分析 安全性措施 应用场景详解 云桌面的定义和核心概念 云桌面是一种通过云计算技术提供的虚拟桌面服务&#xff0c;它允许用户通过网络访问远程服务器上的虚拟机&#xff0c;这些虚拟机为用户提供了一个…...

Word处理表格的一些宏

目录 1、表格首行居中2、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…...

Linux网络编程---本地套接字

1.概述 本地套接字 1&#xff1a;作用:本地的进程间通信 2.有关系的进程间通信 3.没有关系的进程间的通信 本地套结字实现流程和网络套结字实现相似&#xff0c;一般采用tcp 二.通信流程 本地套结字通信的流程:1.服务器端:1.1 int fd socket(AF_UNIX/AF_LOCAL,…...