- 博客(117)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
原创 warning: ‘IOMasterPort‘ is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]
warning: 'IOMasterPort' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]
2022-06-16 14:38:34
3094
原创 clang: warning: argument unused during compilation: ‘-no-pie‘ [-Wunused-command-line-argument]
mac使用golang出现问题
2022-06-16 14:30:31
4247
原创 Java 四种引用类型
最初的 Java 引用 在 JDK 1.2 以前,Java 中的引用的定义很传统︰如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。 这种定义很纯粹,但是太过狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态,对于如何描述一些 “食之无味,弃之可惜” 的对象就显得无能为力。 我们希望能描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。很多系统的缓存功能都符合这样
2022-02-13 17:48:52
546
原创 Floyd 循环检测算法(快慢指针法/龟兔指针法)
Floyd Cycle Detection Algorithm Floyd Cycle Detection Algorithm,即 Floyd 循环检测算法,又称快慢指针法、龟兔指针法。该算法用于判断链表是否存在环,以及判断环的起点与长度的算法。算法原理 该算法基于两个指针,从头开始遍历,一个指针跑得快,另一个指针跑得慢,其中快指针的速度是慢指针的2倍。只要存在环,无论快慢指针从哪里开始,那么快慢指针最终一定会相遇,因为快指针没走一次,都会向慢指针靠近一个节点。算法应用判断是否有环 如果
2022-01-28 01:46:46
1460
原创 Java 为什么不支持泛型数组?
问题 首先对比一下以下两段代码,都是声明两个数组,其中一个使用泛型,一个不使用泛型。使用泛型的一个编译失败,由此可知,Java 不支持泛型数组。List<Integer>[] list = new LinkedList<Integer>[10];// 无法通过编译List[] list = new LinkedList[10];原因 Java 泛型通过类型擦除实现,编译时类型参数就会被擦掉。例如:声明一个 List<String>,一个 List<
2022-01-26 01:00:36
1510
2
原创 使用 HashMap 存一万条数据,构造时传 10000 还会触发扩容吗?
问题 向 HashMap 中存 10000 条数据,初始化时,构造方法传值 10000,会触发扩容吗?Map<String,String> map = new HashMap<>(10000);分析乍一看 肯定会触发扩容呀,因为 HashMap 中有个负载因子默认为 0.75,就是说存储的数量超过容量的 75% 就会触发扩容,put 到后 25% 的数据时,肯定就会触发扩容。但事实真是这样吗?源码中有我们想知道的一切,真相只有一个。分析源码HashMap 的初始化
2022-01-25 22:56:41
1461
1
原创 浅析 Comparable 和 Comparator
相同点都是用来实现集合中元素的比较从而进行排序。compare(T o1, T o2) 和 o1.compareTo(o2) 类似,定义排序规则后返回正数,零和负数分别代表大于,等于和小于。一个类要实现排序功能既可以通过内部实现 Comparable 接口也可以通过外部实现 Comparator 接口。不同点接口定义位置不同:java.lang.Comparablejava.util.Comparator。接口中定义方法不同:Comparable 中定义 public int
2022-01-25 01:36:23
503
原创 Java fail-fast 机制
简介 fail-fast 机制,即快速失败机制,是 Java 集合(Collection)中的一种错误检测机制,检测在迭代期间集合被修改的情况。fail-fast 机制并不保证在不同步的修改下一定会抛出异常,它只是尽最大努力去抛出,所以这种机制一般仅用于检测 bug。示例 在集合中,当直接使用 Iterator 迭代(而不是通过 for-each 循环间接使用),对正在被迭代的集合进行结构上的改变(即对该集合使用 add、remove 或 clear 等方法),那么迭代器就不再合法,发生 fail
2022-01-23 01:51:12
498
原创 Java 协变数组类型
问题 假设现在有 Person 类和 Employee 类,假设 Employee IS-A Person,那么,这是不是意味着数组 Employee[ ] IS-A Person[ ] 呢?换句话说,如果一个例程接受 Person[ ] 作为参数,我们能不能把 Employee[ ] 作为作为参数来传递呢?思考 乍一看,似乎 Employee[ ] 就应该和 Person[ ] 类型兼容。举个例子,假设除了 Employee 外,还有 Student IS-A Person,并假设 Employ
2022-01-23 00:02:23
569
原创 蓝桥杯 基础练习 Fibonacci数列
问题描述Java 代码实现import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int a = 1; int b = 1; int sum = 1;
2022-01-20 01:19:14
385
原创 蓝桥杯 基础练习 01字串
问题描述Java 代码实现import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); for (int i = 0; i < 32; ++i) { System.out.printf("%05d\n", Integer.valueOf(Int
2022-01-20 00:56:13
255
原创 蓝桥杯 基础练习 字母图形
问题描述Java 代码实现import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); char[][] a = new char[n+
2022-01-20 00:45:29
271
原创 蓝桥杯 基础练习 杨辉三角形
问题描述Java 代码实现import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[][] a = new int[n+5][n+5]; a[1][1] = 1; Sys
2022-01-20 00:19:56
226
原创 蓝桥杯 基础练习 特殊回文数
问题描述Java 代码实现解决方案:转换为字符串处理import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); for (int i = 10000; i < 1000000; ++i) {
2022-01-20 00:00:14
273
原创 蓝桥杯 基础练习 十进制转十六进制
问题描述Java 代码实现方案一:使用 BigInteger 类直接转换。import java.math.BigInteger;import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(new BigInteger(in.next(), 10).toStri
2022-01-16 21:03:44
139
原创 蓝桥杯 基础练习 十六进制转十进制
问题描述Java 代码实现方案一:使用 BigInteger 类直接转换。import java.math.BigInteger;import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(new BigInteger(in.next(), 16).toString(
2022-01-16 20:46:10
307
原创 你管这叫代理模式(Proxy Pattern)
代理模式 代理模式即给一个真实类提供一个代理类,该代理类代替真实类完成其功能,一般还可在代理类上添加一些真实类不具有的附加功能,通俗来讲代理模式就是我们生活中常见的中介,代理模式又可分为静态代理和动态代理。静态代理 静态代理需要代理类和目标类实现一样的接口,一般将被代理对象组合到代理类中,然后使用其完成对应功能,并可在代理类中添加额外功能。租房静态代理过程第一步:创建服务接口public interface Rent { // 出租房屋 void rent();}
2022-01-16 20:24:59
319
原创 蓝桥杯 基础练习 十六进制转八进制
问题描述Java 代码实现方案一:使用 BigInteger 类直接转换。import java.math.BigInteger;import java.util.*;public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); for (int i = 0; i < n; ++i) {
2022-01-16 01:17:46
258
原创 UUID 工具类
UUID UUID 是通用唯一识别码(Universally Unique Identifier)的缩写。UUID 让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。UUID 的组成1~8位采用系统时间,在系统时间上精确到毫秒级保证时间上的惟一性;9~16位采用底层的IP地址,在服务器集群中的惟一性;17~24位采用当前对象的HashCode值,在一个内部对象上的惟一性;25~32位采用调用方法的一个随机数,在一个对象内的毫秒级的惟一性。UUID
2022-01-14 00:52:03
3348
原创 XML 中写中文注释报错问题(1 字节的 UTF-8 序列的字节 1 无效)
问题描述使用 Mybatis 过程中,在 XML 配置文件中写了中文注释,导致读取配置文件出错。解决方案方案一:将 XML 头中的 UTF-8 改为 UTF8。方案二:在注释信息前后添加空格,例如:<!-- 注册 -->。...
2021-12-25 21:19:00
591
原创 XML 中写中文注释报错解决
问题描述使用 Mybatis 过程中,在 XML 配置文件中写了中文注释,导致读取配置文件出错。解决方案方案一:将 XML 头中的 UTF-8 改为 UTF8。方案二:在注释信息前后添加空格,例如:<!-- 注册 -->。...
2021-12-25 21:19:00
139
原创 超详细请求转发与重定向异同点
请求转发request.getRequestDispatcher(url).forward(request, response);重定向response.sendRedirect(url);异同请求转发重定向页面跳转跳转URL不改变改变(302重定向)请求次数一次(内部转发)两次(第一次请求得到第二次请求的地址)执行效率较高较低request转发前后是同一个 request 对象可用其在多个页面间传递参数重定向前后不是同
2021-12-24 22:57:22
765
原创 关于重定向与请求转发中的路径问题
路径问题假设当前 web 应用地址为 localhost:8080/test。请求转发:/代表的是当前 web 站点的根目录,eg:localhost:8080/重定向:/代表的是当前 web 应用的根目录,eg:localhost:8080/test举例假设当前 web 应用地址为 localhost:8080/test,需要跳转到 webapp下的 login.jsp 页面。正确写法请求转发:req.getRequestDispatcher(“login.jsp”).fo
2021-12-24 22:54:25
824
原创 Maven 资源导出问题
资源导出问题 在 Maven 导出资源,资源文件夹 resources 中的资源会自动导出,但是有时除了 resources 中包含资源,资源文件还有可能放在其他目录下,此时就不会被自动导出,需要手动配置 pom.xml 文件 build 下的 resources 节点。解决方法<!--在 build 中配置 resources,解决资源导出失败问题--><build> <resources> <resource>
2021-12-23 20:13:10
646
原创 CSS position 笔记
relative相对于原来的位置进行指定的偏移,但是仍然在标准文档流中,原来的位置会被保留,经常被用来作为绝对定位元素的容器块。position: relative;top: -50px;left: 100px;/*bottom: 50px;*//*right: 100px;*/absolute绝对定位的元素的位置相对于最近的已定位父元素,即:如果元素没有已定位的父元素,那么它的位置相对于浏览器定位。如果父级元素存在定位,那么它的位置相对于父级元素定位。相对于父级元素或浏览器的位
2021-12-21 10:08:10
456
原创 JSP 中优雅使用 XML 标签
前言 一方面,在 JSP 中大家总是不喜欢看到 <% %> 出现在页面上,另一方面,使用 XML 对于前端程序员更友好,所以可以使用 XML 标签代替 JSP 语法。JSP 对应 XML 标签JSPXML<% %><jsp:scriptlet></jsp:scriptlet><%= %><jsp:expression></jsp:expression><%! %>&l
2021-12-19 22:32:37
371
原创 寻找 IDEA 编译 JSP 生成的 class 文件
解决方案 启动 Tomcat 时,日志信息中会显示路径,进入该目录下的 work 目录即可找到 JSP 编译后的 class 文件,如果日志信息乱码可查看启动 Tomcat 日志乱码问题。
2021-12-18 14:07:36
1193
1
原创 JSP 加上 <%@ taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> 运行产生异常
问题描述 笔者使用 Tomcat 10 版本,在使用 JSTL 的过程中,JSP 页面中一旦加上 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> 标准库标签,运行就会产生异常,应该是 jar 包的问题,可能冲突或者版本不匹配什么的,尝试了无数种方法,各种导入 jar 包终无果。解决方案 笔者无奈只能改用 Tomcat 9,然后还是不行,还需要将 JSTL 的 jar 包复制到 Tomcat 9 安装目录下
2021-12-18 13:36:08
1378
原创 JSP 加上 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 运行产生异常
问题描述 笔者使用 Tomcat 10 版本,在使用 JSTL 的过程中,JSP 页面中一旦加上 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 标准库标签,运行就会产生异常,应该是 jar 包的问题,可能冲突或者版本不匹配什么的,尝试了无数种方法,各种导入 jar 包终无果。解决方案 笔者无...
2021-12-18 13:36:00
86
原创 使用 JSTL1.2 报错 org.apache.catalina.core.StandardWrapperValve.invoke...
问题描述 导入所需依赖并引用如下核心标签库后报错,无法使用 JSTL。<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>产生原因 Tomcat 项目中缺少依赖 jar 包。jstl 1.1jstl 1.2依赖 jar 包jstl.jarstandard.jartaglibs-standard-impl-1.2.5.jartaglibs-standard-spec-1.2.5.
2021-12-17 10:57:13
421
原创 IDEA 中 JSP 无法使用 session 内置对象
问题描述产生原因 由于笔者使用 Tomcat 10 版本,所以使用的 Servlet 依赖为 jakarta.servlet,详情见利用 Tomcat 10 构建 Servlet 报错:类 xxx 不是 Servlet,报错原因为 servlet-api 包没有导入。解决方案导入 servlet-api 依赖。<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><depen
2021-12-16 23:36:19
1318
原创 快速上手短信服务 —— 榛子云短信接口
前言 大家第一次使用短信服务应该都是用于学习,而阿里云、腾讯云…等大厂的云服务审核比较严格,对于学习者大概率无法通过,于是在此提供一个无需审核即可使用的短信服务接口用于学习 —— 榛子云短信服务。使用步骤1.注册账号2.创建短信模板注意:创建短信模板是人工审核,不会写可参考腾讯云、阿里云短信模板,由于是小公司,审核较慢,建议尽早创建。创建完成后会生成一个模板 ID(templateId) 这就是本模板的标识,通过 templateId 使用该模板发送短信。3.查看 AppId 和 App
2021-12-16 21:05:00
631
原创 IDEA 中无法使用 JSP 内置对象
问题在 IDEA 中编写 JSP 时,无法使用 JSP 的内置对象,例如:无法使用 out 对象原因容易想到是没有导入 jar 包,JSP 常用 jar 包如下图,可见已成功导入,但是任然无法使用,原因是 idea 不会自动导入所需其他 jar 包,但 eclipse 会自动导包。解决方案File -> Project Structure… -> modules ->Dependencies -> 加号 -> Library -> Tomcat ->
2021-12-16 18:38:53
1317
原创 实验2 使用 LRU 方法更新 Cache
一、实验目的 了解和掌握寄存器分配和内存分配的有关技术。二、实验内容 结合数据结构的相关知识,使用LRU的策略,对一组访问序列进行内部的 Cache 更新。 LRU 置换算法是选择最近最久未使用的页面予以置换,该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来经历的时间 T,当须淘汰一个页面时,选择现有页面中 T 值最大的,即最近最久没有访问的页面,这是一个比较合理的置换算法。例如: 有一个 Cache 采用组相连映象方式。每组有四块,为了实现 LRU 置换算法,在快表中为
2021-12-13 20:53:59
1061
原创 实验2 使用 LRU 方法更新 Cache
一、实验目的 了解和掌握寄存器分配和内存分配的有关技术。二、实验内容 结合数据结构的相关知识,使用LRU的策略,对一组访问序列进行内部的 Cache 更新。 LRU 置换算法是选择最近最久未使用的页面予以置换,该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来经历的时间 T,当须淘汰一个页面时,选择现有页面中 T 值最大的,即最近最久没有访问的页面,这是一个比较合理的...
2021-12-13 20:53:00
113
原创 实验1 对指令操作码进行霍夫曼编码
一、实验目的 了解和掌握指令编码的基本要求和基本原理二、实验内容 使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对指令码的长度进行评价,与扩展操作码和等长编码进行比较。例如: 有一组指令的操作码共分七类,它们出现概率如下表所示。指令P1P2P3P4P5P6P7出现概率0.450.300.150.050.030.010.01对此组指令进行 huffman 编码如下图所示:最后得到的 huffman 编码如下表所
2021-12-13 09:33:43
2419
原创 IDEA 报错:java: 不再支持源选项 5。请使用 6 或更高版本。
前言 使用一段时间 Maven 后,笔者逐渐猖狂,从刚开始的小心翼翼到现在的随心所欲删除 pom.xml 中标签,于是第一次遇到 Maven 报错。错误原因 笔者不小心删除了 pom.xml 中的 properties 配置标签,导致默认使用 JDK1.5 版本编译,版本不匹配,导致一些高版本代码实现编译失败。// Maven 配置文件<properties> // Maven 项目源代码使用字符集 <project.build.sourceEncoding&g
2021-12-11 21:09:43
3330
原创 IDEA error:java: 不再支持源选项 5。请使用 6 或更高版本。
前言 使用一段时间 Maven 后,笔者逐渐猖狂,从刚开始的小心翼翼到现在的随心所欲删除 pom.xml 中标签,于是第一次遇到 Maven 报错。错误原因 笔者不小心删除了 pom.xml 中的 properties 配置标签,导致默认使用 JDK1.5 版本编译,版本不匹配,导致一些高版本代码实现编译失败。// Maven 配置文件<properties> ...
2021-12-11 21:09:00
108
原创 浅析 PreparedStatement 和 Statement
Statement1.创建方法Statement statement = conn.createStatement();2.执行方法// 执行查询操作 -> selectString sql = "select `name` from users where `id`=1";// 示例statement.executeQuery(sql);// 执行更新操作 -> insert、update、delete...String sql = "delete from users wh
2021-12-10 19:00:00
521
原创 MySQL 事务处理
事务 事务是一系列操作,将它们综合为一个整体,这些操作必须全部完成,如果有一个操作失败,那么事务就回滚到最开始的状态,仿佛什么都没发生过一样。ACID 原则原子性: 一组事务,要么都成功,要么都失败。一致性: 事务前后的数据完整性要保持一致。比如转账业务,无论事务执行是否成功,参与转账的两个账号总额是不变的。隔离性: 多个并发事务之间要相互隔离,不能被其他事务的操作数据所干扰。持久性: 事务一旦提交则不可逆,被持久化到数据库中。隔离性导致的问题脏读: 指一个事务读取
2021-12-10 16:15:22
624
关于 HTTP 协议五连问
2022-04-13
如果服务器上有一个文件你正在下载,有人不小心删除了,会发生什么?
2022-03-03
关于#python#的问题:python使用wx包构造图形界面,设置不可以改动以及最大化
2021-11-12
Python爬虫爬取股票信息
2021-05-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人