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

八股文-基础知识-面试题汇总(一)

面向对象和面向过程的区别?

面向对象和面向过程是两种不同的编程范式,它们在设计和实现软件时有着不同的理念和方法。面向对象更适合大型、复杂的项目,尤其是需要维护和扩展的系统;而面向过程更适合小型、线性的任务或对性能要求较高的情况。下面是两者的主要区别:

面向对象编程

数据封装:数据和操作数据的函数被封装在类中,形成对象。这种封装隐藏了数据的具体实现细节,只暴露出必要的接口供外部调用。
继承性:允许创建类的层次结构,子类可以继承父类的属性和方法,这有助于代码的复用和模块化。
多态性:同一个接口或方法名可以有多种实现方式,具体实现取决于调用它的对象类型。这增加了代码的灵活性和扩展性。
抽象:提供抽象类和接口,允许定义行为的规范而不提供具体的实现,从而支持更高级别的设计。
强调对象:关注于对象之间的交互,每个对象都有自己的状态和行为,通过消息传递来实现功能。

面向过程编程

数据与函数分离:数据和处理数据的过程通常是分开的,没有像 OOP 那样严格的封装。
流程控制:面向过程的编程更侧重于算法和步骤的顺序执行,通常使用函数(或子程序)来组织代码,但这些函数并不一定绑定到特定的数据上。
简单和直接:对于简单的任务,面向过程的编程可能更为直观和容易理解,因为它直接描述了问题的解决步骤。
不支持继承和多态:语言通常不支持继承和多态这样的概念,虽然可以通过其他方式(如函数重载)实现类似的效果。

Java 语言有哪些特点?

简单性:Java 的设计目的是使语言简单且易于学习。自动的垃圾回收机制,减少了程序员对内存管理的负担。
跨平台性:Java 代码被编译成字节码,由 Java 虚拟机(JVM)解释执行,实现“一次编写,到处运行”的理念。
面向对象:Java 是一种纯面向对象的语言,支持封装、继承和多态。
安全性:Java 通过严格的类型检查、禁止指针访问、代码验证等机制提高了安全性。
多线程:Java 内置了对多线程的支持,允许多个线程并发执行,提高了程序的响应性和资源利用率。
动态性:Java 支持运行时动态加载类和动态链接,使得代码可以在运行时进行修改和扩展。
健壮性:Java 的异常处理机制帮助开发者捕获和处理运行时错误,增强程序的稳定性和可靠性。
支持网络编程:Java 提供了丰富的网络通信库,如 Socket 编程,支持网络应用的开发。
编译和解释性:Java 源代码被编译成字节码,由 JVM 解释执行或通过即时编译器(JIT)转换为本地代码。

JVM JDK 和 JRE 有什么区别?

JVM

JVM 是一个虚拟机,用于执行 Java 字节码。它是一个抽象的计算机,提供了运行 Java 程序所需的基本运行环境,包括: 字节码解释器:读取并解释执行 Java 字节码。 垃圾回收器:自动管理内存,回收不再使用的对象所占用的空间。 安全管理器:确保运行中的应用程序不会违反安全策略。 JIT 编译器:将频繁执行的字节码编译成本地机器代码,以提高运行效率。

JRE

JRE 包含了 JVM 和运行 Java 程序所需的类库,是运行 Java 应用程序的基础。当你想要在一台计算机上运行 Java 程序时,只需要安装 JRE 即可。JRE 不包含开发工具,因此无法用来编译 Java 源代码。

JDK

JDK 是完整的 Java 软件开发工具包,它包含了 JRE 和额外的开发工具,例如: Java 编译器(javac):用于将 Java 源代码编译成字节码。 Java 调试器(jdb):用于调试 Java 程序。 文档生成工具(javadoc):用于从源代码注释中生成 API 文档。 打包工具(jar、zip):用于创建和管理 Java 归档文件。 其他工具:如 java、javap(反汇编器)、jps(进程状态工具)等

Java 面向对象编程三大特性: 封装 继承 多态

封装

封装是将数据(变量)和操作数据的方法(函数)组合在一个单独的单元(类)中,并对外部隐藏对象的内部状态和实现细节。封装的好处在于:
隐藏内部实现:通过设置访问修饰符(如 private、protected 和 public),可以控制哪些成员变量和方法对外界可见,哪些不可见。
增强安全性:封装保护了数据不受外部非法访问和修改,通过提供公共的 getter 和 setter 方法,可以对外部访问施加控制。
简化接口:封装后的类提供了一个清晰的接口,外界仅需关注如何使用类提供的方法,而无需关心其实现细节。

继承

继承允许创建新类(子类)继承现有类(父类)的属性和方法,从而促进代码的重用和扩展。继承的好处包括:
代码重用:子类可以直接使用父类的成员变量和方法,避免了重复编写相同的代码。
层级关系:继承可以建立类之间的层级关系,使得代码结构更加清晰,易于理解和维护。
多态性基础:继承为多态性奠定了基础,因为子类对象可以被视为父类对象。

多态

多态是指一个接口或方法名可以有多种实现方式,具体实现取决于调用它的对象类型。多态分为静态多态和动态多态:
静态多态:通常指的是方法的重载(Overloading),即在同一个类中定义多个同名方法,但参数列表不同。
动态多态:也称为运行时多态,通常指的是方法的重写(Overriding),即在子类中重写父类的方法,具体调用哪个方法取决于对象的实际类型。

java 字符型常量和字符串常量的区别?

字符型常量

定义:字符型常量在 Java 中表示单个字符,使用一对单引号(' ')包围,其数据类型是 char
存储:字符型常量在内存中占据两个字节的空间(Java 的 char 类型是 16 位的),存储的是该字符的 Unicode 编码。
使用:字符型常量主要用于存储和操作单个字符,比如在循环中逐个字符处理字符串,或者在字符数组中存储和检索字符。

字符串常量

定义:字符串常量是由零个或多个字符组成的不可变序列,使用一对双引号(" ")包围,其数据类型是 String 类的对象。
存储:字符串常量在 Java 中是不可变的(immutable),这意味着一旦创建,其内容就不能更改。字符串字面量会被存储在字符串常量池中,以节省内存和提高性能。如果相同的字符串字面量多次出现,它们将共享同一块内存空间。
使用:字符串常量通常用于处理文本数据,如用户输入、文件路径、数据库查询语句等。由于 String 类提供了丰富的字符串操作方法,如 concat(), substring(), replace(), equals() 等,因此非常适合文本处理任务。

主要区别

类型:字符型常量是基本数据类型 char,而字符串常量是引用数据类型 String 类的对象。
长度:字符型常量只能表示单个字符;而字符串常量可以表示任意长度的字符序列。
可变性:字符型常量的值是固定的,不可改变;字符串常量在创建后也是不可变的,但可以使用 String 类的方法创建新的字符串对象。

构造器 Constructor 是否可被 override?

在 Java 中,构造器(Constructor)不能被重写(override),但可以被重载(overload)。

public class Person {private String name;private int age;// 无参构造器public Person() {}// 带两个参数的构造器public Person(String name, int age) {this.name = name;this.age = age;}
}

重载和重写的区别?

重载和重写是多态性的两个重要方面,它们分别应用于不同的场景:

重载

定义:重载是在同一个类中定义多个同名的方法,但这些方法的参数列表必须不同。参数列表的不同可以是参数的数量、类型或顺序不同。
作用:重载提供了一种使用相同方法名而根据传入参数的不同执行不同行为的方式,提高了代码的可读性和整洁度。
编译时决策:重载的选择是在编译时确定的,根据传入的实际参数类型和数量,编译器会决定调用哪个方法。

重写

定义:重写发生在子类中重新定义父类的虚方法(非 final 的实例方法)。子类方法必须与父类方法具有完全相同的方法签名(方法名、参数列表和返回类型),并且子类方法不能比父类方法有更严格的访问级别。
作用:重写允许子类提供与父类相同方法的不同实现,以适应子类特有的行为,这是实现运行时多态的关键。
运行时决策:重写的选择是在运行时确定的,根据对象的实际类型,JVM会调用相应的子类或父类方法。

区别点重载方法重写方法
发生范围同一个类子类 中
参数列表必须修改一定不能修改
返回类型可修改一定不能修改
异常可修改可以减少或删除,一定不能抛出新的或者更广的异常
访问修饰符可修改一定不能做更严格的限制(可以降低限制)
发生阶段编译期运行期

静态方法内可以直接调用非静态成员吗?

在 Java 中,静态方法不可以直接访问非静态成员(包括非静态变量和非静态方法)。这是因为静态方法属于类本身,而不是类的实例。当静态方法被调用时,不需要创建类的任何实例,因此没有上下文来访问非静态成员,因为非静态成员是在类的实例被创建后才存在的。 可以通过以下是几种方式实现:
创建实例并调用
在静态方法内部创建类的实例,然后通过该实例访问非静态成员。

public class MyClass {private int myVar;public MyClass() {myVar = 10;}public void nonStaticMethod() {System.out.println("Non-static method called.");}public static void staticMethod() {MyClass instance = new MyClass();System.out.println(instance.myVar); // 访问非静态变量instance.nonStaticMethod();         // 调用非静态方法}
}

作为参数传递
将非静态成员作为参数传递给静态方法。

public class MyClass {private int myVar;public void setMyVar(int var) {this.myVar = var;}public int getMyVar() {return myVar;}public static void staticMethod(MyClass instance) {System.out.println(instance.getMyVar());}
}
public class Main {public static void main(String[] args) {MyClass obj = new MyClass();obj.setMyVar(20);MyClass.staticMethod(obj);}
}

构造方法有哪些特性?

名称与类相同: 构造方法的名字必须与它所在的类名完全相同,这是构造方法与其他普通方法最显著的区别。
无返回类型: 构造方法没有返回类型声明,即使是 void 也不行。这是因为它用于创建和初始化对象,而不是返回一个值。
自动调用: 每当使用 new 关键字创建一个类的新实例时,构造方法会被自动调用。如果没有显式定义构造方法,Java 编译器会默认提供一个无参构造方法。
可以重载: 在同一个类中可以定义多个构造方法,只要它们的参数列表不同即可。这被称为构造方法重载(Constructor Overloading),允许以不同的方式初始化对象。
初始化对象状态: 构造方法的主要目的是初始化对象的状态。在构造方法中,你可以设置成员变量的初始值,执行一些初始化操作,如打开文件、连接数据库等。
调用父类构造方法: 子类构造方法可以调用父类构造方法,这通常通过使用 super() 关键字来完成。super() 必须是子类构造方法的第一条语句,如果没有显式调用,Java 默认调用父类的无参构造方法。
访问权限: 构造方法可以有 publicprotectedprivatedefault(包私有)访问修饰符。这决定了谁可以使用构造方法来创建对象。
不能被继承或重写: 构造方法不能被子类重写(Override),但可以被重载(Overload)。子类可以通过 super() 调用父类的构造方法,但这并不是重写。
实例化前调用: 构造方法在对象实例化之前被调用,因此它是初始化对象的最早机会。
隐式调用与显式调用: 如果一个类没有定义任何构造方法,Java 会隐式提供一个默认的无参构造方法。但是,一旦定义了任何构造方法,哪怕是无参的,Java 就不会提供默认的构造方法,这时如果需要无参构造方法,必须显式定义。

为什么类需要定义一个空构造方法?

Java 程序在执行子类的构造方法之前,如果没有用 super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super()来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。

接口和抽象类的区别是什么?

接口

完全抽象:接口是完全抽象的,不能有实例,接口中声明的所有方法默认是抽象的(在 Java 8 及以后版本中可以有默认方法和静态方法)。
多继承:一个类可以实现多个接口,这提供了多继承的能力,因为在 Java 中,一个类只能继承一个抽象类。
成员变量:接口中的成员变量默认是 public static final 的,意味着它们是常量。
方法的访问修饰符:接口中的方法默认是 public 的。
实现:一个类通过使用 implements 关键字来实现接口,必须实现接口中声明的所有抽象方法,除非该类本身也被声明为抽象类。

抽象类

部分抽象:抽象类可以包含抽象方法(没有实现体的方法)和具体方法(有实现体的方法),抽象类可以有实例,尽管不能直接实例化抽象类,但可以实例化其非抽象子类。
单继承:一个类只能继承一个抽象类,不能同时继承多个抽象类。
成员变量:抽象类可以有各种类型的成员变量,包括实例变量和静态变量。
方法的访问修饰符:抽象类中的方法可以是 publicprotectedprivatedefault
继承:一个类通过使用 extends 关键字来继承抽象类,如果该类不是抽象类,则必须实现抽象类中所有的抽象方法。

相关文章:

八股文-基础知识-面试题汇总(一)

面向对象和面向过程的区别? 面向对象和面向过程是两种不同的编程范式,它们在设计和实现软件时有着不同的理念和方法。面向对象更适合大型、复杂的项目,尤其是需要维护和扩展的系统;而面向过程更适合小型、线性的任务或对性能要求…...

玩转合宙Luat教程 基础篇④——程序基础(库、线程、定时器和订阅/发布)

文章目录 一、前言二、库三、线程四、定时器五、订阅/发布5.1 回调函数5.2 堵塞等待一、前言 教程目录大纲请查阅:玩转合宙Luat教程——导读 写一写Lua程序基础的东西。 包括如何调用库,如何创建线程、如何创建定时器,如何使用订阅/发布事件。 二、库 程序从main.lua开始通…...

openssl颁发包含主题替代名的证书–SAN

原文地址:openssl颁发包含主题替代名的证书–SAN – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 在 X.509 证书中,commonName(CN)字段只能有一个值。如果让证书支持多个域名和IP地址,…...

Unity 2020、2021、2022、2023、6000下载安装

Unity 2020、2021、2022、2023、6000 下载安装 以Unity 6000.0.24fc1下载安装为例: 打开 https://unity.cn/ 优三缔 官方网站; 点击【产品列表】→点击【查看更多】→选择自己需要的版本→点【开始使用】 点击【从Unity Hub下载】 以Windows为例&am…...

Zustand:一个轻量级的React状态管理库

文章目录 前言一、安装Zustand二、使用Zustand三、实际案例结语 前言 在现代Web开发中,状态管理是一个常见的需求,特别是在构建大型或复杂的单页面应用程序(SPA)时。React等框架虽然提供了基本的状态管理功能,但对于复…...

信创改造 - TongRDS 替换 Redis

记得开放 6379 端口哦 1)首先在服务器上安装好 TongRDS 2)替换 redis 的 host,post,passwd 3)TongRDS 兼容 jedis # 例如:更改原先 redis 中对应的 host,post,passwd 改成 TongRDS…...

Css—实现3D导航栏

一、背景 最近在其他的网页中看到了一个很有趣的3d效果,这个效果就是使用css3中的3D转换实现的,所以今天的内容就是3D的导航栏效果。那么话不多说,直接开始主要内容的讲解。 二、效果展示 三、思路解析 1、首先我们需要将这个导航使用一个大…...

Unity清除所有的PlayerPrefs

方法1: 直接在你的代码中加入这句 PlayerPrefs.DeleteAll(); 方法2: 点击编辑窗口的这里...

[蓝桥杯 2021 省 AB2] 小平方

题目描述 小蓝发现,对于一个正整数 nn 和一个小于 nn 的正整数 vv,将 vv 平方后对 nn 取余可能小于 nn 的一半,也可能大于等于 nn 的一半。 请问,在 11 到 n−1n−1 中, 有多少个数平方后除以 nn 的余数小于 nn 的一半。 例如&…...

三种蓝牙架构实现方案

一、蓝牙架构方案 1、hostcontroller双芯片标准架构 手机里面包含很多SoC或者模块,每颗SoC或者模块都有自己独有的功能,比如手机应用跑在AP芯片上,显示屏,3G/4G通信,WiFi/蓝牙等都有自己专门的SoC或者模块&#xff0…...

MacOS系统上Jmeter 录制脚本遇到的证书坑位

一、JMeter介绍与安装 1,下载及安装 jmeter官网地址 二、录制百度链接https请求时,需要导入jmeter相关证书到macos系统的更目录中. 导入方式,直接拖入mac的系统中,始终新人就可以; 三、jmeter 创建相关的录制组件…...

【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入

1.使用命令新建三个.c文件vi main.c,vi input.c,vi caclcu.c,两个.h文件vi input.h,vi caclcu.h 2.vi Makefile:新建Makefile文件,输入一下内容 注意:命令列表中每条命令前用TAB键,不…...

conda下载与pip下载的区别

一、conda下载与pip下载的区别 最重要是依赖关系: pip安装包时,尽管也对当前包的依赖做检查,但是并不保证当前环境的所有包的所有依赖关系都同时满足。 当某个环境所安装的包越来越多,产生冲突的可能性就越来越大。conda会检查当…...

ubity3D基础

Unity是一个流行的游戏开发引擎,它使用C#作为其主要的编程语言。以下是一些Unity中C#编程的基础概念: • Unity编辑器: • Unity编辑器是Unity游戏引擎的核心,提供了一个可视化界面,用于创建和管理游戏项目。 • C#脚本…...

408数据结构:栈、队列和数组选择题做题笔记

408数据结构 第一章 绪论 第二章 线性表 绪论、线性表选择题做题笔记 第三章 栈、队列和数组 栈、队列和数组选择题做题笔记 文章目录 408数据结构前言 一、队列二、栈和队列的应用总结 前言 本篇文章为针对王道25数据结构课后习题的栈、队列和数组的做题笔记,后续…...

如何在 Eclipse 中调试ABAP程序

原文链接:Debugging an ABAP Program ADT 中的调试器是一个重要的诊断工具,可用于分析 ABAP 应用程序。 使用调试器,您可以通过在运行时 Debug 单步执行(F5)程序来确定程序无法正常工作的原因。这使您可以看到正在执…...

React(五)——useContecxt/Reducer/useCallback/useRef/React.memo/useMemo

文章目录 项目地址十六、useContecxt十七、useReducer十八、React.memo以及产生的问题18.1组件嵌套的渲染规律18.2 React.memo18.3 引出问题 十九、useCallback和useMemo19.1 useCallback对函数进行缓存19.2 useMemo19.2.1 基本的使用19.2.2 缓存属性数据 19.2.3 对于更新的理解…...

ISUP协议视频平台EasyCVR萤石设备视频接入平台银行营业网点安全防范系统解决方案

在金融行业,银行营业厅的安全保卫工作至关重要,它不仅关系到客户资金的安全,也关系到整个银行的信誉和运营效率。随着科技的发展,传统的安全防护措施已经无法满足现代银行对于高效、智能化安全管理的需求。 EasyCVR视频汇聚平台以…...

Ubuntu20.04下安装向日葵

向日葵远程控制app官方下载 - 贝锐向日葵官网 下载Ununtu版的图形版本的安装deb包SunloginClient_15.2.0.63064_amd64.deb 直接执行 sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 的话会报错: 如果在Ubuntu20.04里直接执行sudo apt install libgconf-2-4安装libgco…...

sql工具!好用!爱用!

SQLynx的界面设计简洁明了,操作逻辑清晰易懂,没有复杂的图标和按钮,想对哪部分操作就在哪里点击右键,即使你是数据库小白也能轻松上手。 尽管SQLynx是一款免费的工具,但是它的功能却丝毫不逊色于其他付费产品&#xff…...

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks) 前言一、什么是钩子?二、Pytest-Bdd 提供的钩子一览三、钩子用法详解1. pytest_bdd_before_scenario2. pytest_bdd_after_scenario3. pytest_bdd_before_s…...

【React 进阶】掌握 React18 全部 Hooks

一、数据更新驱动 1. useState 1. 基础介绍 useState主要用于声明和操作状态变量,可以使函数组件像类组件一样拥有state const [state, setState] useState(initialState);state:状态,作为渲染视图的数据源 setState:改变st…...

泥石流灾害风险评估与模拟丨AI与R语言、ArcGIS、HECRAS融合,提升泥石流灾害风险预测的精度和准确性

目录 第一章 理论基础 第二章 泥石流风险评估工具 第三章 数据准备与因子提取 第四章 泥石流灾害评价 第五章 HECRAS软件的应用 第六章 操作注意事项与模型优化 泥石流灾害的频发与严重后果,已成为全球范围内防灾减灾工作的重大挑战。随着科技的不断进步&…...

用js实现点击抽奖

用原生的JS来完成的一个小游戏&#xff0c;进行了简单的点击触发以及判断 css&#xff1a; <style>* {margin: 0;padding: 0;}body {background-color: #f7f7f7;display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;}.container {backg…...

JVM-类文件结构

类文件结构 JVM 的“无关性” 谈论 JVM 的无关性&#xff0c;主要有以下两个&#xff1a; 平台无关性&#xff1a;任何操作系统都能运行 Java 代码 语言无关性&#xff1a; JVM 能运行除 Java 以外的其他代码 Java 源代码首先需要使用 Javac 编译器编译成 .class 文件&#xff…...

丹摩征文活动|实现Llama3.1大模型的本地部署

文章目录 1.前言2.丹摩的配置3.Llama3.1的本地配置4. 最终界面 丹摩 1.前言 Llama3.1是Meta 公司发布的最新开源大型语言模型&#xff0c;相较于之前的版本&#xff0c;它在规模和功能上实现了显著提升&#xff0c;尤其是最大的 4050亿参数版本&#xff0c;成为开源社区中非常…...

深入探讨异步 API 的设计与实现

一、API 模式简介&#xff1a;同步与异步的对比 API 是客户端和服务器之间通信的桥梁。大多数 API 采用同步模式&#xff0c;执行的流程如下&#xff1a; 客户端发送请求。服务器处理请求。服务器返回响应。 同步模式对快速操作非常有效&#xff0c;比如数据查询或简单更新。…...

多模态大型语言模型(MLLM)综述

目录 多模态大语言模型的基础 长短期网络结构(LSTM) 自注意力机制 基于Transformer架构的自然语言处理模型 多模态嵌入概述 多模态嵌入关键步骤 多模态嵌入现状 TF-IDF TF-IDF的概念 TF-IDF的计算公式 TF-IDF的主要思路 TF-IDF的案例 训练和微调多模态大语言模…...

EasyPlayer-pro视频流播放学习

效果&#xff1a; 知识抢先看&#xff1a; 动态创建节点指的是通过 JavaScript 操作 DOM 来生成 HTML 元素并插入到页面中 document.createElement: 创建新的 HTML 元素节点。 // 创建一个 <div> 元素 const div document.createElement(div); // 设置其属性 div.id my…...

STM32F103C8T6实时时钟RTC

目录 前言 一、RTC基本硬件结构 二、Unix时间戳 2.1 unix时间戳定义 2.2 时间戳与日历日期时间的转换 2.3 指针函数使用注意事项 ​三、RTC和BKP硬件结构 四、驱动代码解析 前言 STM32F103C8T6外部低速时钟LSE&#xff08;一般为32.768KHz&#xff09;用的引脚是PC14和PC…...

springboot获取配置文件中的值

概括 在开发过程中&#xff0c;对于一些通用的配置&#xff0c;通常会定在一个配置文件中。通常为application.properties或者application.yml文件中。我们只需要在需要使用的地方通过注解直接获取即可。 使用 在springboot中可以通过使用value注解来读取配置文件中的属性。…...

Python 爬虫从入门到(不)入狱学习笔记

爬虫的流程&#xff1a;从入门到入狱 1 获取网页内容1.1 发送 HTTP 请求1.2 Python 的 Requests 库1.2 实战&#xff1a;豆瓣电影 scrape_douban.py 2 解析网页内容2.1 HTML 网页结构2.2 Python 的 Beautiful Soup 库 3 存储或分析数据&#xff08;略&#xff09; 一般爬虫的基…...

STM32C011开发(1)----开发板测试

STM32C011开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32C011F4P6-TSSOP20 评估套件可以使用户能够无缝评估 STM32C0 系列TSSOP20 封装的微控制器功能&#xff0c;基于 ARM Corte…...

【GAMES101笔记速查——Lecture 19 Cameras,Lenses and Light Fields】

本章节内容&#xff1a;相机、棱镜、光场 计算机图形学的两种成像方法&#xff1a; 1.合成方法&#xff1a;光栅化、光线追踪&#xff08;展示出现实没有的东西&#xff09; 2.捕捉方法&#xff1a;相机&#xff08;捕捉现实已有的东西&#xff09; 目录 1 相机 1.1 针孔相…...

记录两次Unity编辑器和真机表现不符的情况,引用丢失等

如题&#xff0c;问题是在编辑器和打包在真机测试上的效果不一致。 首先&#xff0c;第一次遇到的问题是编辑器和真机上大量资源不符和丢失&#xff0c;多次对比表现为&#xff0c;异常和丢失内容都是两个版本之间变更的资源&#xff0c;判定为资源引用异常&#xff0c;尝试删…...

【Win】user32.SetWindowsHookExW - Notes

user32.SetWindowsHookExW user32.SetWindowsHookExW(idHook, lpfn, hMod, dwThreadId)用于在系统中安装钩子函数&#xff0c;以监视某些系统事件或消息。 Parameters idHook: int - 安装钩子的类型标识符&#xff1b;对应于不同的系统事件或消息类别。lpfn: callable - 指向…...

泷羽sec-linux

基础之linux 声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团…...

二叉树oj题解析

二叉树 二叉树的最近公共祖先什么是最近公共祖先&#xff1f;leetcode中求二叉树中最近公共祖先解题1.解题2. 根据二叉树创建字符串 二叉树的最近公共祖先 什么是最近公共祖先&#xff1f; 最近的公共祖先指的是这一棵树中两个节点中深度最大的且公共的祖先节点就是最近祖先节…...

python画图|无坐标轴自由划线操作fig.add_artist(lines.Line2D()函数

【1】引言 新发现了一种自由划线操作函数&#xff0c;和大家共享。 【2】官网教程 点击下述代码&#xff0c;直达官网&#xff1a; https://matplotlib.org/stable/gallery/misc/fig_x.html#sphx-glr-gallery-misc-fig-x-py 官网代码非常简洁&#xff0c;我进行了解读。 …...

Flutter封装Coap

前言 我们根据Coap数据通信流程写一个公共组件&#xff0c;用户只要在原本的组件外嵌套这个公共组件就可以使用Coap的功能&#xff0c;这样做更加的方便便捷。 具体步骤 封装一个udp函数 创建一个工厂函数&#xff0c;工厂函数初始化时监听广播数据发送广播函数&#xff1a…...

openharmony napi调试笔记

一、动态库的编译 第一种openharmony交叉编译链配置方法 使用的编译环境是ubuntu20.04 1、使用vscode配置openharmony sdk交叉编译环境 首先下载openharmony的sdk&#xff0c;如native-linux-x64-4.1.7.5-Release.zip 解压后native目录下就是交叉编译用的sdk 在要编译的源…...

C++数据结构与算法

C数据结构与算法 1.顺序表代码模版 C顺序表模版 #include <iostream> using namespace std; // 可以根据需要灵活变更类型 #define EleType intstruct SeqList {EleType* elements;int size;int capacity; };// Init a SeqList void InitList(SeqList* list, int capa…...

MATLAB深度学习(六)——LSTM长短期神经网络原理与应用

LSTM的应用可以参见一个相当好的视频&#xff1a;小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x&#xff0c;&#xff0c;xn的神经网络结构&#xff0c…...

利用Python爬虫获得1688按关键字搜索商品:技术解析

在电商领域&#xff0c;1688作为中国领先的B2B电商平台&#xff0c;其商品搜索功能对于商家来说具有极高的价值。通过获取搜索结果&#xff0c;商家可以更好地了解市场趋势&#xff0c;优化产品标题&#xff0c;提高搜索排名。本文将介绍如何使用Python编写爬虫&#xff0c;以获…...

Ajax学习笔记,第一节:语法基础

Ajax学习笔记&#xff0c;第一节&#xff1a;语法基础 一、概念 1、什么是Ajax 使用浏览器的 XMLHttpRequest 对象 与服务器通信2、什么是axios Axios是一个基于Promise的JavaScript库&#xff0c;支持在浏览器和Node.js环境中使用。相较于Ajax&#xff0c;Axios提供了更多…...

java基础知识(常用类)

目录 一、包装类(Wrapper) (1)包装类与基本数据的转换 (2)包装类与String类型的转换 (3)Integer类和Character类常用的方法 二、String类 (1)String类介绍 1)String 对象用于保存字符串,也就是一组字符序列 2)字符串常量对象是用双引号括起的字符序列。例如:&quo…...

修改bag的frame_id的工具srv_tools

在使用数据集导航或者建图时&#xff0c;bag中的点云或者其他话题的frame_id没有和需要的对应 1.创建工作空间 2.cd xxxx/src 3.git clone https://github.com/srv/srv_tools.git cd .. catkin_make source ./devel/setup.bash rosrun bag_tools change_frame_id.py -t /要改…...

浅谈丨功能安全测试,汽车的守护者

随着新能源汽车迅猛的发展&#xff0c;各类车型频频面世&#xff0c;同时辅助驾驶/自动驾驶等智驾功能也在不断迭代&#xff0c;使得整个汽车系统的复杂性越来越高&#xff0c;最终导致消费者不得不对如今的汽车质量和安全性提出质疑。 如何打破质疑&#xff1f; 那就不得不搬…...

了解M有SQL索引

目录 索引介绍 索引的优缺点 索引底层数据结构选型 Hash表 二叉查找树(BST) AVL树 红黑树 B 树& B树 索引类型总结 主键索引(Primary Key) 二级索引 聚簇索引与非聚簇索引 聚簇索引(聚集索引) 聚簇索引介绍 聚簇索引的优缺点 非聚簇索引(非聚集索引) 非聚簇…...

进程间通信5:信号

引入 我们之前学习了信号量&#xff0c;信号量和信号可不是一个东西&#xff0c;不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的&#xff0c;无法预测信号可以临时保存下来&#xff0c;之后再处理信号是异步发送的…...