2022-01-01から1年間の記事一覧

Java インタフェースのルール変更

インタフェースっていうのは、公開すべき必要な操作をまとめたクラスの仕様のことなんですが、これを引き継いで実装したクラスを作ります。 めんどくさいのはSE7~SE9までの仕様変更。 SE7 ・インタフェースで宣言できるメソッドは抽象メソッドのみである SE…

ストリームAPIの問題のコードを実際に試してみた

紫本の中の問題のコードをdokojavaさんのところで確認してみたんやが、なぜか平均の20.0ではなく、15.0が表示されてしまう。どういうことだ?ストリームにあるリテラルを合わせると60.0やから、/3ではなく/4の数字なっちゃってるんだけど、どこで4になるのか…

Java ストリームAPI

某参考書を読んでいるが、読者がこれから勉強する人だという想像力の欠如した人が書いている。例えばOptionalクラスの使い方について、詳しく解説されているが、そもそもどういう経緯でどういう使い方をするものなのか、最初に説明が無い。なんだかなぁ。

Javaのモジュールシステムで忘れてはいけないこと

Java11ではモジュールシステムという仕組みが採用されています。古いプログラムではモジュールを使ってないので、改修時などにモジュールシステムを組み込むやり方として、 ・ボトムアップ式 ・トップダウン式 の2つが考えられます。 元々のモジュールの仕組…

福岡県の難読地名について

福岡県に引っ越してきて約2年。 大体、都市部にしか行ってないので、何とか郡、何とか町、何とか村はググってびっくりすることが多い。 痛ましい幼子の虐待事件で何となく珍しい苗字だなと思った「常慶」さん。仏師系何かなと思ってちょろっと検索したら、か…

ローカライズ

Java SE11 Goldの勉強で、今、ローカライズの章をやってます。 Localeとかリソースバンドルとかですね。国コードや言語コードの設定。 なかなか大変だな。

ListインタフェースのreplaceAllメソッドはUnaryOperator型の引数を受け取る

replaceAll(UnaryOperator<E> operator) このリストの各要素を、その要素に演算子を適用した結果で置換します。</e>

Predicateインタフェースのよく使うメソッド

ラムダ式なんかで使う、Predicateインタフェースでは、「||」をorメソッド、「&&」をandメソッドとして使えます。そのままの名前ですね。

インタフェースにprivateを修飾できるときがある

インタフェースってメソッドとシグニチャだけ書いて、アクセス修飾子つけなくてもpublicになるって認識だったけど、privateつけて実装書いちゃってもありなの?頭こんがらがってきた。privateつける時はdefaultつけちゃいけないらしい。 この辺、なんかすっ…

メソッドをオーバーライドする時は (Java)

メソッドをオーバーライドする時は、アクセス修飾子(public, protected, 無し(package private), privateの4つで、左から右に厳しくなる)を緩くすることはできても、厳しくすることはできない。これを無視するとコンパイルエラーになる。

例外とアサーション

・アサーション(assertion)とは 主張、断言、表明、言明 などの意味。 IT用語としては、表明、でしょうかね。 例外はtry-catch-finally構文とtry-with-resources構文の学習ですね。 Silverの時は例外の種類とthrow やthrowsを覚えたような記憶があります。

アノテーション

アノテーション[annotation]という言葉は、一般的には「注釈、気注」などと訳されてて、文献などで※(数字)のような感じで枠外や一番最後に詳しい説明や出典なんかを書くようなイメージですね。 Javaで使うアノテーションも注釈的な意味や、意図していないエ…

ITエンジニアが使う、目にする英単語で勘違いしてたやつ その1

・duplicated デュプリカテドゥ 「重複した、二重の」という意味ですね。 間違っておんなじ名前のクラスやメソッドやフィールドなんかを作ってIDEに怒られてる時のメッセージにありそうです。 ・deprecated デプリケイテドゥ LとRの発音の違いが聞き取れない…

ラムダ式って…

いまいち何でそういう書き方があるのか、どう利用するのかイメージわきませんが、あるところからこんな感じの説明を拾ってきた。 ラムダ式とは、一言で言えば「関数型インターフェイスを実装した匿名クラスのインスタンスを超簡単に作る文法」です。

Enum(列挙子)について気になる記述が…

JavaのEnumは、CやC++、C#などのプログラミング言語とは異なり、クラスとしてお使われます。実際プログラマーが独自に定義したEnumは、java.lang.Enumクラスのサブクラスとして扱われます。 Java SE11 Gold黒本P.55 より抜粋。そうなのか。

Java のソースコードをブログに書く方法のテスト

コードをはてなブログに書く方法のテスト >|Java| public class Hello { // メソッド宣言 public static void main(String[] args) { // 文 System.out.println("こんにちは、世界"); } } ||< 引用文の書き方はこんな感じ でいいのかな? >|Java| public cla…

Java SE11 Silverの学習 04

package宣言についての注意 java.langパッケージに属するクラスはインポート宣言しなくても自動で入れられる。 package名をワイルドカードにすることはできない。 jp.co.xxx.yyy とjp.co.xxx.zzzは別のパッケージなのでjp.co.xxx.*と書いてもダメ。 jp.co.xx…

Java SE11 Silverの学習 03

インタフェースや抽象クラスは実装されていないので、newでインスタンスを生成できない。 継承関係にあるクラスのインスタンス生成時のコンストラクタの動作について ・スーパークラスのインスタンスが持つコンストラクタが先に実行される ・サブクラスのコ…

Java SE11 Silverの学習 02

・苦手な継承、インタフェース、抽象クラス について 継承で引き継げないもの ・コンストラクタ ・privateなフィールドやメソッド クラスの多重継承は禁止されているが、インタフェースの多重実現は認められている。 複数のインタフェースの多重実現の書き方…

Java SE11 Silverの学習 01

一昨年末、Java SE11 Silverの独習をしておりまして、1回目はまさかの不合格、1か月後のリベンジで何とか合格できました。 今回、Goldへの挑戦の為、久しぶりにJava SE11 Silverの黒本をやり直してみたら、かなり忘れてしまってました。 という事で、しばら…