rercord extends java.lang.Record クラスを使用してレコード値の型宣言を使用する
パブリック レコード User(int id,String name){
}
Stringの実行結果の比較
String s1 = "ok";
String s2 = "ok";
System.out.println(s1 == s2);
String b1 = new String("ok");
String b2 = new String("ok");
System.out.println(b1 == b2);
System.out.println(b1.equals(b2));
//字符数
System.out.println("hello中国".length());
//字节数 utf-8 一个占用三个字节
System.out.println("hello中国".getBytes().length);
System.out.println(b1.concat(b2));
実行結果は以下の通りです
直接宣言した場合はアドレスを指定します new時は同じ文字列が生成されますがアドレスが異なるため判定時に==がfalseになります
最大値を出力するプログラムを作成してください
public int max1(int... a) {
Arrays.sort(a);
return a.length == 0 ? 0 : a[a.length - 1];
}
Java言語では文字列は固定長です
utf-8 エンコーディングの中国語文字は 3 バイトを占めます。
文字の逆順を実装する
public String ni(String a) {
int b = a.length();
//String[] c2 = a.split("", b);
char[] c2 = a.toCharArray();
String outcome = "";
for (int i = b - 1; i >= 0; i--) {
//outcome += c2[i];
outcome = outcome.concat(String.valueOf(c2[i]));
}
return outcome;
}
文字の出現数または文字列の出現数を確認します。
public int frequency(String text, String fre) {
char[] at1 = text.toCharArray();
char[] af1 = fre.toCharArray();
int sum = 0;
for (int i = 0; i < at1.length; i++) {
boolean a2 = false;
int a1 = 0;
if (at1[i] == af1[0]) {
if (i + af1.length <= at1.length) {
for (int j = 0; j < af1.length; j++) {
if (at1[i + j] == af1[j]) {
a1++;
}
if (a1 == af1.length) {
a2 = true;
break;
}
}
}
}
if (a2) {
sum++;
}
}
return sum;
}
オブジェクト指向に関するいくつかの結論
最終クラスの継承は継承できず、サブクラスも継承できません。
スーパークラスの親クラスは書き換えの際に使用され、
Super() はサブクラスの構築メソッドの最初の行でも使用されます。
抽象クラスの抽象クラス C{}
インターフェイス インターフェイスは、インターフェイスの実装クラスを使用します。抽象メソッドが 1 つしかない場合は、ラムダ式を使用して使用できます。
インターフェイス = 定数 + 抽象メソッド... + 静的実装メソッド.. . + デフォルトの実装メソッド... インターフェイス
を継承するインターフェイスは多数存在する可能性があります