ローカル変数sumが初期化されていない可能性がある
今日、プログラミングの問題をやっていて、この考え方がとてもよく理解できました
だから、もっとよく知ることができた
package com.itcast.demo3;
public class People {
private String name;
private int age;
String getName() {
return name;
}
int getAge() {
return age;
}
}
package com.itcast.demo3;
import com.itcast.demo3.*;
public class Demo {
public static void main(String[] as){
People p;
int a;
p = new People();
// t1= null;
// a=1;
System.out.println(p.getName());
System.out.println(p.getAge());
// System.out.println(a);
}
}
package com.itcast.demo3;
import com.itcast.demo3.*;
public class Demo {
public static void main(String[] as){
People p;
int a;
p = new People();
// t1= null;
// a=1;
System.out.println(p.getName());
System.out.println(p.getAge());
// System.out.println(a);
}
}
<イグ
クラス内の変数は初期化する必要がない
メソッド内のローカル変数は初期化する必要があります
Peopleクラスのnameやageフィールドのようなメンバ変数に手動で初期値を与えなかった場合、Javaは変数の型に対応した初期値を与えます。 stringは参照型で、nameはnull、ageは0と出力します。このとき、nullでも0でも変数の初期値は同じになります。
ローカル変数、例えばオブジェクトpとプラスチックaをmainメソッドで宣言する場合、ただ宣言しただけではエラーになります。これはローカル変数を使う前に手動で初期化し代入しなければならず、Javaはデフォルト値を与えないことを意味します。
ここでは、コード内のPオブジェクトなどの参照型変数に注意を払う必要があります、割り当てなしの宣言とNULLを与えることは同じではありませんが、NULLの代入はまた、割り当ての初期化の完了と同等です、この時間は、メソッドを呼び出すことができますが、確かにヌルポインタ例外が報告されます。あらかじめ宣言しておいて、後でコードが代入を行うだけなら、宣言時にnullを与える必要はない。
要するに、ローカルオブジェクトは使う前に絶対に割り当てるべきですが、いつ割り当てるかは重要ではありません。
ですから、メンバ変数もローカル変数も値を代入せず、宣言だけしておくことは確かに可能です。
=nullと代入しない場合のメモリの違いは、これを見ればわかります。 https://bbs.csdn.net/topics/380085577?list=lz
関連
-
undefinedErrorお使いのCPUは、このTensorFlowバイナリが使用するためにコンパイルされていない命令をサポートしています。AVX2 FMA
-
メンバ関数fetch()のNULLでの呼び出し
-
DataTableプラグインエラーです。Uncaught TypeError: 未定義のプロパティ 'style' を読み取ることができません。
-
[例外処理1】ブートレイヤーの初期化でエラーが発生した
-
2013 - 「初期通信パケットの読み込み」で MySQL サーバーへの接続が失われ、システムエラーが発生しました。0
-
不完全な型へのエラーメンバーアクセス
-
ModuleNotFoundError: google' という名前のモジュールはありません。
-
Mac コンソールのアイデア mvn コマンドが見つかりません。
-
[Python Basic] ValueError: 非キーワード引数は2つしか受け付けません。
-
test dword ptr [eax],eax ;プローブページです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
場所 0x00000004 の読み取りでアクセス違反が発生しました。
-
VCの*.objで定義済みの問題を解決します。
-
c++のエラーエラー: "***"の前に期待される初期化子
-
NoClassDefFoundError: org/hamcrest/SelfDescribing JUnit-4.11でエラー。
-
Eclipse (JDK設定済み) インポートプロジェクトエラー...。...型に解決できません...
-
[C++ エラー処理] transform の呼び出しに一致する関数がありません。
-
Pythonの一般的なエラーとデバッグ方法 (2)
-
matlabでよく使われる論理演算
-
ansible error resolution:UNREACHABLE sshでホストへの接続に失敗しました。
-
AttributeError: module tensorflow no attribute app Solution