2017-05-20 9 views
-1

私はchar型が16ビットを取ることを知りました。そしてshort型も16ビットをとり、どのような型がjvmによって決定されるのですか? JVMは、メモリに格納されている型のサイズよりも変数の型を決定するために他のものに依存している必要があります。JVMがプリミティブ変数のデータ型を決定する方法は?

変数のプリミティブデータ型を見つけるのに役立つjvm内のアーキテクチャを教えてください。

+1

"*どのタイプが何のタイプであるかを判断する方法*"あなたが入力します。 'char c'と' char'と入力すると、 'short c'と打つと' short'となります。それをさらに複雑にする必要はありません。 –

+1

[2.2:Java仮想マシン仕様のデータ型](https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.2)を参照してください。* Java Virtualマシンは、ほぼすべての型チェックが実行時より前、通常はコンパイラによって行われ、Java仮想マシン自体で行う必要はないと考えています。プリミティブ型の値は、実行時にその型を決定するために、または参照型の値と区別するために、タグ付けされるか、または検査可能である必要はない。 ... * –

答えて

0

データ型と操作の両方が、Java仮想マシン仕様によって厳密に定義されています。

Java仮想マシンは、ほぼすべての型チェックは、通常、コンパイラによって、時間を実行する前に行われ、Java仮想マシン自体によって行われなければならないことを期待する:Oracleのドキュメントから

。プリミティブ型の値は、実行時にその型を判定するために、または参照型の値と区別するために、タグ付けするか、または検査可能である必要はない。

+0

あなたの答えは、その1つのコメントとまったく同じ引用符を持っているという面白いことです。 – GhostCat

関連する問題