LIFE LOG(かけざんブログ)

【Java Bronze資格】データ宣言と仕様について学ぼう

今回はデータ宣言と仕様について学習しましょう。

プリミティブ型について

プリミティブ型(英:primitive data type)とは、プログラミング言語が提供する基本的なデータ型のことです。

言語により用意されている型の種類は異なるが、整数を格納する整数型や小数を含む数値を格納する浮動小数点型、真(true)、偽(false)を格納する論理型などが提供されています。

 

データ型 読み方 格納できる値
byte バイト -128 ~ 127の整数
short ショート -32768 ~ 32767の整数
int イント -2147483648 ~ 2147483647の整数
long ロング -9223372036854775808 ~ 9223372036854775807の整数
float フロート ±3.40282347E+38 ~ ±1.40239846E-45の浮動小数点型
double ダブル ±1.79769313486231570E+308 ~ ±4.94065645841246544E-324の浮動小数点型
boolean ブーリアン true または falseの論理型
char チャー または キャラ 文字

 

 

参照型について

プリミティブ型の変数では、変数宣言をすれば、そのまま値を代入できます。つまり、変数宣言と同時に入れ物の確保がされていて、そのまま使用することができるのです。

 一方、配列やクラスの場合は、変数宣言と入れ物(インスタンス)の確保とは別で、new演算子を使って入れ物の確保をする必要があります。入れ物の確保をすると同時に、入れ物を参照するための値(以降、参照値とします)を宣言されている変数へ代入することにより、これを参照することができるようになります。このことから分かるように、new演算子を使って確保をされた入れ物を参照するので、配列やクラスの型は参照型といわれるのです。

 

数値を扱うデータ型分類

  • 整数型:byte、short、int、long
  • 浮動小数点型:float、double

 

型変換について

異なる型同士の値の互換性を持たせる機能があります。型変換には、保持できる値の範囲を広くする型変換と狭くする型変換画の2種類があります。

狭くする型変換を明示的な型変換といい、広くする型変換を暗黙の型変換といいます。

狭くする型変換ではコンパイルエラーにならないようにキャスト演算子()を使用します。

 

例:double型の値をint型への変換(明示的なキャストが必要です)

public class App {
    public static void main(String[] args)  {
        double dbl1 = 3.6;
        int i1 = (int)dbl1;
        System.out.println(i1);
    }
}

 

final修飾子について

一度変数に設定した値を、後から変更されないようにするためにはfinal修飾子を使用します。

final修飾子は、主に値を変更する予定が無い定数(既定値やファイルパス)などの値を設定するときに使用します。

final修飾子を指定すれば、その変数は値の変更ができなくなります

 

構文

アクセス修飾子 final 定数の型 定数名;

 

 

【Java基礎】for文と拡張for文を学ぼう

 

  今回はfor文と拡張for文を勉強していきましょう

 

・for文を学ぼう

Javaにはループ処理で同じ処理を繰り返し行うためのfor文があります。

for文は同じ処理を繰り返し行うので、Listや配列ですべての要素に対して順番に処理を行うときに便利です。

 

・for文の構成を覚えよう

for文の()の中には3つの式があり、それぞれ①初期設定、②反復条件、③後処理があります。

for文の構成

 

①〜③は、ループ変数の値を毎回決まった量だけ変化させながら反復処理を実行し、ループ変数が予め決めておいた範囲を超えたとき反復を止める、という仕組みを実現するものです。

 

・for文の処理の流れ

for文の()内の①〜③が具体的にどのように働くのか示した流れ図です。

for文の流れ図

①最初にiに値を与えます。

②はiっが満たす条件です。もしも条件が満たしていれば、「繰り返し実行したい処理」を実行します。条件を満たしていないなら終了して次のステップに移ります。

③1回の勝利が終わる度に③を実恋して値を変化させます。

 

・配列の要素を合計する

配列の合計

・変数のスコープに気をつけよう

初期化式で宣言した変数は、そのfor文の中からしか参照できません。for文の前で同名の変数が宣言されていてもコンパイルエラーになるので注意しましょう。

int v = 0; // for文の外で変数を宣言して…

for (int i = 0; i < 10; i++) {
	v += i; // for文の中で値を更新し…
}

System.out.println(v); // for文の外で使う!!

・for文の構成と機能

  • ()は(初期設定:反復処理:後処理)である
  • 初期設定はfor文を開始する前に一度だけ実行される
  • 反復条件は反復実行したい内容を実行する前にチェックされる
  • 後処理は反復実行したい内容を実行した後で必ず実行される。
  • for(int i = n-1 ; i>0 ; i- )はn-1 から始まって〇まで逆順に処理する
  • for文はプログラム内で何度使用しても良い
  • ループ制御変数iをfor文の中で宣言すれば、iはforの中だけで有効

 

・拡張for文を覚えよう

ループ制御変数を書く必要がないfor文を拡張for文と言います。

ループ変数がないので、全ての要素を取り出して表示する、集計するなどのケースでしか使用できませんが、簡単に書けるというメリットがあります。

拡張for文
  1. public class Main {
  2. public static void main(String args) {
  3.  
  4. String strArray = { "s", "a", "m", "u", "r", "a", "i" };
  5.  
  6. for (String str : strArray) {
  7. System.out.print(str);
  8. }
  9. }
  10. }

自己結果

  1. samurai

 

【Java Bronze資格】基礎知識を学ぼう②



今回もJava Bronze資格に向けて基礎知識を学びましょう 

 

・メインメソッドについて

クラスには複数のメソッドを定義できますが、このときにどのメソッドから処理を始めるのか決めなければなりません。そこで一番最初に処理を始めるメソッドをエントリーポイントと呼びます。

 

main.java
 
class Main {

    public static void main (String[] args) { 
        // 処理
    }
}

・エントリーポイントに適応されるルール

  • アクセス修飾子はpublic
  • staticメソッド
  • メソッドの戻り値はvoid
  • メソッド名はmain(小文字)
  • メソッドの引数はStringの配列(またはStringの可変長引数1)のみ

 

・ソースファイルについて

ソースファイル「プログラムの元ネタが書かれているファイルのことです。

拡張子は.javaでこのソースファイルにjavaのプログラムを記述します。

 

ソースファイルにはpublicで修飾されたクラスやインターフェイス、列挙型は一つしか記述できません。また、ソースファイルの名称はクラス名、インターフェイス名、列挙型名のいずれかと一致しなければなりません。

ソースファイル内に複数のクラスを定義した場合、クラスごとにファイルが出力されます。

 

Javaシステムの種類を覚えよう

Javaは用途に応じてJava SEJava EEJava MEの3つのエディションが用意されています。

 

Java SE 

Java SE とは Java Platform, Standard Edition の略で、 Java で使用される API をまとめたものです。 API とは Application Programming Interface の略で、 この場合は Java の機能やデータなどを利用するための呼び出し方を定義したものと考えてください。

Java EE

Java EEとは、企業向けのWebアプリケーション開発ができる機能がセットになったプラットフォームで、正式名称は「Java Platform, Enterprise Edition」といいます。アプリケーションサーバーの標準規格やそのAPIを定めたもので、サーバーサイド機能が含まれています。

Java ME 

Java ME とは Java Platform, Micro Edition の略です。家電などの組み込み機器やモバイルデバイスで動作するアプリケーションを開発するために使用する API がまとめられたものです。

 

 

 

 


 

 

 

 

【Java基礎】配列について学ぼう



今回は配列について学びましょう

 

・配列の作り方を覚えましょう

まとめて使用するデータは沢山あります。それらを使う構造はいくつかありますが、最も基本的なものが配列です。

配列はa[0]、a[1]、a[2]…のように名前と一連番号を持つ変数です。

同じaという名前であってもaの0番目、1番目、2番目…というように扱うことができ、それらを配列要素といいます。

※ 0番目から始まることに注意して下さい。

配列の作り方

配列は同じ型のデータをまとめて取り扱うことができ、どんな型の配列でも作成することができます。

いろいろな配列

・配列の復習まとめ

  •  名前 = [リテラルリスト] ; 例 int = {1,2,3,4,5};
  • 要素番号は0から始まる
  • 配列要素にはa[0]、a[1]、a[2]…のようにと番号を使用する
  • 配列は「配列型」という一つの方である
  • 配列型はint、 String 、char、boolean[]とかく

・for文を覚えましょう

配列を使用するにあたって便利な繰り返し構文であるfor文を勉強しましょう。

for文は「〇〇回繰り返す」という構文です。

配列要素の値を全て表示するには、for文とprintlnメソッドを使用します。

class Main
{
    public static void main( String[] args ) {
        // 変数宣言
        int i = 1;
          
        for(i=1; i<=5; i++){ 
            System.out.println(i); // 1, 2, 3, 4, 5
        }

    }
}

【for文の処理】


①始めに初期化を1度だけ実行する。
②条件式が「真」か「偽」か調べる。
③真の場合・・・「文」を実行し、その後「後処理」を実行する。そして②へ戻る。
③偽の場合・・・反復を終了して次の処理へ進む。

条件式が偽になるまで文と後処理が実行され続けます。
通常は、後処理で反復回数を制御します。

 

ループ制御変数

for文で使用されている「i」をループ制御変数といいます。ループ制御変数は繰り返し回数の制御に深く関わってきます。

 

SPDを覚えておこう

プログラムの流れを図示目する代表的な方法はフローチャートです。直観的で分かりやすいですが欠点もあります。

  1. コンパクトに書けない
  2. プログラムの対応が良くない。

 

この欠点を克服する方法が開発され、そのひとつがSPDです。SPDは論理の流れを小さな記号と文で記述でき、ソースコードとの対応がいいという特徴があります。

SPD



 

【Java Bronze資格】基礎知識を学ぼう



今回はJava Bronze資格に向けて基礎知識を学びましょう

 

 

・変数や型の扱い方

プログラミング言語は、静的言語と動的言語に分かれます。これらの違いは、変数や

式の型情報の扱い方にあります。

  • 静的言語:変数や式の型情報を、コンパイル時に決定する。期待されている型と式の結果の方が合わない場合にはコンパイルエラーが発生する。
  • 動的言語:変数や式の型情報を、実行時に決定する。データ自身が型情報を持つため実行時に型がチェックされる。そのため、型の不整合が合った場合は実行時にエラーが発生されます。

 

javaの特徴と基礎用語

並行処理:処理を複数同時に実行することで、ソフトウェア全体の処理機能を向上させる

技術のことを言います。

 

並行処理の実現方法

  • 同じアプリケーションを複数実行する
  • 1つのアプリケーションを複数の処理でお互いに切り替えて実効する

 

前者をマルチプロセス、後者をマルチスレッドといいます。

 

プロセス:アプリケーションが起動するときにOSから割り当てられたメモリ空間の

ことを言います。

 

スレッド:プロセス内で実行される一連の処理の流れのことを言います。

 

JVMJVMとはJava Virtual Machineの略で、Javaのプログラムを動かすために必要なソフトウェアです。JVMJava仮想マシンとも呼ばれ中間コードをプラットフォーム別に、

命令文を変換することができます。これにより様々なOS(プラットフォーム)でプログラム

を使用できます。

jvmの仕組み

 

Javaの特徴

人間の自然言語に近い文甫やボキャブラリを使用して記述するコードをソースコードと言います。しかし、機械はソースコードが理解できないため、変換ソフトのコンパイラを使用しコンパイルしてソースコード機械語に変換します。

 

プログラムの実行時にインタープリタ方式」と呼ばれるものがあります。この方式はインタープリタと呼ばれる仲介アプリケーションを使ってソースコードを実行時にコンパイルすることが特徴です。

 

Javaインタープリタ方式を採用した理由

  1. 特定のプラットフォームやOSに依存しない
  2. ガベージコレクションによってメモリ管理が自動化できる
  3. セキュリティが向上できる

 

インタープリタ方式の一つでソースコードから不要なコードを排除し、パフォーマンスが向上するようにコードを変換しておくことを実行時コンパイル方式と言います。この実行時コンパイラ方式により変換されたコードのことを中間コードといい、また中間コードが記述されたファイルのことをクラスファイルといいます。クラスファイルには実行に最適化された中間コードが記述されています。

 

・メモリ管理機能について

Javaガベージコレクションという自動メモリ管理機能を備えています。ガベージコレクションは、確保しておく必要がなくなった領域を自動的に検出し解放する機能を持っています。また、空き領域ができた時にメモリ領域を管理し、空き領域を確保する「コンパクション」という機能もあります。この機能のおかげで効率用くメモリ領域を使うことができます。

 

 

 

 

 

 

 

 

 

 

 

 

【Java基礎】キーボード入力について学ぼう

  

    今回はキーボード入力について学びましょう

 目次

 

・キーボード入力出来るようにしよう

BufferedReaderラスを使用する

BufferedReaderは参照型の1つでクラスと呼ばれ、データの読み込みを

行うためのクラスです。

<使用例>

import java.io.*;
class BufferedReaderExample {
public static void main (String[] args) {
// System.in -> キーボード入力を受け付けるための引数
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("名前を入力してください:");
try {
// キーボード入力を受け付ける
String name = br.readLine();
System.out.println("こんにちは、" + name + "さん");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}

 

これまでのプログラムであれば実行後に結果が表記されていましたが、このプログラムは

いくら待っても終わりません。

今、プログラムは「あなたが入力するのを待っている」状態にあるのです。

この状態を入力待ちに状態といいます。

 

・br.readLine(リードラインメソッド)メソッドについて

readLineは、文字列1行分所得するメソッドです。このメソッドを使用して「ラーメン」

や「28」という文字列をプログラムが取得しています。

 

「br」とは何か

br.readLineにうち、br.readLineは1行読むメソッドだとして、brの方は何でしょうか。

brは変数です。

この変数の宣言は

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

で行っています。

 

「new」について

newの後にクラス名を書いて()を付けると「そのクラスに属するプロジェクトを作れ」

という命令になります。

 

・import文の機能

キーボードをタイプして入力するBufferedReaderという参照型のクラスを利用する

ということは上記で理解して頂けたと思いますが、プログラムでは最初にこのクラスを

使うということを宣言しておく必要があります。

それがimport(インポート文)です。この文はクラス宣言の前に書いておく必要が

あります。

 

・キーボード入力クラス特徴まとめ

  • プログラムの先頭でインポート文を記述する
  • 標準クラスのSystem.inをもとにnputStreamReaderオブジェクトを作成する
  • それをもとにBufferedReaderオブジェクトを作成する
  • 変数readerをそのBufferedReaderオブジェクトで初期化する

 

【Java基礎】標準クラスを学ぼう



 今回は標準クラスについて学びましょう

 

・標準クラスついて

java言語には以下のような演算を行うプログラムが(クラス)が最初からたくさん付属しています。

主な標準クラスまとめ
  • Systemクラスはout.printlnなども標準クラスの中のメソッドです。
  • StringクラスはString型を定義しているクラスです。
  • StringBufferクラスは文字列操作のためのクラスです。
  • CalenderとDateクラス日付を操作するためのクラスです。
  • Threadクラスではマルチスレッドを利用するためのクラスです。

 

・標準クラス概要まとめ

  • プログラム作成に利用するためjava言語に属しているクラス
  • 数字計算、文字列計算、日付計算、マルチスレッドなど多数ある

Java APIとは?

JavaにおけるAPIとは、クラスをまとめたクラスライブラリのことです。標準クラス、コアAPI、標準APIと呼ばれることもあります。Javaプログラミングを学ぶ際、クラスライブラリを意識することがなくても、知らず知らずのうちに利用しているクラスも多いと思います。

クラスライブラリを利用することにより、コードの記述量を減らし、プログラミングの本質的な部分に集中することが可能です。

 

・MathクラスのAPIを使ってみよう

先頭にクラス名をつけて利用するメソッドをクラスメソッドといいます。

クラス名.メソッド型(引数)

・四捨五入メソッドを覚えましょう

四捨五入を計算するにはMath.round()メソッドを使います。()内に四捨五入したい値を

書き、計算結果を代入文の形で変数に受け取ることができます。

 

解説

・Mathクラス概要まとめ

  • Math.roundのように「クラス名、メソッド名」という形で使用する
  • Math.round(2.56)のように()内に処理をさせたい値を「引数」を入れる
  • x =  Math.round(2.56)のように計算結果は=を使って変数に代入する

 

・MathクラスAPIまとめ

  • 切り上げた値 = Math.ceil(対象の数値);
  • 切り下げた値 = Math.floor(対象の数値);
  • 四捨五入した値 = Math.round(対象の数値);
  • 大きい値 = Math.max(比較する値, 比較する別の値);
  • 小さい値 = Math.min(比較する値, 比較する別の値);
  • 乱数 = Math.random();