<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>基本データ型</title><revhistory><revision><revnumber>33</revnumber><date>2011-09-26 05:59:56</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>32</revnumber><date>2011-09-18 02:42:21</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>31</revnumber><date>2011-09-16 05:42:28</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>30</revnumber><date>2011-09-16 03:57:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>29</revnumber><date>2011-09-16 03:55:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>28</revnumber><date>2009-09-21 12:10:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>27</revnumber><date>2009-09-21 12:09:26</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>26</revnumber><date>2009-09-21 12:08:50</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>25</revnumber><date>2009-09-21 12:05:38</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>24</revnumber><date>2009-09-21 12:02:40</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>23</revnumber><date>2009-09-21 12:01:54</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>22</revnumber><date>2009-09-21 12:01:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>21</revnumber><date>2009-09-21 11:56:49</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>20</revnumber><date>2009-09-21 11:53:55</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>19</revnumber><date>2009-09-21 11:51:45</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>18</revnumber><date>2009-09-21 11:49:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>17</revnumber><date>2009-09-21 11:49:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>16</revnumber><date>2009-09-21 11:46:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>15</revnumber><date>2009-09-21 11:39:58</date><authorinitials>masahiko</authorinitials><revremark>名前を'プリミティブとオブジェクト'から変更。</revremark></revision><revision><revnumber>14</revnumber><date>2008-10-14 11:47:29</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2008-10-07 23:47:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2008-10-07 23:46:12</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2008-10-07 10:26:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2008-10-07 10:25:34</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2008-10-07 01:03:01</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2008-10-06 07:24:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2008-10-06 07:16:51</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2008-10-06 07:07:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2008-10-06 06:58:31</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2008-10-06 06:26:06</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2008-10-06 06:24:27</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2008-10-04 12:15:34</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2008-10-04 12:13:55</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>基本データ型</title><para>Javaのデータはプリミティブとオブジェクトの２種類に大きく分けられます。 </para><section><title>プリミティブ</title><itemizedlist><listitem override="none"><para>基本データ型のことをプリミティブといい次の８つがあります。 </para></listitem><listitem override="none"><para>バイト数も決まっています。(Cでは処理系により異なっても良い) </para><informaltable><tgroup cols="2"><colspec colname="col_0"/><colspec colname="col_1"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>byte</para></entry><entry colsep="1" rowsep="1"><para>1バイト整数</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>short</para></entry><entry colsep="1" rowsep="1"><para>2バイト整数</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>int</para></entry><entry colsep="1" rowsep="1"><para>4バイト整数</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>long</para></entry><entry colsep="1" rowsep="1"><para>8バイト整数</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>float</para></entry><entry colsep="1" rowsep="1"><para>4バイト浮動小数点</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>double</para></entry><entry colsep="1" rowsep="1"><para>8バイト浮動小数点</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>char</para></entry><entry colsep="1" rowsep="1"><para>Unicode文字(16ビット)</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>boolean</para></entry><entry colsep="1" rowsep="1"><para>真偽値</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist></section><section><title>オブジェクト</title><itemizedlist><listitem override="none"><para>プリミティブ以外のデータはすべてオブジェクトと考えてよい。 </para></listitem><listitem override="none"><para><emphasis role="strong">文字列</emphasis>, <emphasis role="strong">配列</emphasis>, <emphasis role="strong">クラス</emphasis> があります。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>変数</title><para>変数を使うには、その型と名前を宣言しなければならない。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%9F%BA%E6%9C%AC%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B?action=AttachFile&amp;do=get&amp;target=hensu1.png"/></imageobject><textobject><phrase>hensu1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>型は基本型または配列またはクラスである。 </para></section><section><title>変数の値</title><para>変数は値を保持することができる。 ただし、プリミティブとオブジェクトで保持のされ方が異なる。 </para><para>プリミティブの値は、変数の対応する場所に<emphasis role="strong">直接保持</emphasis>されます。 変数の場所を四角で表すと図のようになる。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%9F%BA%E6%9C%AC%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B?action=AttachFile&amp;do=get&amp;target=hensu3.png"/></imageobject><textobject><phrase>hensu3.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>例 </para><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><token><![CDATA[double]]></token><![CDATA[ ]]><methodname><![CDATA[suu]]></methodname><![CDATA[;]]>
<methodname><![CDATA[suu]]></methodname><![CDATA[ = 103.75;]]>
</programlisting><para>次の図は変数suuが値103.75を保持していることを表している。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%9F%BA%E6%9C%AC%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B?action=AttachFile&amp;do=get&amp;target=hensu4.png"/></imageobject><textobject><phrase>hensu4.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>オブジェクトの場合データは別の場所に作られ、変数はオブジェクトを参照する。 実際の値はオブジェクト内にある。 後日解説。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%9F%BA%E6%9C%AC%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B?action=AttachFile&amp;do=get&amp;target=hensu5.png"/></imageobject><textobject><phrase>hensu5.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Cとの違い</title><itemizedlist><listitem><para>基本データ型のバイト数は処理系によらず決まっています。 </para></listitem><listitem><para>数値の型変換 </para><itemizedlist><listitem override="none"><para>計算式の中で型が混在した場合、 </para></listitem><listitem override="none"><para>byte → short → int → long → float → double  </para></listitem><listitem override="none"><para>の方向にのみ変換が行われます。 </para></listitem></itemizedlist></listitem><listitem><para>逆方向の変換は指示しない限り行われない。 </para><itemizedlist><listitem override="none"><para>型変換を強制するにはキャスト演算子を用いて記述します。 </para></listitem></itemizedlist></listitem><listitem><para>charは16ビットです。 </para></listitem><listitem><para>charとintの変換は行われません。 </para></listitem><listitem><para>charの配列は文字列とは異なります。 </para></listitem><listitem><para>boolean以外を論理演算や条件に用いることはできません。 </para><itemizedlist><listitem override="none"><para>Cで可能だった次のような書き方も間違いです。 </para></listitem></itemizedlist><screen><![CDATA[ int k;
 ...
 while ( k ) {
   ...
 }]]></screen></listitem></itemizedlist></section></section></article>