【Java基础】面试题汇总
- Java基础面试题
- 1. JVM vs JDK vs JRE
- 2. 什么是字节码?采用字节码的好处是什么?
- 3. 为什么说 Java 语言“编译与解释并存”?
- 4. AOT 有什么优点?为什么不全部使用 AOT 呢?
- 5. Java 和 C++ 的区别?
- 6. Java 中的基本数据类型?
- 7. 基本类型和包装类型的区别?
- 8. 包装类型的缓存机制了解么?
- 9. 自动装箱与拆箱了解吗?原理是什么?
- 10. 为什么浮点数运算的时候会有精度丢失的风险?
- 11. 如何解决浮点数运算的精度丢失问题?
- 12. 超过 long 整型的数据应该如何表示?
- 13. 成员变量与局部变量的区别?
- 14. 静态方法为什么不能调用非静态成员?
- 15. 重载和重写有什么区别?
- 16. 什么是可变长参数?
- 17. 面向对象和面向过程的区别?
- 18. 构造方法有哪些特点?是否可被 override?
- 19. 面向对象三大特征
- 20. 接口和抽象类有什么共同点和区别?
- 21. 深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
- 22. == 和 equals() 的区别
- 23. hashCode() 有什么用?
- 24. 为什么要有 hashCode?
- 25. 为什么重写 equals() 时必须重写 hashCode() 方法?
- 26. String、StringBuffer、StringBuilder 的区别?
- 27. String 为什么是不可变的?
- 28. 字符串拼接用“+” 还是 StringBuilder?
- 29. String的equals() 和 Object的equals() 有何区别?
- 30. 字符串常量池的作用了解吗?
- 31. String s1 = new String("abc");这句话创建了几个字符串对象?
- 32. intern 方法有什么作用?
- 33. String 类型的变量和常量做“+”运算时发生了什么?
- 34. Java异常体系结构?
- 35. try-catch-finally 如何使用?
- 36. 如果在try或catch块中出现return,finally还会执行吗?
- 37. finally 中的代码一定会执行吗?
- 38. 什么是泛型?有什么作用?
- 39. 泛型的使用方式有哪几种?
- 40. 项目中哪里用到了泛型?
- 41. 什么是序列化?什么是反序列化?
- 42. I/O 流为什么要分为字节流和字符流呢?
- 43. 值传递问题
- 44. 什么是泛型擦除机制?为什么要擦除
- 45. Unsafe 类有什么作用
Java基础面试题
1. JVM vs JDK vs JRE
答:
- JVM :是运行Java字节码文件的虚拟机。字节码文件和不同系统的JVM实现是Java “
一次编译,随处运行
” 的关键。 - JRE:是 Java 运行时环境。包含:JVM、Java基础类库等。
- JDK:是 Java 开发工具包,用于编写、编译Java程序。包含:JRE、javac、javap等工具。
2. 什么是字节码?采用字节码的好处是什么?
答:
- 字节码: Java 程序编译后(javac)得到的扩展名为
.class
的文件。 - 好处: 跨平台,可移植性好。 “
一次编译,随处运行
”
3. 为什么说 Java 语言“编译与解释并存”?
答:
- 由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。
4. AOT 有什么优点?为什么不全部使用 AOT 呢?
答:
- AOT(Ahead of Time Compilation):是JDK 9 引入的一种新的编译模式。
- 和 JIT 不同的是,这种编译模式会在程序被执行前就将其编译成机器码,属于静态编译(C、 C++,Rust,Go 等语言就是静态编译)。
- 优点:AOT 可以提高Java 程序的启动速度,减少内存占用,适合云原生场景。
- 为什么不全部使用AOT: AOT 编译无法支持 Java 的一些动态特性,如反射、动态代理、动态加载等。很多框架和库(如 Spring、CGLIB)都用到了这些特性。如果只使用 AOT 编译,那就没办法使用这些框架和库了。
5. Java 和 C++ 的区别?
答:
- Java 有垃圾回收机制(GC),C++需要手动释放内存。
- Java 的类是单继承的,C++ 支持多重继承。
- C ++同时支持方法重载和操作符重载,Java 只支持方法重载
6. Java 中的基本数据类型?
答:
Java 中有 8 种基本数据类型,分别为:
- 6种数字类型:
- 4种整型:
byte
、short
、int
、long
- 2种浮点型:
float
、double
- 4种整型:
- 1种字符类型:
char
- 1种布尔类型:
boolean
7. 基本类型和包装类型的区别?
答:
- 用途::包装类型可用于泛型,而基本类型不可以。
- 存储方式: 基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量存放在 Java 虚拟机的堆中。包装类型属于对象类型,是存在于堆中。
- 占用空间: 包装类型属于对象类型,占用的空间比基本类型要大
- 默认值: 基本类型有各自的默认值,包装类型的默认值为
null
- 比较方式: 对于基本数据类型来说,
==
比较的是值。对于包装数据类型来说==
比较的是对象的内存地址。包装类型的比较,使用equals()
方法。
8. 包装类型的缓存机制了解么?
答:
Byte
,Short
,Integer
,Long
这 4 种包装类默认创建了数值[-128,127]
的相应类型的缓存数据Float
,Double
没有实现缓存机制。Character
创建了数值在[0,127]
范围的缓存数据
9. 自动装箱与拆箱了解吗?原理是什么?
答:
- 装箱:将基本数据类型用它们对应的包装类型包装起来。
- 拆箱:将包装类型转换为基本数据类型。
- 原理:
Integer i = 10
等价于Integer i = Integer.valueOf(10)
装箱int n = i
等价于int n = i.intValue()
拆箱
10. 为什么浮点数运算的时候会有精度丢失的风险?
答:
- 无限循环的小数存储在计算机时(
小数转换成二进制,小数部分需要一直乘2,直到为0
),只能被截断,所以就会导致小数精度发生损失的情况。
11. 如何解决浮点数运算的精度丢失问题?
答:
- 可以使用
BigDecimal
类来进行浮点数的运算。
12. 超过 long 整型的数据应该如何表示?
答:
- 可以使用
BigInteger
类存储任意大小的整数。 - BigInteger 内部使用
int[]
数组来存储数据。
13. 成员变量与局部变量的区别?
答:
- 语法形式: 成员变量可以被
public
,private
,static
等修饰符所修饰,局部变量不能被修饰符修饰。 - 存储方式: 成员变量存储在堆中,局部变量存储在栈中。
- 默认值: 成员变量有默认值,局部变量没有默认值。
14. 静态方法为什么不能调用非静态成员?
答:
- 静态方法是属于类的,随着类一起加载
- 静态方法加载的时候,还没有非静态成员。非静态成员是在对象实例化之后才存在。
15. 重载和重写有什么区别?
答:
- 重载: 在同一个类中,方法名要相同,参数列表要不同,方法返回值和访问修饰符可以不同。
- 重写:
- 在子类中,方法名、参数列表必须相同(
两同
) - 返回值类型比父类方法返回值类型更小或相等,抛出的异常范围小于等于父类(
两小
) - 访问修饰符范围大于等于父类方法(
一大
)
- 在子类中,方法名、参数列表必须相同(
16. 什么是可变长参数?
答:
- 从
Java5
开始,Java 支持定义可变长参数 - 可变长参数就是允许在调用方法时传入不定长度的参数(0个或多个)。
- 注意: 可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数。
17. 面向对象和面向过程的区别?
答:
- 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。
- 面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。
- 面向对象更易维护、易复用、易扩展
18. 构造方法有哪些特点?是否可被 override?
答:
- 名字与类名相同。
- 没有返回值,但不能用 void 声明构造函数。
- 构造方法不能被
override
(重写),但是可以overload
(重载)
19. 面向对象三大特征
答:
- 封装: 把属性和方法封装到一个对象内部。
- 继承: 是一种类之间的扩展关系。子类拥有父类对象的属性和方法(包括私有属性和私有方法,但无法访问)。可以重写父类的方法。
- 多态: 具体表现为
父类的引用指向子类的实例
。(编译看左边,运行看右边)
20. 接口和抽象类有什么共同点和区别?
答:
共同点:
- 都不能被实例化,虽然抽象类有构造方法。
- 都可以包含抽象方法。
- 都可以有默认实现的方法(Java 8 可以用
default
关键字在接口中定义默认方法)。
区别:
- 子类可以继承抽象类,子类可以实现接口。
- 抽象类有构造方法,接口没有
- 接口中的成员变量都是由
public static final
修饰的 - 一个类只能继承一个类,但是可以实现多个接口。接口与接口之间是可以多继承
21. 深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
答:
- 浅拷贝: 会在堆上创建一个新的对象,但如果对象内部的成员变量是引用类型的话,会复用这个引用地址。也就是说拷贝对象和原对象共用同一个内部对象。
- 深拷贝: 深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。
- 引用拷贝: 两个不同的引用指向同一个对象
22. == 和 equals() 的区别
答:
== 对于基本类型和引用类型的作用效果是不同的:
- 对于基本数据类型来说,== 比较的是值。
- 对于引用数据类型来说,== 比较的是对象的内存地址。
equals() 方法存在两种使用情况:
- 类没有重写 equals()方法:通过equals()比较该类的两个对象时,等价于通过“
==
”比较这两个对象,使用的默认是 Object类equals()方法。 - 类重写了 equals()方法:一般会重写equals(),判断如果对象的属性相同,才认为是同一个对象。
23. hashCode() 有什么用?
答:
- hashCode() 的作用是获取哈希码,确定该对象在哈希表中的索引位置。
- hashCode() 定义在 Object 类中,任何类都包含有 hashCode() 函数
24. 为什么要有 hashCode?
答:
- 有 hashCode,才能快速的找到对象在哈希表中的位置。
- 比如:在使用 HashSet 时,要求元素不能重复,如果没有 hashCode,则在添加元素时,需要一个一个的与集合中的元素进行比较。有了 hashCode 后,先判断对应哈希位置是否有元素,如果没有,则认为集合中没有这个元素。如果有,则再调用 equals()方法,比较元素的属性是否相同。
- 这样就大大减少了 equals 的次数,相应就大大提高了执行速度。
25. 为什么重写 equals() 时必须重写 hashCode() 方法?
答:
- 重写 equals() 方法用来比较对象的属性是否相同。
- 重写了 equals() 了,但没有重写 hashCode() 方法,hashCode() 还是根据地址值生成的哈希码。那么在使用 HashSet 集合时,有2个不同的对象,他们的属性值相同,但是地址不一样,但还是会加入到HashSet集合中。
26. String、StringBuffer、StringBuilder 的区别?
答:
- String: 是不可变的,即变量指向对象的地址不能改变
- StringBuffer: 继承
AbstractStringBuilder
类,AbstractStringBuilder 类中使用字符数组保存字符串,并且定义了许多修改字符串的方法(append())。StringBuffer 对方法加了同步锁,保证线程安全。 - StringBuilder: 同样也继承
AbstractStringBuilder
类,方法没有加锁,不能保证线程安全。
27. String 为什么是不可变的?
答:
- String 类中使用
private
关键字修饰字符数组
来保存字符串,没有提供/暴露修改这个字符串的方法。 - String 类被
final
修饰导致其不能被继承,进而避免了子类破坏 String 不可变。
28. 字符串拼接用“+” 还是 StringBuilder?
答:
- 字符串对象通过“
+
”的字符串拼接方式,实际上是通过 StringBuilder 调用append()
方法实现的,拼接完成之后调用 toString() 得到一个 String 对象 。 - 注意:在循环内使用“+”进行字符串的拼接的话,会创建多个的 StringBuilder 对象。
29. String的equals() 和 Object的equals() 有何区别?
答:
- String 中的
equals
方法是被重写过的,比较的是 String 字符串的值是否相等。 Object 的 equals 方法是比较的对象的内存地址。
30. 字符串常量池的作用了解吗?
答:
- 字符串常量池是 JVM 为了提升性能和减少内存消耗针对字符串(String 类)在堆上专门开辟的一块区域。
- 主要目的是为了避免字符串的重复创建。
31. String s1 = new String(“abc”);这句话创建了几个字符串对象?
答:
会创建 1
或 2
个字符串对象。
- 如果字符串常量池中没有 “abc” 的引用,则会在堆中创建2个字符串对象,将其中一个引用保存到字符串常量池中。
- 如果字符串常量池有了“abc”的引用,则会在堆中创建1个字符串对象,局部变量s1会指向这个对象。
32. intern 方法有什么作用?
答:
intern()
是一个 native(本地)方法,其作用是将指定的字符串对象的引用保存在字符串常量池中,可以简单分为两种情况:- 如果字符串常量池中保存了对应的字符串对象的引用,就直接返回该引用。
- 如果字符串常量池中没有保存了对应的字符串对象的引用,那就在常量池中创建一个指向该字符串对象的引用并返回。
33. String 类型的变量和常量做“+”运算时发生了什么?
答:
- 如果是2个字符串常量做
+
, 则在编译期间会将2个字符串拼接,之后 JVM 会放入到字符串常量池中。 - 如果字符串常量和变量做
+
,因为引用的值在程序编译期是无法确定,所以编译器无法对其进行优化。还是会在堆中创建对象。 - 注意:字符串变量使用
final
关键字声明之后,可以让编译器当做常量来处理。
String str1 = "str";
String str2 = "ing";
String str3 = "str" + "ing";
String str4 = str1 + str2;
String str5 = "string";
System.out.println(str3 == str4);//false
System.out.println(str3 == str5);//truefinal String str1 = "str";
final String str2 = "ing";
// 下面两个表达式其实是等价的
String c = "str" + "ing";// 常量池中的对象
String d = str1 + str2; // 常量池中的对象
System.out.println(c == d);// true
34. Java异常体系结构?
答:
异常的基类是Throwable
类,它有2个子类:
- Exception:用户程序可以捕获的异常。
- Error: 程序无法处理的错误。例如:StackOverflowError 堆栈溢出错误等。
Exception 又分为 Checked Exception
(受检异常,必须处理) 和 Unchecked Exception
(非受检异常,可以不处理)
- 受检异常:必须使用
try-catch
进行捕获,或是用throws
向上抛出。- IOException
- FileNotFoundException
- 非受检异常:程序不需要进行处理,就可以通过编译。
- NullPointerException
- ClassCastException
- IllegalArgumentException
- IndexOutOfBoundsException
35. try-catch-finally 如何使用?
答:
- try块:用于捕获异常。其后可接
零个
或多个
catch 块,如果没有 catch 块,则必须
跟一个 finally 块。 - catch块:用于处理 try 捕获到的异常。
- finally 块:无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。
36. 如果在try或catch块中出现return,finally还会执行吗?
答:
- 会执行,执行完finally后,再去执行 try 或 catch 块中出现return。
- 注意: 如果 finally 中有 return,则在 finally 中会直接结束,不再执行 try 或 catch 块中出现return。
37. finally 中的代码一定会执行吗?
答:
不一定
- 在 finally 语句中发生了异常,不会执行
- 程序所有的线程死亡,不会执行
- 关闭CPU,不会执行
38. 什么是泛型?有什么作用?
答:
- 使用泛型参数,可以增强代码的可读性以及稳定性。
- 比如:可以使用泛型,指定往集合中存哪种类型的数据。编译器可以对泛型参数进行检测。
39. 泛型的使用方式有哪几种?
答:
- 泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。
40. 项目中哪里用到了泛型?
答:
- 自定义接口通用返回结果 ResponseResult 通过参数 T 可根据具体的返回类型动态指定结果的数据类型
- 工具类
41. 什么是序列化?什么是反序列化?
答:
如果我们要把Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。
- 序列化:将对象转换成二进制字节流的过程
- 反序列化:将二进制字节流转换成对象的过程
注意: 使用 static
修饰的变量不会被序列化。
42. I/O 流为什么要分为字节流和字符流呢?
答:
问题本质想问:不管是文件读写还是网络发送接收,信息的最小存储单元都是字节
,那为什么 I/O 流操作要分为字节流操作和字符流操作呢?
- 如果接收方不知道字符编码类型的话,解码会出现乱码问题。例如:UTF-8的编码,中文占3个字节,GBK,中文占2个字节。
- 所以,直接使用字符流避免乱码。
43. 值传递问题
答:
Java 中将实参传递给方法(或函数)的方式是 值传递:
- 如果参数是基本类型的话,传递的就是基本类型的字面量值的拷贝,会创建副本。
- 如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。
44. 什么是泛型擦除机制?为什么要擦除
答:
- 泛型擦除:是指在编译期间,会把泛型擦除为
Object
或将 T extends xxx 擦除为其限定类型 xxx 。 - 为什么要擦除:保证引入泛型机制但不创建新的类型,减少JVM运行开销
45. Unsafe 类有什么作用
答:
- Unsafe 类可以直接访问系统内存资源、自主管理内存资源。一般不建议直接使用Unsafe类。
- 用途:
- 内存操作:可以直接对内存进行读写操作,包括获取对象字段的偏移量、设置对象字段的值、获取和设置数组元素的值等。
- 类的加载和初始化:可以手动加载和初始化类,执行类构造器等操作
- CAS操作:提供了对CAS(Compare And Swap)操作的支持
- 线程调度:可以手动创建和操作线程
相关文章:
【Java基础】面试题汇总
Java基础面试题1. JVM vs JDK vs JRE 2. 什么是字节码?采用字节码的好处是什么?3. 为什么说 Java 语言“编译与解释并存”?4. AOT 有什么优点?为什么不全部使用 AOT 呢?5. Java 和 C 的区别?6. Java 中的基本数据类型࿱…...
数据库事务的超级详细讲解,包括事务特性、事务隔离级别、MVCC(多版本并发控制)
数据库事务: 主要有事务特性,事务的隔离级别,MVCC。 事务特性: 事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全部成功执行,要么全部不执行ÿ…...
鸿蒙Lottie动画-实现控制动画的播放、暂停、倍速播放、播放顺序
介绍 本示例展示了lottie对动画的操作功能。引入Lottie模块,实现控制动画的播放、暂停、倍速播放、播放顺序、播放到指定帧停止或从指定帧开始播放、侦听事件等功能,动画资源路径必须是json格式。 效果预览 使用说明: 进入页面默认开始201…...
C++面试100问与自动驾驶100问
C的学习和面试其实是非常的不友好的,首先C的学习内容非常的多,其次C的面试不单单面试C的知识点,还有它的“七大姑八大姨”(计算机网络、数据结构、算法、计算机组成原理、操作系统、编译、xxx的底层实现 and so on)。 …...
加速 Redis 操作:掌握管道技术提升性能与效率
Redis 管道技术是一种用于优化 Redis 命令执行效率的机制。在传统的 Redis 操作中,每次向 Redis 服务器发送一个命令,都需要等待命令执行完成并返回结果,这样会导致频繁的网络通信和服务器端的命令执行开销,降低系统的性能和吞吐量…...
深入浅出 -- 系统架构之分布式系统底层的一致性
在分布式领域里,一致性成为了炙手可热的名词,缓存、数据库、消息中间件、文件系统、业务系统……,各类分布式场景中都有它的身影,因此,想要更好的理解分布式系统,必须要理解“一致性”这个概念。 其实关于…...
idea Springboot 电影推荐系统LayUI框架开发协同过滤算法web结构java编程计算机网页
一、源码特点 springboot 电影推荐系统是一套完善的完整信息系统,结合mvc框架和LayUI框架完成本系统springboot dao bean 采用协同过滤算法进行推荐 ,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发)&…...
xss【2】
1.xss钓鱼 钓鱼攻击利用页面,fish.php黑客钓鱼获取到账号密码存储的位置 xss进行键盘记录 2.xss常规防范 3.xss验证payload XSS(跨站攻击)_details/open/ontoggle-CSDN博客...
时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解
时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序…...
css- 4
1.浮动 1. 浮动最初用于实现文字环绕效果 2. 现在,浮动是主流的布局方式之一 1.1元素浮动之后的特点 元素浮动之后,称为浮动元素,具有如下特点: 1. 浮动元素脱离文档流 2. 多个浮动的元素会水平排列,一行放不下自动换…...
22.括号生成
题目描述 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2: 输入…...
JAVA八股--redis
JAVA八股--redis 如何保证Redis和数据库数据一致性redisson实现的分布式锁的主从一致性Redis脑裂现象及解决方案介绍I/O多路复用模型undo log 和 redo log(没掌握MyISAM 和 InnoDB 有什么区别? 如何保证Redis和数据库数据一致性 关于异步通知中消息队列…...
[图像处理] MFC载入图片并绘制ROI矩形
上一篇: [图像处理] MFC载入图片并进行二值化处理和灰度处理及其效果显示 文章目录 前言完整代码重要代码效果 前言 上一篇实现了MFC通过Picture控件载入图片。 这一篇实现ROI功能的第一部分,在Picture控件中,通过鼠标拖拽画出一个矩形。 完…...
Godot 4 教程《勇者传说》依赖注入 学习笔记(0):环境配置
文章目录 前言相关地址环境配置初始化环境配置文件夹结构代码结构代码运行 资源文件导入像素风格窗口环境设置背景设置,Tileap使用自动TileMap 人物场景动画节点添加站立节点添加移动动画添加 通过依赖注入获取Godot的全局属性项目声明 当前项目逻辑讲解角色下降添加代码位置问…...
强行让Java和Go对比一波[持续更新]
概述 很多Java开发如果想转Golang的话,比较让Java开发蛋疼的第一是语法,第二是一些思想和设计哲学的Gap,所以我这儿强行整理一波Java和Golang的对比,但是由于GO和Java在很多方面都有不同的设计,所以这些对比的项可以更…...
理解七层网络协议
osi体系结构 上三路(管数据) 应用层 通过http等,把传输的格式,数据打包 处理网络应用。直接为端用户服务,提供各类应用过程的接口和用户接口。例如:HTTP、Tenlent、FTP、SMTP、NFS等。基于TCP的FTP、HTTP…...
网络协议——HTTP协议
目录 编辑 一,HTTP协议基本认识 二,认识URL 三,http协议的格式 1,发送格式 2,回应格式 四,服务端代码 五,http报文细节 1,Post与Get方法 2,Content_lenth 3&…...
八股面试——数据库——索引
索引的概念 B树的概念: 索引的作用 聚簇索引与非聚簇索引 聚簇索引就是主键值,在B树上,通过主键大小(数据在B树叶子节点按主键顺序排序)寻找对应的叶子节点,叶子节点保存的一整条记录。 非聚簇索引&#x…...
【二分查找】Leetcode 二分查找
题目解析 二分查找在数组有序可以使用,也可以在数组无序的时候使用(只要数组中的一些规律适用于二分即可) 704. 二分查找 算法讲解 当left > right的时候,我们循环结束,但是当left和right缩成一个点的时候&#x…...
Python+Vuecil笔记
Nginx 进入目录: C:\nginx-1.20.2\nginx-1.20.2 start nginx 开始 nginx -s stop 停止 nginx -s quit 退出CSS 通过标签去写css 循环展示数据 JS 点击时执行事件 Django 配置media 在seetings里面修改 STATIC_URL /static/ MEDIA_URL /upload/ MEDIA_ROOT os.pat…...
C语言关于随机数知识点的总结
在C语言中,随机数的生成通常依赖于特定的库函数,最常用的是 <stdlib.h> 头文件中的 rand() 函数。以下是对随机数知识点的总结、举例和分析: 随机数知识点总结 1.随机数种子:rand() 函数生成的随机数是伪随机数࿰…...
网络应用层和传输层
网络中有很多协议这些协议的不同导致了分层这一现象,不同层的主要功能不一样。 应用层:应用程序。数据具体如何使用 传输层:关注起点和终点 网络层:关注路径规划 数据链路层:关注相邻节点的转发 物理层࿱…...
Vue3:优化-从响应式数据中获取纯数据
一、情景说明 我们知道,Vue3中,创建变量时,常用ref、reactive来包裹,这样,这个变量就是响应式数据 然而,有时候,我们只需要纯数据 例如,我们在调用后端接口的时候,我们只…...
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成?
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成? 手术麻醉系统与医院信息系统的集成是一个关键步骤,它有助于实现信息的共享和流程的协同,从而提高医疗服务的效率和质量。手麻系统与lis、his、pacs等系统的对接是医院信息化建设的重…...
学习CSS Flexbox 玩flexboxfroggy flexboxfroggy1-24关详解
欢迎来到Flexbox Froggy,这是一个通过编写CSS代码来帮助Froggy和朋友的游戏! justify-content 和 align-items 是两个用于控制 CSS Flexbox 布局的属性。 justify-content:该属性用于控制 Flexbox 容器中子项目在主轴(水平方向)…...
springboot项目如何配置跨域?
在Spring Boot项目中配置跨域(CORS,Cross-Origin Resource Sharing)主要是为了允许来自不同源(不同的协议、域名或端口)的前端应用能够访问后端API。Spring Boot提供了多种方式来配置跨域支持。 1. 使用CrossOrigin注…...
实现第一个动态链接库 游戏插件 成功在主程序中运行 dll 中定义的类
devc 5.11编译环境 dll编译环境设置参考 Dev c C语言实现第一个 dll 动态链接库 创建与调用-CSDN博客 插件 DLL代码和主程序代码如下 注意 dll 代码中的class 类名需要 和主程序 相同 其中使用了函数指针和强制类型转换 函数指针教程参考 以动态库链接库 .dll 探索结构体…...
算法第三十九天-验证二叉树的前序序列化
验证二叉树的前序序列化 题目要求 解题思路 方法一:栈 栈的思路是「自底向上」的想法。下面要结合本题是「前序遍历」这个重要特点。 我们知道「前序遍历」是按照「根节点-左子树-右子树」的顺序遍历的,只有当根节点的所有左子树遍历完成之后…...
Rust---复合数据类型之字符串与切片(2)
目录 字符串操作删除 (Delete)连接 (Concatenate)字符串转义前情回顾: Rust—复合数据类型之字符串(1) 字符串操作 删除 (Delete) 删除方法仅适用于 String 类型,分别是: pop(),remove(),truncate(),clear(),此外还有drain() 方法。 pop 方法:pop() 方法返回一个 O…...
iOS 应用内网络请求设置代理
主要通过URLSessionConfiguration 的connectionProxyDictionary 属性 为了方便其他同学使用,我们可以通过界面来进行设定(是否开启代理、服务端、端口),从而达到类似系统上的设定 具体链接参考:为 iOS 网络请求设置代理…...
做外贸网站需要注意些什么手续/搜外友链平台
<?php /*** 创建多进程*/ $worker_num 30; // 默认进程数 $workers []; // 进程保存 $redirect_stdout false; // 重定向输出 ; 这个参数用途等会我们看效果 for($i 0; $i < $worker_num; $i){$process new swoole_proce…...
上上海网站设计建设/珠海百度seo
北邮计算机仿真设计报告-学位论文计算机控制仿真课程设计姓名 学院 自动化学院 专业 自动化专业 班级 学号 03) 09) 12) 指导教师2013年7月目录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc361403599" 一、引言1 HYPERLINK \l "_Toc361403600" 1.…...
个人如何建立网站/百度如何注册公司网站
默认是负载均衡 设置为广播模式:...
网络营销推广品牌/搜seo
函数的调用,一般是对同一个源文件中的其他函数进行调用的,也可以对另外一个源文件中的函数进行调用C语言中,根据函数能否被其他源文件调用,分为内部函数和外部函数外部函数,可以被其他源文件调用的函数内部函数&#x…...
网站开发合同技术目标/成都网站建设seo
对于窗体的透明,一般来说,有三种方式: 1.通过Ps等工具制作一定透明度的图片,放在div或其他想要放置的trigger里面。以此实现透明的效果。 1 <html> 2 <body> 3 <div id"content"> 4 …...
长沙园林景观设计公司排名/草根seo视频大全网站
突然发现和启动一个线程有关的有三函数,run(), call(), start(),有点小乱,所以特别梳理一下 首先说一下start(),这个是最好说的,感觉start()和run()这俩名字是真的有点容易混 其实,start()是我们用extends …...