ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

java

祝 Java8リリース

遅くなりましたが、Java8リリースしましたねー。おめでとうございます。 Java6でもJava7でも機能追加たくさんありましたが、今回のJava8はプログラムの書き方を変えるようなパラダイム・シフトが起こってますね。もうすでに遅れていますが、ちゃんとキャッチ…

SeleniumのSSL時の設定

Seleniumで証明書のないSSLサイトの接続してもInfo画面で止まらないようにするメモ FirefoxProfile profile = new FirefoxProfile(); profile.setAssumeUntrustedCertificateIssuer(false); WebDriver driver = new FirefoxDriver(profile); でいけます。 バ…

デザインパターン:TemplateMethodパターン

TemplateMethodパターン ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、そのアルゴリズムの具体的な設計をサブクラスに任せることである。 [Wikipediaより]要はほとんど処理をスーパークラスに決めておいて、用途ごとに変更になる部分を継承し…

デザインパターン:Adapterパターン

Adapterパターン Adapter パターンを用いると、既存のクラスに対して修正を加えることなく、インタフェースを変更することができる。 [Wikipedia]ということらしい。Adapterパターンには、継承を使ったパターンと委譲を使ったパターンがあるとか。 継承を使…

Java:ジェネリックプログラミング

Javaを使ってきて、自分の教育資料用のまとめ。 JavaはJDK1.5からジェネリックプログラミングができるようになった。日本語では総称型。C++ではテンプレートと同じような機能。それについてのまとめメモ。 ジェネリックのメリット ジェネリックを導入される…

Javaのネスト

Javaのネストって匿名クラスくらいしか使わないけど、まぁ結構色々できるのでまとめ。 間違っていたら指摘お願いします。 import jp.co.sample.NestMaster.StaticInner; public class NestMaster { public static void main(String[] args) { String mS = "m…

Java:instanceof演算子のメモ

Javaのinstanceofのメモ class C {} class D extends C{} interface E {} class F implements E{} class G extends F{} public class Sample { public static void main(String[] args) { C c = new C(); System.out.println("c instanceof C:" + (c instanc…

Javaの可変長引数メソッド

Javaの可変長引数でこういうときどうなるんだ?ってふと思ったので、実行結果をメモ。 public class SampleVariable { public static void main(String[] args) { SampleVariable a = new SampleVariable(); a.show(); a.show(1); a.show(1, 2); a.show(1,2,…

Eclipse4.2 リリース

Eclipse4.2 がリリースされました。Eclipse SDK 4.x: The Next Generation Eclipse Platform 新機能はここらへんに載ってる。でもメモ書きみたい。404 File not found あとで入れるか

Javaでbyte配列を合成する

Javaでbyte配列を標準ライブラリ内で合成したいなーと思ったんだけど、プリミティブ型ってユーティリティ系が弱いみたい。 サンプル実装ということもあって、速度とかは気にせず実装。 byte[] binary1 = new byte[]; byte[] binary2 = new byte[]; StringBui…

JavaでFibBuzzを解いてみる

発端になったのはこちらFizzBuzz は時代遅れらしいので FibBuzz はどうでしょうでFizzBuzzの代わりにFibBuzzがくる・・・ということなので、乗り遅れないうちに解いておこうかと思う。 FibBuzz(ちょっと変更) FibBuzz: 1から100まで列挙していき、フィボナッ…

Javaで素数をカウントしてみる

Javaで素数をカウントしてみる。 なんにも考えないで、ただ素数をカウント・列挙するプログラムを書いてみた。 // bubbleprimeと呼ぶことにする import java.util.ArrayList; public static void main(String[] args){ bubblePrime(1000); } private static …

Gnome3のEclipseでJavadocを開くとクラッシュする

PCをFedora16のGnome3にアップグレードしてEclipseでクラッシュした事象をまとめる。 Fedora16を起動 Eclipseを起動 Javaファイルを開く Javadocを見ようとする といった具合になる。hs_err_pidファイルを出力するので中をみると C libxul.soと書いてあるの…

enum-1-

Javaのenumについて。 public enum Country{JAPAN,AMERICA,CHINA} public static void main(String[] args){ Country country = country.JAPAN; System.out.println("Country is " + country); } これだけで、完全なenumを使用することが可能になる。 完全な…

Javaのリフレクション

Javaは言語としてリフレクションをサポートしている。他にもPerlとかRubyとかも。(Cはサポートしているんだっけか?) コードはとても簡単。 // リフレクションなし Foo foo = new Foo(); //インスタンス foo.hello(); //メソッド呼び出し // リフレクション …

Javaフレームワーク開発入門を読み始めて

ちょっと気になって衝動買いしてしまったが、読み始めてみるととても読みやすくて初中級くらいの私にはちょうどいい本だった。まだ2章くらいまでしか読んでいないが結構いい本だと思う。Java入門的な本を読み終わって、ライブラリ使ってちょっと書き始めたっ…

Javaのスレッドセーフ

注:下記はメモなので参考にしないことJavaのスレッド関連の理解が甘かったので、スレッドセーフの説明の思考実験に行き詰まったので、今思っていることをまとめる。 スレッドセーフかそうでないかのポイントはいくつかあると思うけど、ほとんどは そのメソッ…

Eclipseの矩形

Eclipseの矩形 Ctrl + Shift + A 矩形モード/矩形モード解除

enum(列挙型)

enumとは型付き定数を作る為の機能です。JDK1.5から取り入れられた機能らしく、 ここでは、下記のように記述します。 public enum enumSample { January,February,March,April,May,June,July,August,September,October,November,December } 通常"class"にな…

標準アノテーション

アノテーションとは注釈の意味で、これはプログラムが参照できる注釈である。Javaのコメントとは異なり、コンパイラが参照して警告等を表示してくれる。また、独自のアノテーションを定義することができる。今回は標準アノテーションについてちょっとだけ触…

インターフェース

こいつは、名前の通りインターフェースとして動くクラスです。Javaの中での役割は、メソッドのまとめ役です。インターフェースを継承しているとそこに宣言してあるメソッドは必ず実装しなければいけません。つまり、そのクラスが継承しているインターフェー…

抽象クラス

コンポジションとデリゲーションの時に継承を意識したクラス設計〜みたいな話があったかと思うけど、抽象クラスはまさにそういうクラスです。というよりも、文法で継承することを強制しています。抽象クラスは、クラスとしての実装が不完全で、インスタンス…

コンポジションとデリゲーション

一般のJava入門の書籍の中で、継承の仕組みはとても取り上げられるのだが、 コンポジション(集約)とデリゲーション(委譲)については、ほとんど触れられていないと思う。 個人的には継承と同じくらい重要であるコンポジションとデリゲーションの仕組みのおさ…

自分がよく使うEclipseのショートカットキー

Eclipseを使い始めたのだが、ショートカットがないと使い辛いと感じた。 物覚えが悪いので自分が使うショートカットキーをまとめることにした。極力マウスを使わなくていいように、今後、使いやすそうなのがあったら随時追加していこうと思う。 ctrl + m エ…

CSVファイルの読み込み

Javaのファイル読み込み・書き込みが終わったので次はCSVファイルの読み込み。 前勉強したときは、StringTokenizerを使ったような覚えがあるのだが、今回は、String#splitを使って処理することにする。 import java.io.BufferedReader; import java.io.File;…

Javaファイル書込

Javaファイル読込の次は書き込み。読み込んだファイルを書き出すものを追加しただけ。 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOExce…

Javaファイル読込

Javaを再び勉強しようと決意し、基本からやりなおす。 ファイルの読み込みソースを起こしてみる。 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; pu…

wicket(Javaフレームワーク)

2009seaserカンファレンスの少し前からwicketを触り始めたけどおもしろい・・・ xmlをすべてやめてしまおうという極端な考え方も嫌いじゃなく。 Strutsをまともに使ったこともないけど、あまりいい噂を聞かない。 世の中に完璧なものなんてないんだから、wic…

テストツールって結構重要だとおもっていて、単調なテストをどれだけ自動化しておくかは品質向上のためにも必要だと思う。 フリーで便利なテストツールでは、SeleniumとJmeterだと思い、Seleniumは、1.0RC版がでていて、またJmeterは、枯れているみたいなの…

JFreeChartでTimeSeriesChartを書いてみた

javaのお勉強の一環でJFreeChartでTimeSeriesChart(時系列チャート)を書いてみた。画像で出力すると一々選択して開かないといけないのが面倒で、swingで書いてみた。なぜか文字化けしてるけどあまり細かいことは気にせず。IDEはやっぱり便利。まだX軸,Y軸の…