八股—Java基础(一)
目录
一、Java概述
1、Java语言有哪些特点?
2、JVM、JDK、JRE有什么区别?
3、什么是跨平台性?原理是什么
4、Java和C++有什么关系,它们有什么区别?
5、JVM、JRE和JDK的关系是什么?
6、什么是字节码?
7、采用字节码的好处是什么?
8、Oracle JDK 和 OpenJDK 的区别是什么?
二、基础语法
1、Java八大基本类型?
2、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
3、访问修饰符public、private、protected、以及不写(默认)时的区别?
4、break ,continue ,return 的区别及作用?
5、引用类型之间的强制转化
6、枚举
7、值传递和引用传递
三、关键字
1、final、finally、finalize的区别?
2、指令重排序
3、为什么要用static关键字?
4、静态变量和实例变量区别
5、”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
6、是否可以在static环境中访问非static变量?
7、static静态方法能不能引用非静态资源?
8、static静态方法里面能不能引用静态资源?
9、非静态方法里面能不能引用静态资源?
10、java静态变量、代码块、和静态方法的执行顺序是什么?
一、Java概述
1、Java语言有哪些特点?
① 面向对象,主要是封装,继承,多态。
② 平台无关性,平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。
③ 支持多线程。C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持;
④ 支持 JIT 编译(编译与解释并存)。JIT 是 Just-In-Time 的缩写,指的是即时编译器,它可以在程序运行时将字节码转换为本地机器码来提高程序运行速度。
2、JVM、JDK、JRE有什么区别?
JVM:Java Virtual Machine,也就是 Java 虚拟机,是 Java 实现跨平台的关键所在,针对不同的操作系统,有不同的 JVM 实现。JVM 负责将 Java 字节码转换为特定平台的机器码,并执行。
JRE:Java Runtime Environment,也就是 Java 运行时环境,包含了运行 Java 程序所必需的库,以及 Java 虚拟机(JVM)。
JDK:Java Development Kit,是一套完整的 Java SDK(软件开发工具包),包括了 JRE 以及编译器(javac)、Java 文档生成工具(Javadoc)、Java 调试器等开发工具。为开发者提供了开发、编译、调试 Java 程序的一整套环境。
简单来说,JDK 包含 JRE,JRE 包含 JVM。
3、什么是跨平台性?原理是什么
所谓跨平台性,是指 Java 语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现原理:Java 程序是通过 Java 虚拟机在系统平台上运行的,只要该系统可以安装相应的 Java 虚拟机,该系统就可以运行 java 程序。
4、Java和C++有什么关系,它们有什么区别?
-
都是面向对象的语言,都支持封装、继承和多态;
-
C++ 支持指针,而 Java 没有指针的概念;
-
C++ 支持多继承,而 Java 不支持多重继承,但允许一个类实现多个接口;
-
Java 是完全面向对象的语言,并且还取消了 C/C++ 中的结构和联合,使编译程序更加简洁;
-
Java 自动进行无用内存回收操作,不再需要程序员进行手动删除,而 C++ 中必须由程序释放内存资源,这就增加了程序员的负担。
-
Java 不支持操作符重载,操作符重载则被认为是 C++ 的突出特征;
-
Java 允许预处理,但不支持预处理器功能,所以为了实现预处理,它提供了引入语句(import),但它与 C++ 预处理器的功能类似;
-
Java 不支持缺省参数函数,而 C++ 支持;
-
C 和 C++ 不支持字符串变量,在 C 和 C++ 程序中使用“Null”终止符代表字符串的结束。在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的;
-
goto 语句是 C 和 C++ 的“遗物”,Java 不提供 goto 语句,虽然 Java 指定 goto 作为关键字,但不支持它的使用,这使程序更简洁易读;
-
Java 不支持 C++ 中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
5、JVM、JRE和JDK的关系是什么?
- JDK是(Java Development Kit)的缩写,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序。
- JRE是Java Runtime Environment缩写,它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。
- JDK包含JRE,JRE包含JVM。
6、什么是字节码?
这个问题,面试官可以扩展提问,Java 是编译执行的语言,还是解释执行的语言?
Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。
之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行的示例如图所示。
7、采用字节码的好处是什么?
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。
8、Oracle JDK 和 OpenJDK 的区别是什么?
可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK 。下面我通过收集到的一些资料对解答这个被很多人忽视的问题。
-
Oracle JDK 版本将每三年发布一次,而 OpenJDK 版本每三个月发布一次;
-
OpenJDK 是一个参考模型并且是完全开源的,而 Oracle JDK 是OpenJDK 的一个实现,并不是完全开源的;
-
Oracle JDK 比 OpenJDK 更稳定。OpenJDK 和 Oracle JDK 的代码几乎相同,但 Oracle JDK 有更多的类和一些错误修复。因此,如果您想开发企业/商业软件,建议选择 Oracle JDK,因为它经过了彻底的测试和稳定。某些情况下,有些人提到在使用 OpenJDK 可能会遇到了许多应用程序崩溃的问题,但是,只需切换到 Oracle JDK 就可以解决问题;
-
在响应性和 JVM 性能方面,Oracle JDK 与 OpenJDK 相比提供了更好的性能;
-
Oracle JDK 不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本;
-
Oracle JDK 根据二进制代码许可协议获得许可,而 OpenJDK 根据 GPLv2 许可获得许可。
二、基础语法
1、Java八大基本类型?
Java 语言的数据类型分为两种:基本数据类型和引用数据类型。
基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种,如下表所示。
char类型是根据内存编码决定的。
对于 boolean,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。
Java虚拟机规范讲到:在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit。
注意:
Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析:
char a = 'h'
char :单引号,String a = "hello"
:双引号
引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。另外,Java 语言中不支持 C++中的指针类型、结构类型、联合类型和枚举类型。
在float中1.3E+38表示1.3*10^38
int转float会丢失精度,都是32位
2、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。
从 Java 5 开始,Java 中引入了枚举类型, expr 也可以是 enum 类型。
从 Java 7 开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
3、访问修饰符public、private、protected、以及不写(默认)时的区别?
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
-
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
-
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
-
public : 对所有类可见。使用对象:类、接口、变量、方法
-
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
4、break ,continue ,return 的区别及作用?
-
break 跳出总上一层循环,不再执行循环(结束当前的循环体)
-
continue 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
-
return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)
5、引用类型之间的强制转化
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。
当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了。在Java中我们可以通过继承、向上转型的关系使用父类类型来引用它,这个时候我们是使用功能较弱的类型引用功能较强的对象,这是可行的。但是将功能较弱的类型强制转功能较强的对象时,就不一定可以行了。
Father father = new Son();
Son son = (Son) father
6、枚举
特殊的类,限定了对象的个数,有构造方法和属性
package com.yang;
//首先枚举是一个特殊的class
//这个class相当于final static修饰,不能被继承
//他的构造方法强制被私有化,下面有一个默认的构造方法private ColorEnum();
//所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类
public enum ColorEnum {//每个枚举变量都是枚举类ColorEnum的实例,相当于RED=new ColorEnum(1),按序号来。//每个成员变量都是final static修饰RED, GREEN, BLANK, YELLOW;
}
7、值传递和引用传递
-
值传递传的值的地址,引用传递传的是句柄的地址。
-
java应该只有值传递的。如果是基本数据类型,传递的就是实际的值. 如果是引用数据类型,传递的就是该引用的地址值.
Object x = new Object(); x的地址是句柄的地址,new 对象的地址是值的地址,java不能获取栈的地址,所以只有值传递
三、关键字
1、final、finally、finalize的区别?
final 用于修饰变量、方法和类。
-
final 变量:被修饰的变量不可变,不可变分为
引用不可变
和对象不可变
,final 指的是引用不可变
,final 修饰的变量必须初始化,通常称被修饰的变量为常量
。 -
final 方法:被修饰的方法不允许任何子类重写,子类可以使用该方法。
-
final 类:被修饰的类不能被继承,所有方法不能被重写。
-
final可以防止指令重排序。
finally 作为异常处理的一部分,它只能在 try/catch
语句中,并且附带一个语句块表示这段语句最终一定被执行(无论是否抛出异常),经常被用在需要释放资源的情况下,System.exit (0)
可以阻断 finally 执行。
finalize 是在 java.lang.Object
里定义的方法,也就是说每一个对象都有这么个方法,这个方法在 gc
启动,该对象被回收的时候被调用。
一个对象的 finalize 方法只会被调用一次,finalize 被调用不一定会立即回收该对象,所以有可能调用 finalize 后,该对象又不需要被回收了,然后到了真正要被回收的时候,因为前面调用过一次,所以不会再次调用 finalize 了,进而产生问题,因此不推荐使用 finalize 方法。
2、指令重排序
重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。
就是说只要程序的最终结果不变,指令执行的顺序可以与逻辑顺序不一致。
主要在编译器重排(JVM中进行完成的),指令级并行重排序,还有处理器重排序(CPU中进行完成的)
由此引入happen-before规则来保证跨线程的内存可见性,就是说如果A线程是对变量进行写操作,而B线程是对变量进行读操作,那么如果A线程是先于B线程的操作,那么A线程写操作之后的数据对B线程也是可见的
final不能修饰复杂的引用类型,如果修饰一个数组,地址不可以改变(a[]=b[]),但是内部被改变了没有意义(a[1]=1);
3、为什么要用static关键字?
通常来说,用new创建类的对象时,数据存储空间才被分配,方法才供外界调用。但有时我们只想为特定域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是我们想在没有创建对象的情况下也想调用方法。在这两种情况下,static关键字,满足了我们的需求。
4、静态变量和实例变量区别
静态变量独立于方法之外的变量,有static修饰,实例变量也是独立于方法之外的变量,没有static修饰。区别就是静态变量属于类,可以直接使用类名.静态变量名调用,不用创建任何实例对象就会被分配空间。实例变量使用必须new 创建实例对象才可以。
5、”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。
6、是否可以在static环境中访问非static变量?
static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
7、static静态方法能不能引用非静态资源?
不能,new的时候才会产生的东西,对于初始化后就存在的静态资源来说,根本不认识它。
8、static静态方法里面能不能引用静态资源?
可以,因为都是类初始化的时候加载的,大家相互都认识。
9、非静态方法里面能不能引用静态资源?
可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识。
10、java静态变量、代码块、和静态方法的执行顺序是什么?
基本上代码块分为三种:Static静态代码块、构造代码块、普通代码块
代码块执行顺序静态代码块——> 构造代码块 ——> 构造函数——> 普通代码块
继承中代码块执行顺序:父类静态块——>子类静态块——>父类代码块——>父类构造器——>子类代码块——>子类构造器
想要深入了解,可以参考这篇文章 : https://juejin.cn/post/6844903986475040781
相关文章:
八股—Java基础(一)
目录 一、Java概述 1、Java语言有哪些特点? 2、JVM、JDK、JRE有什么区别? 3、什么是跨平台性?原理是什么 4、Java和C有什么关系,它们有什么区别? 5、JVM、JRE和JDK的关系是什么? 6、什么是字节码? …...
PWM调节DCDC参数计算原理
1、动态电压频率调整DVFS SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。 比如某SOC在…...
设计一个基础JWT的多开发语言分布式电商系统
在设计一个分布式电商系统时,保证系统的可扩展性、性能以及跨语言的兼容性是至关重要的。随着微服务架构的流行,越来越多的电商系统需要在多个服务间共享信息,并且保证服务的安全性。在这样的场景下,JSON Web Token(JW…...
基础开发工具-编辑器vim
vim操作键盘图 下图是比较基础的vim操作键盘图 (IDE例子) vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮&a…...
C#速成(文件读、写操作)
导包 using System.IO;1、写入文件(重要) StreamWriter sw new StreamWriter("C:\Users\29674\Desktop\volumn.txt");//创建一个TXT的文件 sw.WriteLine(textBox2.Text);//写入文件的内容 sw.Close();//关闭2、读取文件(不重要&…...
11、多态
1、多态介绍 1.1、认识多态 “一个接口,多种状态”。 接口在运行期间,根据传入的参数来决定具体调用的函数,最终采取不同的执行策略。 比如:一个系统的后台,管理员登录后进入的界面和普通用户进入的界面是不一样的。 …...
bain.js(十二):RNN神经网络实战教程 - 音乐乐谱生成 -人人都是作曲家~
系列文章: (一):可以在浏览器运行的、默认GPU加速的神经网络库概要介绍(二):项目集成方式详解(三):手把手教你配置和训练神经网络(四)…...
嵌入式硬件-- 元器件焊接
1.锡膏的使用 锡膏要保存在冰箱里。 焊接排线端子;138度的低温锡(锡膏), 第一次使用,直接拿东西挑一点涂在引脚上,不知道多少合适,加热台加热到260左右,放在上面观察锡融化&#…...
java_多态
问题引导 使用传统的方法来解决(private 属性)传统的方法带来的问题是什么? 如何解决? 问题是: 代码的复用性不高,而且不利于代码维护 解决方案: 引出我们要讲解的多态 多态的基本介绍 方法或对象具有多种形态。是…...
如何设计一款智能手表的电子系统:从选择MCU到PCB设计
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:趣享先生的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏&…...
Vue Web开发(七)
1. echarts介绍 echarts官方文档 首先我们先完成每个页面的路由,之前已经有home页面和user页面,缺少mail页面和其它选项下的page1和page2页面。在view文件夹下新建mail文件夹,新建index.vue,填充user页面的内容即可。在view下新建…...
基于米尔全志T527开发板的OpenCV进行手势识别方案
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV手势识别方案测试。 摘自优秀创作者-小火苗 米尔基于全志T527开发板 一、软件环境安装 1.安装OpenCV sudo apt-get install libopencv-dev python3-opencv 2.安装pip sudo apt…...
洛谷 P10483 小猫爬山 完整题解
一、题目查看 P10483 小猫爬山 - 洛谷 二、解题思路 我们将采取递归 剪枝的思想: sum数组存放每辆车当前载重。 每次新考虑一只小猫时,我们尝试把它放进每个可以放进的缆车中(需要回溯) for (int i 0; i < k; i) {if (sum[i]…...
Vmware的网络适配器的NAT模式和桥接模式有何区别?如何给Uubunt系统添加桥接网卡?
Vmware的网络适配器的NAT模式和桥接模式有何区别? 如何给Uubunt系统添加桥接网卡? 步骤如下:...
Vue导出报表功能【动态表头+动态列】
安装依赖包 npm install -S file-saver npm install -S xlsx npm install -D script-loader创建export-excel.vue组件 代码内容如下(以element-ui样式代码示例): <template><el-button type"primary" click"Expor…...
6.2 Postman接口收发包
欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 接口收发包的类比1.1 获取对方地址(填写接口URL)1.2 选择快递公司(设置HTTP方法)1.3 填写快递单(设置请求头域&#…...
UE4_贴花_贴花基础知识一
贴花可以将材料和各种材料元素投影到表面上。您可以使用它们来添加独特的效果。贴花 是一种可以投射到网格体(包括静态网格体和骨骼网格体)上的材质。无论这些网格体的移动性(Mobility)是静态(Static)还是可…...
代码随想录day13 二叉树:二叉树的遍历(前中后序)(递归、迭代)、102.二叉树的层序遍历
二叉树简单讲解及题目讲解 代码随想录 144.二叉树前序遍历 145.二叉树后序遍历 94.二叉树中序遍历 102.二叉树的层序遍历 题目 给你二叉树的根节点root, 完成二叉树的前中后序遍历 二叉树遍历–递归法 思路 了解过二叉树的定义和遍历规则, 那么完成此题并没有什么难度, 采用…...
Kafka - 消息乱序问题的常见解决方案和实现
文章目录 概述一、MQ消息乱序问题分析1.1 相同topic内的消息乱序1.2 不同topic的消息乱序 二、解决方案方案一: 顺序消息Kafka1. Kafka 顺序消息的实现1.1 生产者:确保同一业务主键的消息发送到同一个分区1.2 消费者:顺序消费消息 2. Kafka 顺…...
俏生元,融汇传统智慧与现代科技,解析药食同源健康奥秘
在追求健康生活的今天,药食同源的理念正逐渐成为现代人滋养身心的新选择。俏生元,一直以来注重女性健康和多元需求,正以它独特的视角和匠心产品,助推着药食同源健康滋养的风尚。 俏生元葛根红参丰韵膏 药食同源,匠心独…...
【CUDA】CUBLAS
【CUDA】CUBLAS 在深入了解之前,提前运行预热(warmup)和基准测试(benchmark runs) 是获得准确执行时间的关键。如果不进行预热运行,cuBLAS 的首次运行会有较大的开销(大约 45 毫秒)…...
泛型编程--
auto自动推导数据类型 函数模板 定义和调用 函数模板具体化 函数模板通用版本之外的一个特殊版本 函数模板 具体化函数 ,它们的声明和定义都可以分开写。 声明 定义 函数模板写变量 模板参数缺省 类成员函数作为函数模板 类构造函数是函数模板 函数模板重载 函数模…...
Linux USB开发整理和随笔
目录 1 概述 2 硬件原理基础 2.1 USB发展 2.2 USB的拓扑 2.3 硬件接口 2.4 USB总线协议 2.4.1 通信过程 2.4.2 概念关系 2.4.3 管道PIPE 2.4.4 传输 2.4.5 事务 2.4.6 包结构与类型 2.4.6.1 令牌包 2.4.6.2 数据包 2.4.6.3 握手包 2.5 描述符 2.5.1 设备描述符…...
【实验】【H3CNE邓方鸣】交换机端口安全实验+2024.12.11
实验来源:邓方鸣交换机端口安全实验 软件下载: 华三虚拟实验室: 华三虚拟实验室下载 wireshark:wireshark SecureCRT v8.7 版本: CRT下载分享与破解 文章目录 dot1x 开启802.1X身份验证 开启802.1X身份验证,需要在系统视图和接口视…...
使用任务队列TaskQueue和线程池ThreadPool技术实现自定义定时任务框架详解
前言 在桌面软件开发中,定时任务是一个常见的需求,比如定时清理日志、发送提醒邮件或执行数据备份等操作。在C#中有一个非常著名的定时任务处理库Hangfire,不过在我们深入了解Hangfire 之前,我们可以手动开发一个定时任务案例&am…...
在IDE中使用Git
我们在开发的时候肯定是经常使用IDE进行开发的,所以在IDE中使用Git也是非常常用的,接下来以IDEA为例,其他的VS code ,Pycharm等IDE都是一样的。 在IDEA中配置Git 1.打开IDEA 2.点击setting 3.直接搜索git 如果已经安装了会自…...
蓝桥杯新年题解 | 第15届蓝桥杯迎新篇
蓝桥杯新年题解 | 第15届蓝桥杯迎新篇 2024年的蓝桥杯即将拉开序幕!对于许多编程爱好者来说,这不仅是一次展示自我能力的舞台,更是一次学习和成长的机会。作为一名大一新生的小蓝,对蓝桥杯充满了期待,但面对初次参赛的…...
Docker Swarm实战
文章目录 1、docker swarm介绍2、docker swarm概念与架构2.1 架构2.2 概念 3、docker swarm集群部署3.1 容器镜像仓库 Harbor准备3.2 主机准备3.2.1 主机名3.2.2 IP地址3.2.3 主机名与IP地址解析3.3.4 主机时间同步3.2.5 主机安全设置 3.3 docker安装3.3.1 docker安装3.3.2 配置…...
磁盘空间占用分析工具-wiztree【推荐】
磁盘空间占用分析工具-wiztree【推荐】 如果你遇到过磁盘空间占满、找大文件困难、线上服务器空间飙升等一系列磁盘的问题,并且需要分析文件夹占用空间,传统的方法就是一个一个去看,属实太费劲,效率太低。 而“WizTree”便可解决…...
Vuex在uniapp中的使用
文章目录 一、Vuex概述 1.1 官方解释 1.2 大白话 1.3 组件间共享数据的方式 1.4 再看Vuex是什么 1.5 使用Vuex统一管理好处 二、状态管理 2.1 单页面状态管理 2.2 多页面状态管理 2.3 全局单例模式 2.4 管理哪些状态 三、Vuex的基本使用 3.1 安装 3.2 导入 3.3 创建store对象…...
【含开题报告+文档+PPT+源码】基于微信小程序的点餐系统的设计与实现
开题报告 随着互联网技术的日益成熟和消费者生活水平与需求层次的显著提升,外卖点餐平台在中国市场上迅速兴起并深深植根于民众日常生活的各个角落。这类平台的核心在于构建了一个基于互联网的强大订餐服务系统,它无缝整合了餐饮商户资源与广大消费者的…...
Elasticsearch02-安装7.x
零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch (1)JDK安装 Elasticsearch是基于java开发的,所以需要安装JDK。我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。也可以不安装jdk,…...
【数据库】选择题+填空+简答
1.关于冗余数据的叙述中,不正确的是() A.冗余的存在容易破坏数据库的完整新 B.冗余的存在给数据库的维护增加困难 C.不应该在数据库中存储任何冗余数据 D.冗余数据是指由基本数据导出的数据 C 2.最终用户使用的数据视图称为(&…...
Spark执行计划解析后是如何触发执行的?
在前一篇Spark SQL 执行计划解析源码分析中,笔者分析了Spark SQL 执行计划的解析,很多文章甚至Spark相关的书籍在讲完执行计划解析之后就开始进入讲解Stage切分和调度Task执行,每个概念之间没有强烈的关联,因此这中间总感觉少了点…...
渗透测试-前端验签绕过之SHA256+RSA
本文是高级前端加解密与验签实战的第2篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256RSA签名来爆破登录。 绕过 根据提示可以看出这次签名用了SHA2556和RSA两个技术进行加密。 查看源代码可以看到RSA公钥是通过请求服务…...
Maven完整技术汇总
额外知识点 IDE IDE是集成开发环境的缩写,它是一种软件应用程序,提供了编码、调试和部署软件的一站式解决方案。这些功能集成在一起,使开发人员能够在一个环境中完成整个软件开发过程,从编写代码到调试和测试,直到最终…...
NOI系列赛事LaTeX模板
NOI系列赛事 L a T e X LaTeX LaTeX 模板 照搬照抄: s y k s y k C C C syksykCCC syksykCCC 大佬写的,但是看得人不多。真的很好,比其他的板子优秀多了。现在我当一个校友搬运工,搬过来。 \documentclass[UTF8,a4paper]{ctex…...
JustTrustMe是什么
JustTrustMe是什么 JustTrustMe 是一个用于 Android 的 Xposed 模块,主要用于绕过应用程序的 SSL pinning(SSL 证书锁定)机制。SSL pinning 是一种安全措施,应用程序通过它来验证服务器返回的 SSL 证书是否与应用程序内置的证书匹…...
题解 - 工作分配
题目描述 在工厂里,如果每道工序让不同的工人来做,所要花费的时间往往不一样。精明的老板为了提高效率,总是把生产某一产品所需要的N道工序进行最佳搭配,使生产某一产品所花费的总时间最少。现在就给出N个工人分别做N道工序所要花…...
GLM-4-Plus初体验
引言:为什么高效的内容创作如此重要? 在当前竞争激烈的市场环境中,内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子,还是制作广告,优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…...
【Python基础】Python知识库更新中。。。。
1、Python知识库简介 现阶段主要源于个人对 Python 编程世界的强烈兴趣探索,在深入钻研 Python 核心语法、丰富库函数应用以及多样化编程范式的基础上,逐步向外拓展延伸,深度挖掘其在数据分析、人工智能、网络开发等多个前沿领域的应用潜力&…...
【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)
项目场景: 国民N32G43X系列,烧录了一个测试程序,在DEBUG中不知什么原因挂掉,然后就无法连接SWD或JLINK。 问题描述 在SWD配置中不可见芯片型号,无法connect,无法烧录。但基本判断是芯片没有损坏。怀疑是程…...
C++如何读取包含空格在内的整行字符串s? ← getline(cin,s);
【问题描述】 问:请分析下面代码,在利用 cin 输入带空格的整行字符串时,会输出什么? #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;for(int i0; i<s.size(); i) {cout<<s[i];}…...
活动预告 | Microsoft 365 在线技术公开课:让组织针对 Microsoft Copilot 做好准备
课程介绍 通过Microsoft Learn免费参加Microsoft 365在线技术公开课,建立您需要的技能,以创造新的机会并加速您对Microsoft云技术的理解。参加我们举办的“让组织针对 Microsoft Copilot for Microsoft 365 做好准备” 在线技术公开课活动,学…...
tomcat被检测到目标URL存在htp host头攻击漏洞
AI越来越火了,我们想要不被淘汰就得主动拥抱。推荐一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站 Tomcat被检测到目标URL存在http host头攻击漏洞,这个漏洞复现一下就是黑客访问你的网站,之后中修改请求头中的host属…...
【使用webrtc-streamer解析rtsp视频流】
webrtc-streamer WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或&a…...
【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现单链表的基本运算。 相关知识 为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性…...
华为FreeBuds Pro 4丢了如何找回?(附查找功能使用方法)
华为FreeBuds Pro 4查找到底怎么用?华为FreeBuds Pro 4有星闪精确查找和离线查找,离线查找功能涵盖播放铃声、导航定位、星闪精确查找、上线通知、丢失模式、遗落提醒等。星闪精确查找是离线查找的子功能,当前仅华为FreeBuds Pro 4充电盒支持…...
直流开关电源技术及应用
文章目录 1. 开关电源概论1.1 开关电源稳压原理1.1.1 开关电源稳压原理 1. 开关电源概论 1.1 开关电源稳压原理 为了提高效率,必须使功率调整器件处于开关工作状态。 作为开关而言,导通时压降很小,几乎不消耗能量,关断时漏电流很…...
langchain 结构化输出
主要流程 1. 使用 Pydantic 定义结构化输出: 定义 AnswerWithJustification 类,用于描述输出的结构,包含以下字段: answer:答案内容(字符串类型)。justification:答案的理由或解释…...