匿名クラスについての質疑応答_吹き出し_はてなブログのCSS

今回記事のつくりとして会話風にするCSSを追加してみた。

吹き出し形式にしたいと思ってググってみたら発言者の画像があるやつしかなくて、自分で作ってみた。

 

ここは根性を感じて素晴らしかった。今後もチェックさせていただきます。

LINE風の吹き出しの会話をCSSで作ってみる | 125naroom / デザインするところ(会社)です。

 

CSSをどこに書くのかわからなくて結構困った。公式にあったけどちょっとわかりづらかった。

デザインCSSを記述する - はてなブログ ヘルプ

 

 

以下ChatGPTとの質疑応答。

 

Q: 質問内容
javaで匿名クラスはどうやって使うのですか?
A: 回答内容
Javaで匿名クラスを使用するには、次の手順に従います。
インターフェースまたは抽象クラスを実装または拡張します。
インスタンスを作成するときに、その場でクラスの定義とインスタンスの作成を行います。
Q: 質問内容
インターフェースを実装したり、抽象クラスを拡張したらそれで匿名クラスなのですか?
myAbstractという名前がついて匿名ではないように思えますが、なぜ匿名クラスと呼ぶのでしょうか。
A: 回答内容
匿名クラスは、クラスが名前を持たず、その場で定義されて使用されるクラスです。インターフェースを実装したり、抽象クラスを拡張した場合、そのクラスが名前を持つかどうかにかかわらず、そのクラスが匿名クラスとして扱われます。

匿名クラスは、その場で定義されるため、通常は1回だけ使用されるようなシンプルなクラスを表します。名前を持たないため、再利用することはできず、その場で使用された後には参照することができません。

匿名クラスは、インターフェースの実装や抽象クラスの拡張などで使用される場合が一般的ですが、それらのクラスが名前を持っているかどうかは匿名クラスの性質に影響しません。匿名クラスは、その名前がないことで特徴付けられ、その場で定義されることから「匿名」と呼ばれます。

 

 

その場で処理を定義する。1回しか使わない。クラスを実装するとクラスが増えてしまうのが煩雑なのと記述が増えて読みづらいということからjava1.1で導入された。

ちなみに英語圏ではanonymous classというらしい。

 

 

qiitaだと匿名クラスについては以下の記事がなんとか納得できないでもないという説明だった。感謝。

【Java】匿名クラスについて #Java - Qiita

 

 

 

Springアノテーション

Course: [NEW] Master Spring Boot 3 & Spring Framework 6 with Java | Udemy

32. Step 04までに登場したアノテーション

 

 

@Component

Component (Spring Framework API) - Javadoc

 

@Autowired

Autowired (Spring Framework API) - Javadoc

 

@Configuration

Configuration (Spring Framework API) - Javadoc

 

@ComponentScan

@ComponentScan("com.in28minutes.learnspringframework.game")

ComponentScan (Spring Framework API) - Javadoc

 

@Primary

Primary (Spring Framework API) - Javadoc

 

@Qualifier("SuperContraGameQualifier")

Qualifier (Spring Framework API) - Javadoc

 

 

OMEN40L_フロントパネルファンのLED消灯

# フロントのLEDを消す。

 

## 

OMEN Light Studioにて設定する。

任意の個所を選択して「なし」に設定する。

 

 



 

以前設定したはずだが復活していたため、再度設定。

oracle_パフォーマンスチューニング(というほどでもない)

引き継いだソースが遅くてまともに動かなかった。

前任者はSQL単体で動いたからよしとしたようだが、

画面に実装して様々な条件で動かしたところタイムアウト

 

 

以下のようなSQLだった。

select
  中略
from
  v_xxx v
where
  1 = 1
and col1 = 'x'
and col2 = 'y'
and exists(
    select
      1
    from
      table1 t1
    where
      1 = 1
    and col3 in('a', 'b', 'c')
    and col4 in('d', 'e', 'f')
    union
    select
      1
    from
      table2 t2
    where
      1 = 1
    and col3 in('a', 'b', 'c')
    and col4 in('d', 'e', 'f')
    union
    select
      1
    from
      table3 t3
    where
      1 = 1
    and col3 in('a', 'b', 'c')
    and col4 in('d', 'e', 'f')
;

 

タイムアウトする場合はexists句内のサブクエリに該当するレコード数が合計20万件とかだった。

 

 

修正案

SELECT 中略
FROM v_xxx v
INNER JOIN table1 t1 ON t1.some_column = t.some_column
INNER JOIN table2 t2 ON t2.some_column = t.some_column
INNER JOIN table3 t3 ON t3.some_column = t.some_column
WHERE 1=1
AND t.col1 = 'x'
AND t.col2 = 'y'
AND (
    t1.col3 IN ('a', 'b', 'c') AND t1.col4 IN ('d', 'e', 'f')
    OR
    t2.col3 IN ('a', 'b', 'c') AND t2.col4 IN ('d', 'e', 'f')
    OR
    t3.col3 IN ('a', 'b', 'c') AND t3.col4 IN ('d', 'e', 'f')
);

こっちは巨大な表になりそうだから、

inner join内はサブクエリにして必要なカラムを抽出したほうがよさそう。

exists句は自分ではまず使わなくて動きのイメージができなかったが、chatgptが教えてくれた。

 

`EXISTS`句内のサブクエリに該当するレコード数が合計20万件である場合、`v_xxx`テーブルを20万回走査するわけではありません。

`EXISTS`句は、メインクエリの各行に対してサブクエリが1回以上の結果を返すかどうかを確認します。そのため、サブクエリが返すレコード数に依存せず、メインクエリの各行に対してサブクエリが実行されるだけです。

つまり、`v_xxx`テーブルの各行に対して、サブクエリが1回以上の結果を返すかどうかを確認するために走査されます。サブクエリの結果が1つ以上ある場合、`EXISTS`句は真(TRUE)を返し、その行は結果に含まれます。一方、サブクエリの結果が空の場合、その行は結果に含まれません。そのため、走査される回数は`v_xxx`テーブルの行数に等しいか、それ以下です。

したがって、`v_xxx`テーブルを20万回走査するのではなく、各行ごとにサブクエリが実行され、その結果に基づいて行が結果に含まれるかどうかが決定されます。

 

メインテーブルの各行を、20万行あるデータセットに存在するか走査するのとどっちが早いか。

inner joinが遅いならビューでも作るか。

 

EXISTSとSQLの高速化について - 猫好きモバイルアプリケーション開発者記録

どうやらwith句だと評価順序がwhere句の前に来るらしい。

withかjoinかは可読性で判断。

既存のSQL組み立てがいまいちなので、思案。

 

 

話が変わるが、前任者はdistinctを知らないレベルの素人だった。

もしも自分が採用面接するなら、出題してアンチパターンリファクタリングしてもらう方式をとると思う。

これは例題としたい。

証券移管_松井 → SBI

もう長いこと松井証券に置いておいた証券をSBIに移管する。

 

# 理由

## 松井証券のデメリット

###インターフェースが見にくい、売買ツールが使いにくい。

## 松井証券のメリット

###松井の口座の株価をチェックしなくなるのでクソ株だろうが握力が強くなる。

 

上記のように長短あるが、最近は資産の把握という点でストレスになってきた。

MoneyFowardやOneStock等の資産管理アプリは、外部連携の再申請を3か月ごとにしなくてはいけないので、気持ちが重くなる。

ストレス軽減のため、なるべく関係するものを少なくしていく。

 

■株式移管入庫サービス

www.sbisec.co.jp

 

 

# 余談

松井は出庫手続きについての記述が入庫に比べてとても少なく、費用も明確でない。

> 出庫とは、松井証券から他の証券会社に日本株式、米国株式、投資信託を移管する方法です。所定の手続料がかかる場合があります。

自分が不利になる情報を明らかにしていないので、顧客には不便だし信用度が低くなる。

Eclipse_パッケージエクスプローラの表示切替方法

Eclipseのパッケージエクスプローラには2通り表示方法があり、その切替方法。

 


 

 

昔のプロジェクトの時、ほかの人とEclipse画面が違っていて、しかもその人に聞いても設定方法がわからなかったもの。

フラットのほうが見やすいかな?