1.厦门面试

07-21 896阅读

1.Vue的生命周期阶段

vue生命周期分为四个阶段

第一阶段(创建阶段):beforeCreate,created

第二阶段(挂载阶段):beforeMount(render),mounted

第三阶段(更新阶段):beforeUpdate,updated

第四阶段(销毁阶段):beforeDestroy,destroyed

2.vue的优点

Vue.js 是一个渐进式 JavaScript 框架

(1)渐进式框架:Vue.js 可以逐步应用于项目中,从而降低了学习和集成的成本。你可以根据需要选择使用它的部分功能或全功能。

(2)简单易学:Vue.js 的核心概念简单易懂,入门门槛较低。其文档详尽,学习资源丰富,社区支持良好。

(3)组件化开发:Vue.js 提供了强大的组件系统,使得开发者可以将界面分割成可复用的组件,从而提高了开发效率和代码维护性。

(4)数据绑定:Vue.js 采用双向数据绑定(two-way data binding),可以自动同步数据和视图,简化了数据管理和视图更新的流程。

(5)虚拟 DOM:Vue.js 使用虚拟 DOM 进行高效的 DOM 操作,确保在数据更新时只对需要更新的部分进行最小化的重新渲染,从而提高性能。

(6)反应式系统:Vue.js 具有强大的响应式系统,能够高效地跟踪和响应数据变化,从而实现实时更新和高性能的数据绑定。

(7)生态系统丰富:Vue.js 具有丰富的生态系统,包括 Vue Router(用于路由管理)、Vuex(用于状态管理)和 Vue CLI(用于项目脚手架),这些工具和库能够帮助开发者快速构建和管理项目。

(8)良好的性能:由于其轻量级的设计和高效的虚拟 DOM 操作,Vue.js 在性能方面表现优异,适用于各种规模的项目。

(9)支持 TypeScript:Vue.js 完全支持 TypeScript,提供了类型安全的开发体验,进一步增强了代码的可维护性和可靠性。

(10)强大的社区和支持:Vue.js 拥有一个活跃的社区,开发者可以轻松找到相关的资源、教程和帮助,从而加速开发进程。

3.vue如何进行通信

4.springboot的框架

5.spring boot的安全机制

6.数据库ACID特性

ACID 分别代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

(1)原子性 (Atomicity):

**原子性确保事务中的所有操作要么全部成功,要么全部失败。**事务是一个不可分割的操作单元,任何部分的失败都会导致整个事务的回滚(即所有已执行的操作都取消),以保证数据库状态不被部分完成的操作破坏。

示例:如果一个事务包括从一个账户转账到另一个账户,原子性确保钱要么同时从一个账户扣减并增加到另一个账户,要么两者都不发生。

(2)一致性 (Consistency):

一致性保证事务在执行之前和执行之后,数据库都处于一致的状态。事务必须使数据库从一个一致的状态转变到另一个一致的状态。所有定义的数据库规则(如约束、触发器等)在事务开始和结束时必须满足。

示例:如果一个数据库规则是每个账户的余额不能为负数,一致性保证事务在执行过程中不会违反这一规则。

(3)隔离性 (Isolation):

隔离性确保多个并发事务不会互相影响,每个事务的执行结果与单独执行的结果相同。换句话说,一个事务的中间状态对其他事务是不可见的。

示例:在一个银行系统中,如果两个事务分别尝试读取和更新同一个账户的余额,隔离性确保每个事务在执行时不会受到另一个事务的干扰。

(4)持久性 (Durability):

持久性保证一旦事务提交,它对数据库的修改将永久保存,即使系统发生故障(如电源故障、崩溃等),也不会丢失已提交的事务的结果。

示例:如果一个银行系统在转账完成并提交后突然断电,持久性保证在系统恢复后转账的结果依然存在,不会丢失。

7.java对象的三大特征/特性

8.静态变量和实例变量

9.线程和进程的定义和区别

10.进程的算法(信号量、管道)

11.TCP/IP通信

12.python语言中的基本数据类型

(1)整数 (int):

用于表示整数值,可以是正数或负数,不包括小数部分。

示例:10, -3, 42

(2)浮点数 (float):

用于表示带有小数部分的数字。

示例:3.14, -0.001, 2.71828

(3)字符串 (str):

用于表示文本数据,字符串可以用单引号 ’ 或双引号 " 括起来。

示例:‘hello’, “world”, ‘Python is fun’

(4)布尔 (bool):

用于表示布尔值,只有两个值:True 和 False。

示例:True, False

(5)列表 (list):

有序的、可变的元素集合,用方括号 [] 括起来,元素之间用逗号分隔。

示例:[1, 2, 3], [‘apple’, ‘banana’, ‘cherry’], [1, ‘hello’, 3.14]

(6)元组 (tuple):

有序的、不可变的元素集合,用圆括号 () 括起来,元素之间用逗号分隔。

示例:(1, 2, 3), (‘apple’, ‘banana’, ‘cherry’), (1, ‘hello’, 3.14)

额外知识点补充:表和元组都是有序的集合,这意味着它们中的元素按照添加的顺序排列,并且可以通过索引访问。

列表可变的示例

列表是可变的,这意味着可以在创建后修改它们的内容,包括增加、删除或改变元素。

# 创建一个列表
fruits = ['apple', 'banana', 'cherry']
print(f"原始列表: {fruits}")
# 修改列表中的元素
fruits[1] = 'blueberry'
print(f"修改后的列表: {fruits}")
# 添加新元素
fruits.append('date')
print(f"添加元素后的列表: {fruits}")
# 删除元素
fruits.remove('apple')
print(f"删除元素后的列表: {fruits}")

输出:

原始列表: ['apple', 'banana', 'cherry']
修改后的列表: ['apple', 'blueberry', 'cherry']
添加元素后的列表: ['apple', 'blueberry', 'cherry', 'date']
删除元素后的列表: ['blueberry', 'cherry', 'date']

元组不可变的示例

元组是不可变的,这意味着一旦创建就不能修改它们的内容。任何试图修改元组的操作都会引发错误。

# 创建一个元组
coordinates = (10, 20, 30)
print(f"原始元组: {coordinates}")
# 尝试修改元组中的元素(会引发错误)
try:
    coordinates[1] = 40
except TypeError as e:
    print(f"尝试修改元组引发错误: {e}")
# 尝试添加新元素(会引发错误)
try:
    coordinates.append(40)
except AttributeError as e:
    print(f"尝试添加元素引发错误: {e}")
# 尝试删除元素(会引发错误)
try:
    del coordinates[0]
except TypeError as e:
    print(f"尝试删除元素引发错误: {e}")

输出:

原始元组: (10, 20, 30)
尝试修改元组引发错误: 'tuple' object does not support item assignment
尝试添加元素引发错误: 'tuple' object has no attribute 'append'
尝试删除元素引发错误: 'tuple' object doesn't support item deletion

列表和元组为什么是有序的

列表和元组都是有序的集合,这意味着它们的元素按添加的顺序存储和访问。顺序性确保每个元素都有一个固定的位置,可以通过索引访问。无论列表还是元组,其有序性主要体现在以下两个方面:

按顺序存储:元素按照插入的顺序存储,并且不会改变。

按索引访问:可以使用索引来访问特定位置的元素。

列表和元组为什么是有序的

列表和元组都是有序的集合,这意味着它们的元素按添加的顺序存储和访问。顺序性确保每个元素都有一个固定的位置,可以通过索引访问。无论列表还是元组,其有序性主要体现在以下两个方面:

按顺序存储:元素按照插入的顺序存储,并且不会改变。

按索引访问:可以使用索引来访问特定位置的元素。

# 列表
list_example = ['a', 'b', 'c']
print(f"列表中的第一个元素: {list_example[0]}")  # 输出: 'a'
# 元组
tuple_example = ('x', 'y', 'z')
print(f"元组中的第一个元素: {tuple_example[0]}")  # 输出: 'x'

这种有序性使得列表和元组适合需要顺序访问元素的场景,比如遍历、切片等操作。

(7)集合 (set):

无序的、不重复的元素集合,用花括号 {} 括起来。

示例:{1, 2, 3}, {‘apple’, ‘banana’, ‘cherry’}, {1, ‘hello’, 3.14}

(8)字典 (dict):

无序的键值对集合,用花括号 {} 括起来,键值对用冒号 : 分隔。

示例:{‘name’: ‘Alice’, ‘age’: 25}, {‘apple’: 1, ‘banana’: 2, ‘cherry’: 3}

(9)NoneType:

用于表示空值或无值的对象,只有一个值 None。

示例:None

(10)字节 (bytes):

1.厦门面试

(11)字节数组 (bytearray):

类似于字节对象,但可以修改其内容。

示例:bytearray(b’hello’)

(12)记号 (complex):

用于表示复数,形式为 a + bj,其中 a 和 b 是浮点数,j 表示虚数单位。

示例:3 + 4j, 1.5 + 0.5j

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]