首页 / 校招求职吐槽
校招求职吐槽
开心也好,难过也罢,校招中的所有你都可以在这里吐槽!每日话题吐槽,参与还有机会获得牛客周边~【特别提示:本圈子禁内推,发内推的一律禁言7天;禁打卡,打卡一律删除】
圈主: 牛客0063号 创建于2020-04-24
发动态
此刻你想和大家分享什么
动态 圈友
offer分享
希望被捞的猫头鹰很理智:三年内离职要退钱,工资只有6、7k吧
点赞 评论 收藏
分享
ECharts在移动端上有何适配和优化方案?
在移动端上使用ECharts(百度开源的数据可视化库)时,有以下一些适配和优化方案:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=bb776ebc550a4fb39023bb015336ee9f响应式布局:确保ECharts图表能够自适应移动设备的屏幕大小。可以使用CSS媒体查询、弹性布局或栅格系统等技术来实现。移动端事件:ECharts默认支持鼠标事件,但在移动设备上需要使用触摸事件。可以使用ECharts的convertToPixel和convertFromPixel方法将触摸事件转换为对应的坐标。图表类型选择:在移动端上,由于屏幕空间有限,某些图表类型可能不适合展示。建议选择简洁明了的图表类型,并合理使用缩放、滚动等交互方式。数据量控制:移动设备的处理能力相对有限,如果数据量过大会导致性能下降。可以通过设置数据采样、分页加载等方式来减少渲染的数据量。动画效果控制:ECharts提供了丰富的动画效果,但在移动设备上过多的动画可能导致性能问题。建议适度控制动画的数量和持续时间,或者禁用某些动画效果。图表组件缩减:移动设备屏幕较小,对于一些不必要的图表组件,如图例、工具栏等,可以考虑隐藏或简化,以腾出更多的展示空间。图表渲染延迟:在移动网络环境下,数据加载速度可能会受到影响。可以使用loading动画或骨架屏等方式增强用户体验,减少长时间的白屏。性能优化:可通过压缩JavaScript和CSS文件,使用Web Workers进行计算分担,合理使用缓存等手段来提升ECharts在移动端的性能表现。总之,移动端上使用ECharts需要根据具体场景和需求进行适配和优化,以提供更好的用户体验。#牛客AI配图神器#
点赞 评论 收藏
分享
请解释一下Git是什么
点赞 评论 收藏
分享
什么是前端工具
前端工具是用于辅助前端开发和构建过程的软件或库。它们提供了一系列功能和工具,帮助开发人员提高开发效率、优化代码质量和提供更好的用户体验。以下是一些常见的前端工具及其作用:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=9d41438f19104dca802ef21b5942c139包管理器:例如npm、Yarn等,用于管理项目中的依赖包,方便安装、更新和删除各种前端库和框架。前端框架:例如React、Vue.js等,提供了组件化开发的能力,简化了复杂页面的构建和维护。CSS预处理器:例如Sass、Less等,扩展了CSS的功能,提供了变量、混合、嵌套等特性,可以更高效地编写可维护的样式代码。前端构建工具:例如Webpack、Gulp等,用于将多个源文件(HTML、CSS、JavaScript等)打包、压缩、优化,提供代码分割、模块化等功能。任务运行器:例如Grunt、Gulp等,用于自动化执行重复性、繁琐的任务,如编译Sass、压缩图片、启动开发服务器等。浏览器开发者工具:浏览器内置的开发者工具,提供了调试、排查问题、性能分析等功能,帮助开发人员快速定位和修复问题。测试工具:例如Jest、Mocha等,用于编写和运行单元测试、端到端测试等,保证代码的质量和稳定性。这些前端工具可以根据项目的需求和开发人员的习惯选择使用,帮助开发人员更高效地开发、调试和部署前端应用。
点赞 评论 收藏
分享
什么是WebSocket?
WebSocket是一种在Web应用程序中实现实时双向通信的技术。它提供了一种持久连接,允许服务器与客户端之间进行双向数据传输。与传统的HTTP请求/响应模型不同,WebSocket允许服务器主动向客户端发送消息,而不需要客户端发起请求。要在Web应用程序中使用WebSocket进行实时通信,需要执行以下步骤:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=b48bebe08e474db8b80b853b12bafd48创建一个WebSocket对象:使用JavaScript的WebSocket构造函数创建一个WebSocket对象,指定要连接的服务器URL。例如:var socket = new WebSocket("ws://example.com/socket-server");监听WebSocket事件:使用WebSocket对象的事件监听器来处理WebSocket的各种事件,例如onopen、onmessage、onclose和onerror。这些事件将在WebSocket状态变化、接收到消息、关闭连接或发生错误时被触发。建立连接:一旦创建了WebSocket对象,通过调用其open()方法建立与服务器的WebSocket连接。当连接建立成功时,onopen事件将被触发。发送和接收消息:使用WebSocket对象的send()方法向服务器发送消息,消息可以是字符串或其他数据类型。服务器接收到消息后,可以使用WebSocket对象的onmessage事件来处理。关闭连接:当需要终止WebSocket连接时,可以调用WebSocket对象的close()方法。服务器会收到一个关闭请求,如果确定关闭连接,会发送一个关闭信号给客户端并触发onclose事件。通过使用WebSocket,Web应用程序可以实现实时的双向通信,适用于聊天应用、实时通知、实时更新和协同编辑等场景。#ai智能作图#
点赞 评论 收藏
分享
HTML5中的本地存储有哪些方法?
HTML5引入了几种本地存储方法,用于在客户端(用户浏览器)存储数据。以下是HTML5中常用的本地存储方法及其用途和区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=4fe429db552e4b3a966ed18c92a2298a🚫🧡💨💗localStorage:用途:localStorage用于在浏览器中存储持久化的键值对数据。存储在localStorage中的数据不会过期,除非手动删除或通过JavaScript代码进行清除。区别:localStorage存储的数据是永久有效的,可以在不同窗口或页面间共享,并且没有过期时间限制。存储在localStorage中的数据会一直保留,即使用户关闭了浏览器。🚫🧡💨💗sessionStorage:用途:sessionStorage也用于在浏览器中存储键值对数据,但它的作用范围限于当前会话(session)。当用户关闭浏览器窗口时,sessionStorage中的数据会被清除。区别:sessionStorage适合于存储会话期间需要临时保存的数据。存储在sessionStorage中的数据与当前会话相关,对于不同会话或不同页面间的数据共享是不可用的。🚫🧡💨💗IndexedDB:用途:IndexedDB是一个功能强大的客户端数据库,可以存储大量结构化数据。它允许开发者创建对象存储空间,保存和检索数据,并进行复杂的查询和索引操作。区别:与localStorage和sessionStorage不同,IndexedDB提供了更高级的数据库功能,更适用于需要进行复杂数据操作、离线数据存储和离线应用程序等场景。🚫🧡💨💗Web SQL Database (已废弃):用途:Web SQL Database是一种关系型数据库,允许开发者在浏览器中使用SQL语句操作数据。然而,Web SQL Database已被废弃,不再进行标准化和支持。需要注意的是,这些本地存储方法只能在客户端存储数据,不适合用于存储敏感信息和大量的机密数据。它们主要用于存储浏览器会话数据、用户个性化设置、离线数据等。选择合适的本地存储方法取决于需求的持久性、作用范围和数据操作的复杂度。#ai智能作图#
点赞 评论 收藏
分享
2024-12-07 11:36
已编辑
蚌埠坦克学院 Java
【26日常】七牛云测开1面 2面 面经 避雷!
timeline 一面后很快2面,测开岗(快跑!!!)总结:一面面试官人很好,二面是个吊毛,答不上来嘲讽你,招个实习生测开岗,python go c++都想问你。态度极差,看手机 + 打字 + 卡时间,一点不尊重人,垃圾公司,面了几十家第一次遇到这种。一面面经(面试官可能不太懂开发相关,我用的后端简历投的,不过有测试技能点和测试工作)(面试官态度很好)1. 自我介绍2. 第一个项目介绍(项目背景、情况、团队、负责的模块)3. 第二个项目介绍4. 第一个项目讲解思路5. Redis的使用,缓存三兄弟在项目里的应用 和 解决思路6. MySQL使用,索引,锁,MVCC机制,事务以及隔离级别说明7. vue的使用 以及组件8. python 可变对象的原理9. python 浅拷贝深拷贝问题10. 算法题:一个字符串,现在要根据出现频率,进行降序排序11. 反问:base上海,部门搞测试,主要工作内容,功能,性能,集成,整合测试,测试相关,包括自动化测试12. 她讲了讲,工作的情况,而且这边产线也有开发,可以过去学习学习二面(面锤子)二面面试官感觉不太懂后端这部分的,主要问测试角度的,怎么看项目。感觉kpi面,不想招人,而且这个男的素质极差,我面了50-60次,都没遇到自己答不上来,面试官嘲讽你的。1. 自我介绍2. 项目-测试角度考虑 (这时候我讲了我的思路,他听不懂技术,就说问测试角度xx模块怎么考虑测试)3. 评论模块(父子评论,递归查询,这里当时设计的时候忘记做@通知了,被diss半天,嘲讽我)5. 中间问 项目部署之后,本地能访问百度,为啥百度访问不了校园网的服务器(我说没公网ip + 地址映射 + nat没设置转发)(比如用内网穿透可以,他说他不想听这个)4. 算法题:反转二叉树,acm模式,我用c++写,问我智能指针,二叉树结构不用指针怎么实现(我说数组)他说我不想听这个。#牛客创作赏金赛##七牛云面试经验##七牛云##吐槽##哪些企业的面试体验感最差?##面试题刺客退退退#附代码---------code1--------------#include #include #include using namespace std;class Solution {public:    string tSort(string& s) {        map mp;        for (char &c : s) {            mp[c]++;        }        string ans = "";        for (auto &[k, v]: mp) {            while (v--) {                ans += k;            }        }        return ans;    }};int main() {    string str;    getline(cin, str);    Solution sol;    cout }---------code2--------------#include #include #include #include #include using namespace std;struct TreeNode {    int val;    TreeNode* left, *right;    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}};class Solution {public:    void swapTree(TreeNode* root) {        if (!root)            return; TreeNode *tmp = root->left; root->left = root->right; root->right = tmp; swapTree(root->left); swapTree(root->right);    }};TreeNode* buildTree(vector& data) {    if (data.empty()) {        return nullptr;    }    TreeNode* root = new TreeNode(data[0]);    queue q;    q.push(root);    int index = 1;    while (!q.empty() && index         TreeNode *curNode = q.front(); q.pop();        if (data[index] != -1) { curNode->left = new TreeNode(data[index]); q.push(curNode->left);        }        index++;        if (index  curNode->right = new TreeNode(data[index]); q.push(curNode->right);        }        index++;    }    return root;}int main() {    vector data = {1, 2, 3, 4, 5};        TreeNode* root = buildTree(data);    Solution sol;    sol.swapTree(root);    queue q;    q.push(root);    vector> ans;    while (!q.empty()) {        vector cur;        int sz = q.size();        for (int i = 0; i             TreeNode* node = q.front(); q.pop(); cur.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right);        }        ans.emplace_back(cur);    }    for (int i = 0; i         for (int j = 0; j             cout         }        cout     }}#ai智能作图#
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务