Javaの基本型(プリミティブ型)
オブジェクトではない基本的なデータ型がいくつか存在し、プリミティブデータタイプという。
整数型
| 変数の型 | 容量 | 数値の範囲 |
|---|---|---|
| byte | 8bit | -128 から 127 まで |
| short | 16bit | -32,768 から 32,767 まで |
| int | 32bit | -2,147,483,648 から 2,147,483,647 まで |
| long | 64bit | -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 まで |
int型同士の計算は結果もint型になり、double型同士の計算は、結果もdouble型になることに注意。
また、int型とdouble型の計算では結果はdouble型になる。
浮動小数点数型
| 変数の型 | メモリ容量 | 数値の精度 |
|---|---|---|
| float | 4バイト | 低 |
| double | 8バイト | 高 |
float型では、代入した値の後にfをつける
文字型
| 変数の型 | メモリ容量 | 数値の範囲 |
|---|---|---|
| char | 2バイト | Unicode |
2バイトの文字型で文字を扱うために、ではエンコーディングルールとしてUTF-16を用いる。
真偽型
| 変数の型 | 数値の範囲 | 既定値 |
|---|---|---|
| boolean | ture or false | false |
型キャスト
データ型を変換することを型キャストという。
(type)var
type:データ型
var:変数名
ラッパークラス
基本データ型の値をオブジェクトとして扱うことができるようになる。
例えば、int型がプリミティブなデータ型である、 というのは、そのデータ型を保持するだけのデータを確保して、それが変数を通して参照できるということである。
しかし場合によっては、同じ整数型を扱う場合でも、動的にデータ領域を確保して値を割り当てるなどの操作が必要なる場合もある。
このとき、Javaのランタイムは、元々プリミティブ型のint型のデータを、Integerという名前のクラスのオブジェクトに置き換えて扱うことがある。
ラッパークラスでは、参照渡し(メモの場所を渡すイメージ)ができ、空の値(null)を代入できる。
| ラッパークラス | 基本型 |
|---|---|
| Boolean | boolean |
| Byte | byte |
| Character | char |
| Double | double |
| Float | float |
| Integer | int |
| Long | long |
| Short | short |
算術演算・比較演算・論地演算・シフト演算子
- 算術演算子
| 演算子 | 役割 |
|---|---|
| + | 足し算 |
| - | 引き算 |
| * | 掛け算 |
| / | 割り算 |
| % | 割り算の余り |
| ++ | 1だけインクリメント(加算) |
| -- | 1だけデクリメント(減算) |
| += | 右辺を足して代入(代入演算子) |
累乗は、for文で回すか、Mathクラスのpowメソッドで計算できる。
public class Main {
public static void main(String args[]){
int bottom = 3; // 底
int index = 2; // 指数
int result = 1; // 2乗の計算の解
System.out.print(bottom + " の " + index + "乗は ");
// index回だけbottomをresultにかける
for(int i = 1; i <= index; i++) {
result *= bottom;
}
System.out.println(result + " です。");
}
}
3の 2乗は 9 です。
import java.lang.Math;
public class Main {
public static void main(String args[]){
double bottom = 3; // 底
double index = 2; // 指数
double result = Math.pow(bottom, index);
System.out.println(bottom + " の " + index + "乗は " + result + " です。");
}
}
3.0 の 2.0乗は 9.0 です。
- 比較演算子
| 演算子 | 内容 |
|---|---|
| == | 等しい |
| != | 等しくない |
| > | より大きい |
| >= | 以上 |
| < | 未満 |
| <= | 以下 |
- 論理演算子
| 演算子 | 意味 |
|---|---|
| & | AND 論理積 |
| ^ | XOR 排他的論理和 |
| | | AND 論理和 |
| && | 条件のAND |
| || | 条件のOR |
| ! | 論理否定 |
- シフト演算
2進数において桁をシフトする演算
| 演算子 | 意味 |
|---|---|
| << | 左シフト |
| >> | 右シフト (符号拡張) |
| >>> | 右シフト (ゼロ拡張) |
文字列型
文字列を表すには、標準ライブラリとして用意されているStringクラスを用いる。
String var = "こんにちわ";
String var = new String(こんにちわ");
文字列が同じかどうかの判定
equalsメソッドを用いる。
var1.equals(var2)
String型などの参照型の場合に、”==”演算子で比較すると、参照先が同じかどうかを比較することになり、参照先の値は比較できないことに注意。
文字列のアルファベット順の比較
compareToメソッドを用いる
var1.compareTo(var2)
var1.compareToIgnoreCase(var2) //大文字小文字を区別しない場合
>>
var1の方が先なら-、後なら+の値が返ってくる
文字列の合成
+で加えることができる。
文字列の長さを調べる
lengthメソッドを用いる。
var1.length()
エスケープシーケンス
| エスケープシーケンス | 説明 |
|---|---|
| \t | 水平タブ文字 |
| \b | バックスペース |
| \n | 改行 |
| \r | キャリッジリターン |
| \f | 書式送り (Form Feed) |
| ' | 引用符 |
| " | 二重引用符 |
| |バックスラッシュ | |
| \OOO | 8進数の文字コード |
| \uXXXX | 16進数の文字コード |
| Windows環境では \ は ¥ と表示される。 |
特定の文字列が含まれるかの判定
indexOfメソッドを用いると、ある文字列の中で、指定した文字列が最初に出現する位置を返す。指定した文字列が含まれていない場合は、-1を返す。
var1.indexOf(var2)
文字列と数値の変換
数値を文字列に変換するときは、valueOfメソッド、toStringメソッド、または+を用いる。
int型はプリミティブ型のため、そのままではメソッドを使うことができず、ラッパークラスであるIntegerクラスからメソッドを呼び出す必要がある。
またJavaでは文字列とそれ以外を加えると、全体が文字列と見なされる。
int number =100;
String text = String.valueOf(number);
または
String text = Integer.toString(number);
または
String text = "" + number;
文字列を数値に変換するときは、parseIntメソッドを用いる。double型の場合はparseDoubleメソッドを用いる。
String text = "100";
int number = Integer.parseInt(text);