技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

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(列挙型)の使い方総…

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

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

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

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

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

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

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のサンプルコードも作りました…