auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Java

JavaのLog4jとは

auです。Log4jについて調べてみました。 Log4jとは Log4jとは、Javaで使えるログを残すためのツール(モジュール)です。残せるログレベルが6つあります。FATAL: 致命的なエラー ERROR: エラー WARN: 警告 INFO:終了 DEBUG: デバッグ用の情報 TRACE: トレー…

JSPで正規表現を実装してみたら挙動がおかしい?

auです。未解決のままで、自分の環境で再現ができている訳ではないですが、jspのHTML部分のinputタグに正規表現を加えてみたのですが、思ったような動作になりませんでした。正規表現のマッチパターンを調べるサイトでは問題なくマッチしているので、正規表…

サーブレットで遷移元のリンクを送信する方法

auです。遷移元のリンクをjspからサーブレットに渡すような処理がしたいなーと思ったのでやってみました。jspファイルのinputタグの中に、自分のファイル名を取得、記入して渡すイメージです。jsp <% String url = request.getServletPath %> // 中略 <input type="hidden" name=<%= url %>> サー…

JavaのDAOとは

auです。JavaのDAOについて調べてみました。 DAOとは DAO(Data Access Object)の頭文字を取った略称です。DAOとは、データベースから取得した情報を操作するインターフェースを提供するオブジェクトのことです。デザインパターンの一つなので、こうしなけれ…

JavaのStaticインポートとは

auです。JavaのStaticインポートについて調べてみました。 Staticインポートとは Staticインポートとは、クラスのStaticメンバー、メソッドをimportすることができます。Mathクラスをメソッドを使いたい場合に、毎回 Math.random() と言った感じで、毎回Math…

Javaのオンデマンド型インポートとは

auです。Javaで用いられる、オンデマンド型インポートについて調べてみました。 オンデマンド型インポートとは オンデマンド型インポートとは、パッケージ内の全てのクラスをインポートする場合に使います。 import java.util.*; こんな感じにして使います。…

JavaのOverrideアノテーションはつけるべきか

auです。JavaでOverrideをする際に、アノテーションをつけることができます。 @Override // アノテーション public void printInfo() { 処理内容 } ただ、このアノテーションはなくても正常に動いてくれます。そこで、つけるべきなのかつないべきなのかどう…

JavaのFinal修飾子とは

auです。JavaのFinal修飾子について調べてみました。 Final修飾子 JavaでFinal修飾子をつけると以下のようになります。クラス: サブクラスを作成できなくする メソッド: オーバーライドできなくする 変数: 変更できなくする最後、というような意味があるとお…

Javaのサブクラスのコンストラクタの動き

auです。Javaの継承でうまく理解していなかった部分があったのでまとめようと思います。 Javaの継承 Javaの継承をした際に、コンストラクタが呼ばれるのですが、その際の挙動をうまく理解していませんでした。以下のコードを書きました。 public class Paren…

Javaのクラス変数とは

auです。Javaのクラス変数について調べてみました。 クラス変数とは クラス変数とは、以下の用途で使われる変数です。 一度だけしか初期化されない すべてのインスタンスで共有あsれる staticを用いて宣言する インスタンス変数はnewで宣言し、別々のオブジ…

Javaのフィールドとは

auです。Javaでいうフィールドってなんだっけ・・・と思ってしまったので調べてみました。 フィールドとは フィールドとは、クラス内に直接宣言された変数のことです。メソッドの外にあり、クラスの中にあるような場所です。 class Test { String name; // …

Javaの「++」を前後につけるとどう違うのか調べてみた

auです。iの値をプラス1したいなーという時に、「i++」という書き方をよくします。しかし、「++i」としてもできるようなので、違いがあるのかなーと調べてみました。 public class Main { public static void main(String[] args) { int i, j; // 1 i = 0; i…

Javaで型を調べる方法

auですPythonだと、「type」を使って簡単に型を調べることができます。Javaでも同じようなことができればいいのになーと思ったので調べてみました。 Javaで変数の型を調べる方法 変数に対して「getClass().getSimpleName()」を呼び出します。 class TypeChec…

Javaでプログラムを終了させる方法

auです。Javaでプログラムを終了させる方法を調べました。 System.exit(0); // 正常終了 System.exit(1); // 0以外は異常終了 0だと正常終了なので、C言語でいう「return 0」と同じような解釈をしました。以下のサイトだと、1以上だと予測していた例外的な結…

Javaで「"」を出力する

auです。またエスケープシーケンスの内容ですが、「"(ダブルクォーテーション)」を出力したい状況があったので調べてみました。 出力の仕方 「\"(バックスラッシュ + ダブルクォーテーション)」でできます。 public class Test { public static void main(St…

Javaで使われる「\t」とは

auです。Javaで使われている、「\t」について調べてみました。 \tとは そもそも、「\」には、エスケープシーケンスという特殊な文字を表す際に使われます。そして、\tには「水平タブ文字」を表しています。これは、タブを表現するエスケープシーケンスです。…

Javaのオーバーライドとオーバーロードが混同しない方法を調べてみた

auです。Javaのオーバーライドとオーバーロードが混同してしまったので、記事にまとめて覚えたいと思います。 オーバーロード オーバーロードは、一つのクラスに同じ名前のメソッドで、引数の数や種類が違った状態です。 呼び出す際に指定する引数や型によっ…

ストリームとは

auです。ストリームという意味をみて、理解が曖昧だなあと感じたので調べてみました。 ストリームとは ストリームとは、連続したデータの流れ、データの入出力の際の流れを抽象化したことを表します。ファイルやキーボードからデータを受け取り、それをファ…

Javaのprintlnはなんと読むのか

auです。Javaで標準出力である「System.out.println」の「println」の読み方が気になりすぎたので調べてみました。 printlnの読み方 printlnは「プリントライン」と読むらしいです。改行ありの出力ということで、1行だけ出力するという意味合いがあるようで…

Javaのsuperとは

auです。Javaのsuperを正確に理解していない気がしたので調べてみました。 superとは superとは、スーパークラスのコンストラクタを初期化する場合に使います。サブクラスのコンストラクタの先頭で「super」を宣言して利用することができます。 修飾子 コン…

Javaのオーバーロードについて調べてみた

auです。オーバーロードについて調べました。 オーバーロードとは オーバーロードとは、同じクラス内に同じ名前のメソッドを複数定義することです。同じ名前で定義しても、引数の数や型は変える必要があります。ここでダメなんだと思ったものが、戻り値だけ…

デフォルトコンストラクタについて調べてみた

auです。デフォルトコンストラクタについて調べてみました。 デフォルトコンストラクタとは デフォルトコンストラクタとは、コンストラクタを明示的に定義しなかった際に、エラーが出ないように自動的に作成されるコンストラクタのことです。そもそもコンス…

アプレットとは

auです。アプレットの意味について調べてみました。 アプレットとは アプレットとは、Webブラウザ上でJavaプログラムを実行することを指します。HTML上に記述することでJavaアプリケーションを実行できます。JavaScriptと同じような感じですが、詳しい違いな…

Javaのテストで用いられるJUnitとは

auです。Javaのテストケースについて学んでいるのですが、その際に使う「JUnit」というテストツールがあるのですが、もう少しよく知ろうと思い、調べてみました。 JUnitとは JUnitとは、Javaのシステム開発の単体テストで用いられるテストツールです。テスト…

UML図にMainクラスを含めるか含めないか

auです。最近講義でUMLクラス図を書いているのですが、Javaのコードを図にする際に、Mainを含めるかどうか悩むことがありました。システムの構成を理解できる図にするに当たり、Mainクラスはあるべきなのか・・・という疑問です。実際にググってみると、数は…

interfaceとabstractsの違い

auです。Javaをやってると必ず引っかかる(であろう)インターフェースと抽象をやったのでまとめます。 インターフェース インターフェースは、処理内容を書かずに宣言して、あとで具体的な処理を書く場合に使います。こうすることで、スーパークラスが一つと…

【ヘルプ】MacのVScodeでJavaの自動補完ができない・・・

auです。Visual Studio codeでJavaを書き始めたのですが、VSCodeでうまく自動補完が働いてくれません・・・。参考にした記事がこちらです。これをやる前にOracleなどのページからJavaを持ってきたりしたのがいけない気がします。solutionware.jp 「Java Exte…