約 1,705,560 件
https://w.atwiki.jp/nishikita/pages/19.html
何もないのは悲しいのでリンクを Java in the Box J2SE 5.0の新機能 Java開発Tips Technology Programming - ITアーキテクト [IT Architect] muimi.com Velocity-TECHSCORE-
https://w.atwiki.jp/amatoism/pages/16.html
Java Javaで僕が気付いたことをメモする場です。 ある程度たまってきたら整理しようかな。
https://w.atwiki.jp/kuwa0224/pages/18.html
Javaの特徴 1.マルチプラットフォーム Javaにはネイティブコードへの変換の間にJVMが存在しています。 JVMがあることで、以下のように変わります。 (通常の言語) 通常コード ⇒ ネイティブコード (Java) 通常コード ⇒ JVM ⇒ ネイティブコード JVMがあるおかげで、どんなプラットフォームでも対応して、 ネイティブコードに変換してくれます。 これがマルチプラットフォームです。 【プラットフォーム】 OS、設定など。つまり環境という意味。 【ネイティブコード】 マシン語。人間じゃ読み取り不可能。 2.オブジェクト指向言語 オブジェクト指向によって、様々なことが便利になります! 例えば、処理、部品の再利用化。 クラス継承することで、処理を書く量を減らしたりなど。 3.マルチスレッド処理 スレッドが多重に存在しても、対応できます。 同期を取らなければいけない部分も、それ用の部品が既に用意されています。 【スレッド】 処理の開始から終了までの流れ。
https://w.atwiki.jp/bg1wiki/pages/18.html
トピック ノート Hello Java! ソースコード HelloJavaプロジェクト SystemOutPrintプロジェクト SystemOutPrintlnプロジェクト StringClassプロジェクト サブカテゴリ 特になし
https://w.atwiki.jp/mekagazira/pages/45.html
メモ テクニック メモ Log4jの設定方法 Log4jの設定ファイルを指定する場合 (1)クラスパスの通ったところに置く (2)-Dlog4j.configuration=urlを使って、Javaオプションで指定 (3)DOMConfiguratorクラスを使って、ロジック中で指定 静的インポート クラスのstaticなメンバー(staticなフィールド、メソッド等)のみをインポート出来る。 →修飾部を省略して利用できる。(Java5から) 例えば) import static java.lang.Math.PI; import static java.lang.Math.sin; class Test { public static void main(String args[]) { System.out.println(sin(PI/2)); } } リテラル 整数リテラル 16進数・・・先頭に0x 8進数・・・先頭に0 long型にする場合は、後ろにLまたはlをつける。 整数型に何もつけないと『int』と解釈される。 浮動小数点リテラル 小数表現に、eまたはEを使う。 例えば) 1e2,1E+2・・・100 1e-2・・・0.01 float型を表現したいときは、後ろにfまたはFをつける。 何もつけないと、『double』型とされる。 ^^^^^^^^ 文字リテラル 引用符「 」で囲む 文字列リテラル 引用符「"」で囲む 単項演算子と代入演算子は、右結合(右から演算が実行) 代入演算子が続いている場合は、オペランドを左から評価した後に、右から代入してゆく。 &&、||、?:以外の演算子に対しては、演算子実行前に左から評価される。 例えば) f1()+f2() f1,f2が実行されてから、+が実行される。 例えば) int i=3; h[i] = i + 5; h[i]がh[3]に評価されてから、代入が行われる。 そのため、結果はh[3]に5が代入される。 剰余演算子 符号がある場合、符号をとって計算し、左オペランドの符号をつける。 例えば) -9%5も-9%-5も、結果は-4 X=Y=Z=3; 右から実行され、それぞれの戻り値は、右辺の値になる。 まず、Z=3が実行され、戻りは、3 「サブクラス instanceof スーパークラス」「インターフェースを実装するクラス instanceof そのインターフェース」 の場合にtrueになる。 インスタンス初期化子 staticのついていない{}で囲まれたブロック オブジェクトが生成されるときに(superの呼出し後に)実行される。 静的初期化子(staticイニシャライザ) クラスのロード時に一度だけ実行される static で宣言されたコードブロックのこと。 継承の話 フィールドは、参照変数が参照するオブジェクトの型ではなく、参照変数の型によって指定される。 呼び出されるインスタントメソッドは(非staticメソッド)は、参照変数の型ではなく、その変数が参照するオブジェクトの型によって決められる。 クラスメソッド(staticメソッド)の場合は、、変数の型で決められる。 「変数.フィールド」は、オブジェクトの型のフィールドではなく、変数の型のフィールドを意味する。(継承の話) インスタンスメソッドを「変数.メソッド」のように呼び出すと、変数が実際に参照するオブジェトの型のメソッドが呼び出される。(継承の話) ちなみにクラスメソッドの場合は、変数の型のメソッドが呼び出される。 可変長引数リストより、引数の数が一致するものの方が優先して、呼び出される。 System.gc();やRuntime.getRuntime().gc();でガーベッジコレクションを促せる。 デバック時に、Javaのシステム日付を変更する。 #JAVAのオプション #必要に応じて上書きする #JVM_OPTS="-Dcmpf.properties=${BATCH_HOME}/bin/resources/lte.batch.properties -Dcmpf.properties.encoding=MS932" JVM_OPTS="-Dcmpf.constantdate=20121205000001 -Dcmpf.properties=${BATCH_HOME}/bin/resources/lte.batch.properties -Dcmpf.properties.encoding=MS932" #JVM_OPTS="-Dcmpf.constantdate=20121128000001 -Dcmpf.properties=${BATCH_HOME}/bin/resources/lte.batch.properties -Dcmpf.properties.encoding=MS932" テクニック コレクションを配列に変換 String[] a = (String[])l.toArray(new String[0]); //コレクションからStringの配列に変換 [http //www.atmarkit.co.jp/fjava/javatips/080java009.html] 奇数行・偶数行に別々のクラスを追加する方法 logic iterate id="hoge" name="hogeListForm" property="records" indexId="idx" tr %= idx % 2 == 0 ? "class=\"dataEven\"" "class=\" dataOdd\""%
https://w.atwiki.jp/java_pro/pages/28.html
import java.io.*; public class Copy1_3 { public static void main(String[] args){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String line = reader.readLine(); int n = Integer.parseInt(line); while (n != 0){ System.out.println(n * 10); line = reader.readLine(); n = Integer.parseInt(line); } System.out.println("終了します"); } catch (IOException e){ System.out.println(e); } } }
https://w.atwiki.jp/bagpack/pages/19.html
default値の設定 Java 2011-02-28 default値の設定 Javaではインスタンス変数、static変数、配列をデフォルト値による初期化をおこなうので、自分で初期化処理を書いて、二重、三重に初期化しないように気をつけること。
https://w.atwiki.jp/wiki6_takt/pages/9.html
Eclipse Eclipse起動オプション Eclipse.exe -VM c \java\javaw.exe -VMargs -Vms256M -Vmx512M -VM JVMの指定 -VMargs JVMへの引数 [-Vms 最小HeapSize][-Vmx 最大HeapSize] 文字化け WebSphereなどのIBM製品を使用し、Windows環境で作成した「shift_jis」文字CODEと 「euc」や「iso2022-jp」文字CODEのテキストとの相互変換を行い文字化けをする時があるようで対象となる文字は・・ 「∥」二重縦線 「~」波線 「-」記号(マイナス) 「¢」記号(セント) 「£」記号(ポンド) 「¬」記号(ノット) 理由は、Windows環境で作成した「shift_jis」の文字CODEが、 「MS932」文字CODEとして保存される為。 □補足 「MS932」文字CODEとはMicroSoft社が定義をした文字CODE。 上記の6文字の文字CODEが「shift_jis」と異なる。 他に"①"などの機種依存文字も含む文字CODE。 「shift_jis」, 「euc-jp」, 「iso2022-jp」は, 「JIS X 0208」として定義されている。 各文字コード一覧 MS932 SJIS EUC-JP ISO-2022-JP ~ 0xFF5E 0x301C 0x301C 0x301C ∥ 0x2225 0x2016 0x2016 0x2016 - 0xFF0D 0x2212 0x2212 0x2212 ¢ 0xFFE0 0x00A2 0x00A2 0x00A2 £ 0xFFE1 0x00A3 0x00A3 0x00A3 ¬ 0xFFE2 0x00AC 0x00AC 0x00AC □文字化けの原因 IBM製品で取り扱う文字コードの種類は 「MS932」「shift_jis」「euc-jp」「iso2022-jp」と4種類あり(utf-8とutf-16は除く)、 「shift_jis」「euc-jp」「iso2022-jp」の3種類の中で相互に文字CODEの変換を行う分には文字化けはしないが、「MS932」との変換を行うと文字化けする。 つまり MS932←→shift_jis MS932←→euc-jp MS932←→iso2022-jp は、文字化けする。 shift_jis←→shift_jis/euc-jp/iso2022-jp euc-jp←→shift_jis/euc-jp/iso2022-jp iso2022-jp←→shift_jis/euc-jp/iso2022-jp は、文字化けしない。 □ASTERIAの各バージョンによる文字コードの取り扱い ASTERIA R2で使用する文字コードは以下のようになります。 "shift_jis"→MS932文字コードとして取り扱いをします。 "SJIS"→shift_jis文字コードとして取り扱いをします。 "euc-jp"→euc-jp文字コードとして取り扱いをします。 "iso2022-jp"→iso2022-jp文字コードとして取り扱いをします。 注)Windows環境で作成したテキストは"shift_jis"と指定するだけで読み込みが可能です。 ASTERIA 3で使用する文字コードは以下のようになります。 "shift_jis"→shift_jis文字コードとして取り扱いをします。 "Windows-31J"→MS932文字コードとして取り扱いをします。 "euc-jp"→euc-jp文字コードとして取り扱いをします。 "iso2022-jp"→iso2022-jp文字コードとして取り扱いをします。 注)Windows環境で作成したテキストは明示的に"Windows-31J"と指定することで読み込みが可能です。 "shift_jis"の指定の場合には上記文字コードの場合には文字化けをします。 ASTERIA R2とASTERIA3で指定方法が異なるのは、ASTERIAが使用しているJava環境のバージョンの違いによるものです。 □文字化けの解消 ASTERIAでMS932とshift_jis, euc-jp, iso2022-jpの相互に文字コードを変換する場合には、 別途提供しておりますJava関数を使用することで文字化けを解消することができます。 例) MS932文字コード ↓ Java関数(A) ↓ shift_jis euc-jp iso2022-jp shift_jis euc-jp iso2022-jp ↓ Java関数(B) ↓ MS932文字コード Java関数(A) MS932文字コードのテキストをASTERIAのString型に読み込むときにJIS X 0208として変換を行います。 この変換によりString型からshift_jis, euc-jp, iso2022-jpへの相互変換においての文字化けが解消いたします。 # #String s = in[0].strValue(); #int len = s.length(); #StringBuffer buf =new StringBuffer(len); #for (int i=0; i len; i++) { # char c = s.charAt(i); # switch (c) { # case uFF5E c = u301C ; break; # case u2225 c = u2016 ; break; # case uFF0D c = u2212 ; break; # case uFFE0 c = u00A2 ; break; # case uFFE1 c = u00A3 ; break; # case uFFE2 c = u00AC ; break; # } # buf.append(c); #} #out.setValue(buf.toString()); # Java関数(B) JIS X 0208のテキストをASTERIAのString型からMS932として変換を行います。 この変換によりJIS X 0208(String型)からMS932への変換においての文字化けが解消いたします。 # #String s = in[0].strValue(); #int len = s.length(); #StringBuffer buf =new StringBuffer(len); # for (int i=0; i len; i++) { # char c = s.charAt(i); # switch (c) { # case u301C c = uFF5E ; break; # case u2016 c = u2225 ; break; # case u2212 c = uFF0D ; break; # case u00A2 c = uFFE0 ; break; # case u00A3 c = uFFE1 ; break; # case u00AC c = uFFE2 ; break; # } # buf.append(c); #} #out.setValue(buf.toString()); # Java関数(A)ではinputdata_AにはMS932文字コードを含む文字列が定義されていることを想定し、outputdata_AにはJIS X 0208に変換したテキストを出力します。 Java関数(B)ではinputdata_BにはJIS X 0208を含む文字列が定義されていることを想定し、outputdata_BにはMS932文字コードに変換したテキストを出力します。 注)これらの関数は文字数が増加するに従い条件判断の回数も増加するため、処理速度は文字数に比例してかかることとなります。
https://w.atwiki.jp/limixp/pages/11.html
エディション JDKのバージョンについて JDKのダウンロード JDKのインストール 環境変数の設定 JDKインストールの確認 Javaでプログラミングを行うためにはJava開発環境(JDK)をインストールする必要があります。 JDKをインストールするとJava実行環境(JRE)も同時にインストールされます. エディション Java PlatformのエディションはJava SE, Java EE, JavaMEの3つがありました.今回は一般のクライアントPC向けとしてJava SE(Standard Edition)をインストールします。 JDKのバージョンについて 現在(2008年4月),出回っているのは主に1.4, 1.5, 1.6の3つのバージョンです.最新のバージョンは1.6です.JDKのバージョンが異なると,若干の仕様の違いが出てきます.例えば,バージョン1.4ではエラーもなくコンパイルできていたJavaのソースを,バージョン1.5の環境に持ってきてコンパイルするとエラーになったりすることがあります. またJDKバージョン1.6でコンパイルしたバイトコード(classファイル)を,Java実行環境(JRE)バージョン1.4や1.5などの古いバージョンで実行しようとするとエラーとなります.逆に古いバージョンのJDK1.4, 1.5でコンパイルしたバイトコードは,新しいバージョンのJRE1.6で実行することができます. つまり,JDKのバージョンとJREのバージョンには注意する必要があります.安全にJavaプログラムを動作させたい場合は,JREのバージョンを最新にし,JDKのバージョンは古いものを使っていれば良いと思います. 当wikiサイトではJDKのバージョンを1.5, JREのバージョンを1.6とします. JDKのダウンロード 最新のJDK(Java SE)はSun Developer Networkからダウンロードすることができます.(Sun Microsystems社のページからはJREしかダウンロードできないので注意してください.) JDK 1.5 ダウンロード 上記のリンク先へ飛んだときダウンロードできるものがたくさんあるため,どれをダウンロードしていいか迷ってしまった経験は誰しも最初はあったと思います.そこで簡単に整理しておきます. JDK 5.0 Update 15 これだけあればJava開発環境が整います.まさに求めているJ2SE 1.5のJDKです. JDK 5.0 Update 9 with Java EE これはJ2EEです.サーバで使う機能も一緒にダウンロードできます.ここでは必要ありません. JDK 5.0 Update 15 with NetBeans IDE 6.0.1 これはJ2SE 1.5と一緒に統合開発環境NetBeansもダウンロードできます.NetBeansは無償で利用可能なIDEで,Eclipseと同じようなものです.Eclipseと違い,プラグインを必要としない完全日本語対応のツールです.NetBeansは使ったことがないので詳しいことはよくわかりません. Java Runtime Environment(JRE) 5.0 Update 15 これは実行環境だけです.Javaを実行できるようにはなりますが,開発することはできません. J2SE 5.0 JDK ソースコード Javaはオープンソースなのでソースが公開されています. J2SE 5.0 ドキュメント APIドキュメントです. ということで,JDK 5.0 Update 15のダウンロードページにいきます. まずはプラットフォームと言語を選択します.x64とかは64ビットマイクロプロセッサを指します.高性能なサーバ用のCPUのことなので,一般的なPCを使用している場合はx64がついてないプラットフォームを選択します. 言語はmulti-languageでいいと思います(選択できない).そしてライセンス契約書に同意のチェックを付けてContinueをクリックします. するとインストーラのダウンロードページに遷移します. オフラインインストール(インストーラをダウンロードする)とオンラインインストール(インストーラをダウンロードしない)を選択できます.オフラインインストールの場合はデスクトップにでもインストーラをダウンロードしましょう. JDKのインストール 環境変数の設定 JDKインストールの確認 トップページ
https://w.atwiki.jp/takeiy/pages/4.html
Javaのネイティブ技術要素とか ・セッションはシリアライズしないとダメ? セッションは画面遷移をまたいでオブジェクトを保存できる便利な「入れ物」ですが、基本的にメモリ領域の一部を割り当てて使っているため、 (1)割り当て領域が満杯になってしまったとき (2)サーブレットコンテナを停止するときに、セッション上の保存オブジェクトをいったんDiskに書き出して退避させる。 このようなオブジェクトのDisk書き出し処理をシリアライズといす。シリアライズするにはSerializeを実装しないといけない。 シリアライズが必要な場合はNotSerializableException という例外が発生する。本番環境などで連続稼働していないと気づきにくいので注意。 【対処法】 セッションに保存し得る自作クラスと、そのクラスの中にメンバー変数として含まれる自作クラスを、すべて implements Serializable する。 あらかじめ用意されているクラスについては、シリアライズ可能でなければセッションに保存しないよう注意する。 Javaで用意されている基本的なクラスはシリアライズされえいるか個々については要確認。 ・@Stateless(ステートレスセッションBean) このクラス内での各メソッドはトランザクション管理され、メソッド開始時にトランザクション開始、正常終了時にコミットされる。 途中でRuntimeExceptionが発生した場合トランザクションがロールバックされる。 ・GlassFishのアプリケーション配置の設定 起動中のドメイン(%glassfish%/domains/domain1/)のlibにpostgreのJDBCドライバを置いて再起動する。 接続プールを選択し、名前(任意)、リソースタイプ(javax.sql.DataSource、ベンダ=ポスグレを選択。 データソースクラスのプルダウンをorg.postgresql.ds.PGSimpleDataSourceとなっていることを確認。 ページ下部のプロパティ設定欄に PostNumber=5432 DatabaseName=データベース名 User=ユーザ名 Password=パスワード を入力。必要ならServerName等も入力。 Pingテストがエラーにならないことを確認。 JDBCリソースを設定する。 アプリケーションをデプロイして完了。 命名規約 http //forfreesoft.blog106.fc2.com/blog-entry-7.html http //local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B http //www.namesearch.jp/html/tips/makeVar.html#iroiro_camel JSF http //okazuki.hatenablog.com/entry/20130413/1365845120 http //d.hatena.ne.jp/jabaraster/20110403/1301827221 http //n-agetsuma.hatenablog.com/entry/2013/02/11/134531 http //d.hatena.ne.jp/jabaraster/20110301/1299001527 http //d.hatena.ne.jp/jabaraster/20110301/1299001527 http //d.hatena.ne.jp/jabaraster/20110221/1298299536 http //d.hatena.ne.jp/Yosuke_Taka/20120131/1327983465 JPA http //kenro.biz/blog/?p=178 Jasper http //blogs.yahoo.co.jp/dk521123/folder/760635.html http //galasufish.sblo.jp/ http //nishija.exblog.jp/4526418/ http //d.hatena.ne.jp/Kazuhira/20130413/1365872385 http //another.maple4ever.net/archives/1181/ http //www.posttips.net/main/getpage.php?id=1228093883_1266451705 http //araistudy.g.hatena.ne.jp/czk-htn/20080302/1263764565 http //d.hatena.ne.jp/Kazuhira/20111010/1318254988 http //kaede.jp/2013/03/13232706.html デザインパターン http //www.geocities.jp/ky_webid/design_pattern/index.html http //mojix.org/2013/02/10/design-pattern-refactoring 正規表現 http //daipresents.com/2008/java_regex/ http //java-reference.sakuraweb.com/java_string_regex.html enum http //bleis-tift.hatenablog.com/entry/20090916/1253084400 JavaFX http //kazyury.hatenadiary.jp/entry/2013/04/07/101748 http //meow.arrow.jp/javafx/ http //www.coppermine.jp/docs/programming/2012/12/javafx.html http //yumix.hatenablog.jp/entry/2012/12/15/021946 http //itpro.nikkeibp.co.jp/article/COLUMN/20130430/474261/ http //d.hatena.ne.jp/a-know/20120513/1336893171 Jenkins http //futurismo.biz/archives/335 http //d.hatena.ne.jp/dkfj/20130303/1362274256 http //es.slideshare.net/int128/jenkins-14810610 http //forza.cocolog-nifty.com/blog/2012/06/jenkins-e76c.html http //codezine.jp/article/detail/2345 http //wiki.nonip.info/work/index.php?jenkins%2F%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2%E4%BD%BF%E3%81%84%E6%96%B9 http //appkitbox.com/knowledge/test/2012/11/12/jenkins-first http //nigohiroki.hatenablog.com/entry/2012/12/30/023035 http //blog.gigei.jp/tech/000053.html http //d.hatena.ne.jp/smallplace/20130124/1359047011 Selenium http //richtext.jp/pukiwiki/index.php?%B3%D0%BD%F1%A4%AD%2FSelenium http //acro-engineer.hatenablog.com/entry/20110820/1313802144 http //atmarkplant-dj.blogspot.jp/2011/10/selenium-with-junit.html http //hellfield.blog102.fc2.com/blog-category-11.html http //www.storklab.com/seleniumhq.org/docs/06_test_design_considerations.html http //d.hatena.ne.jp/language_and_engineering/20081016/1224123118 http //jigsaw.hatenablog.jp/entry/2013/04/11/233222 http //d.hatena.ne.jp/jappy/20130525/1369490309 http //codezine.jp/article/detail/2345 http //hellfield.blog102.fc2.com/blog-category-11.html ジェネリクス http //javazuki.wiki.fc2.com/wiki/%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9 http //www.slideshare.net/nagise/jjug-ccc-2012-fall http //d.hatena.ne.jp/Nagise/20101105/1288938415 http //javatechnology.net/java/generics-method/ effective java http //blog.livedoor.jp/mocoh/tag/EffectiveJava http //d.hatena.ne.jp/amachang/20100215/1266245521