赢麻了……腾讯1面核心9问,小伙伴过了提42W offer

说在前面

在40岁老架构师尼恩的(50+)读者社群中,经常有小伙伴,需要面试腾讯、美团、京东、阿里、 百度、头条等大厂。

下面是一个小伙伴成功拿到通过了腾讯面试,并且最终拿到offer,一毕业就年薪42W,赢麻了。

现在把腾讯面试真题和参考答案收入咱们的宝典,大家看看,收个优质腾讯Offer需要学点啥?

这里把题目以及小伙伴的吹牛逼的方式方法,经过整理和梳理之后,收入咱们的《尼恩Java面试宝典PDF》 V124版本,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发、吹牛水平。

《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》的PDF,请到公众号【技术自由圈】获取

文章目录

    • 说在前面
    • 腾讯面试真题
      • 1、说说TCP和UDP?
        • TCP:
        • UDP:
      • 2、说说TCP可靠机制?
      • 3、说说Mysql引擎?
      • 4、说说索引失效?
      • 5、说说脏读,不可重复读,幻读?
      • 6、Mysql事务隔离级别,怎么解决,MVCC+next-key lock可以解决幻读吗?
      • 7、设计与实现一个 IM 系统?最好是分布式版本?
      • 8、算法题:树的先中后序遍历
        • 前序遍历
        • 中序遍历
        • 后序遍历
      • 9、算法题:二进制加法
      • 附录:100道常备的算法题
    • 尼恩说在最后
    • 尼恩技术圣经系列PDF

腾讯面试真题

1、说说TCP和UDP?

TCP:
  1. 面向连接:TCP 是一种连接导向的协议,它在通信开始前需建立连接,并在通信结束后释放连接。这确保了数据传输的可靠性,但也会增加一些额外开销。
  2. 可靠性:TCP 提供可靠的数据传输,确保数据包按顺序到达,并能重新发送丢失或损坏的数据包,以确保数据完整性。
  3. 流控制:TCP 支持流量控制机制,防止发送方发送过多数据,从而避免网络拥塞。这通过滑动窗口机制实现。
  4. 拥塞控制:TCP 具有内置的拥塞控制机制,可监测网络拥塞情况,并动态调整发送速率以防止拥塞。
  5. 有序性:TCP 确保数据包按顺序到达,对于需要数据有序性的应用至关重要。
  6. 连接开销:由于建立和维护连接的开销,TCP 的成本相对较高。这使其适用于需要可靠性的应用,如网页浏览、文件传输和电子邮件。
UDP:
  1. 无连接:UDP 是一种无连接的协议,无需建立连接,数据包可直接发送至目的地。这降低了通信开销,但也意味着它不提供连接的可靠性。
  2. 不可靠性:UDP 不提供数据包的可靠性,数据包可能会丢失、重复或乱序。它适用于对数据可靠性要求不高的应用,如音视频流媒体和在线游戏。
  3. 无流控制:UDP 不提供内置的流量控制机制,发送方可以以任意速率发送数据,不考虑接收方的处理能力。
  4. 无拥塞控制:UDP 没有内置的拥塞控制机制,不会主动监测网络拥塞情况,在拥塞网络中可能导致数据包丢失。
  5. 低开销:由于没有连接建立和维护的开销,UDP 具有较低的开销,适用于需要低延迟的应用,如实时音视频传输。

2、说说TCP可靠机制?

  1. 序列号和确认号:TCP 数据包中包含序列号和确认号。发送方使用序列号对数据包进行编号,接收方使用确认号来确认已成功接收数据。这确保了数据包的有序传输。
  2. 确认机制:接收方会定期发送确认(ACK)数据包,告知发送方已成功接收到的数据包。若发送方在一定时间内未收到确认,则会重新发送相应数据包。
  3. 超时重传:若发送方在一定时间内未收到确认,则会假定数据包丢失并进行超时重传。这确保了即使数据包在传输过程中丢失,最终仍能成功传输。
  4. 流控制:TCP 使用滑动窗口机制进行流控制。接收方通过通告窗口大小告知发送方还能接收多少数据。这有助于防止发送方发送过多数据,从而避免数据丢失和网络拥塞。
  5. 拥塞控制:TCP 内置拥塞控制机制,可监测网络拥塞情况。若发现网络拥塞,发送方会降低发送速率,以避免进一步加重拥塞。
  6. 有序性:TCP 确保数据包按顺序到达接收方,即使网络中可能出现乱序传输,TCP 会将数据包按正确顺序重新排列。
  7. 可靠的连接建立和终止:TCP 在连接建立和终止过程中采用多个握手与挥手步骤,确保连接可靠性。这包括三次握手和四次挥手过程。

3、说说Mysql引擎?

两个常见的:

  1. InnoDB:作为 MySQL 的默认存储引擎,InnoDB 支持事务处理和高度数据完整性。它提供行级锁定和外键约束,适用于注重数据一致性和事务处理的应用。
  2. MyISAM:MyISAM 是 MySQL 的另一种存储引擎,它支持全文本搜索和表级锁定。MyISAM 不支持事务处理,但适用于需要快速读取和写入的应用,如数据仓库和日志记录。

一些作为了解的:

  1. MEMORY:MEMORY 存储引擎将数据存储在内存中,因此读取速度非常快,但数据不会持久保存。适用于缓存和临时数据存储。
  2. NDB Cluster:NDB Cluster 存储引擎是 MySQL 的集群存储引擎,支持分布式数据库。适用于需要高可用性和负载均衡的应用。
  3. Archive:Archive 存储引擎用于高压缩率的数据存储,适用于归档数据和历史数据存储。
  4. TokuDB:TokuDB 存储引擎专注于大数据处理,支持高性能的数据插入和查询。适用于处理大量数据的应,如日志和分析应用。
  5. Federated:Federated 存储引擎允许在一个 MySQL 数据库中访问另一个远程 MySQL 数据库的表。适用于分布式数据访问。
  6. Blackhole:Blackhole 存储引擎实则不存储数据,仅将数据传递至其他存储引擎。可用于数据复制和数据分发。
  7. CSV:CSV 存储引擎用于读取和写入 CSV 文件格式的数据。适用于与其他应用程序交换数据。
  8. JSON:JSON 存储引擎支持 JSON 数据类型,用于存储和查询 JSON 数据。

4、说说索引失效?

索引失效是指在数据库查询中,数据库管理系统无法充分利用现有索引来加速查询,而需要进行全表扫描或全索引扫描的情况。这种情况可能导致查询性能下降。

索引失效的一些原因:

  1. 未使用索引列进行查询:如果查询条件不包含在索引列中,索引就无法加速查询。例如,如果有一个名为 “name” 的索引,但查询是基于 “age” 列的,那么索引就无法用于加速查询。
  2. 使用函数或操作符处理索引列:当在查询中对索引列使用函数或操作符时,索引可能会失效。例如,如果对 “name” 列进行了 UPPER() 函数操作,索引就无法使用。
  3. 使用不等号条件:某些不等号条件(如不等于、大于、小于等)可能导致索引使用受限。通常情况下,等于条件(=)更容易使用索引。
  4. 数据分布不均匀:若索引列的数据分布不均匀,即某些值出现次数很多,而其他值出现次数很少,索引的选择性较低,可能不会被选用加速查询。
  5. 索引列类型不匹配:若查询条件的数据类型与索引列的数据类型不匹配,索引可能会失效。例如,索引列是字符串类型,但查询条件使用了数字,索引可能无法使用。
  6. 索引顺序不匹配:针对复合索引,若查询条件的列顺序与索引的列顺序不匹配,索引可能无法加速查询。
  7. 表数据量太小:对于非常小的表,全表扫描通常比使用索引更高效,因此数据库管理系统可能会选择不使用索引。

5、说说脏读,不可重复读,幻读?

  1. 脏读(Dirty Read):脏读是指在一个事务读取另一个事务未提交的数据。当一个事务读取另一个事务的数据,而后者后来回滚,导致读取的数据实际上是无效的。这可能导致严重的数据不一致问题。
  2. 不可重复读(Non-Repeatable Read):不可重复读发生在一个事务内的两次查询之间,另一个事务修改了数据,使得第一次查询的结果与第二次查询的结果不一致。这是因为第一次查询返回的数据在第二次查询之前已经被修改。
  3. 幻读(Phantom Read):幻读是在一个事务内的两次查询之间,另一个事务插入了新的数据行,导致第一次查询的结果与第二次查询的结果不一致。尽管数据未被修改,但由于新数据的插入,第二次查询可能返回不同的结果。

这些问题与数据库的隔离级别相关。

SQL 标准定义了四种隔离级别:读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)、和串行化(Serializable)。不同的隔离级别会导致不同的数据一致性问题:

  • 在读未提交隔离级别下,允许脏读、不可重复读和幻读。
  • 在读提交隔离级别下,防止脏读,但允许不可重复读和幻读。
  • 在可重复读隔离级别下,防止脏读和不可重复读,但允许幻读。
  • 在串行化隔离级别下,防止脏读、不可重复读和幻读,但性能可能受到一定的影响。

6、Mysql事务隔离级别,怎么解决,MVCC+next-key lock可以解决幻读吗?

  • MVCC(多版本并发控制):MVCC 是 MySQL 采用的一种机制,通过在数据库中保存不同版本的数据来解决并发读写问题。在 MVCC 中,每个事务启动时会获得一个事务 ID,读操作只能看到等于或小于该事务 ID 的数据版本,从而实现数据隔离。MVCC 主要应用于可重复读和读提交隔离级别,以解决不可重复读和幻读问题。然而,在可重复读隔离级别下,仍可能发生幻读。
  • Next-Key Locks:Next-Key Locks 是 MySQL 中的锁机制,在索引上创建了锁,包括满足条件的记录以及下一个记录的锁。这可以防止其他事务在当前事务读取或修改记录时插入新的记录,从而避免幻读。Next-Key Locks 主要用于可重复读隔离级别,以解决幻读问题。

需要注意的是,MVCC 和 Next-Key Locks 能有效减轻幻读问题,但无法在所有情况下完全解决幻读。在某些特定情况下,如涉及范围查询,仍然可能发生幻读。

在这种情况下,应根据应用的需求和数据一致性的要求选择事务隔离级别,权衡性能和一致性。若对数据一致性要求较高,可以选择串行化隔离级别,但要注意性能可能受到影响。

7、设计与实现一个 IM 系统?最好是分布式版本?

尼恩提示: 这个是腾讯面试核心问题, 回答好这个题至关重要

这道题目的答案,内容非常多, 可以参考两个项目的方案去回答:

第一个项目:《腾讯太狠:10亿QPS的IM,如何实现?》

第二个项目:《1000Wqps生产级高并发IM,怎么架构?》

这两个项目的方案, 收录在《尼恩Java面试宝典》PDF集群的 专题04:《架构设计面试题(卷王专供+ 史上最全 + 2023面试必备)》 中。内容篇幅太大,在这里不做重复了。

8、算法题:树的先中后序遍历

前序遍历

前序遍历是一种深度优先遍历方式,它的访问顺序是先访问根节点,然后递归地访问左子树和右子树。

递归

思路:

  1. 访问当前节点(根节点)。
  2. 递归遍历左子树。
  3. 递归遍历右子树。

示例代码:

#include <iostream>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

void preorderTraversal(TreeNode* root) {
    if (root == nullptr) {
        return;
    }
    
    // 1. 访问当前节点
    std::cout << root->val << " ";
    
    // 2. 递归遍历左子树
    preorderTraversal(root->left);
    
    // 3. 递归遍历右子树
    preorderTraversal(root->right);
}

int main() {
    // 构建一个示例二叉树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 执行先序遍历
    std::cout << "Preorder Traversal: ";
    preorderTraversal(root);
    
    return 0;
}

非递归

思路:

  1. 创建一个栈,以及一个指向树根节点的指针。
  2. 将根节点入栈。
  3. 弹出栈顶节点,访问它。
  4. 如果该节点有右子节点,将右子节点入栈,再将左子节点入栈(这样确保左子节点在栈顶)。
  5. 重复步骤3和4,直到栈为空。

示例代码:

void preorderTraversal(TreeNode* root) {
    std::stack<TreeNode*> s;
    TreeNode* current = root;

    while (current || !s.empty()) {
        while (current) {
            std::cout << current->val << " ";
            if (current->right) {
                s.push(current->right);
            }
            current = current->left;
        }
        if (!s.empty()) {
            current = s.top();
            s.pop();
        }
    }
}
中序遍历

中序遍历也是一种深度优先遍历方式,它的访问顺序是先遍历左子树,然后访问根节点,最后遍历右子树。

递归

思路:

  1. 递归遍历左子树。
  2. 访问当前节点(根节点)。
  3. 递归遍历右子树。

示例代码:

#include <iostream>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

void inorderTraversal(TreeNode* root) {
    if (root == nullptr) {
        return;
    }
    
    // 1. 递归遍历左子树
    inorderTraversal(root->left);
    
    // 2. 访问当前节点
    std::cout << root->val << " ";
    
    // 3. 递归遍历右子树
    inorderTraversal(root->right);
}

int main() {
    // 构建一个示例二叉树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 执行中序遍历
    std::cout << "Inorder Traversal: ";
    inorderTraversal(root);
    
    return 0;
}

非递归

思路:

  1. 创建一个栈,以及一个指向树根节点的指针。
  2. 从根节点开始,将所有左子节点入栈,直到达到最左边的叶子节点。
  3. 出栈一个节点,访问它。
  4. 如果该节点有右子节点,将右子节点设为当前节点,然后重复步骤2。
  5. 重复步骤3和4,直到栈为空且当前节点为空。

示例代码:

void inorderTraversal(TreeNode* root) {
    std::stack<TreeNode*> s;
    TreeNode* current = root;

    while (current || !s.empty()) {
        while (current) {
            s.push(current);
            current = current->left;
        }
        current = s.top();
        s.pop();
        std::cout << current->val << " ";
        current = current->right;
    }
}
后序遍历

后序遍历同样是一种深度优先遍历方式,它的访问顺序是先遍历左子树,然后遍历右子树,最后访问根节点。

递归

思路:

  1. 递归遍历左子树。
  2. 递归遍历右子树。
  3. 访问当前节点(根节点)。

示例代码:

#include <iostream>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

void postorderTraversal(TreeNode* root) {
    if (root == nullptr) {
        return;
    }
    
    // 1. 递归遍历左子树
    postorderTraversal(root->left);
    
    // 2. 递归遍历右子树
    postorderTraversal(root->right);
    
    // 3. 访问当前节点
    std::cout << root->val << " ";
}

int main() {
    // 构建一个示例二叉树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 执行后序遍历
    std::cout << "Postorder Traversal: ";
    postorderTraversal(root);
    
    return 0;
}

非递归

思路:

  1. 创建两个栈,一个用于节点的遍历,另一个用于保存遍历结果。
  2. 将根节点压入栈1。
  3. 从栈1弹出一个节点,然后将它压入栈2。
  4. 将当前节点的左子节点和右子节点分别压入栈1。
  5. 重复步骤3和4,直到栈1为空。
  6. 此时栈2中的元素就是后序遍历的顺序,将它们依次出栈并访问。

示例代码:

void postorderTraversal(TreeNode* root) {
    std::stack<TreeNode*> s1, s2;
    s1.push(root);

    while (!s1.empty()) {
        TreeNode* current = s1.top();
        s1.pop();
        s2.push(current);

        if (current->left) {
            s1.push(current->left);
        }
        if (current->right) {
            s1.push(current->right);
        }
    }

    while (!s2.empty()) {
        std::cout << s2.top()->val << " ";
        s2.pop();
    }
}

9、算法题:二进制加法

描述:

给定两个 01 字符串 ab ,请计算它们的和,并以二进制字符串的形式输出。

输入为 非空 字符串且只包含数字 10

思路:

  1. 创建一个空字符串 result 用于保存结果,以及两个变量 carry(用于表示进位,初始化为0)和 i(用于从字符串末尾向前遍历)。
  2. 从字符串 ab 的末尾开始,逐位取出字符并转换为整数,分别为 numAnumB。如果字符串已经遍历完,则对应的数字设为0。
  3. 计算当前位的和,即 sum = numA + numB + carry。注意,carry 初始为0,但在每次迭代后可能会变为1。
  4. 计算当前位的结果和进位:currentResult = sum % 2carry = sum / 2
  5. currentResult 转换为字符并插入到 result 的前面。
  6. i 向前移动一位。
  7. 重复步骤2到步骤6,直到遍历完字符串 ab
  8. 如果最后一次迭代后 carry 为1,表示有进位,将"1"插入到 result 的前面。
  9. 返回 result 作为最终结果。

示例代码:

#include <iostream>
#include <string>
using namespace std;

string addBinary(string a, string b) {
    string result = "";
    int carry = 0;
    int i = a.length() - 1, j = b.length() - 1;

    while (i >= 0 || j >= 0) {
        int numA = (i >= 0) ? (a[i] - '0') : 0;
        int numB = (j >= 0) ? (b[j] - '0') : 0;
        int sum = numA + numB + carry;
        int currentResult = sum % 2;
        carry = sum / 2;
        result = to_string(currentResult) + result;
        i--;
        j--;
    }

    if (carry == 1) {
        result = "1" + result;
    }

    return result;
}

int main() {
    string a = "1011";
    string b = "1101";
    string sum = addBinary(a, b);
    cout << "Sum: " << sum << endl;
    return 0;
}

附录:100道常备的算法题

大厂重视算法。

尼恩给大家备好了100道常背的算法题, 大家要一定要吃透,温故而知新, 常常看看, 不要忘了。

尼恩说在最后

在尼恩的(50+)读者社群中,很多、很多小伙伴需要进大厂、拿高薪。

尼恩团队,会持续结合一些大厂的面试真题,给大家梳理一下学习路径,看看大家需要学点啥?

前面用多篇文章,给大家介绍阿里、百度、字节、滴滴的真题:

《太细了:美团一面连环夺命20问,搞定就60W起》

《炸裂,靠“吹牛”过京东一面,月薪40k》

《太猛了,靠“吹牛”过顺丰一面,月薪30K》

《问懵了…美团一面索命44问,过了就60W+》

《炸裂了…京东一面索命40问,过了就50W+》

《问麻了…阿里一面索命27问,过了就60W+》

《百度狂问3小时,大厂offer到手,小伙真狠!》

《饿了么太狠:面个高级Java,抖这多硬活、狠活》

《字节狂问一小时,小伙offer到手,太狠了!》

《收个滴滴Offer:从小伙三面经历,看看需要学点啥?》

这些真题,都会收入到 史上最全、持续升级的 PDF电子书 《尼恩Java面试宝典》。

本文收录于 《尼恩Java面试宝典》。

基本上,把尼恩的 《尼恩Java面试宝典》吃透,大厂offer很容易拿到滴。另外,下一期的 大厂面经大家有啥需求,可以发消息给尼恩。

尼恩技术圣经系列PDF

  • 《NIO圣经:一次穿透NIO、Selector、Epoll底层原理》
  • 《Docker圣经:大白话说Docker底层原理,6W字实现Docker自由》
  • 《K8S学习圣经:大白话说K8S底层原理,14W字实现K8S自由》
  • 《SpringCloud Alibaba 学习圣经,10万字实现SpringCloud 自由》
  • 《大数据HBase学习圣经:一本书实现HBase学习自由》
  • 《大数据Flink学习圣经:一本书实现大数据Flink自由》
  • 《响应式圣经:10W字,实现Spring响应式编程自由》
  • 《Go学习圣经:Go语言实现高并发CRUD业务开发》

……完整版尼恩技术圣经PDF集群,请找尼恩领取

《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》PDF,请到下面公号【技术自由圈】取↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152074.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rabbit的扇出模式(fanout发布订阅)的生产者与消费者使用案例

扇出模式 fanout 发布订阅模式 生产者 生产者发送消息到交换机&#xff08;logs&#xff09;,控制台输入消息作为生产者的消息发送 package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils; import com.rabbitmq.client.Channel;import java.util.Scanne…

csapp第三章读书笔记

caspp chapter 3 寄存器 operand form data movement instructions mov 指令例子: 0扩展 movz 指令: Zero-extending data movement instructions是一种计算机指令类型&#xff0c;涉及将数据从一个位置移动到另一个位置&#xff0c;同时通过在最重要的一端添加零位来将数据扩…

精美可视化:Python自动化生成漂亮的测试报告

“ 运用Python的Unittest、数据驱动测试&#xff08;DDT&#xff09;、Excel、Jinja2和HTML技术&#xff0c;构建一个能够自动生成精美可视化测试报告的自动化测试框架” 思路流程 封装读取数据&#xff0c;让所有数据都能够再excel中填写&#xff0c;不再填写任何一行逻辑代码…

【前端】使用json-server报错

当我们使用json-server模仿后端接口时需要运行json-server --watch index.json这个命令生成增删改查接口但是可能会报这个错误&#xff0c;如图 这时我们运行 npm i json-server -g命令即可&#xff0c;然后再重新运行json-server --watch index.json就行了

编码器脉冲信号测量2路DI高速计数器PNP/NPN转RS-485数据采集模块 解码转换成标准Modbus RTU协议 YL150-485

特点&#xff1a; ● 编码器解码转换成标准Modbus RTU协议 ● 可用作编码器计数器或者转速测量 ● 支持编码器计数&#xff0c;可识别正反转 ● 也可以设置作为2路独立DI高速计数器 ● 计数值支持断电自动保存 ● DI输入支持PNP和NPN输入 ● 继电器和机械开关输入时可以…

C++入门(2)—函数重载、引用

目录 一、函数重载 1、参数类型不同 2、参数个数不同 3、参数顺序不同 4、 链接中如何区分函数重载 二、引用 1、规则 2、特征 3、使用场景 做参数 做返回值 4、常引用 5、传值、传引用效率比较 6、引用和指针的区别 接上一小节C入门(1)—命名空间、缺省参数 一…

解决requests库中的期限处理问题:从404到异常再到修复

在使用requests库进行网络请求时&#xff0c;用户可能会遇到一个奇怪的问题&#xff1a;当没有指定请求的期限时&#xff0c;他们得到的响应是404错误&#xff0c;但是一旦指定了请求的期限&#xff0c;就立刻遇到了一个异常&#xff0c;声称远程主机强制关闭了连接。这个问题让…

pytorch文本分类(一):文本预处理

pytorch文本分类&#xff08;一&#xff09;&#xff1a;文本预处理 本文为自己在鲸训练营答题总结&#xff0c;作业练习都在和鲸社区数据分析协作平台 ModelWhale 上。 &#x1f6a9;学习任务原链接在这里 相关数据链接&#xff1a;https://pan.baidu.com/s/1iwE3LdRv3uAkGGI…

Spring Boot使用EhCache完成一个缓存集群

在上一篇在SpringBoot中使用EhCache缓存&#xff0c;我们完成了在Spring Boot中完成了对EhCaChe的使用&#xff0c;这篇&#xff0c;我们将对EhCache的进一步了解&#xff0c;也就是搭建一个EhCache的缓存集群。 集群 在搭建一个EhCache的时候&#xff0c;我们需要先了解&…

【linux】nmon 工具使用

nmon 介绍 nmon是奈杰尔的性能监视器的缩写&#xff0c;适用于POWER、x86、x86_64、Mainframe和现在的ARM&#xff08;Raspberry Pi&#xff09;上的Linux。同样适用于nmon for AIX的工具&#xff08;与IBM的AIX一起提供&#xff09;。njmon与之类似&#xff0c;但将数据保存为…

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…

前端转行可以做什么

前端开发者通常拥有很好的技术背景和解决问题的能力&#xff0c;所以有很多可能的职业选择。以下是一些可能的选择&#xff1a; 全栈开发&#xff1a;这是一个非常热门的职位&#xff0c;需要能够处理前端和后端工作。使用多种编程语言和技术来构建从数据库到用户界面的整个应…

Android14 Beta 5

Beta 5&#xff0c;这是 Android 14 Beta 计划中的最后一次计划更新。这是确保您的应用程序已准备就绪并在非 Beta 用户开始获取 Android 14 之前提供反馈的最后机会。为了使您能够在跨多种外形尺寸的设备上测试您的应用程序&#xff0c;Beta 5 适用于 Pixel Tablet 和 Pixel F…

智能制造中后期:深挖成本、提升效率的关键——标准工时

在智能制造的背景下&#xff0c;企业面临着持续的成本压力和效率提升的需求。特别是在智能制造的中后期&#xff0c;要想进一步深挖成本、提升效率&#xff0c;必须考虑标准工时这一重要因素。标准工时作为一种基础而富有价值的管理工具&#xff0c;对于建立领先的标准工时系统…

使用tesseract-ocr实现图片中的中英文字符提取

1 tesseract-ocr介绍 OCR(Optical Character Recognition)&#xff1a;光学字符识别,是指对图片文件中的文字进行分析识别&#xff0c;获取的过程。 Tesseract&#xff1a;开源的OCR识别引擎&#xff0c;初期Tesseract引擎由HP实验室研发&#xff0c;后来贡献给了开源软件业&…

【2023云栖】刘一鸣:Data+AI时代大数据平台建设的思考与发布

简介&#xff1a; 本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;刘一鸣 | 阿里云自研大数据产品负责人 演讲主题&#xff1a;DataAI时代大数据平台应该如何建设 今天分享的主题是DataAI时代大数据平台应该如何建设&#xf…

本地mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

背景介绍&#xff1a; MySQL版本5.7&#xff0c;系统Win7&#xff0c;启动mysql服务时提示如下 解决方案 【会删除库中数据及mysql注册信息】&#xff1a; 1、删除原服务MySQL57 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --remove MySQL572、清空data 清空…

HackTheBox-Starting Point--Tier 2---Archetype

文章目录 一 Archetype测试过程1.1 打点1.2 权限获取1.3 权限提升二 题目 一 Archetype测试过程 1.1 打点 1.端口扫描 nmap -sV -sC 10.129.192.2522.枚举SMB共享 smbclient -N -L \\\\10.129.192.252\\查看backups&#xff0c;并发现 prod.dtsConfig 文件&#xff0c;在 pr…

android初集成flutter,遇到的问题

环境 studio版本&#xff1a;2022.1.1 flutter版本&#xff1a;2.8.0 电脑&#xff1a;mac flutter项目总是报错&#xff0c;编译不过 以 Resources Root 加载 记得设置dart&#xff1a;主工程和flutter项目都需要设置&#xff0c;否则不出现手机链接 下面这个样子就是好了&…

Django模型层

模型层 与数据库相关的&#xff0c;用于定义数据模型和数据库表结构。 在Django应用程序中&#xff0c;模型层是数据库和应用程序之间的接口&#xff0c;它负责处理所有与数据库相关的操作&#xff0c;例如创建、读取、更新和删除记录。Django的模型层还提供了一些高级功能 首…