<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Acx7的博客]]></title><description><![CDATA[艾同学]]></description><link>https://blog.youkuaiyun.com/Acx77</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Acx77]]></copyright><item><title><![CDATA[warning: ‘IOMasterPort‘ is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/125315648</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/125315648</guid><author>Acx77</author><pubDate>Thu, 16 Jun 2022 14:38:34 +0800</pubDate><description><![CDATA[warning: 'IOMasterPort' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]]]></description><category></category></item><item><title><![CDATA[clang: warning: argument unused during compilation: ‘-no-pie‘ [-Wunused-command-line-argument]]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/125315327</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/125315327</guid><author>Acx77</author><pubDate>Thu, 16 Jun 2022 14:30:31 +0800</pubDate><description><![CDATA[mac使用golang出现问题]]></description><category></category></item><item><title><![CDATA[Java 四种引用类型]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122911629</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122911629</guid><author>Acx77</author><pubDate>Sun, 13 Feb 2022 17:48:52 +0800</pubDate><description><![CDATA[最初的 Java 引用
  在 JDK 1.2 以前，Java 中的引用的定义很传统︰如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址，就称这块内存代表着一个引用。
  这种定义很纯粹，但是太过狭隘，一个对象在这种定义下只有被引用或者没有被引用两种状态，对于如何描述一些 “食之无味，弃之可惜” 的对象就显得无能为力。
  我们希望能描述这样一类对象：当内存空间还足够时，则能保留在内存之中；如果内存空间在进行垃圾收集后还是非常紧张，则可以抛弃这些对象。很多系统的缓存功能都符合这样]]></description><category></category></item><item><title><![CDATA[Floyd 循环检测算法(快慢指针法/龟兔指针法)]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122725947</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122725947</guid><author>Acx77</author><pubDate>Fri, 28 Jan 2022 01:46:46 +0800</pubDate><description><![CDATA[Floyd Cycle Detection Algorithm
  Floyd Cycle Detection Algorithm，即 Floyd 循环检测算法，又称快慢指针法、龟兔指针法。该算法用于判断链表是否存在环，以及判断环的起点与长度的算法。
算法原理
  该算法基于两个指针，从头开始遍历，一个指针跑得快，另一个指针跑得慢，其中快指针的速度是慢指针的2倍。只要存在环，无论快慢指针从哪里开始，那么快慢指针最终一定会相遇，因为快指针没走一次，都会向慢指针靠近一个节点。

算法应用
判断是否有环
  如果]]></description><category></category></item><item><title><![CDATA[Java 为什么不支持泛型数组？]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122693960</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122693960</guid><author>Acx77</author><pubDate>Wed, 26 Jan 2022 01:00:36 +0800</pubDate><description><![CDATA[问题
  首先对比一下以下两段代码，都是声明两个数组，其中一个使用泛型，一个不使用泛型。使用泛型的一个编译失败，由此可知，Java 不支持泛型数组。
List&lt;Integer&gt;[] list = new LinkedList&lt;Integer&gt;[10];// 无法通过编译

List[] list = new LinkedList[10];

原因
  Java 泛型通过类型擦除实现，编译时类型参数就会被擦掉。例如：声明一个 List&lt;String&gt;，一个 List&lt;]]></description><category></category></item><item><title><![CDATA[使用 HashMap 存一万条数据，构造时传 10000 还会触发扩容吗？]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122692412</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122692412</guid><author>Acx77</author><pubDate>Tue, 25 Jan 2022 22:56:41 +0800</pubDate><description><![CDATA[问题
  向 HashMap 中存 10000 条数据，初始化时，构造方法传值 10000，会触发扩容吗?
Map&lt;String,String&gt; map = new HashMap&lt;&gt;(10000);

分析
乍一看
  肯定会触发扩容呀，因为 HashMap 中有个负载因子默认为 0.75，就是说存储的数量超过容量的 75% 就会触发扩容，put 到后 25% 的数据时，肯定就会触发扩容。但事实真是这样吗？源码中有我们想知道的一切，真相只有一个。
分析源码
HashMap 的初始化]]></description><category></category></item><item><title><![CDATA[浅析 Comparable 和 Comparator]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122677904</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122677904</guid><author>Acx77</author><pubDate>Tue, 25 Jan 2022 01:36:23 +0800</pubDate><description><![CDATA[相同点

都是用来实现集合中元素的比较从而进行排序。
compare(T o1, T o2) 和 o1.compareTo(o2) 类似，定义排序规则后返回正数，零和负数分别代表大于，等于和小于。
一个类要实现排序功能既可以通过内部实现 Comparable 接口也可以通过外部实现 Comparator 接口。

不同点

接口定义位置不同：

java.lang.Comparable
java.util.Comparator。


接口中定义方法不同：

Comparable 中定义 public int]]></description><category></category></item><item><title><![CDATA[Java fail-fast 机制]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122646360</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122646360</guid><author>Acx77</author><pubDate>Sun, 23 Jan 2022 01:51:12 +0800</pubDate><description><![CDATA[简介
  fail-fast 机制，即快速失败机制，是 Java 集合(Collection)中的一种错误检测机制，检测在迭代期间集合被修改的情况。fail-fast 机制并不保证在不同步的修改下一定会抛出异常，它只是尽最大努力去抛出，所以这种机制一般仅用于检测 bug。
示例
  在集合中，当直接使用 Iterator 迭代（而不是通过 for-each 循环间接使用），对正在被迭代的集合进行结构上的改变（即对该集合使用 add、remove 或 clear 等方法），那么迭代器就不再合法，发生 fail]]></description><category></category></item><item><title><![CDATA[Java 协变数组类型]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122645613</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122645613</guid><author>Acx77</author><pubDate>Sun, 23 Jan 2022 00:02:23 +0800</pubDate><description><![CDATA[问题
  假设现在有 Person 类和 Employee 类，假设 Employee IS-A Person，那么，这是不是意味着数组 Employee[ ] IS-A Person[ ] 呢？换句话说，如果一个例程接受 Person[ ] 作为参数，我们能不能把 Employee[ ] 作为作为参数来传递呢？
思考
  乍一看，似乎 Employee[ ] 就应该和 Person[ ] 类型兼容。举个例子，假设除了 Employee 外，还有 Student IS-A Person，并假设 Employ]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 Fibonacci数列]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122593289</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122593289</guid><author>Acx77</author><pubDate>Thu, 20 Jan 2022 01:19:14 +0800</pubDate><description><![CDATA[问题描述

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;
        
   ]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 01字串]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122593133</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122593133</guid><author>Acx77</author><pubDate>Thu, 20 Jan 2022 00:56:13 +0800</pubDate><description><![CDATA[问题描述

Java 代码实现
import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        for (int i = 0; i &lt; 32; ++i) {
            System.out.printf("%05d\n", Integer.valueOf(Int]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 字母图形]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122593067</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122593067</guid><author>Acx77</author><pubDate>Thu, 20 Jan 2022 00:45:29 +0800</pubDate><description><![CDATA[问题描述

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+]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 杨辉三角形]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122592766</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122592766</guid><author>Acx77</author><pubDate>Thu, 20 Jan 2022 00:19:56 +0800</pubDate><description><![CDATA[问题描述

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]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 特殊回文数]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122592448</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122592448</guid><author>Acx77</author><pubDate>Thu, 20 Jan 2022 00:00:14 +0800</pubDate><description><![CDATA[问题描述

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 &lt; 1000000; ++i) {
            ]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 十进制转十六进制]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122528767</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122528767</guid><author>Acx77</author><pubDate>Sun, 16 Jan 2022 21:03:44 +0800</pubDate><description><![CDATA[问题描述

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]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 十六进制转十进制]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122528279</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122528279</guid><author>Acx77</author><pubDate>Sun, 16 Jan 2022 20:46:10 +0800</pubDate><description><![CDATA[问题描述

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(]]></description><category></category></item><item><title><![CDATA[你管这叫代理模式(Proxy Pattern)]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122524203</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122524203</guid><author>Acx77</author><pubDate>Sun, 16 Jan 2022 20:24:59 +0800</pubDate><description><![CDATA[代理模式
  代理模式即给一个真实类提供一个代理类，该代理类代替真实类完成其功能，一般还可在代理类上添加一些真实类不具有的附加功能，通俗来讲代理模式就是我们生活中常见的中介，代理模式又可分为静态代理和动态代理。
静态代理
  静态代理需要代理类和目标类实现一样的接口，一般将被代理对象组合到代理类中，然后使用其完成对应功能，并可在代理类中添加额外功能。
租房静态代理过程

第一步：创建服务接口

public interface Rent {
    // 出租房屋
    void rent();
}


]]></description><category></category></item><item><title><![CDATA[蓝桥杯 基础练习 十六进制转八进制]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122518293</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122518293</guid><author>Acx77</author><pubDate>Sun, 16 Jan 2022 01:17:46 +0800</pubDate><description><![CDATA[问题描述

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 &lt; n; ++i) {
			]]></description><category></category></item><item><title><![CDATA[UUID 工具类]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/122485893</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/122485893</guid><author>Acx77</author><pubDate>Fri, 14 Jan 2022 00:52:03 +0800</pubDate><description><![CDATA[UUID
  UUID 是通用唯一识别码（Universally Unique Identifier）的缩写。UUID 让分布式系统中的所有元素，都能有唯一的辨识信息，而不需要通过中央控制端来做辨识信息的指定。
UUID 的组成

1~8位采用系统时间，在系统时间上精确到毫秒级保证时间上的惟一性；
9~16位采用底层的IP地址，在服务器集群中的惟一性；
17~24位采用当前对象的HashCode值，在一个内部对象上的惟一性；
25~32位采用调用方法的一个随机数，在一个对象内的毫秒级的惟一性。

UUID ]]></description><category></category></item><item><title><![CDATA[XML 中写中文注释报错解决]]></title><link>https://blog.youkuaiyun.com/Acx77/article/details/132973955</link><guid>https://blog.youkuaiyun.com/Acx77/article/details/132973955</guid><author>Acx77</author><pubDate>Sat, 25 Dec 2021 21:19:00 +0800</pubDate><description><![CDATA[问题描述
使用 Mybatis 过程中，在 XML 配置文件中写了中文注释，导致读取配置文件出错。
解决方案

方案一：将 XML 头中的 UTF-8 改为 UTF8。
方案二：在注释信息前后添加空格，例如：&lt;!-- 注册 --&gt;。


...]]></description><category></category></item></channel></rss>