Javaの勉強をしていると最初の方に学習する事ではあるのですが、ふと違いとは?と考えるとjavaの実行環境と開発環境の違い位の認識しかなかったので整理しておこうと思います。
JDK
- 「Java Development Kit」の略称。
- Javaでプログラムを開発する際に必要。
- ソフトウェア開発キット(SDK)を拡張したサブセット。
- フリーソフトウェア。
JRE
- 「Java Runtime Environment」の略称。
- Javaで作成されたプログラムを実行する場合に必要。
Javaの勉強をしていると最初の方に学習する事ではあるのですが、ふと違いとは?と考えるとjavaの実行環境と開発環境の違い位の認識しかなかったので整理しておこうと思います。
一般的に郵便物を送付する際、普通郵便の場合は82円、速達の場合は362円の料金が掛かります。
ではこの料金の差はどこにあると思った事はないでしょうか?
私の場合ですが、速達の場合は普通郵便より早くつくからその手間賃なんだろうと漠然と考えていました。ですが、普通郵便でも速達と同じ速度で届くことがあるのです。
この流れで大きく分けて1日3回(朝、昼、夕)の3回集配されます。
この違いから昼以降の郵送に関しては速達の方が早く各家庭に届けられるので、その手間賃分の料金が掛かっています。
ということで朝郵便物をポストへ投函すれば高い料金を払わなくても速達と同じ速度で届くこともあるようです。
Web開発では帳票をExcelで出力する際に「Apache POI」がよく使用されています。
ただ「Apache POI」を使用する場合、システム的な制限やリソースなど事前に注意しておくべき点があるのでメモしておきます。
エディタなどで文字コードを指定する際「BOM有り」と「BOM無し」という選択肢があります。この「BOM」とは何かをまとめておきます。
HTMLエディタ「HeTeMuLu Creator(へてむるクリエイタ~)」のインストール手順をご紹介しておきます。
基本的にインストーラをダウンロードして手順通り勧めれば簡単にインストール出来ます。
JUnitでテストする時にprivateメソッドをテストする方法をご紹介します。
privateメソッドをテストするにはリフレクション「java.lang.reflect.Method」を使用することで実行可能となります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class SampleClass1{ /** サンプルフィールド */ private String field = "hoge"; /** * <p>[概 要] サンプルメソッド</p> * <p>[詳 細] </p> * <p>[備 考] </p> */ private String sampleMethod(String str){ return str + "test"; } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
@Test public void testSampleMethod() { // 準備 SampleClass1 sampleClass1 = new SampleClass1(); String result = ""; // 期待値 String expected = "hogetest"; // 実行 try { Method sampleMethod = SampleClass1.class.getDeclaredMethod("sampleMethod", String.class); // privateメソッドにアクセス可能とする sampleMethod.setAccessible(true); result = (String)sampleMethod.invoke(sampleClass1, "hoge"); } catch (SecurityException e) { // 普通のプログラムでは発生しない、ほとんど無視していい fail(e.getMessage()); } catch (NoSuchMethodException e) { // メソッド名・引数の型が一致しない場合に発生 fail(e.getMessage()); } catch (IllegalArgumentException e) { // 実行対象の引数の型/引数の数があってれば発生しない。NoSuchMethodExceptionの場合と同じく、1度でも通れば基本的に例外処理はいらない fail(e.getMessage()); } catch (IllegalAccessException e) { // 対象メソッドのアクセス制限(private/default package/protected)によりアクセス不可の場合に発生 fail(e.getMessage()); } catch (InvocationTargetException e) { // 対象のメソッドの処理中に発生した例外。e.getCause()で実際にメソッド内で発生した例外を取得できる。 fail(e.getMessage()); } // 検証 assertEquals("戻り値が一致していません", expected, result); } |