<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>VUE</title><link>http://www.lqzhan.com/</link><description>前端开发社区</description><item><title>java子类如何调用父类的方法</title><link>http://www.lqzhan.com/post/64447.html</link><description>&lt;h3&gt;子类调用父类方法的方式&lt;/h3&gt;
&lt;p&gt;在Java中，子类可以通过以下方式调用父类的方法：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%AD%90%E7%B1%BB%E5%A6%82%E4%BD%95%E8%B0%83%E7%94%A8%E7%88%B6%E7%B1%BB%E7%9A%84%E6%96%B9%E6%B3%95.jpg&quot; alt=&quot;java子类如何调用父类的方法&quot; title=&quot;java子类如何调用父类的方法&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;h4&gt;使用 &lt;code&gt;super&lt;/code&gt; 关键字&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;super&lt;/code&gt; 关键字用于显式调用父类的方法或构造函数。适用于子类重写了父类方法但仍需调用父类原始实现的情况。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%AD%90%E7%B1%BB%E5%A6%82%E4%BD%95%E8%B0%83%E7%94%A8%E7%88%B6%E7%B1%BB%E7%9A%84%E6%96%B9%E6%B3%95.1.jpg&quot; alt=&quot;java子类如何调用父类的方法&quot; title=&quot;java子类如何调用父类的方法&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;class Parent {
    void display() {
        System.out.println(&quot;Parent method&quot;);
    }
}

class Child extends Parent {
    @Override
    void display() {
        super.display(); // 调用父类方法
        System.out.println(&quot;Child method&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;直接调用未重写的方法&lt;/h4&gt;
&lt;p&gt;若子类未重写父类方法，可直接通过子类实例调用父类方法。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;class Parent {
    void print() {
        System.out.println(&quot;Parent method&quot;);
    }
}

class Child extends Parent {
    // 未重写print方法
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.print(); // 自动调用父类方法
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;调用父类构造函数&lt;/h4&gt;
&lt;p&gt;子类构造函数中可通过 &lt;code&gt;super()&lt;/code&gt; 调用父类构造函数，需放在子类构造函数的第一行。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;class Parent {
    Parent(String msg) {
        System.out.println(msg);
    }
}

class Child extends Parent {
    Child() {
        super(&quot;Calling parent constructor&quot;); // 调用父类构造函数
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;注意事项&lt;/h4&gt;
&lt;ul&gt;&lt;li&gt;静态方法不支持 &lt;code&gt;super&lt;/code&gt; 调用，需通过父类名直接调用。&lt;/li&gt;
&lt;li&gt;父类私有方法无法被子类直接调用。&lt;/li&gt;
&lt;li&gt;若父类方法被重写且未使用 &lt;code&gt;super&lt;/code&gt;，子类实例将默认调用重写后的版本。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;通过以上方式，子类可以灵活调用父类的方法，实现代码复用和功能扩展。&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:54:50 +0800</pubDate></item><item><title>java如何定义一个类</title><link>http://www.lqzhan.com/post/64446.html</link><description>&lt;h3&gt;定义类的语法&lt;/h3&gt;
&lt;p&gt;在Java中，定义一个类需要使用&lt;code&gt;class&lt;/code&gt;关键字，后跟类名和一对花括号&lt;code&gt;{}&lt;/code&gt;。类名通常遵循大驼峰命名法（首字母大写）。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class ClassName {
    // 类体
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;类的基本组成部分&lt;/h3&gt;
&lt;p&gt;一个完整的类通常包含以下部分：&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;访问修饰符（如&lt;code&gt;public&lt;/code&gt;、&lt;code&gt;private&lt;/code&gt;等）&lt;/li&gt;
&lt;li&gt;类名&lt;/li&gt;
&lt;li&gt;成员变量（字段）&lt;/li&gt;
&lt;li&gt;构造方法&lt;/li&gt;
&lt;li&gt;成员方法&lt;/li&gt;
&lt;/ul&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Person {
    // 成员变量
    private String name;
    private int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 成员方法
    public void sayHello() {
        System.out.println(&quot;Hello, my name is &quot; + name);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;访问修饰符&lt;/h3&gt;
&lt;p&gt;Java类可以使用以下访问修饰符：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E7%B1%BB.jpg&quot; alt=&quot;java如何定义一个类&quot; title=&quot;java如何定义一个类&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;public&lt;/code&gt;：类可以被任何其他类访问&lt;/li&gt;
&lt;li&gt;&lt;code&gt;默认&lt;/code&gt;（不写修饰符）：类只能被同一包中的其他类访问&lt;/li&gt;
&lt;li&gt;&lt;code&gt;final&lt;/code&gt;：类不能被继承&lt;/li&gt;
&lt;li&gt;&lt;code&gt;abstract&lt;/code&gt;：类不能被实例化，必须被继承&lt;/li&gt;
&lt;/ul&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class PublicClass {}
class DefaultAccessClass {}
public final class FinalClass {}
public abstract class AbstractClass {}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;类继承&lt;/h3&gt;
&lt;p&gt;Java使用&lt;code&gt;extends&lt;/code&gt;关键字实现类继承，一个类只能继承一个父类。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Animal {
    public void eat() {
        System.out.println(&quot;Animal is eating&quot;);
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println(&quot;Dog is barking&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;实现接口&lt;/h3&gt;
&lt;p&gt;Java使用&lt;code&gt;implements&lt;/code&gt;关键字实现接口，一个类可以实现多个接口。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E7%B1%BB.1.jpg&quot; alt=&quot;java如何定义一个类&quot; title=&quot;java如何定义一个类&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public interface Swimmable {
    void swim();
}

public interface Flyable {
    void fly();
}

public class Duck implements Swimmable, Flyable {
    public void swim() {
        System.out.println(&quot;Duck is swimming&quot;);
    }

    public void fly() {
        System.out.println(&quot;Duck is flying&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;内部类&lt;/h3&gt;
&lt;p&gt;Java支持在类中定义其他类，称为内部类。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class OuterClass {
    private int outerField;

    public class InnerClass {
        public void accessOuter() {
            outerField = 10; // 可以访问外部类的私有成员
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;匿名类&lt;/h3&gt;
&lt;p&gt;Java允许创建匿名类，通常用于实现接口或继承类。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;interface Greeting {
    void greet();
}

public class Main {
    public static void main(String[] args) {
        Greeting greeting = new Greeting() {
            public void greet() {
                System.out.println(&quot;Hello from anonymous class&quot;);
            }
        };
        greeting.greet();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;枚举类&lt;/h3&gt;
&lt;p&gt;Java支持使用&lt;code&gt;enum&lt;/code&gt;关键字定义枚举类型。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public enum Day {
    MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY, SUNDAY
}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:51:25 +0800</pubDate></item><item><title>java 如何四舍五入</title><link>http://www.lqzhan.com/post/64445.html</link><description>&lt;h3&gt;四舍五入的方法&lt;/h3&gt;
&lt;p&gt;在Java中，可以使用多种方法实现四舍五入操作，以下是常见的几种方式：&lt;/p&gt;
&lt;h4&gt;使用Math.round()方法&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Math.round()&lt;/code&gt;是最简单的四舍五入方法，返回最接近的整数（&lt;code&gt;long&lt;/code&gt;或&lt;code&gt;int&lt;/code&gt;类型）。对于浮点数，默认四舍五入到小数点后第一位。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5.jpg&quot; alt=&quot;java 如何四舍五入&quot; title=&quot;java 如何四舍五入&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;double num = 3.6;
long rounded = Math.round(num); // 结果为4&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用BigDecimal类&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;BigDecimal&lt;/code&gt;提供了更精确的四舍五入控制，可以指定小数位数和舍入模式（如&lt;code&gt;RoundingMode.HALF_UP&lt;/code&gt;）。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5.1.jpg&quot; alt=&quot;java 如何四舍五入&quot; title=&quot;java 如何四舍五入&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.math.BigDecimal;
import java.math.RoundingMode;

double num = 3.14159;
BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP); // 结果为3.14&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用DecimalFormat类&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;DecimalFormat&lt;/code&gt;可以格式化数字并四舍五入到指定小数位数，适合输出场景。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.text.DecimalFormat;

double num = 3.14159;
DecimalFormat df = new DecimalFormat(&quot;#.##&quot;);
String result = df.format(num); // 结果为&quot;3.14&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;自定义四舍五入逻辑&lt;/h4&gt;
&lt;p&gt;如果需要更灵活的控制，可以手动实现四舍五入逻辑。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;double num = 3.14159;
double scale = 100; // 保留两位小数
double rounded = Math.round(num * scale) / scale; // 结果为3.14&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;注意事项&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;Math.round()&lt;/code&gt;对负数的处理与正数一致（如&lt;code&gt;-3.6&lt;/code&gt;四舍五入为&lt;code&gt;-4&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BigDecimal&lt;/code&gt;的&lt;code&gt;setScale&lt;/code&gt;方法需明确指定舍入模式，否则可能抛出&lt;code&gt;ArithmeticException&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;浮点数运算可能存在精度问题，高精度场景推荐使用&lt;code&gt;BigDecimal&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:49:47 +0800</pubDate></item><item><title>java如何四舍五入</title><link>http://www.lqzhan.com/post/64444.html</link><description>&lt;h3&gt;四舍五入方法&lt;/h3&gt;
&lt;p&gt;Java中实现四舍五入可以通过多种方式，以下是几种常见的方法：&lt;/p&gt;
&lt;h4&gt;使用Math.round()&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Math.round()&lt;/code&gt;是最常用的四舍五入方法，它返回最接近参数的&lt;code&gt;long&lt;/code&gt;或&lt;code&gt;int&lt;/code&gt;值。对于浮点数，它会四舍五入到最接近的整数。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5.jpg&quot; alt=&quot;java如何四舍五入&quot; title=&quot;java如何四舍五入&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;double num = 3.6;
long rounded = Math.round(num); // 结果为4&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用BigDecimal&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;BigDecimal&lt;/code&gt;提供了更精确的四舍五入控制，可以指定小数位数和舍入模式。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5.1.jpg&quot; alt=&quot;java如何四舍五入&quot; title=&quot;java如何四舍五入&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.math.BigDecimal;
import java.math.RoundingMode;

double num = 3.14159;
BigDecimal bd = new BigDecimal(num);
bd = bd.setScale(2, RoundingMode.HALF_UP); // 结果为3.14&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用DecimalFormat&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;DecimalFormat&lt;/code&gt;可以格式化数字并实现四舍五入，适合需要输出格式化字符串的场景。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.text.DecimalFormat;

double num = 3.14159;
DecimalFormat df = new DecimalFormat(&quot;#.##&quot;);
String result = df.format(num); // 结果为&quot;3.14&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;自定义四舍五入逻辑&lt;/h4&gt;
&lt;p&gt;如果需要自定义舍入规则，可以手动实现逻辑。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;double num = 3.14159;
double scale = 100; // 保留两位小数
double rounded = Math.round(num * scale) / scale; // 结果为3.14&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;注意事项&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;Math.round()&lt;/code&gt;对负数同样有效，例如&lt;code&gt;-3.6&lt;/code&gt;会四舍五入为&lt;code&gt;-4&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BigDecimal&lt;/code&gt;的&lt;code&gt;setScale&lt;/code&gt;方法需要指定舍入模式，如&lt;code&gt;RoundingMode.HALF_UP&lt;/code&gt;表示标准的四舍五入。&lt;/li&gt;
&lt;li&gt;浮点数精度问题可能导致预期外的结果，使用&lt;code&gt;BigDecimal&lt;/code&gt;可以避免此类问题。&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:48:15 +0800</pubDate></item><item><title>java如何输出数组中的数组</title><link>http://www.lqzhan.com/post/64443.html</link><description>&lt;h3&gt;输出多维数组的方法&lt;/h3&gt;
&lt;p&gt;在Java中，多维数组可以通过嵌套循环或Arrays工具类实现输出。以下是具体实现方式：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;嵌套循环输出二维数组&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E8%BE%93%E5%87%BA%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%95%B0%E7%BB%84.jpg&quot; alt=&quot;java如何输出数组中的数组&quot; title=&quot;java如何输出数组中的数组&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;int[][] twoDArray = {{1, 2}, {3, 4}, {5, 6}};
for (int i = 0; i &amp;lt; twoDArray.length; i++) {
    for (int j = 0; j &amp;lt; twoDArray[i].length; j++) {
        System.out.print(twoDArray[i][j] + &quot; &quot;);
    }
    System.out.println();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Arrays.deepToString()方法&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.util.Arrays;
int[][] twoDArray = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepToString(twoDArray));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;递归处理N维数组&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E8%BE%93%E5%87%BA%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%95%B0%E7%BB%84.1.jpg&quot; alt=&quot;java如何输出数组中的数组&quot; title=&quot;java如何输出数组中的数组&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public static void printMultiArray(Object array) {
    if (array.getClass().isArray()) {
        for (Object element : (Object[]) array) {
            printMultiArray(element);
        }
        System.out.println();
    } else {
        System.out.print(array + &quot; &quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;格式化输出示例&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;int[][][] threeDArray = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
System.out.println(&quot;三维数组输出：&quot;);
for (int[][] matrix : threeDArray) {
    for (int[] row : matrix) {
        for (int num : row) {
            System.out.printf(&quot;%4d&quot;, num);
        }
        System.out.println();
    }
    System.out.println(&quot;----&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意事项&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;基本类型数组需要先转换为Object[]&lt;/li&gt;
&lt;li&gt;深层嵌套数组建议使用递归方法&lt;/li&gt;
&lt;li&gt;Arrays.toString()仅适用于一维数组&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;以上方法可根据实际需求选择使用，其中Arrays.deepToString()最适合快速调试输出，而嵌套循环更适合需要自定义格式的场景。&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:45:31 +0800</pubDate></item><item><title>如何设置java的环境变量</title><link>http://www.lqzhan.com/post/64442.html</link><description>&lt;h3&gt;查找Java安装路径&lt;/h3&gt;
&lt;p&gt;打开文件资源管理器，导航到Java的安装目录（例如&lt;code&gt;C:\Program Files\Java\jdk-21&lt;/code&gt;），复制该路径。若不确定路径，可通过命令提示符输入&lt;code&gt;where java&lt;/code&gt;查找。&lt;/p&gt;
&lt;h3&gt;配置系统环境变量&lt;/h3&gt;
&lt;p&gt;右键“此电脑”选择“属性” → “高级系统设置” → “环境变量”。在“系统变量”部分点击“新建”，变量名输入&lt;code&gt;JAVA_HOME&lt;/code&gt;，变量值为复制的Java安装路径（如&lt;code&gt;C:\Program Files\Java\jdk-21&lt;/code&gt;）。&lt;/p&gt;
&lt;h3&gt;更新Path变量&lt;/h3&gt;
&lt;p&gt;在“系统变量”中找到&lt;code&gt;Path&lt;/code&gt;变量，点击“编辑” → “新建”，添加两条记录：  &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;code&gt;%JAVA_HOME%\bin&lt;/code&gt;  &lt;/li&gt;
&lt;li&gt;&lt;code&gt;%JAVA_HOME%\jre\bin&lt;/code&gt;&lt;br&gt;
确保使用百分号包裹&lt;code&gt;JAVA_HOME&lt;/code&gt;以动态引用路径。&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;验证配置&lt;/h3&gt;
&lt;p&gt;打开新的命令提示符窗口，依次运行以下命令验证：  &lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AEjava%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.jpg&quot; alt=&quot;如何设置java的环境变量&quot; title=&quot;如何设置java的环境变量&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;java -version
javac -version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若正确显示版本号，则环境变量配置成功。若报错，需检查路径是否包含空格或特殊字符，并确保&lt;code&gt;JAVA_HOME&lt;/code&gt;与&lt;code&gt;Path&lt;/code&gt;拼写无误。&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:43:58 +0800</pubDate></item><item><title>java如何比较字符串大小</title><link>http://www.lqzhan.com/post/64441.html</link><description>&lt;h3&gt;字符串比较方法&lt;/h3&gt;
&lt;p&gt;在Java中，比较字符串大小通常指的是按字典顺序（lexicographical order）进行比较。以下是几种常用的方法：&lt;/p&gt;
&lt;h4&gt;使用 &lt;code&gt;compareTo&lt;/code&gt; 方法&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;String&lt;/code&gt; 类提供了 &lt;code&gt;compareTo&lt;/code&gt; 方法，用于按字典顺序比较两个字符串。返回值是一个整数：&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;如果字符串等于参数字符串，返回 &lt;code&gt;0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果字符串小于参数字符串，返回负数。&lt;/li&gt;
&lt;li&gt;如果字符串大于参数字符串，返回正数。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;示例代码：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%A4%A7%E5%B0%8F.jpg&quot; alt=&quot;java如何比较字符串大小&quot; title=&quot;java如何比较字符串大小&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;String str1 = &quot;apple&quot;;
String str2 = &quot;banana&quot;;
int result = str1.compareTo(str2);
if (result &amp;lt; 0) {
    System.out.println(&quot;str1 小于 str2&quot;);
} else if (result &amp;gt; 0) {
    System.out.println(&quot;str1 大于 str2&quot;);
} else {
    System.out.println(&quot;str1 等于 str2&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用 &lt;code&gt;compareToIgnoreCase&lt;/code&gt; 方法&lt;/h4&gt;
&lt;p&gt;如果需要忽略大小写进行比较，可以使用 &lt;code&gt;compareToIgnoreCase&lt;/code&gt; 方法。其行为与 &lt;code&gt;compareTo&lt;/code&gt; 类似，但忽略大小写差异。&lt;/p&gt;
&lt;p&gt;示例代码：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%A4%A7%E5%B0%8F.1.jpg&quot; alt=&quot;java如何比较字符串大小&quot; title=&quot;java如何比较字符串大小&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;String str1 = &quot;Apple&quot;;
String str2 = &quot;apple&quot;;
int result = str1.compareToIgnoreCase(str2);
if (result == 0) {
    System.out.println(&quot;忽略大小写后相等&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用 &lt;code&gt;equals&lt;/code&gt; 和 &lt;code&gt;equalsIgnoreCase&lt;/code&gt; 方法&lt;/h4&gt;
&lt;p&gt;如果仅需检查字符串是否相等，可以使用 &lt;code&gt;equals&lt;/code&gt; 方法。忽略大小写的比较则使用 &lt;code&gt;equalsIgnoreCase&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;示例代码：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;String str1 = &quot;Hello&quot;;
String str2 = &quot;hello&quot;;
boolean isEqual = str1.equals(str2); // false
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // true&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;注意事项&lt;/h4&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;compareTo&lt;/code&gt; 方法区分大小写，大写字母的ASCII值小于小写字母，因此 &lt;code&gt;&quot;A&quot;.compareTo(&quot;a&quot;)&lt;/code&gt; 返回负数。&lt;/li&gt;
&lt;li&gt;对于需要自然排序（如数字顺序）的场景，可以使用 &lt;code&gt;Comparator&lt;/code&gt; 或第三方库（如 Apache Commons Lang 的 &lt;code&gt;StringUtils&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;通过以上方法，可以灵活地比较字符串的大小或相等性。&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:42:35 +0800</pubDate></item><item><title>java 如何添加背景图片</title><link>http://www.lqzhan.com/post/64440.html</link><description>&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF%E5%9B%BE%E7%89%87.jpg&quot; alt=&quot;java 如何添加背景图片&quot; title=&quot;java 如何添加背景图片&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;h3&gt;使用JFrame设置背景图片&lt;/h3&gt;
&lt;p&gt;在Java中，可以通过重写&lt;code&gt;JPanel&lt;/code&gt;的&lt;code&gt;paintComponent&lt;/code&gt;方法来实现背景图片的绘制。以下是一个示例代码：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF%E5%9B%BE%E7%89%87.1.jpg&quot; alt=&quot;java 如何添加背景图片&quot; title=&quot;java 如何添加背景图片&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class BackgroundImageExample extends JFrame {
    public BackgroundImageExample() {
        setTitle(&quot;背景图片示例&quot;);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                try {
                    Image backgroundImage = ImageIO.read(new File(&quot;background.jpg&quot;));
                    g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        };
        setContentPane(panel);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -&amp;gt; {
            BackgroundImageExample frame = new BackgroundImageExample();
            frame.setVisible(true);
        });
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用BufferedImage加载图片&lt;/h3&gt;
&lt;p&gt;另一种方法是使用&lt;code&gt;BufferedImage&lt;/code&gt;加载图片，并通过&lt;code&gt;Graphics2D&lt;/code&gt;绘制背景：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class BackgroundImageExample2 extends JFrame {
    private BufferedImage backgroundImage;

    public BackgroundImageExample2() {
        setTitle(&quot;背景图片示例&quot;);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        try {
            backgroundImage = ImageIO.read(new File(&quot;background.jpg&quot;));
        } catch (IOException e) {
            e.printStackTrace();
        }

        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                if (backgroundImage != null) {
                    g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
                }
            }
        };
        setContentPane(panel);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -&amp;gt; {
            BackgroundImageExample2 frame = new BackgroundImageExample2();
            frame.setVisible(true);
        });
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;注意事项&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;图片路径可以是绝对路径或相对路径。相对路径是相对于项目根目录的路径。&lt;/li&gt;
&lt;li&gt;确保图片文件存在，并且程序有权限访问该文件。&lt;/li&gt;
&lt;li&gt;如果图片大小与窗口不匹配，可以使用&lt;code&gt;getWidth()&lt;/code&gt;和&lt;code&gt;getHeight()&lt;/code&gt;动态调整图片大小。&lt;/li&gt;
&lt;li&gt;使用&lt;code&gt;SwingUtilities.invokeLater&lt;/code&gt;确保GUI操作在事件分发线程中执行。&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:41:02 +0800</pubDate></item><item><title>java 如何判断文件是否存在</title><link>http://www.lqzhan.com/post/64439.html</link><description>&lt;h3&gt;检查文件是否存在的方法&lt;/h3&gt;
&lt;p&gt;在Java中，可以使用&lt;code&gt;java.io.File&lt;/code&gt;类或&lt;code&gt;java.nio.file.Files&lt;/code&gt;类来判断文件是否存在。以下是几种常见的方法：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8.jpg&quot; alt=&quot;java 如何判断文件是否存在&quot; title=&quot;java 如何判断文件是否存在&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;h4&gt;使用 &lt;code&gt;java.io.File.exists()&lt;/code&gt;&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.io.File;

public class FileExistsExample {
    public static void main(String[] args) {
        File file = new File(&quot;path/to/your/file.txt&quot;);
        if (file.exists()) {
            System.out.println(&quot;文件存在&quot;);
        } else {
            System.out.println(&quot;文件不存在&quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用 &lt;code&gt;java.nio.file.Files.exists()&lt;/code&gt;&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileExistsExample {
    public static void main(String[] args) {
        Path path = Paths.get(&quot;path/to/your/file.txt&quot;);
        if (Files.exists(path)) {
            System.out.println(&quot;文件存在&quot;);
        } else {
            System.out.println(&quot;文件不存在&quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;检查文件是否存在且是普通文件&lt;/h4&gt;
&lt;p&gt;如果需要确认文件不仅存在，而且是普通文件（非目录），可以使用以下方法：&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java+%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8.1.jpg&quot; alt=&quot;java 如何判断文件是否存在&quot; title=&quot;java 如何判断文件是否存在&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileExistsExample {
    public static void main(String[] args) {
        Path path = Paths.get(&quot;path/to/your/file.txt&quot;);
        if (Files.exists(path) &amp;amp;&amp;amp; Files.isRegularFile(path)) {
            System.out.println(&quot;文件存在且是普通文件&quot;);
        } else {
            System.out.println(&quot;文件不存在或不是普通文件&quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;检查文件是否存在且可访问&lt;/h4&gt;
&lt;p&gt;如果需要检查文件是否存在且可读或可写，可以使用以下方法：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileExistsExample {
    public static void main(String[] args) {
        Path path = Paths.get(&quot;path/to/your/file.txt&quot;);
        if (Files.exists(path) &amp;amp;&amp;amp; Files.isReadable(path)) {
            System.out.println(&quot;文件存在且可读&quot;);
        }
        if (Files.exists(path) &amp;amp;&amp;amp; Files.isWritable(path)) {
            System.out.println(&quot;文件存在且可写&quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;注意事项&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;使用&lt;code&gt;java.io.File&lt;/code&gt;时，路径可以是相对路径或绝对路径。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;java.nio.file.Files&lt;/code&gt;提供了更多功能，如检查文件属性、符号链接等。&lt;/li&gt;
&lt;li&gt;在处理文件路径时，建议使用&lt;code&gt;Paths.get()&lt;/code&gt;或&lt;code&gt;File&lt;/code&gt;的构造函数，确保路径的正确性。&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:39:43 +0800</pubDate></item><item><title>java如何初始化对象</title><link>http://www.lqzhan.com/post/64438.html</link><description>&lt;h3&gt;初始化对象的方法&lt;/h3&gt;
&lt;p&gt;在Java中，对象初始化可以通过多种方式实现，主要包括构造方法、静态工厂方法、实例初始化块以及反射机制等。&lt;/p&gt;
&lt;h4&gt;使用构造方法初始化&lt;/h4&gt;
&lt;p&gt;构造方法是最常见的对象初始化方式。通过&lt;code&gt;new&lt;/code&gt;关键字调用构造方法创建对象实例。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Person {
    private String name;
    private int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

// 初始化对象
Person person = new Person(&quot;Alice&quot;, 25);&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用静态工厂方法&lt;/h4&gt;
&lt;p&gt;静态工厂方法提供更灵活的对象创建方式，可以隐藏构造细节或返回缓存的实例。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Person {
    private String name;
    private int age;

    private Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 静态工厂方法
    public static Person createPerson(String name, int age) {
        return new Person(name, age);
    }
}

// 初始化对象
Person person = Person.createPerson(&quot;Bob&quot;, 30);&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用实例初始化块&lt;/h4&gt;
&lt;p&gt;实例初始化块在每次对象创建时自动执行，用于完成通用初始化逻辑。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Person {
    private String name;
    private int age;

    // 实例初始化块
    {
        name = &quot;Default&quot;;
        age = 0;
    }
}

// 初始化对象
Person person = new Person();&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用反射机制&lt;/h4&gt;
&lt;p&gt;通过反射API动态创建对象，适用于运行时确定类名的场景。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;try {
    Class&amp;lt;?&amp;gt; clazz = Class.forName(&quot;com.example.Person&quot;);
    Person person = (Person) clazz.newInstance();
} catch (Exception e) {
    e.printStackTrace();
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;使用Builder模式&lt;/h4&gt;
&lt;p&gt;Builder模式适合初始化具有多个可选参数的复杂对象。&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://lqzhan.com/zb_users/cache/ly_autoimg/java%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E5%AF%B9%E8%B1%A1.jpg&quot; alt=&quot;java如何初始化对象&quot; title=&quot;java如何初始化对象&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Person {
    private String name;
    private int age;

    public static class Builder {
        private String name;
        private int age;

        public Builder name(String name) {
            this.name = name;
            return this;
        }

        public Builder age(int age) {
            this.age = age;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }

    private Person(Builder builder) {
        this.name = builder.name;
        this.age = builder.age;
    }
}

// 初始化对象
Person person = new Person.Builder()
    .name(&quot;Charlie&quot;)
    .age(35)
    .build();&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;选择初始化方式的考虑因素&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;构造方法&lt;/strong&gt;：简单直接，适合大多数场景。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;静态工厂方法&lt;/strong&gt;：需要控制实例创建过程时使用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Builder模式&lt;/strong&gt;：参数较多或可选参数时推荐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反射&lt;/strong&gt;：仅在需要动态加载类时使用。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;每种方式各有优缺点，应根据具体需求选择最合适的对象初始化方法。&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2026 08:38:00 +0800</pubDate></item></channel></rss>