技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

java

java:javaからのOSコマンド呼び出しと注意点

javaのプログラムからOSのコマンドを実行したい場合は、Runtimeクラスのexecメソッドで実現できます。 しかし、OSのコマンドは別プロセスで立ち上がるので注意が必要です。ProcessクラスのwaitForメソッドでプロセスの終了を待たないと、処理が前後してしま…

拡張子「jfr」ファイルの開き方(Java開発)

現場のLinux環境でjarファイルを実行したところ、拡張子が「jfr」のファイルが出力されました。これが何のファイルなのか、どうやって開くのかわからなかったのですが、他の人に教えてもらいました。後でグーグルで調べた所、正しい情報にたどり着くのに少し…

java:thisで指定されたメンバ変数が自クラスにない場合、スーパークラスを参照しにいく

javaでは「thisで指定されたメンバ変数が自クラスにない場合、スーパークラスを参照しにいく」という挙動になると聞いたので、やってみました。確かにそうなりました。 【テストコード】・Main.javapackage jp.co.thistest;public class Main { public stati…

ゲーム理論(二人・二択)の混合戦略の確率をjavaで求める

以下の記事の続きです。 ゲーム理論(二人・二択)の混合戦略の確率を求める https://akira2kun.hatenablog.com/entry/2018/12/23/180906 プログラムで計算する場合の計算式を書いたので、javaでサンプルプログラムを作ってみました。 【ソースコード】publi…

ファジィ推論をjavaでやってみた

「ファジィ推論」とは、「高い」「重い」「暑い」等の数値では表せない感覚的なものを数値として表すことでコンピュータ制御を行うAI技術です。現在は、洗濯機・エアコンといったの家電や、地下鉄の自動運転等に応用されています。 今回は、こちらのページで…

java:シリアルバージョンUIDの用途を調べてみた

javaのシリアルバージョンUIDの用途を理解したのでメモ。 前提として、javaではインスタンスをバイナリファイルとして保存することができます。しかし、インスタンスのクラスの設計を変更した場合、前の設計のバイナリファイルを読み込むと、現在の設計のク…

java:for文の様々な書き方

私が教育している新人のfor文に対する理解が不十分であったため&私自身拡張for文についてつい最近読んだ本で初めて知ったので、この記事を作成しました。私が言いたいことは以下のソースコードに全て記載しています。 【サンプルコード】 package lesson1; …

java:enum型を使うと何が嬉しいのか調べてみた

実務でenum型が出てきたのですが、私が使った入門書にはenum型に関する説明がなかったので、改めて調べてみました。 enum型とは、複数の定数をまとめるための型です。文法的には以下のページで解説されている通りです。 【Java入門】Enum(列挙型)の使い方総…

java:保守開発で変数名が無いよと言われた場合の対応

保守開発で既に本番運用に乗っているクラスを改修する際、当該クラスのjavaソースをEclipseやNetBeans等のIDEに取り込んだ時点で「hogeVariable を変数に解決できません」「hogeVariable は解決できないか、フィールドではありません」といった形で怒られる…

Apache Spark のjavaでの実装についてちょっと調べてみた

Apache Spark 向けのコーディングをjavaで行う機会がありそうなので、空き時間にちょっと調べてみました。 ・そもそもApache Sparkとは分散処理用のフレームワークであり、簡潔なコードで分散処理の実装が可能になる。複数のコンピュータで分散処理を行うこ…

java:packageで記述したフォルダ構成を生成するツールを作成してみた

「大量のjavaソースをpackage文で指定されたフォルダに配置するのが面倒」というのは割とどの現場でもあると思うのですが、ググってもそれを解決するツールが見つからなかったので、勉強がてら作成しました。高度なことはしていないので、Windows環境でJDKが…

Gofのデザインパターンの自分なりのまとめ

「増補改訂版Java言語で学ぶデザインパターン入門」という本でGofのデザインパターンを勉強しました。自分の知識の整理も兼ねて、どのようなデザインパターンが存在し、どのような場合に適用できるのかを簡単にまとめたいと思います。 なお、この本とほぼ同…

java:プリミティブ型とオブジェクト型のメモリの持ち方の違い

を酒の席で聞かれてうまく答えられなかったので、改めて勉強し直してみました。 1.そもそもプリミティブ型(基本データ型)って何だっけ値型のことで、オブジェクトを持たない型のことです。javaの場合は以下の8つの型が該当します。 Primitive Data Type…

java:今さらながらJava8新機能について調べてみた(Optional)

Java8でどのような機能が追加されたのか確認していました。まだ紹介していない重要な機能として「Optional」があるので、今回はそれについて書きます。 Optionalとは、値を持たない場合がある(nullである)ことを表すクラス(コンテナオブジェクト)です。O…

java:今さらながらJava7・8新機能について調べてみた(Files)

Java7・8でどのような機能が追加されたのかを確認中です。今回は「Files」についてです。 FilesはJava7から追加されたファイル入出力のクラスで、従来の書き方に比べてすっきりした書き方ができますまた、Java8ではFilesをStreamで処理することもでき、メモ…

java:今さらながらJava8新機能について調べてみた(Stream)

Java8でどのような機能が追加されたのかを確認中です。今回は「Stream」についてです。 Streamを使うことで、for文を使用することなく配列やCollectionなどの集合体を扱うことができるようになります。出力条件の設定や重複排除、ソート等の操作も、メソッド…

java:今さらながらJava8新機能について調べてみた(ラムダ式)

以前の記事で書いた通りJava6までしか知らなかったので、Java8の新機能について調べています。Java8は色々と言語仕様が追加されており一気に調べきれないので、1機能ずつ調べていきます。今回は「ラムダ式」についてです。 ラムダ式どころか、その背景にあ…

java:今さらながらJava7新機能について調べてみた

新人研修時点ではJava6だったので、Java7やJava8の文法がわからず実務で苦労しています。というわけで、今回はJava7の新機能について調べてみました。 といってもJava7は7年前にリリースされているので、既に色々なページでまとめられています。例えば以下…

eclipseのショートカット自分用まとめ

Eclipseをまだ使いこなせておらず生産性が上がらないので、身近な所からということでショートカットキーの練習をしていました。 他の人の操作を見たり実際に試したりして、最優先で使いこなせるようになりたいと思ったショートカットキーは以下です。(Windo…

java:CLASSPATHの基礎を調べてみた

そういえばCLASSPASSについて知識があやふやだな…自分が読んだ入門書にも書いてなかったしな…と思ったので、入門的な内容ですが簡単に調べてみました。 ・CLASSPATHって(ytp.ne.jp) http://www.ytp.ne.jp/tech/java/sineruka/classpath.html CLASSPATHとはど…

JUnit:テストケース毎の初期化

JUnitで複数のテストを行う際、あるテストが以降のテストに影響を与えてしまうことがあります。あるテストが以降のテストに影響を与えると、テストの実行順を変えたりテストケースを変えたりするだけで今まで通っていたテストが通らなくなるので、望ましい状…

java:2通りの例外の受け取り方

入門書にも書いてある内容ですが、COBOLやC言語にはない挙動なので備忘のためにまとめます。 【パターン1:catch文で例外を受け取る】①で例外が発生すると、catchに遷移する。 public static void main(String args) { try{ ① } catch(Exception e){ …例外…

java:絵文字を含む文字列を1文字ずつ切り出す

←こんな感じの絵文字を資料中に使うのが今の職場で流行ってます。 そういえば実務で絵文字を取り扱うシステムに携わったことがなかったので、興味本位で調べてみました。 ついでに、絵文字を含む文字列を1文字ずつ切り出すjavaのサンプルコードも作りました…