453 1 分钟

# 简介 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链发送该请求,直到有一个对象处理它为止。 此处请考虑 Java 里的 Filter : public interface Filter { default void init(FilterConfig filterConfig) throws ServletException {} void doFilter(ServletRequest request, ServletResponse response,FilterChain...
177 1 分钟

这里收录了一些配置谷歌的技巧或者好用的插件,说不定有趣的网址也会被放到这里。 # 暗黑模式 这里不推荐使用插件,个人找了两个都不怎么理想,特别是刷题的时候,这种插件让我光标都找不到。 直接在搜索栏输入:chrome://flags/#enable-force-dark 然后选择 Auto Dark Mode for Web Contents,改为 Enable 即可,嘎嘎好用。
1.5k 1 分钟

首先看一下快速幂的思想,假设现在要求 10^75 的结果,我们将指数的二进制求出来,75 的二进制:1001011,也就是 64+8+2+1,所以 10^75 就可以拆分为 10^64+10^8+10^2+10^1 ,那么我们可以从 10^1 发出,每次指数都两个增长,然后看最开始的指数和当前指数做 & 运算,如果不为 0,说明该指数可以加到结果集中: public int fastPower(int p, int n) { //p 为幂,n 为指数 int s = p, idx = 1, res = 1; // 一开始从 p^1 开始 while(idx...
221 1 分钟

Mybatis 预防 sql 注入问题 mybatis 使用 #{} 而不是 ${} 可以很大程度预防 sql 注入,因为: #{} 是一个参数占位符,对于字符串类型,会自动加上 "",其他类型不加。由于 Mybatis 采用预编译,其后的参数不会再进行 SQL 编译,所以一定程度上防止 SQL 注入。 ${} 是一个简单的字符串替换,字符串是什么,就会解析成什么,存在 SQL 注入风险
2.2k 2 分钟

本文大部分应该都是与 Linux 笔试题有关,因为我之前几场笔试,百度和 SNK 都遇到了 Linux 的笔试题,所以总结本文。 chmod 和 chown 的区别 chmod 和 chown 的主要区别在于 chmod 用于修改文件权限,而 chown 用于修改文件所有权。 chmod 700 filechown newowner:newgrp file提一下文件的权限组成:700,7 表示所有者的权限,0 表示组的权限,0 表示其他人的权限。每个数其实都是 3bit,依次是读、写、执行三种权限。 umask 作为掩码,通常是 022,而文件默认权限值为...
2k 2 分钟

# KMP 模板 学习自《程序员代码面试指南》,作者左程云 最经典的字符串匹配问题,力扣链接:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/submissions/ 要对查找串建立 next 数组,也就是前后缀匹配数组 private int[] getNext(char[] m) { int n = m.length; if(n <= 1) return new int[]{-1}; int[] next =...
385 1 分钟

spring 事务传播 参考:https://zhuanlan.zhihu.com/p/148504094 spring 事务有七种传播机制: reuqired :需要以事务运行,如果当前存在能在事务,则在当前事务运行,如果没有则自己开一个事务。 required_new :不管当前事务存不存在,都会新开一个事务,并且这个事务是独立的。也就是说,当前事务的回滚不会影响外部事务。 supports :当前存在事务,则加入当前事务,没有以非事务运行。 not_supported :始终以非事务方式执行,如果当前存在事务,则挂起当前事务。 mandatory...
895 1 分钟

# 快速排序 public int[] quickSort(int[] arr, int l, int r) { if(arr == null || l <= r) return arr; int i = l, j = r, x = arr[l]; while(i < j) { while(i < j && arr[j] > x) j--; if(i < j) arr[i++] = arr[j]; while(i < j...
6.5k 6 分钟

本文参考网上各种博客以及《MySQL 是怎样运行的》一书,特别声明的是,我并没有看过任何关于 MySQL 的源码,我所见所学,皆是站在前人的基础。 一条 SQL 查询语句在 MySQL 中如何执行的? 算是一道经典面试题了,相当于计网的一条 URL 从输入到界面呈现发生了什么类似。 先检查语句是否有权限,在 8.0 版本以前,有权限会先检查缓存,但是这并不是一个很好的特性,所以在 8.0 版本后删除了该操作。 分析器进行词法分析,提取关键字,判断语法。 执行 sql : 预处理阶段:检查查询语句的表、字段是否存在,将 *...