Javaの言語仕様

大文字と小文字を厳格に区別します。キーワードはすべて小文字です。

セミコロンでセンテンスを区切ります。

コメント

コメントは単一行コメントと複数行コメントをサポートしています。コメントのネストはできません。

コメントの種類 表記
単一行コメント  //
複数行コメント  /*~*/
JavaDoc形式(言語仕様ではありません)  /**~*/

コードのブロック

複数のステートメントをグループ化することをコードブロックと呼びます。コードブロックは1つの論理的な単位として扱われます。{}で一連のステートメントを囲みます。

{}によってセンテンスをブロック化することでセンテンス群を1つの論理的なまとまりとみなします。

基本データ型

Javaでサポートする基本データ型は、char, boolean, byte, short, int, long, float, double の8種類です。

この中にstring(文字列型)がないことに注意してください。Javaでは文字列型は基本データ型ではなくクラスです。(String または StringBuffer)

また、各基本データにはそれに対応するラップクラスが存在します。このクラスを使うことで各データ型および文字列の相互変換を容易になります。(→基本データ型のラップクラス

数値の表記

整数リテラル(余分な情報のない数字だけが並んだ整数値)はint型と見なされます。

小数または指数部を含むとdouble型、L(またはl)を末尾に付けるとlong型、F(またはf)を末尾に付けるとfloat型と見なされます。

指数表記の後ろに型表記を併せて指定することが出来ます。(例 1.5e-3f)

0から始めると8進数、0xから始めると16進数を意味します。ただし、float型とdouble型は10進数形式でしか表記できません。

変数、式

変数名には、[a-z][A-z][0-9]_$ が使えます。ただし、先頭に数字を使うことはできません。

先頭 2文字目以降
[a-z][A-z]_$ [a-z][A-z][0-9]_$

変数の宣言および値の初期化の方法には以下のバリエーションがあります。

type varName; //変数の宣言
type varName = initValue; //変数を宣言して初期化
type varName1, varName2, ... //複数
varName = value; //値の代入

文字列

Javaでは文字列を表現する基本データ型は存在しません。String または StringBuffer クラスを使用します。

文字リテラルはダブルクォーテーションで囲みます。キャラクタリテラル(単一文字)はシングルクォーテーションで囲みます。

ダブルクォーテーション(“)自体を表現するには、バックスラッシュ(\)でエスケープします。連結は+。文字列はString型(先頭が大文字であることに注意)

バックスラッシュコード

バックスラッシュ(\)はダブルクォーテーションをエスケープする用途の他に、特殊文字を表現するために使用されます。(→特殊文字)

配列

宣言時には配列の要素数を指定する。これはインデックスの上限とは異なるので注意。

Javaでは他次元配列は配列の配列であるから必ずしも四角形である必要はない。

type varName[]; //配列の宣言 type[] varName; のような記述もあり。

varName = new type[size]; //領域割り当て

type varName[] = new type[size]; //配列の宣言と同時に領域割り当て

type varName[] = {n1, n2, … , nx}; //配列の宣言と同時に領域と初期値を割り当て(newがない点に注意)

varName[index]; //要素へのアクセス

varName.length; //要素数

配列の代入は可能であるが、値渡しではなくて参照渡しとなることに注意。代入時には[]を付けません。varName2 = varName1;

type varName[][]; //二次元配列

varName = new type[size1][size2];

type varName[][] = new type[size1][size2];

type varName[][] = {{n11, n12, … n1x}, {n21, n22, … n2x} … , … };

他次元配列ではlengthは第一次元の要素数を表す。

型の混在

各種の拡張により異なる型を1つの式に含むことが可能。

整数拡張=char byte short はint型に拡張される。(char型は数値としてあつかうとbyte型と同様に扱うことが可能)

型拡張=double>float>long>int と式に含まれる型のうちの一番大きいもにに拡張される。

型の変換規則は演算単位で適用されることに注意。例えば次の例では10/3はint 3となります。

100.0f / (10 / 3)

代入においては左辺が右辺より大きい場合は自動で拡張変換される。が、この逆の場合は明示的に縮小変換しないとエラーとなる。縮小変換には型変換を使用する。

(type) value; //型変換

縮小変換によって値の切り上げなどを行うことも可能であるがトリッキーなので専用の関数を使用するのが望ましい。

分からんこと

次の例では式の結果が自動拡張されるためにエラーになる。先の例100.0f / (10 / 3) で(10 / 3)が自動拡張されずにこの例では自動拡張されるのか、今一つ仕様が理解できない。。。

byte b1 = 1;

byte b2 = 2;

byte b3 = b1 * b2; //b1*b2がint型に自動拡張されるためエラーとなる。

コマンドライン引数

Javaのプログラムはmain()から開始します。このメソッドに文字列の配列引数を定義することでコマンド引数を受け取ることができます。

public static void main(String args[])

演算子

→演算子

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です