0%

ClassFile

Java文件经过javac编译后,得到.class字节码文件,再放在JVM上面跑。ClassFile是一种结构规范,所有.class文件都应该符合这样的格式。 Alt text

CLI

nginx -V 查看 Nginx配置文件的位置:/opt/homebrew/etc/nginx/nginx.conf

nginx命令启动master进程,nginx分为master进程和worker进程。 master进程负责读取配置文件、管理worker进程;worker进程实际处理HTTP请求。

黑马点评登录

第一次请求:获取验证码

1
2
3
4
    @PostMapping("/login")
    public Result login(@RequestBody LoginFormDTO loginFormDTO, HttpSession session){
        return userService.login(loginFormDTO, session);
    }

后端为其生成随机验证码,并且存入 session

1
session.setAttribute("code", code);

后端接着把Session ID通过 set cookie返回给前端浏览器。浏览器保存这个 Session ID, 把它存在 cookie 里面。

File

Public Static Fields

To let the code run on every system, use these variables.

1
2
3
4
// depends on the system. On Mac, it is "/"
System.out.println(File.separator);
// On Mac, it's ":", used to separate filenames in a sequence of files given as a path list
System.out.println(File.pathSeparator);

For example, if we want to get a path like “Users/ruoke”, we can create it using

Basic

Java Version

1
2
3
4
ruoke@Ruokes-MacBook-Pro ~ % mvn -v
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /Users/ruoke/Documents/devTools/apache-maven-3.9.6
Java version: 21.0.3, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

这个 Java 版本是 Maven 本身运行时使用的 Java 版本

1
2
3
<properties>
    <java.version>1.8</java.version>
</properties>

我项目里的 pom指定该项目的Java编译时版本,会影响maven-compiler-plugin去找哪个版本的JDK;但这里并不指定该项目的运行时版本。 可以在Project Structure里面规定哪个版本JDK用来编译文件

heap

    1. 重构字符串(Roblox)
    1. 任务调度器(Roblox, Snowflake)
    1. 前K个高频单词(Adobe)
    1. 前 K 个高频元素(Adobe, Bloomberg)
    1. 最多可以参加的会议数目(Snowflake)
    1. 查找和最小的 K 对数字(Linkedin, Google)
    1. 最后一块石头的重量(Nvidia)
    1. 数据流的中位数(Snowflake)
  • Merge k Sorted Lists(Bloomberg, Snowflake, Nvidia, Microsoft)
    1. 股票价格波动(Google)
    1. 会议室 III

prefix sum

    1. 乘积小于 K 的子数组(Airbnb)
    1. 最大连续1的个数 III(Microsoft, Expedia)
    1. 和可被 K 整除的子数组(Expedia)
    1. 二维区域和检索 - 矩阵不可变(Snowflake)
  • Subarray Sum Equals K(Bloomberg)
  • Product of Array Except Self(Bloomberg, Microsoft)
  • Meeting Rooms II(Microsoft)

trie

    1. 添加与搜索单词 - 数据结构设计(Docusign, LinkedIn, Snowflake, Rubrik, Tiktok)
    1. 最长公共前缀(Bloomberg)
    1. 最长公共前缀的长度(Databricks)
  • Implement Trie (Prefix Tree)(Snowflake)
    1. 设计内存文件系统(Snowflake)
    1. 删除子文件夹(Snowflake, Google)
    1. 搜索推荐系统(Docusign, Amazon)
    1. 单词搜索 II(Microsoft, Google, Airbnb)

stack

  • Basic Calculator II(Tesla)
  • Max Stack(Linkedin)
  • Nested List Weight Sum II(Linkedin)
  • Valid Parentheses(Nvidia, Expedia)
    1. 逆波兰表达式求值(Microsoft)
    1. 基本计算器(Microsoft)
    1. 有效的括号(Microsoft)
    1. 最长有效括号(Tiktok)
    1. 最大矩形(Tiktok)
    1. 柱状图中最大的矩形(Microsoft)
    1. 简化路径(Snowflake, Tiktok)
    1. 去除重复字母(Expedia)
    1. 队列中可以看到的人数(Expedia)
    1. 使字符串平衡的最小交换次数(Expedia)
    1. 子数组范围和(Tiktok)

queue

    1. 设计循环队列(Tesla, Cloudflare)
    1. 敲击计数器(Snowflake, Cloudflare, Databricks)
    1. 绝对差不超过限制的最长连续子数组(Google)

错题集

    1. 设计循环队列(Tesla, Cloudflare)

hash

    1. 缺失的第一个正数(Tesla)
    1. 丢失的数字(Meta, Microsoft, Bloomberg)

sort

    1. 数组中的第K个最大元素(Microsoft)

sliding window

    1. 最大连续1的个数 III(SAP, Salesforce, LinkedIn, Meta, Google)
    1. 替换后的最长重复字符(Adobe, Amazon, Bytedance, Bloomberg)
    1. 子串的最大出现次数(Hubspot, Salesforce)
    1. 至多包含两个不同字符的最长子串(Ebay, Google, Tiktok)
    1. 至多包含 K 个不同字符的最长子串(Microsoft)
    1. 乘积小于 K 的子数组(Paypal, Oracle, Salesforce)
    1. 最小区间(Lyft, Databricks)
    1. 大小为 K 且平均值大于等于阈值的子数组数目(LinkedIn)