Java 面经
Java 面经 JIT Java代码的执行流程: 我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),这部分代码的机器码应该保
数据库面经
数据库面经 数据库范式 数据库范式有 3 种: 1NF(第一范式):属性不可再分。 2NF(第二范式):1NF 的基础之上,消除了非主属性对于码的部分函数依赖。 3NF(第三范式):3NF 在 2NF 的基础之上,消除了非主属性对于码的传递函数依赖 。 1NF(第一范式) 属性(对应于表中的字段)不
VSCode 启用 Pretty Printing For GDB 以调试 vector 等 STL 容器
VSCode 启用 Pretty Printing For GDB 以调试 vector 等 STL 容器 在我使用的gdb版本(GNU gdb (GDB) 15.2)中,无需额外配置即可启用。 在VSCode的launch.json文件中的setupCommands片段加入以下Json: { "
两数之和
两数之和 leetcode.1 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], targ
有效的字母异位词
有效的字母异位词 leetcode.242 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: fals
哈希表
哈希表 哈希表是根据关键码的值而直接进行访问的数据结构。 那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 原理 我们先考虑最简单的情况,仅用一个数组来实现哈希表。在哈希表中,我们将数组中
反转链表
反转链表 leetcode.206 题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 经典的双指针操作链表,模拟一下然后想清楚逻辑即可,关键是要用变量tmp记录一下next。 class Solution { public
前缀和
前缀和 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 例如,我们要统计 vec[i] 这个数组上的区间和。我们先做累加,即 p[i] 表示 下标 0 到 i 的 vec[i] 累加 之和。 如果,我们想统计,在vec数组上 下标 2 到下标 5 之间的累加和,那是不是就用
滑动窗口
滑动窗口 用变量标记窗口的右区间,右区间每次向右挪动一位,验证左区间能否缩小,如果可以就缩小,然后记录此时的长度,维护一个最小长度变量就可以了。 具体见题目 Leetcode.209 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度
Spring AOP核心概念与实现流程
本文介绍了Spring AOP(面向切面编程)的概念、基本流程和常用切入点表达式。Spring AOP通过动态代理或CGLIB拦截方法执行,实现日志记录、权限检查等横切关注点的功能。文章重点讲解了AOP的基本概念,如横切关注点、连接点、切入点、通知和切面,并通过实例代码展示了如何使用AspectJ注解定义切入点和方法通知。