- 博客(67)
- 收藏
- 关注
原创 游戏测试八股
老师好, 我叫XXX, 是XXX大学计算机相关专业的研一学生, 来应聘游戏测试实习生岗位简历上描述的是个人的软件项目, 软件测试的项目, 技术栈是开发,测试开发方面的, 可能和游戏测试不是很相关, 所以就直接略过了我曾经在公司实习参与过用UE4把一款多人MMO游戏移植到手游, 也算是有一点和游戏测试沾边的经验游戏是我的爱好, 但对于游戏测试这个岗位, 我确实可以说是0基础整体来说, 我是一个愿意手工测试, 学习新的工具, 愿意写代码也乐于测代码的人。
2026-05-21 03:53:49
447
原创 要保持耐心
培养耐心意味着我们尊重这一个事实, 事情会按照他自己的规律发展, 破茧成蝶是一个无法催促的过程, 练习带来的改变, 需要一段时间的积累, 慢慢发生.要保持耐心, 坚持去做那些枯燥的, 不为人知的准备工作, 只有这样才能让身心变得坚不可摧, 正是这些准备工作能让你处于一个良好状态, 能够克服困难。不管是在练习上, 学习上, 还是休息, 玩乐上. 最后总会让我陷入焦虑和愧疚。感到这种抗拒时, 可以打开暂停实验室, 的保持耐心正念, 帮助我找回冷静。我发现我的抗拒, 是因为我不够耐心, 总是想急于求成.
2026-05-18 23:01:33
265
原创 拯救我的语言系统
由于我的组织能力不行, 在使用AI时, 是把大脑中模糊的, 碎片化的词语告诉AI, 让AI去随机生成内容, 看看能不能命中我的想法。在看到大段文字时, 会头痛, 产生抗拒的想法, 焦虑的情绪, 太阳穴那一块的神经绷得很紧。只要能说出一个烂东西, 问题就会变得具体了, 不再是抽象的空想, 一直卡住。语言是窥探大脑的一扇窗户, 我觉得我的大脑在语言方面有严重的受损。AI生成的是平滑的, 标准的语言, 我正在逐渐失去我个人的语言。会出现词穷, 跑题, 没重点, 看不懂, 说话断断续续的问题。
2026-05-17 16:27:08
56
原创 我的MC猎人游戏记录
我依靠对游戏的理解快速发育取得了装备上的优势, 在要塞边把猎人引到矿洞依靠地形和装备优势一打二, 成功了, 这是最快乐的, 但是最后在末地失误了, 输了这本来应该稳赢的局面, 所以我非常沮丧。虽然很多次都是一开始被追杀了, 但是最后一次用了水下放门技巧活了下来, 中途击退了追杀, 最后找到了要塞, 在要塞中击退了猎人们, 这两次都是地道战, 虽然最后在末地死了, 但是很有成就感。第一周我和A, 开始1对1的追杀, 但我很快就被A杀死了好多次, 但感觉很良好, 紧张和刺激, 正是我想要的。
2026-05-17 16:26:19
108
原创 个人的八股
软件测试是一个过程, 测试人员针对软件进行全方面的验证, 验证软件是否符合用户的需求定义:测试用例(Test Case)是指为了验证软件功能是否满足需求, 而专门设计的一组测试输入、执行条件和预期结果。“编号、场景、步骤、结果”编号唯一标识(如LOGIN_001属于哪个功能(如:登录模块)测什么(如:验证手机号为空时的提示)场景用户已注册、已打开登录页面、网络正常步骤详细的操作顺序(如:1. 输入手机号;2. 输入密码;3. 点击登录按钮)
2026-05-05 16:32:00
283
原创 TCP/UDP原理
内核中的内存空间,每个 socket 对象都有一个接收缓冲区。类似阻塞队列:生产者-消费者模型。生产者:发送方消费者:接收方应用程序如果发送速度快、消费速度慢,缓冲区就会满。缓冲区满了再强行发数据会丢包。
2026-03-16 03:16:32
442
原创 Java-八股
是什么string 是不可变的, 内部的字符数组用 final 修饰, 为不可变的字符串类当我们对String对象进行改变时, 会创建一个新的对象, 因此也是线程安全的stringbuffer 是可变的, 允许修改字符串, 线程安全, 内部的方法用修饰stringbuilder 是可变的, 允许修改字符串, 线程不安全性能如果要频繁进行拼接, 替换, 和删除等字符串运算, stringbuffer和stringbuilder效率高于string使用场景字符串不经常变化的场景可以使用String频繁修改字符串
2026-01-20 00:24:09
415
原创 数据库-八股
索引是什么数据库引入索引,索引就像是书的目录, 是为了加快数据库的查询速度索引付出的代价索引背后的数据结构索引就是查找, 可以是二叉搜索树, 哈希表二叉搜索树, 当内容多时, 树会过高, 比较次数变多, 减慢速度哈希表, 查找很快, 但是无法查找范围>,<B+树的特点和优势特点:优势:
2026-01-20 00:06:05
72
原创 操作系统-八股
进程包含线程, 一个进程内有一个或多个线程, 至少要有一个线程进程是系统资源分配的基本单位线程是系统调度执行的基本单位同一个进程内的线程之间, 共用一部分进程资源(内存, 硬盘, 网络带宽等…)内存资源, 就是代码中定义的变量/对象…在编程中, 多个进程, 是可以共用一部分变量的线程是当下实现并发编程的主流方式, 通过多线程, 可以充分利用多核CPU但是, 不是线程数目越多越好, 当线程数目达到一定程度, 把多个核心充分利用时, 继续增加线程, 无法再提高效率甚至可能会影响效率(线程调度, 也是有开销的)多
2026-01-19 23:41:02
611
原创 网络-八股
OSI模型是只存在于教科书上的模型, 并没有被实际采用TCP/IP模型是当今世界上最主流的网络模型TCP/IP模型从用户到硬件可以分为以下五层应用层传输层网络层数据链路层物理层物理层是规定硬件(比如网线)要怎么设计, 要遵守什么规范传输层, 网络层, 数据链路层共同完成数据的转发过程传输层只关注路径的起始和终点, 不关注具体的细节, 常见的协议是TCP/UDP网络层负责路径规划的地址管理, 主要的协议是IP数据链路层将上面规划好的路径进行具体的实施。
2026-01-16 11:11:10
348
原创 HTTP和HTTPS-八股
302 Found 临时重定向 就是这一次转到另一个URL, 下一次访问还是原地址, 例如登陆时跳转到登陆页面。一个是在TCP三次握手之后就可以传输, 一个还要在TCP三次握手后增加SSL/TLS握手。HTTPS需要向CA机构申请证书来验证服务器的身份是可信的。通常是 html/css/js/json/图片/音频等。都是 首行-请求/响应头-空行-正文 结构。是http标准规定的字段, 有具体的含义。每行都是一个键值对, 中间由":"分隔。一个端口是80, 一个是443。一个是明文, 一个是加密。
2026-01-15 18:16:52
475
原创 TCP八股
当收到1001的ACK时, 就立即发送4001的数据包, 窗口为1001-5000, 窗口大小不变, 窗口右移。滑动窗口为1-4000, 大小为4000, 表示的含义是 发送1-4000的数据, 接收1-4000的ACK。有滑动窗口, 就是发送一批数据, 等待一批ACK, 把多次等待ACK的时间合并成一份, 所以更高效。如果发送方发送特别快, 接收方处理的慢, 缓冲区就会满, 如果再强行发送数据, 就会导致丢包。没有丢包, 说明网络通畅, 窗口指数增长, 以比较短的时间增长到较大的窗口。
2026-01-14 23:45:54
585
原创 Spring Boot 项目 Lombok 配置的小坑记录
最近在用 Spring Boot 3.5.6 搭建项目,遇到了 Lombok 的一个问题。编译时一直报找不到 getter/setter 方法,Lombok 没有生效。把这段代码注释掉就行。
2025-10-04 16:04:40
166
原创 JVM--
Java 程序从.java文件编译为.class文件(存储在硬盘上),当运行 Java 进程时,JVM 需要读取.class文件内容并执行其中的指令。这个过程就是类加载- 将类的字节码从硬盘加载到内存中的元数据区,并创建对应的类对象。JVM 的垃圾回收机制通过可达性分析识别垃圾,采用分代回收策略结合多种算法,在开发效率与运行效率之间取得平衡。理解这些机制有助于编写更高效的 Java 程序并进行性能优化。
2025-09-22 01:57:42
1014
原创 HTTP和HTTPS
HTTP(HyperText Transfer Protocol):应用层协议,主要用于客户端和服务器之间的数据传输。不仅能传输文本,还能传输图片、音频、视频及其他数据。最主流版本为HTTP/1.1,升级到 HTTP/2.0 兼容性成本较高。客户端发请求,服务器返回响应。User-Agent是 HTTP 请求头中的一个字段,简称UA。当前请求来自什么操作系统、什么浏览器、什么版本等详细信息。Cookie是浏览器为网站提供的一种“客户端存储数据”的机制。本质上是浏览器本地持久化存储的。
2025-09-21 21:19:08
1954
1
原创 网络编程-
短连接:适合低频、简单请求场景,易于实现但效率低。长连接:适合高频、实时通信场景,推荐用NIO等高效方式实现,能极大提升并发性能。短连接/请求型服务:可以用线程池(如),但要注意线程数量风险。高并发长连接服务:建议用IO多路复用技术,避免线程池资源耗尽。
2025-09-09 10:54:20
1067
原创 文件操作和IO
关于 InputStream 的实现类有很多,基本可以认为不同的输入设备都可以对应一个 InputStream 类。如果你希望\追加内容而不是覆盖,可以使用它的一个特殊构造方法(append)。使用字符流读取数据时,Java 标准库会自动根据数据的编码进行转码。InputStream 只是一个抽象类,要使用还需要具体的实现类。读取文件的两种方法.相比较而言,后一种的IO次数更好,性能更好.当用 char 表示汉字时,不再使用 UTF-8,而是使用。计算机中的输入输出,都是以 cpu 视角来谈的。
2025-09-06 12:09:03
898
原创 Java多线程进阶
CAS(Compare And Swap,比较并交换)是一种原子操作,用于多线程并发编程中保证数据安全。CAS通过比较内存中的数据和预期值,如果一致则更新,否则重试。CAS是实现原子操作的基础,广泛应用于Java并发包(如等)。CAS是“无锁”且高效的,但也有ABA问题等局限性。实际开发中,大多数情况下使用即可,简单且安全。适合需要更灵活锁操作的场景,如非阻塞尝试加锁、公平锁、复杂的等待通知机制等。使用ReentrantLock时,务必在finally块中释放锁,避免死锁风险。
2025-09-03 12:09:16
928
原创 Java多线程初阶
死锁指的是两个或多个线程在执行过程中,因争夺资源而造成一种互相等待的现象,导致所有线程都无法继续运行。内存可见性问题指的是在多线程环境下,一个线程对共享变量的修改,另一个线程无法及时“看到”最新的值,导致程序出现逻辑错误。单例模式是一种常用的设计模式,保证一个类在整个进程中只有一个实例。应用场景:配置信息管理器、连接池、日志系统等。基于数组实现循环队列。用保证线程安全。用waitnotify实现阻塞和唤醒。i < n;t.start();
2025-08-30 18:53:39
1073
原创 计算机系统基础与操作系统笔记
例如,在Windows环境下开发的程序,无法直接在Linux或macOS系统上运行。C++ 进行编程时高度依赖操作系统的原生 API,但对 Java 程序员来说不需要——JVM 包办一切了。现在最主要的进程间通信方式有且只有一个:通过网络(socket),这个是后续重点内容。PCB(进程控制块)是一个非常复杂的结构体,包含众多属性。:通过数据结构,把多个结构体串联起来,并进行增删改查。C++ 会讲得更多一些,Java就不做过多讨论了。:通过结构体/类,把进程的各种属性表示出来。的结构体来描述进程信息。
2025-07-31 16:49:04
946
原创 JDBC编程笔记
JDBC(Java Database Connectivity)是Java访问数据库的标准API。各数据库需提供兼容JDBC的驱动(如MySQL的mysql-connector)。使用JDBC,开发者只需学习一套API即可操作多种数据库。框架的本质是为了解决通用问题,提高开发效率。但开发者仍需掌握底层原理和操作,才能在遇到特殊场景时灵活应对。// 1. 创建数据源// 2. 建立连接// 3. 构建SQL// 4. 执行SQL// 5. 遍历结果集。
2025-07-30 21:19:46
516
原创 MySQL索引和事务笔记
索引是提升查询性能的利器,但需权衡空间和写入性能。B+树是数据库索引的核心结构,掌握其原理有助于面试答题和实际优化。事务保证数据可靠性,理解ACID和隔离级别是数据库开发的基础。索引和事务都需结合实际业务场景合理使用,避免过度依赖或滥用。
2025-07-30 21:18:35
927
原创 数据库初阶笔记
商业收费,功能强大,适用于数据极其重要、预算充足的大型企业提供完善的技术支持和服务,价格昂贵- 插入数据- 查询数据UPDATE- 修改数据- 删除数据注意:这四种操作有三种风格,不太科学的设定,接口风格不统一,使使用者学习成本增加。
2025-07-30 21:14:09
1097
原创 JavaLamdba表达式
/ 无返回值无参数// 无返回值一个参数// 无返回值多个参数// 有返回值无参数int test();// 有返回值一个参数// 有返回值多个参数Lambda可以理解为:Lambda就是匿名内部类的简化,实际上是创建了一个类,实现了接口,重写了接口的方法。@Override。
2025-04-23 14:36:55
1296
原创 Java反射
Java反射是一种用于在运行时动态地检查和操作类、接口、字段以及方法的机制。通过反射,程序可以在运行时获取关于类的详细信息,包括类的结构、方法、构造函数和字段等,并能够动态创建对象、调用方法和访问字段。反射使得Java程序更加灵活和动态,因为它允许程序在运行时处理未知的类和对象。
2025-04-19 23:30:56
945
原创 数据结构-Map和Set
哈希桶是哈希表中的一个重要概念,它是用来处理哈希冲突的机制之一。在哈希表中,哈希桶通常是指存储在特定哈希索引处的一个容器,用于存放所有映射到该索引的键值对。哈希表是一种数据结构,用于存储键值对(key-value pairs),它通过哈希函数将键映射到数组中的一个位置,以实现快速的数据存取。哈希桶在许多哈希表的实现中被广泛使用,尤其是在需要处理大量数据且存在高概率冲突的情况下。通过合理的哈希函数与哈希桶的设计,可以显著提高哈希表的性能和效率。它不允许重复的键,但可以有重复的值。它不保证元素的顺序。
2025-04-18 23:35:45
1176
原创 数据结构-PriorityQueue
队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列。优先级队列中的元素按照优先级进行排序,具有更高优先级的元素会在队列中被优先处理。底层使用了堆这种数据结构,而堆实际就是在完全二叉树的基础上进行了一些调整。从堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储,注意:对于非完全二叉树,则不适合使用顺序方式进行存储,因为为了能够还原二叉树,空间中必须要存储空节点,就会导致空间利用率比较低。2.3 堆的创建2
2025-03-24 11:12:25
1148
原创 数据结构-二叉树
满二叉树和完全二叉树是二叉树的两种特定类型。二叉树的存储结构分为:顺序存储和类似于链表的链式存储。通过递归函数来创建二叉树,适合于根据特定规则生成树。手动创建二叉树可以直接定义节点,适合于小规模的树。
2025-03-23 10:56:06
1072
原创 数据结构-Stack和Queue
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。它是一个基于数组实现的双端队列(Deque),可以高效地模拟栈的行为。在Java中,Queue是个接口,底层是通过链表实现的。
2025-03-22 10:08:12
813
原创 数据结构-LinkedList
Java中的LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。存储结构,数据元素的。
2025-03-21 20:26:03
318
原创 数据结构-ArrayList
线性表是一种在实际中广泛使用的数据结构,常见线性表:顺序表、链表、栈、队列…但是在物理上不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。底层是基于数组实现的,插入或删除元素时,所有后续元素需要整体移动,导致时间复杂度为 O(N)。增容时需要重新分配新空间,并将旧数组的数据拷贝到新数组中,这会带来性能开销。增容时容量通常增长为原来的 2 倍,会导致未使用的空间浪费。
2025-03-19 23:36:48
1014
原创 Java泛型(Generics(
泛型(Generics)是 Java 中的一种特性,允许在类、接口和方法中定义类型和参数,从而实现参数的类型化。泛型的主要目的是提高代码的重用性和类型安全性。
2025-03-13 16:12:15
1188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅