「Java/TIPS」の編集履歴(バックアップ)一覧はこちら
「Java/TIPS」(2015/06/04 (木) 09:42:30) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
-[[Cookieが届く範囲を再確認>>http://www.imymode.com/exp/cookie.html]]
-[[API>>http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html]]
-[[Docjar>>http://www.docjar.com/]]
-[[GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き)>>http://d.hatena.ne.jp/language_and_engineering/20120330/p1]]
-[[JPA + EJB + JSF による Web アプリケーション>>http://d.hatena.ne.jp/redcat_prog/20130515/1368567953]]
-[[Features of Spring (TECHSCORE)>>http://www.techscore.com/tech/Java/Others/Spring/index/]]
-[[Spring:Bean定義の書き方が分からなくなった時のDI設定早見表>>http://www.omotenashi-mind.com/index.php/Spring%EF%BC%9ABean%E5%AE%9A%E7%BE%A9%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%8C%E5%88%86%E3%81%8B%E3%82%89%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AEDI%E8%A8%AD%E5%AE%9A%E6%97%A9%E8%A6%8B%E8%A1%A8]]
-[[JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等)>>http://d.hatena.ne.jp/tanakakns/20120508/1336467306]]
OutOfMemoryErrorが発生するタイミング
New領域が溢れた場合
New領域のオブジェクトはある程度の期間存在し続けるとOld領域へ移動される。しかし、移動する条件に達する前のオブジェクトで溢れる場合がある。
※JavaVMはNew領域が溢れそうな際ある程度New領域を広げる処理を行っているようだが、それでも溢れた場合はOutOfMemoryErrorとなる。
Old領域が溢れた場合
参照されつづけるオブジェクトが大量に存在する場合に溢れる。
Cヒープが溢れた場合
Javaのスレッドが大量に作成された場合に溢れる。
Cヒープが溢れてOutOfMemorryErrorが発生した場合、スタックトレースの先頭が「Native Method」である。
http://www.itmedia.co.jp/enterprise/articles/0907/10/news002.html
http://d.hatena.ne.jp/oknknic/20111203/1322892986
調査の難しい「OutOfMemoryError」事例、5選(http://www.atmarkit.co.jp/ait/articles/1003/11/news091.html)
スレッド数はOSのパラメタで設定されており、それが大きな値で設定されている場合に発生する。
Linuxの場合、「cat /proc/sys/kernel/threads-max」で確認することができ、「/etc/sysctl.conf」ファイルの「kernel.threads-max」で設定される。
http://d.hatena.ne.jp/Fiore/20080310/1205155154
Linuxで起動中のJavaプロセスのスレッド数を確認する方法に「ps -efL | grep -e java | grep -v grep | wc -l」等がある。
http://d.hatena.ne.jp/rx7/20101219/p1
-[[404 Blog Not Found ajax - 文字化け判定表>>http://blog.livedoor.jp/dankogai/archives/50809008.html]]
-[[日本の文字コード>>http://www.asahi-net.or.jp/~ax2s-kmtn/character/japan.html]]
--いろいろ
-[[HTML変換処理>>http://homepage1.nifty.com/masada/cyber/javahtmlparser.htm]]
--httpでの通信からxml解析まで
-[[Java Open Source>>http://www.java2s.com/Open-Source/Java/CatalogJava.htm]]
--[[HttpsURLConnectionOldImpl>>http://www.java2s.com/Open-Source/Java/6.0-JDK-Modules-com.sun/net/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java.htm]]
-[[Javaで入力チェックに使える正規表現まとめ>>http://daipresents.com/2008/java_regex/]]
半角英字
^[a-zA-Z]+$
ex => abcdefghijklmnopqrstuvwxyz
半角数字
^[0-9]+$
ex => 0-9
半角記号
^[ -/:-@\[-\`\{-\~]+$
ex => 半角空白!”#$%&’()*+-.,/:;<=>?@[\]^_`{|}~
半角英数字
^[a-zA-Z0-9]+$
ex => abcdefghijklmnopqrstuvwxyz0123456789
半角英数字記号
^[a-zA-Z0-9 -/:-@\[-\`\{-\~]+$
ex => abcdefghijklmnopqrstuvwxyz0123456789半角空白!”#$%&’()*+-.,/:;<=>?@[\]^_`{|}~
半角カタカナ
<span class="goog_qs-tidbit goog_qs-tidbit-0">^[。-゚+]+$</span>
ex => ー。「」、・ヲァィゥェォャュョッタアイウエオカキクケコサシスセソミチツテトナニヌネノハヒフヘホマムメモヤユヨラリルレロワン゙゚
ひらがな
^[ぁ-ゞ]+$
ex => あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんぁぃぅぇぉっゃゅょがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽゑヴ繧輔v繧吶z゛゜ゝゞ
カタカナ
^[ァ-ヶ]+$
ex => ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
漢字
^[一-龠]*$
全角文字
^[^ -~。-゚]+$
半角以外としているのがポイント。
桁数を指定(1桁から5桁)
^[a-zA-Z0-9]{5,10}$
5桁以上の繰り返し
^[a-zA-Z0-9]{5,}$
5桁以下の繰り返し
^[a-zA-Z0-9]{1,5}$
定数(trueもしくはfalse)
^true$|^false$
-システムプロパティのコンソール出力
public static void viewSystemProperties() {
// システムプロパティを全て出力
// インナークラスとしてそのまま持っていけます
new Object() {
void viewSystemProperties() {
java.util.Properties p = System.getProperties();
java.util.TreeMap<Object, Object> map = new java.util.TreeMap<Object, Object>();
map.putAll(p);
java.util.Iterator<Object> itr = map.keySet().iterator();
while (itr.hasNext()) {
String key = (String) itr.next();
String value = (String) map.get(key);
System.out.println(key + "=" + value);
}
}
}.viewSystemProperties();
}
-[[Javaでのファイルダウンロードについて>>http://otn.oracle.co.jp/forum/message.jspa?messageID=11007009]]
#amazon2(468x60)
EOF
JMeter
リスナーのConfigureを精査すること
-[[Cookieが届く範囲を再確認>>http://www.imymode.com/exp/cookie.html]]
-[[API>>http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html]]
-[[Docjar>>http://www.docjar.com/]]
-[[GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き)>>http://d.hatena.ne.jp/language_and_engineering/20120330/p1]]
-[[JPA + EJB + JSF による Web アプリケーション>>http://d.hatena.ne.jp/redcat_prog/20130515/1368567953]]
-[[Features of Spring (TECHSCORE)>>http://www.techscore.com/tech/Java/Others/Spring/index/]]
-[[Spring:Bean定義の書き方が分からなくなった時のDI設定早見表>>http://www.omotenashi-mind.com/index.php/Spring%EF%BC%9ABean%E5%AE%9A%E7%BE%A9%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%8C%E5%88%86%E3%81%8B%E3%82%89%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AEDI%E8%A8%AD%E5%AE%9A%E6%97%A9%E8%A6%8B%E8%A1%A8]]
-[[JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等)>>http://d.hatena.ne.jp/tanakakns/20120508/1336467306]]
OutOfMemoryErrorが発生するタイミング
New領域が溢れた場合
New領域のオブジェクトはある程度の期間存在し続けるとOld領域へ移動される。しかし、移動する条件に達する前のオブジェクトで溢れる場合がある。
※JavaVMはNew領域が溢れそうな際ある程度New領域を広げる処理を行っているようだが、それでも溢れた場合はOutOfMemoryErrorとなる。
Old領域が溢れた場合
参照されつづけるオブジェクトが大量に存在する場合に溢れる。
Cヒープが溢れた場合
Javaのスレッドが大量に作成された場合に溢れる。
Cヒープが溢れてOutOfMemorryErrorが発生した場合、スタックトレースの先頭が「Native Method」である。
http://www.itmedia.co.jp/enterprise/articles/0907/10/news002.html
http://d.hatena.ne.jp/oknknic/20111203/1322892986
調査の難しい「OutOfMemoryError」事例、5選(http://www.atmarkit.co.jp/ait/articles/1003/11/news091.html)
スレッド数はOSのパラメタで設定されており、それが大きな値で設定されている場合に発生する。
Linuxの場合、「cat /proc/sys/kernel/threads-max」で確認することができ、「/etc/sysctl.conf」ファイルの「kernel.threads-max」で設定される。
http://d.hatena.ne.jp/Fiore/20080310/1205155154
Linuxで起動中のJavaプロセスのスレッド数を確認する方法に「ps -efL | grep -e java | grep -v grep | wc -l」等がある。
http://d.hatena.ne.jp/rx7/20101219/p1
-[[404 Blog Not Found ajax - 文字化け判定表>>http://blog.livedoor.jp/dankogai/archives/50809008.html]]
-[[日本の文字コード>>http://www.asahi-net.or.jp/~ax2s-kmtn/character/japan.html]]
--いろいろ
-[[HTML変換処理>>http://homepage1.nifty.com/masada/cyber/javahtmlparser.htm]]
--httpでの通信からxml解析まで
-[[Java Open Source>>http://www.java2s.com/Open-Source/Java/CatalogJava.htm]]
--[[HttpsURLConnectionOldImpl>>http://www.java2s.com/Open-Source/Java/6.0-JDK-Modules-com.sun/net/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java.htm]]
-[[Javaで入力チェックに使える正規表現まとめ>>http://daipresents.com/2008/java_regex/]]
半角英字
^[a-zA-Z]+$
ex => abcdefghijklmnopqrstuvwxyz
半角数字
^[0-9]+$
ex => 0-9
半角記号
^[ -/:-@\[-\`\{-\~]+$
ex => 半角空白!”#$%&’()*+-.,/:;<=>?@[\]^_`{|}~
半角英数字
^[a-zA-Z0-9]+$
ex => abcdefghijklmnopqrstuvwxyz0123456789
半角英数字記号
^[a-zA-Z0-9 -/:-@\[-\`\{-\~]+$
ex => abcdefghijklmnopqrstuvwxyz0123456789半角空白!”#$%&’()*+-.,/:;<=>?@[\]^_`{|}~
半角カタカナ
<span class="goog_qs-tidbit goog_qs-tidbit-0">^[。-゚+]+$</span>
ex => ー。「」、・ヲァィゥェォャュョッタアイウエオカキクケコサシスセソミチツテトナニヌネノハヒフヘホマムメモヤユヨラリルレロワン゙゚
ひらがな
^[ぁ-ゞ]+$
ex => あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんぁぃぅぇぉっゃゅょがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽゑヴ繧輔v繧吶z゛゜ゝゞ
カタカナ
^[ァ-ヶ]+$
ex => ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
漢字
^[一-龠]*$
全角文字
^[^ -~。-゚]+$
半角以外としているのがポイント。
桁数を指定(1桁から5桁)
^[a-zA-Z0-9]{5,10}$
5桁以上の繰り返し
^[a-zA-Z0-9]{5,}$
5桁以下の繰り返し
^[a-zA-Z0-9]{1,5}$
定数(trueもしくはfalse)
^true$|^false$
-システムプロパティのコンソール出力
public static void viewSystemProperties() {
// システムプロパティを全て出力
// インナークラスとしてそのまま持っていけます
new Object() {
void viewSystemProperties() {
java.util.Properties p = System.getProperties();
java.util.TreeMap<Object, Object> map = new java.util.TreeMap<Object, Object>();
map.putAll(p);
java.util.Iterator<Object> itr = map.keySet().iterator();
while (itr.hasNext()) {
String key = (String) itr.next();
String value = (String) map.get(key);
System.out.println(key + "=" + value);
}
}
}.viewSystemProperties();
}
-[[Javaでのファイルダウンロードについて>>http://otn.oracle.co.jp/forum/message.jspa?messageID=11007009]]
#amazon2(468x60)
EOF