海滨擎蟹

Java 复习笔记(五) - 转自 廖雪峰的 Java 教程

字符串和编码

从表面上看,两个字符串用 ==equals() 比较都为 true,但实际上那只是 Java 编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池,自然两个字符串的引用就是相同的。

所以,两个字符串判断是否相同,必须用 equals()

复制对象 obj.clone()

System.setProperty("java.version", "11");
System.out.println(System.getProperty("java.version"));
System.out.println(Integer.getInteger("java.version")); // 版本号,11

我获取到的 java.versionnull,说明系统变量中不存在这样的变量名。我本地测试版本 jdk 1.8,可能是 Java 版本比较低的原因没有获取到。

通过系统变量设置函数 setProperty 设置的值只能是字符串,且字符串需要可以转化为 Integer,否则 Integer.getInteger 获取到值会一直为 null 。比如设置 java.version"1.8",则 Integer.getInteger 返回 null。

总结:

StringBuilder 可变字符串

构造 Insert 语句

public class Main {
    public static void main(String[] args) {
        String[] fields = { "name", "position", "salary" };
        String table = "employee";
        String insert = buildInsertSql(table, fields);
        System.out.println(insert);
        String s = "INSERT INTO employee (name, position, salary) VALUES (?, ?, ?)";
        System.out.println(s.equals(insert) ? "测试成功" : "测试失败");
    }

    static String buildInsertSql(String table, String[] fields) {
        var sb = new StringBuilder(1024);
        sb.append("INSERT INTO " + table + " (");
        for(int i = 0;i < fields.length; i++) {
            if (i == fields.length - 1) {
                 sb.append(fields[i]);
            } else {
                 sb.append(fields[i] + ", ");
            }
        }
        // sb.append(String.join(", ", fields));
        sb.append(") VALUES (?, ?, ?)");
        return new String(sb);
    }
}

总结:

摘自:Java 教程 - 廖雪峰

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »