Javaの基本15の一般的なJavaクラス

プログラミングが好きなあなたのように!
SpringBoot実用的なコースは学習https://edu.csdn.net/course/detail/31433
SpringCloud入門コースを学びhttps://edu.csdn.net/course/detail/31451を


序文

Javaは、開発者が開発タスクを迅速に完了するのに役立つ強力なクラスライブラリを提供します。これは、20年以上にわたって成功した重要な理由でもあります。ここで、Javaで一般的に使用されるいくつかのクラスについて学習します。
この記事では以下を紹介します。

  • 文字列関連:String、StringBuffer、StringBuilder
  • パッケージング:整数など。
  • 関連する日付:日付、カレンダー、SimpleDateFormat
  • その他:数学、ランダム、ランタイム、システム

文字列関連

Javaには、文字列を処理するためのいくつかのクラスがあります。String、StringBuffer、StringBuilderですが、最も一般的に使用されるのはStringクラスです。

文字列クラス

作成方法

作成方法1:割り当て定数

String str = "hello";

二重引用符で囲まれた内容は文字列定数値と呼ばれ、文字列定数値はメソッド領域の定数プールに割り当てられます。
一定のプールの利点:

  1. メモリを節約し、繰り返し使用し、再割り当てする必要はありません
  2. 高性能、直接呼び出し、オブジェクト作成の時間を節約

インタビュー質問1:

String name1 = "zhangsan";
String name2 = "zhangsan";
System.out.println(name1==name2);  			输出true
System.out.println(name1.equals(name2)); 	输出true

分析:

  1. equalsは文字列の内容を比較するために使用され、==は文字列オブジェクトのメモリアドレスを比較するために使用されます
  2. name1 = "zhangsan"、定数プールに "zhangsan"を作成します
  3. name2 = "zhangsan"は、プール内の定数のアドレスをname2に直接割り当てます。

ここに写真の説明を挿入

インタビュー質問2:

String name1 = "zhangsan";
String name2 = "zha"+"ng"+"san";
System.out.println(name1==name2);  输出true

分析:プラス記号の両側に文字列定数がある場合、JVMは定数プール内の接続の結果を直接検索します。

インタビューの質問3:

String name1 = "zhangsan";
String name2 = "zhang";
String name3 = name2 + "san";
System.out.println(name1==name3);  输出false

分析:変数がプラス記号の両側に表示される場合、その変数は定数プールには含まれませんが、オブジェクトはヒープ領域に作成されます。
ここに写真の説明を挿入

作成方法2:newを使用してオブジェクトを作成します

String name = new String("zhangsan");

newを使用して、ヒープ内に新しいオブジェクトを作成します。
ここに写真の説明を挿入
その他の作成方法:
バイト配列を使用して文字列を作成します。

String(byte[] bytes,String charset)
bytes 		字节数组
charset 	字符编码,一般使用UTF-8

文字配列から文字列を作成する

String(char[] chars)
如:
char[] chars = {‘z’,'h','a','n','g'};
String name = new String(chars); 

文字列の不変性

/** The value is used for character storage. */
private final char value[];

Stringクラスのソースコードによると、文字列の内容は文字配列に格納されます。これは最終的なものであり、一度初期化すると変更できません。
文字列を変更する場合は、新しいオブジェクトが作成され、頻繁に変更すると、多くのメモリスペースと時間が消費されます。
といった:

String str = "hello";
str += "world";

下部で実行される+ =操作は次のとおりです。

str = new StringBuilder("hello").append("world").toString();

文字列の一般的なメソッド

文字列の長さを取得する

int length()

部分文字列の位置を取得します

int indexOf(String s) 		

文字列内で最初に出現する部分文字列を検索し、見つからない場合は-1を返します。

int indexOf(String s,int start)   

検索を開始する場所を指定します

int lastIndexOf(String s)		

インターセプト文字列

String substring(int start,int end)
String substring(int start)

交換

String replace(String oldStr,String newStr)

文字列の内容を比較する

boolean equals(String s) 			是否完全相同
boolean equalsIgnoreCase(String s)  忽略大小写进行比较
boolean startsWith(String s)		判断字符串是否以某字符串开头
boolean endsWith(String s) 		    判断字符串是否以某字符串结尾
int compareTo(String s)				比较大小,返回正数(大于)、负数(小于)、0(相等)

ケース変換

String toUpperCase() 大写
String toLowerCase() 小写

左右のスペースに移動します

String trim()

分割文字列

String[] split(String separator) 
注意:某些特殊符号分割符需要进行转义,如:\\+

StringBuilderクラス

文字列変数を頻繁に変更する必要がある場合、多数の文字列オブジェクトが作成され、多くのメモリスペースが消費されます。
この問題を解決するには、StringBuilderを使用できます。

StringとStringBuilderの違い:

  • Stringの文字列は変更できません。変更すると、新しい文字列が作成され、メモリが無駄になります。
  • StringBuilderの文字列は変更でき、新しい文字列は作成されません。

作成方法

创建空值的对象
StringBuilder strb = new StringBuilder();
创建有默认值的对象
StringBuilder strb = new StringBuilder("默认值");

StringBuilderの一般的なメソッド

文字列に変換

String toString() 

追加

StringBuilder append(String str) 

交換

StringBuilder replace(int start,int end,String newS) 

インサート

StringBuilder insert(int offset,String s) 

削除

StringBuilder delete(int start,int end) 

逆行する

StringBuilder reverse() 

StringBufferクラス

StringBufferの特性はStringBuilderに似ており、どちらも独自の配列で変更され、一般的なメソッドは同じです。
差:

  1. StringBufferメソッドはスレッドセーフですが、StringBuilderは非スレッドセーフです
  2. StringBuilderの実行効率はStringBufferよりも高い

パッケージング

Javaの8つの基本データ型は参照型ではなく、オブジェクトを作成できません。これは、Javaが完全にオブジェクト指向言語であるという前提に違反しています。Javaは、基本タイプをオブジェクトにパッケージ化する8つのパッケージングクラスを導入しました。

パッケージングとは

パッケージングクラスは、8つの基本データ型をパックし、基本データ型を処理のオブジェクトとして扱います。

ベーシックタイプ パッケージング
int 整数
バイト バイト
ショート ショート
長いです 長いです
浮く 浮く
ダブル ダブル
char キャラクター
ブール値 ブール値

作成方法

Integer num1 = 1000;
或
Integer num2 = new Integer(1000);

インタビューの質問:次のコードの結果は次のとおりです。

Integer n1 = 100;
Integer n2 = 100;
System.out.println(n1 == n2); true
Integer n3 = 1000;
Integer n4 = 1000;
System.out.println(n3 == n4); false

分析:整数定数も定数プールに格納でき、値の範囲はバイト範囲(-128〜127)であり、この範囲を超えると、定数プールは格納されず、オブジェクトはヒープに作成されます
ここに写真の説明を挿入

ボクシングとアンボクシング

ボックス化とボックス化解除は、基本的なデータ型と参照型の相互変換です。

  1. パッキング:基本的なデータ型は
    、次のような参照型に変換されます。整数n = 200;
  2. ボックス化解除:参照型を次のような基本的なデータ型に変換します
    :整数n = 200;
    int m = n; //ボックス化解除

文字列と基本型の変換

文字列をint型に変換する

String s = "1234";
int num = Integer.parseInt(s);

その他のタイプ:

Float.parseFloat(字符串)   转换为Float
Double.parseDouble(字符串) 转换为Double
... 

int型を文字列に変換する

String s = String.valueOf(num);

または

int num = 20;
String s = "" + num;

日付と時刻の処理

java.utilパッケージは、関連するAPIを処理するための時間を提供します。

日付クラス

日付と時刻の処理
メソッド1の作成:

Date date = new Date(); 获得当前的时间

作成方法2:

Date date = new Date(long); 指定时间的1900-1-1到现在的毫秒数

一般的な方法

int getYear()			获得年
int getMonth()			获得月
int getDate()			获得天
int getHours()			获得小时
int getMinutes()		获得分钟
int getSeconds()		获得分钟
void setYear(int year) 	设置年
...

カレンダークラス

カレンダークラスは、日付の特定の部分を取得および変更でき
ます。カレンダーオブジェクトを作成します。

Calendar calendar = Calendar.getInstance();

一般的な方法:

get(日期类型)	   		获得日期的某个部分
Calendar.YEAR
Calendar.MONTH	  		月份从0开始
....
set(日期类型,数值)		设置日期的某个部分
add(日期类型,数值)		实现日期某个部分的追溯

SimpleDateFormatクラス

日付をフォーマット
するオブジェクトを作成する

SimpleDateFormat sdf = new SimpleDateFormat("日期格式字符串");
日期格式字符串,如:"yyyy-MM-dd hh:mm:ss"
yyyy	代表4位的年份
MM		代表2位的月份
dd		代表2位的日期
hh/HH	12小时制/24小时制
mm		代表分钟
ss		代表秒钟
a		代表AM/PM

日付をフォーマットする

String format(Date对象);

文字列を日付に変換する

Date parse(String对象);

その他の一般的に使用されるクラス

数学の授業

計算

効果 使用法
絶対値を見つける Math.abs(-10)-> 10
切り上げする Math.round(2.6)-> 3
最大2つの数字を見つける Math.max(2,10)-> 10
最小の2つの数を見つける Math.min(2,10)-> 2
乱数 Math.random()-> 0〜1の任意の小数
平方根を見つける Math.sqrt(16)–> 4
べき乗 Math.pow(2,3)–> 8

ランダムクラス

乱数を取得する

Random random = new Random();
random.nextInt(100); //0 ~ 100间随机整数

ランタイムクラス

システムが実行されているときに、システム関連の情報を取得し
ます。Runtimert= Runtime.getRuntime();

効果 使用法
freeMemory() システムの空きメモリを取得する
totalMemory() 総メモリを取得します
availableProcessors() プロセッサの数を取得する
gc() ガベージコレクターを呼び出す
exec(String cmd) システムプログラムを呼び出す
exit(int status) 出口システム

PS:GC(ガベージコレクター)ガベージコレクター。JVMは別のスレッドを開き、メモリ内の未使用のオブジェクトを定期的にスキャンします。
GCを開始する特定の時間はありません。GCをウェイクアップする場合は、gcメソッドを呼び出すことができます。

String s = new String("xxxx"); //新的String对象
s = null; //没有引用指向的String对象会被回收

システムクラス

効果 使用法
currentTimeMillis() 現在のシステム時刻をミリ秒単位で取得します
gc() ガベージコレクターを呼び出す
exit(int status) 出口システム

終わり

宿題の時間です:

  1. Stringの主なメソッドを簡単に説明します
  2. StringとStringBuilderの違いを簡単に説明してください
  3. StringBuilderとStringBufferの違いを簡単に説明してください
  4. ログイン確認用のメールアドレスとパスワードを入力します:
    1)メールアドレスとパスワードが空か
    どうかを確認します2)パスワードが6桁以上であるかどうかを確認します
    3)@の位置が前
    かどうかを確認します4)メールアドレスが空かどうかを確認します[email protected]で、パスワードは666666です。ログインに成功しました
    。5)@の前のユーザー名を傍受し、出力:welcome、xxx
  5. スペースで区切られた複数の単語を含む文字列を入力します。
    すべての単語を接続する必要があり、最初の文字は大文字になります。
    例:次のように
    取得するには、good goodstudyと入力します。GoodGoodStudy

他のJavaの知識を学ぶ必要がある場合は、ここでJavaの概要に関する非常に詳細な知識を調べてください。

おすすめ

転載: blog.csdn.net/u013343114/article/details/112599438