質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

スコープ

スコープとは、プログラム内で変数名など、参照可能な有効範囲のことを指します。

マルチスレッド

マルチスレッドは、どのように機能がコンピュータによって実行したのかを、(一般的にはスレッドとして参照される)実行の複合的な共同作用するストリームへ区分することが出来ます。

Q&A

解決済

1回答

571閲覧

Java 複数ユーザーが同じメソッドをコールした際の動き

FACTORYWARITA

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

スコープ

スコープとは、プログラム内で変数名など、参照可能な有効範囲のことを指します。

マルチスレッド

マルチスレッドは、どのように機能がコンピュータによって実行したのかを、(一般的にはスレッドとして参照される)実行の複合的な共同作用するストリームへ区分することが出来ます。

0グッド

0クリップ

投稿2020/09/14 19:05

メソッドはヒープ領域にインスタンスされるそうですが、ヒープ領域は共有メモリーの認識です。

AさんとBさんが同じクラスをインスタンス化し、同じメソッドを呼んだ際に値が変わってしまう気がするのですが勘違いでしょうか?

public int tasizan(int a,int b){
return a + b;
}

1,Aさんがtasizan(1,2)でメソッドをコール
↓(Aさんのreturnより前に)
2,Bさんがtasizan(3,4)でメソッドをコール

上記の動き(Aさんの戻り値が”7”になってしまうような動き)はあり得ないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2020/09/14 21:37

引数のa,bは、何処に有ると思っていますか?
FACTORYWARITA

2020/09/14 22:34

aとbは引数ですがローカル変数の認識です。ですのでスタック領域だと考えます。
guest

回答1

0

ベストアンサー

そもそもの話として、インスタンスを生成してもそこにメソッドはありません。
メソッドは、インスタンスメソッドもクラスメソッドも同じくクラス側のメモリ領域にあります。
インスタンスによって個々に異なるのはフィールドのデータだけですので、全く同じ内容であるメソッドを個別のインスタンスの領域に用意する必要は無いからです。

そして、a,b等の引数はスタック領域に置かれてメソッドが呼び出されます。
再帰呼び出しの動きからも分かるように、メソッドの途中で同じメソッドを呼び出しても、個々のメソッドの引数やローカル変数は独立していますので、
勝手に書き換わるということは無いはずです。

投稿2020/09/14 22:05

amiya

総合スコア1218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FACTORYWARITA

2020/09/14 22:55

ご回答いただきありがとうございます。 インスタンスしてもそこにメソッドがないなんて驚きました。 “クラス側のメモリ領域”とはヒープ領域とは違う別の場所だと思うのですが、何て言う名前かご存知でしょうか?
cateye

2020/09/14 23:03

参考→https://www.omotenashi-mind.com/index.php?title=Java%EF%BC%9A%E6%84%8F%E5%A4%96%E3%81%A8%E6%95%99%E3%82%8F%E3%82%8B%E6%A9%9F%E4%BC%9A%E3%81%AE%E5%B0%91%E3%81%AA%E3%81%84%E3%83%A1%E3%83%A2%E3%83%AA%E7%AE%A1%E7%90%86%E3%81%AE%E3%81%8A%E8%A9%B1
FACTORYWARITA

2020/09/14 23:10

ありがとうございます。 感謝申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問