忍者ブログ
まにょのITメモ
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

呼び出すメソッドを、呼び出し元と同じファイルに書いたほうが、処理が早い。

-------
(7/9  追記)

private や static なメソッドはインライン化される可能性がある。

インライン化とは・・・

呼び出し元のメソッドと、呼び出される側のメソッドが、メモリの連続領域に展開されること。

ポインタを経由することを省くので、パフォーマンスが向上する。

処理が早くなるってことだね!

ただし、インライン化するかどうかはJVMが、メモリの余裕を見て決めます。

なので、private だから、static だから、同じファイルに書いたから、

必ずしもインライン化されるとは限りません。

 

PR
String  str  =  "abc";
str  =  str  +  "123";


元の  str  =  "abc"  に"123"を足して str  = "abc123" となっているように見えるが、
str  =  str  +  "123";
を実行した時に、新しいString型オブジェクトが作られている。

String str  =  "abc123";
と新たに宣言しているのと同じ。

String型は変更を加える度に、新しいオブジェクトが作られている。
コンストラクタ・・・クラス名と同じ名前で、戻り値を持たないメソッド。

デフォルトコンストラクタ・・・引数のないコンストラクタ。クラスの中に明示的にコンストラクタを書かないと、コンパイル時に自動的に作られる。引数があるコンストラクタをひとつでも書いていたら、デフォルトコンストラクタが自動的に作られることはない。

オーバーライド・・・親クラスのメソッドと、同じメソッド名、同じ引数で、処理を書き換えること。戻り値は関係ない。

~親クラスの keisan メソッド~
public  int  keisan ( int  x,  int y ) {
    int  z = x + y;
    return  z;
}

~子クラスの keisan メソッド~
public  int  keisan ( int  x,  int y ) {
    int  z = x * y + 1;
    return  z;
}


オーバーロード・・・ひとつのクラスの中にある。メソッド名が同じで、引数が違う。戻り値は関係ない。

~keisan メソッド①~
public  int  keisan ( int  x,  int y ) {
    int  z = x + y;
    return  z;
}

~keisan メソッド②~
public  double  keisan ( double  x,  double y ) {
    double  z = x * y + 1;
    return  z;
}

修飾子でどこまで参照できるか

private・・・そのクラス内のみ

何も書かない・・・そのクラス、同じパッケージまで

protected・・・そのクラス、同じパッケージ、サブクラスまで

public・・・どこからでも

忍者ブログ * [PR]