約 3,965,438 件
https://w.atwiki.jp/kurowal/pages/13.html
java関連のブックマーク java覚え書き入出力 条件分岐 キャスト 書式 時刻表示 java関連のブックマーク java Platform, Standard Edition 6 javaの関数を調べれる javaの勉強 現在勉強中のページ EclipseとCVSの連携 Eclipseを用いて開発を行う際のCVS利用方法 java覚え書き 入出力 キーボード入力 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine; ファイル読み込み BufferedReader br = new BufferedReader(new FileReader(new File(fileNameIn))); ファイル書き込み BufferedWriter bw = new BufferedWriter(new FileWriter(new File(fileNameOut))); 書き込みの最後に bw.flush(); bw.close(); をしておくこと。 エラー出力 e.printStackTrace(new PrintWriter(new FileWriter("log.txt"))); 条件分岐 swich文 switch( dayOfWeek ){ case 月 System.out.println("Monday"); break; default System.out.println("そのような曜日はありません"); } キャスト String - int Integer.valueOf(str).intValue(); 継承関係にあるクラスのダウンキャスト(親のオブジェクトを子のクラスにする) if(親の参照変数 instanceof 子のクラス名){ 子のクラス名 参照変数 = (子のクラス名)親の参照変数; } 書式 配列の宣言 データ型[] 配列名 = new データ型名[要素数]; データ型[] 配列名 = {初期値, 初期値, ・・・, 初期値}; インターフェース(インターフェース側) 修飾子 intergace インターフェース名{ 定数の定義 抽象メソッドの定義 } (戻り値 メソッド名(データ型 変数名);//例) インターフェース(実装側) class クラス名 implements インターフェース名{ メソッドのオーバーライド } 抽象クラス(スーパークラス側) abstract class クラス名{ } 抽象メソッド(スーパークラス側) public abstract 戻り値の型 メソッド名(引数リスト); (メソッド定義の後が{}でなく、;になっているので注意) 時刻表示 表示フォーマットの変更 String dateStr = (new SimpleDateFormat("yyyy/MM/dd HH mm ss")).format(new Date());
https://w.atwiki.jp/java_pro/pages/27.html
import java.io.*; public class Copy1_2 { public static void main(String[] args){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String line = reader.readLine(); while (line.charAt(0) != a ){ System.out.println(line); line = reader.readLine(); } System.out.println("終了します"); } catch (IOException e){ System.out.println(e); } } }
https://w.atwiki.jp/cz8686/pages/13.html
[JavaScript] 数値チェック function CheckNum(value) { var str = value; if ( isNaN(str) == true ){ return false; } return true; } ▼使用例 ※数値でない場合(falseを返す場合)、フラグを立てる。 if ( CheckNum(form_value) == false) { numFlg = 1; } [JavaScript] DHTMLによる表示・非表示 script language="JavaScript" !-- function show(id) { if (document.all) { document.all.item(id).style.visibility = "visible"; } else if (document.layers) { document.layers[id].visibility = "show"; } else if (document.getElementById) { document.getElementById(id).style.visibility = "visible"; } } function hide(id) { if (document.all) { document.all.item(id).style.visibility = "hidden"; } else if (document.layers) { document.layers[id].visibility = "hide"; } else if (document.getElementById) { document.getElementById(id).style.visibility = "hidden"; } } // -- /script a href="wwwssi.htm" onmouseover="show( id1 )" onmouseout="hide( id1 )" SSI入門 /a span id=id1 style="visibility hidden" ilayer name=id1 visibility="hide" - 「とほほのSSI入門」にジャンプします。 /ilayer /span br a href="wwwcgi.htm" onmouseover="show( id2 )" onmouseout="hide( id2 )" CGI入門 /a span id=id2 style="visibility hidden" ilayer name=id2 visibility="hide" - 「とほほのCGI入門」にジャンプします。 /ilayer /span [JavaScript] DHTMLサンプル HTML HEAD Script Language="JavaScript" Type="text/javascript" !-- function test1(){ // 色の変更 document.all("T1").style.color="red"; // フォーム背景色の変更 document.all("T2").style.backgroundColor="red"; // inntertext の変更 document.all("T3").innerText = "kakikukuko"; // innerHTML の変更 document.all("T4").innerHTML = " TEXTAREA fadsfdaf br dfafdaf /TEXTAREA " } // -- /Script /HEAD BODY FORM NAME="f1" INPUT TYPE="TEXT" NAME="TEST1" VALUE="AAAAA" ID="T1" INPUT TYPE="TEXT" NAME="TEST2" VALUE="あいうえお" ID="T2" BR DIV ID="T3" かきくけこ /DIV BR DIV ID="T4" abcdefg /DIV INPUT TYPE="BUTTON" VALUE="テスト" onClick="javascript test1();" /FORM /BODY /HTML [JavaScript] ブラウザの戻るボタンを無効にする (戻りたくない画面に) SCRIPT history.forward(); /SCRIPT を記述しておく [JavaScript] 右クリック禁止1 Script Language="JavaScript" Type="text/javascript" !-- function notes(eve){ if(document.all){ /*IEの場合*/ if(event.button == 2){ alert("右クリック禁止!"); return false; } } if(document.layers){ /*Netscape4.Xの場合*/ if(eve.which == 3){ alert("右クリック禁止!!"); return false; } } } if(document.layers)document.captureEvents(Event.MOUSEDOWN); document.onmousedown=notes; // -- /Script [JavaScript] 右クリック禁止2 BODY oncontextmenu="alert( 右クリックは禁止です。 );return false;" BGCOLOR="#C0C0C0" TEXT="#000000" ALINK="RED" VLINK="BLUE" [JavaScript] 新規Windowオープン(GET引数) function new_window_open2 (a,b,c,d,e,f){ if (f==""){f="no";} var w = window; if ((w == window) || win_00.closed) { w = open("",b,"width="+c+",height="+d+",toolbar=no,menubar="+f+",location=no,scrollbars="+e+",status=yes,resizable=yes"); w.document.write(" marquee "); w.document.write(" span style= font bold;color #ff0000;font-size 10pt; "); w.document.write("ただいま処理しております。 br しばらくお待ちください。"); w.document.write(" /span "); w.document.write(" /marquee "); w.location.replace(a); } else { w.location.replace(a); } w.focus(); return(w); } ▼使用例 Script Language="JavaScript" Type="text/javascript" !-- function PAGE_TEST1(){ var w_url="PAGE_TEST1I"+ "?W_FORM_NAME1=form1.W_KYU_KUNITOSHI_CD"+ " W_FORM_NAME2=form1.W_KYU_KUNI_MEI"+ " W_FORM_NAME3=form1.W_KYU_TOSHI_MEI"+ ""; } // -- /Script [JavaScript] 全角文字チェック function CheckZenkaku(str){ str2 = str.replace(/[ ]/g,""); for (var i = 0; i str2.length; i++) { var c = str2.charCodeAt(i); // Shift_JIS 0x0 ~ 0x80, 0xa0 , 0xa1 ~ 0xdf , 0xfd ~ 0xff // Unicode 0x0 ~ 0x80, 0xf8f0, 0xff61 ~ 0xff9f, 0xf8f1 ~ 0xf8f3 if ( (c = 0x0 c 0x81) || (c == 0xf8f0) || (c = 0xff61 c 0xffa0) || (c = 0xf8f1 c 0xf8f4)) { return false; } } return true; } ▼使用例 if (CheckZenkaku(form_value) == false) { message = message + "氏名に全角以外の文字が含まれています\nすべて全角文字で入力してください"; alert(message); return false; } [JavaScript] 送信ボタン連打防止 ●ボタン連打を防ぐ ///////////////////////////////////////////////////////// ■使用方法 :以下の文をカットアンドペーストして使う ■説明 :サブミット時のボタン連打を防ぐ ///////////////////////////////////////////////////////// SCRIPT LANGUAGE="JavaScript" !-- sent = false; function send_check(){ if(sent){ return false; }else{ sent = true; return true; } } // -- /SCRIPT ●別例 二重投稿禁止 form onsubmit="for (i=0;i this.length;i++) {if (this[i].type == submit ) this[i].disabled = true}" フォームのボタンは、たまにですが過敏に反応しすぎて二度押したように判断する時があります。 例えば掲示板なら、同じ記事を即時に二回送信してしまうわけです。 このパターンの二重投稿はJavaScriptで回避できるのでした。 [JavaScript] 日付(YYYYMMDD)妥当性チェック関数 ※ myGetYearとセットで使用 function CheckDate(value) { var flg; var year; var month; var date; flg = value.match(/(\d{8})/); if ( !flg ) { return false; }else{ year = value.substring(0,4); month = value.substring(4,6); date = value.substring(6,8); newdate = new Date(year,month-1,date) if ( myGetYear(newdate) != year || (newdate.getDate() != date) || (month != newdate.getMonth()+1)) { return false; } return true; } } function myGetYear(dobj) { var year ; year = dobj.getYear() ; if (year 1900) { year += 1900; } return year; } [JavaScript] 履歴を残さずに画面遷移 HTML HEAD TITLE /TITLE SCRIPT language="JavaScript" !-- function pageReplace(){ window.location.replace("history9.htm"); } // -- /SCRIPT /HEAD BODY CENTER A href="javascript pageReplace()" 指定したページへ移動 /A BR BR FORM INPUT type="button" value="指定したページへ移動" onClick="pageReplace()" /FORM /CENTER /BODY /HTML [javascript] WindowOpen用の共通関数 function new_window_open2 (a,b,c,d,e,f){ if (f==""){f="no";} var w = window; if ((w == window) || win_00.closed) { w = open("",b,"width="+c+",height="+d+",toolbar=no,menubar="+f+",location=no,scrollbars="+e+",status=yes,resizable=yes"); w.document.write(" marquee "); w.document.write(" span style= font bold;color #ff0000;font-size 10pt; "); w.document.write("ただいま処理しております。 br しばらくお待ちください。"); w.document.write(" /span "); w.document.write(" /marquee "); // w.location.href=a; w.location.replace(a); } else { // w.location.href=a; w.location.replace(a); } w.focus(); return(w); }
https://w.atwiki.jp/ce00582/pages/1250.html
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; import java.awt.BasicStroke; public class tax34 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); tax34 app = new tax34(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 500, 500); frame.setTitle("練習"); frame.setVisible(true); } public void paintComponent(Graphics g){ int n; double data[]=new double[101]; Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); data=tax(); for (n=1;n 100;n++){ g2.draw(new Line2D.Double(5*n, 500-100*data[n], 5*n+5,500-100*data[n+1])); } } static double[] tax(){ double th[]= new double[101]; double c[]= new double[101]; double y[]= new double[101]; int opc[]= new int[101]; int opy[]= new int[101]; int opq[]= new int[101]; double u[][][]=new double[101][3][3]; double ww[][][]=new double[100][3][3]; double v[][][][]=new double[100][3][3][21]; int gotoc[][][][]=new int[100][3][3][21]; int gotoy[][][][]=new int[100][3][3][21]; int gotoq[][][][]=new int[100][3][3][21]; double endv[][]=new double[3][3]; int endc[][]=new int[3][3]; int endy[][]=new int[3][3]; int endq[][]=new int[3][3]; int s; double ls; double w; double cs; double ys; double b1; double b2; double wel; double maxwel; int t; int n; int n1; int n2; int pp; int q; int j; double c1; double l1; double h; double u1; int ns1; int ns2; int qx; int nx1; int nx2; double vs; double v1; double maxv; double dc; double dy; int e; double data1[]=new double[101]; double data2[]=new double[201]; data1=ex1(); data2=ex2(); for (s=1;s 101;s++){ c[s]=data2[s]; y[s]=data2[s+100]; } for (s=1;s 101;s++){ th[s]=data1[s]; } h=0.001; t=0; while(t 1000){ for (s=1;s 101;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s]; u1=ux(c1,l1); u[s][n1+1][n2+1]=u1; } } } for (s=1;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s+1]; u1=ux(c1,l1); ww[s][n1+1][n2+1]=u1; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ v[1][n1+1][n2+1][q+10]=-999; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ q=n2-n1; v[1][n1+1][n2+1][q+10]=u[1][n1+1][n2+1]; } } for (s=2;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ u1=u[s][n1+1][n2+1]; qx=q-n1+n2; pp=0; if (qx 10)pp=100; if (qx -10)pp=100; if (pp 50)qx=0; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[s-1][nx1+1][nx2+1][qx+10]; if (ww[s-1][nx1+1][nx2+1] u1)v1=-999; if (v1 vs)ns1=nx1; if (v1 vs)ns2=nx2; if (v1 vs)vs=v1; } } if (pp 50)vs=-999; gotoc[s][n1+1][n2+1][q+10]=ns1; gotoy[s][n1+1][n2+1][q+10]=ns2; gotoq[s][n1+1][n2+1][q+10]=qx; v[s][n1+1][n2+1][q+10]=vs; } } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ u1=u[100][n1+1][n2+1]; qx=n2-n1; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[99][nx1+1][nx2+1][qx+10]; if (ww[99][nx1+1][nx2+1] u1){ v1=-999; } if (v1 vs){ ns1=nx1; } if (v1 vs){ ns2=nx2; } if (v1 vs){ vs=v1; } } } endc[n1+1][n2+1]=ns1; endy[n1+1][n2+1]=ns2; endq[n1+1][n2+1]=qx; endv[n1+1][n2+1]=vs; } } maxv=-999; ns1=0; ns2=0; for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ if (endv[n1+1][n2+1] maxv){ ns1=n1; } if (endv[n1+1][n2+1] maxv){ ns2=n2; } if (endv[n1+1][n2+1] maxv){ maxv=endv[n1+1][n2+1]; } } } opc[100]=ns1; opy[100]=ns2; opc[99]=endc[opc[100]+1][opy[100]+1]; opy[99]=endy[opc[100]+1][opy[100]+1]; opq[99]=endq[opc[100]+1][opy[100]+1]; for (j=1;j 99;j++){ s=99-j; opc[s]=gotoc[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opy[s]=gotoy[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opq[s]=gotoq[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; } e=0; for (s=1;s 101;s++){ e=e+opc[s]*opc[s]+opy[s]*opy[s]; } for (s=1;s 101;s++){ c[s]=c[s]+opc[s]*h; y[s]=y[s]+opy[s]*h; } System.out.println(e); if (e 2){ h=h/2; } if (h 0.00001){ t=10000; } t=t+1; } for (s=1;s 100;s++){ dy=y[s+1]-y[s]; dc=c[s+1]-c[s]; if (dy 0)System.out.println(1-dc/dy); } return c; } static double[] ex2(){ double th[]= new double[101]; int s; double tl; double tr; double ls; double w; double cs; double ys; double b1; double b2; double tr1; double tr2; double tr3; double wel; double maxwel; double maxtl; double maxtr; int t; int n; double h; double c[]= new double[101]; double y[]= new double[101]; double data1[]=new double[101]; double data[]=new double[201]; int n1; int n2; data1=ex1(); for (s=1;s 101;s++){ th[s]=data1[s]; } maxwel=-999; maxtr=0; maxtl=0; for (n=20;n 45;n++){ tl=0.01*n; tr1=0.01; tr2=0.02; tr=tr1; b1=bud(tl,tr1,th); t=0; while (t 100) { b2=bud(tl,tr2,th); tr3=tr2-b2*(tr2-tr1)/(b2-b1); tr1=tr2; tr2=tr3; b1=b2; if (b2*b2 0.00001)t=1000; t=t+1; } tr=tr2; wel=seekwel(tl,tr,th); if (wel maxwel)maxtl=tl; if (wel maxwel)maxtr=tr; if (wel maxwel)maxwel=wel; } tl=maxtl; tr=maxtr; for (s=1;s 101;s++){ w=(1-tl)*th[s]; ls=(w-tr)/(2*w); if (ls 0)ls=0; c[s]=w*ls+tr; y[s]=th[s]*ls; } for (s=1;s 101;s++){ data[s]=c[s]; data[s+100]=y[s]; } return data; } static double ux(double c1,double l1){ double u1; double c3; double l3; int pp; pp=0; c3=c1; l3=l1; if (c3 0)pp=100; if (l3 0)pp=100; if (l3 1)pp=100; if (pp 50)c3=0.5; if (pp 50)l3=0.5; u1=Math.log(c3)+Math.log(1-l3); if (pp 50)u1=-999; return u1; } static double bud(double tl,double tr,double th[]){ double bx; int s; double w; double y1; double c1; double l1; bx=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; y1=th[s]*l1; c1=w*l1+tr; bx=bx+y1-c1; } return bx; } static double seekwel(double tl,double tr,double th[]){ double sw; int s; double w; double l1; double c1; sw=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; c1=w*l1+tr; sw=sw+ux(c1,l1); } return sw; } static double[] ex1(){ double p; double mu; double sig; double yy; double th[]= new double[101]; int s; mu=0; sig=0.39; for (s=1;s 101;s++){ p=0.01*s-0.005; yy=seeky(p,mu,sig); th[s]=Math.exp(yy); } return th; } static double f(double x,double mu,double sig){ double pi,x1,x2,x3,fx; pi = 3.1415; x1=-Math.pow(x - mu,2) / (2*Math.pow(sig,2)); x2=Math.exp(x1); x3=sig*Math.pow(2*pi,0.5); fx=x2/x3; return fx; } static double g(double y,double mu, double sig){ double gx,h,x; int n,t; gx=0; h=0.001; t=(int)(y/h); for (n=-2000;n t;n++){ x=n*h; gx=gx+f(x,mu,sig)*h; } return gx; } static double seeky(double p,double mu,double sig){ double g1,g2,y1,y2,y3; int t; y1=0.4; y2=-0.2; g1=g(y1,mu,sig); t=0; while(t 100){ g2=g(y2,mu,sig); y3=y2+(p-g2)*(y2-y1)/(g2-g1); y1=y2; y2=y3; g1=g2; if (Math.pow(p-g2,2) 0.0001)t=1000; t=t+1; } return y2; } }
https://w.atwiki.jp/creation/pages/12.html
Java Communication API Javaからシリアル・パラレルポートを制御するためのAPI。ネイティブメソッドを使用している。 http //java.sun.com/products/javacomm/index.jsp Javadoc http //java.sun.com/products/javacomm/javadocs/javax/comm/package-summary.html ※なぜかNon-Frameバージョンしかない。 なお、3rd Partyではあるが、 RXTXはJava CommAPI互換の上にI2C、RS485にも対応した実装を行っている。また対応するOSもWin32、Linux、Macと主要なものを網羅している。 パッケージ名が違うので注意。 バージョン 最新版は3.0Update1(2006年3月現在)。 対応するポート 現在対応しているor使用できるポートは以下の通りです。 シリアルポート(RS-232C) パラレルポート また下記はWindowsXP+ USB-シリアル変換器での動作を確認しています。 シリアルポート(RS-422) シリアルポート(RS-485) RS-422,485においてもCommAPIの使用方法はRS-232Cとまったく同じです。 対応するOS Windows Sunがサポートしている。 ※2005年11月15日現在ダウンロードできなくなっている。バイナリの機能はJREに標準装備されたとの噂もあるが、真相は定かではない。現在下記の方法で使える可能性があるらしいが、現在検討中。 Java Comm APIのlinux版をSunのサイトからダウンロード jre/libにjavax.comm.propertiesをコピー jre/lib/extにcomm.jarをコピー 以上 追記(2005/11/15):やはり上記ではうまくいかないようだ。 jre/binにwin32com.dllがないから?? また裏技的に、下記のサイト http //www-06.ibm.com/jp/developerworks/ibm/020913/j_i-barcd.html の最下部にある「必要なcommポート・ファイルをダウンロードしてください。」というリンクをクリックすると以前のcomm.jar,javax.comm.properties,win32com.dllをダウンロードすることが出来る。 Sun公式サイト http //java.sun.com/products/javacomm/downloads/index.html 参考 http //www.okakogi.go.jp/People/miwa/program/how2com/how2com.html RXTXも使用可能。 http //www.rxtx.org/ Solaris Sunがサポートしている。 Sun Microsystems http //java.sun.com/products/javacomm/downloads/index.html Linux 数年前からサンが正式にサポートしている。 http //java.sun.com/products/javacomm/downloads/index.html RXTXも使用可能。 http //www.rxtx.org/ 参考 http //www.viste.com/Java/CommAPI/CommAPI.htm http //www.viste.com/Java/CommAPI/install-japanese.html http //www.tini.prug.or.jp/linuxinstall.html IBM版もある。 IBMJava2-JAVACOMM http //www.novell.com/products/linuxpackages/enterpriseserver/i386/ibmjava2-javacomm.html JCLという物もあったらしい。が、RXTXに吸収されているらしい。 JCL http //www.geeksville.com/~kevinh/linuxcomm.html Mac 下記を使えばいいらしいが詳細は不明。動くかどうかも不明。使った方はご一報を。 http //homepage.mac.com/pcbeard/javax.comm.MRJ/ RXTXは使用可能。 http //www.rxtx.org/ 自作 下記を使えばどんなOSにも対応可能。というか、C言語の雛形しかないので、その先は自作する必要がある。腕に自身のある人向け。 http //www.openje.org/kommapi/ 製品版 Serialio.com SerialPort 製品版のため有償だが、PCから組み込みまで幅広いプラットフォームをサポートしている。 https //serialio.com/products/serialport/serialport.htm CommPortIdentifier CommPortIdentifierを使うとパラレル・シリアル両ポートの高度な制御が可能となる。 具体的には 名前によるポートの取得(COM1,/dev/ttyS0など) 使用可能なポート名のリストの取得 オーナー名を付けたポートのオープン オーナー情報を利用したポートのコントロール などなど。Serial,Pararellにとらわれず、抽象的にコントロールできる。 なお、初期化はコンストラクタではなく CommPort port = CommPortIdentifier.getPortIdentifier("COM1"); のように行う。 使用可能なポートの取得 COM1や/dev/ttyS0などの機種やOSに依存する名前をソースコード中にハードコーディング{{fn ソース中に変更不可能な形で記述してしまうこと。特に文字列を決め打ちしてしまうことを指す場合が多い。}}するのはJavaの性質上好ましくない。 また、名前は合っていても、機種によってはそのポートは実際には存在しないことも多い。(特にノートパソコンなど) そこでポート名を動的に取得し、GUIやコマンドラインから対話的にポートを選択するようにプログラムするのが最もスマートな方法だと言える。 使用可能なポート名を取得するには次のような方法を使う。 CommPortIdentifier portId; ArrayList list = new ArrayList(); Enumeration en = CommPortIdentifier.getPortIdentifiers(); while (en.hasMoreElements()) { portId = (CommPortIdentifier) en.nextElement(); list.add(portId.getName()); } シリアルポートだけ取得する場合は CommPortIdentifier portId; ArrayList list = new ArrayList(); Enumeration en = CommPortIdentifier.getPortIdentifiers(); while (en.hasMoreElements()) { portId = (CommPortIdentifier) en.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { list.add(portId.getName()); } } という風に条件を付ける。 パラレルの場合はPORT_SERIALをPORT_PARALLELにする。 北陽電機(HOKUYO)製の測域センサURGの距離取得プログラム例 URG-X04LX(プロトコルはSCIP1.0)に対応(してるはず)。 下記の添付ファイルをダウンロードしてください。 ※各自の責任において使用してください。作者は一切の責任を負いかねます。 リンク FA のための Java プログラミング講座 http //www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.html http //www.javainthebox.net/JavaForFA/08-09CommAPI/No.09/commapi2.html
https://w.atwiki.jp/goemode/pages/12.html
GC ( Garbage Collection )Scavenge GC Full GC 起動オプション プロセスIDを確認 現在の割り当てをみる ガーベージコレクションの統計情報を確認 参考 とりあえず読んどけ とりあえずメモ GC ( Garbage Collection ) Scavenge GC New 領域が不足した場合に実行され、主に New 領域が対象です。比較的、頻繁に行われ、短い時間で処理が終わります。 Full GC New 領域、Old 領域、Permanent 領域が不足した場合に実行されます。 起動オプション 起動オプション 各値の初期値は、各値の最大値と同じ大きさに設定すること -Xms=256M -Xmx=256M -XX PermSize=128M -XX MaxPermSize=128M -Xms ヒープ全体の初期値 -Xmx ヒープ全体の最大値 -XX NewSize New 領域の初期値 -XX MaxNewSize New 領域の最大値 -XX PermSize Permanent 領域の初期値 -XX MaxPermSize Permanent 領域の最大値 プロセスIDを確認 # jps 3011 Jps 3098 Bootstrap 現在の割り当てをみる # jmap -heap [プロセスID] ガーベージコレクションの統計情報を確認 上記のBootstrapのプロセスIDを基に以下で1秒おきに統計を取得 # jstat -gcutil [プロセスID] 1000 [[見方 http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gcutil_option]] | color(gray){列}|説明| |S0|Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ) | |S1|Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ) | |E|Eden 領域の使用率 (現在の容量に対するパーセンテージ) | |O|Old 領域の使用率 (現在の容量に対するパーセンテージ) | |P|Permanent 領域の使用率 (現在の容量に対するパーセンテージ) | |YGC|Young 世代の GC イベント数 | |YGCT|Young 世代のガベージコレクション時間 | |FGC|フル GC イベント数 | |FGCT|フルガベージコレクション時間 | |GCT|ガベージコレクション総時間 | 参考 [[@IT Javaパフォーマンスチューニング 第3回 Javaのヒープ・メモリ管理の仕組み http //www.atmarkit.co.jp/fjava/rensai3/devedge03/devedge03_1.html]] [[@IT:連載:J2EEパフォーマンスチューニング http //www.atmarkit.co.jp/fjava/rensai/j2eeprfm04/j2eeprfm04_1.html]] [[SUN jstat(Java 仮想マシン統計データ監視ツール)のマニュアル http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gc_option]] [[SUN jps(Java 仮想マシンプロセスステータスツール)のマニュアル http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jps.html]] [[Servletシステムのパフォーマンスチューニング http //www.ingrid.org/java/jserv/performance/]] [[事例に学ぶWebシステム開発のワンポイント(6) http //www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html]] [[事例に学ぶWebシステム開発のワンポイント(9) http //www.atmarkit.co.jp/fjava/rensai2/webopt09/webopt09.html]] とりあえず読んどけ http //www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html とりあえずメモ http //www.ginnokagi.com/2008/03/tomcatjvmjava_virtual_machine.html http //blog.livedoor.jp/surabaya/archives/51383872.html http //amsoft.minidns.net/node/132 http //symple.jp/66.html
https://w.atwiki.jp/dbdbdbdb/pages/23.html
ここはjava会 課題研究java班です はい 課研の時以外はSkypeで活動してます その名も 『Java会議室』 その中に2つの派閥があります java会1 サトル (全体の編集とかその他諸々、ストーリーも) 圧力ナベ@ (変数・乱数・関数プログラム制作) けん (グラフィック) 吾郎 (ボタン係) 夏休みも絶賛javaっておりまーす アプレットとボタンに苦戦中 現在、基本システムを創意製作中。 まぁ最悪の場合無駄になるかもしれないけど。(by圧力ナベ) java会2 そんちゅ ナチュラルテイスト(㊥はSkype未参加) こっちの状況は知りません そんちゅか姐さんに聞いてください 完成したらここに貼っときます 同時に攻略wikiも作る予定 編集:吾郎 協力:javaの皆さん 外部協力者:我らが太田先生(重要)
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/ce00582/pages/1270.html
import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import java.awt.*; import javax.swing.*; import com.sun.j3d.utils.geometry.*; public class ex65 { public static void main(String[] args) { ex65 test = new ex65(); } public ex65() { JFrame frame = new JFrame(); frame.setSize(250,250); frame.setTitle("ex65"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(g_config); canvas.setBounds(0,0,250,250); cp.add(canvas); SimpleUniverse universe = new SimpleUniverse(canvas); frame.setVisible(true); BranchGroup group1 = new BranchGroup(); Sphere sphere = new Sphere(0.5f); group1.addChild(sphere); universe.addBranchGraph(group1); } }
https://w.atwiki.jp/honeybe/pages/24.html
Temp JavaからOracleのストアドプロシージャ、ストアドファンクション、パッケージを呼び出す際の注意点 SQLデータ型とJDBCタイプコード、Java型の対応 標準JDBC 1.0 型 SQL型 JDBCタイプ 標準Java型 Oracle 拡張機能Java 型 CHAR java.sql.Types.CHAR java.lang.String oracle.sql.CHAR VARCHAR2 java.sql.Types.VARCHAR java.lang.String oracle.sql.CHAR LONG java.sql.Types.LONGVARCHAR java.lang.String oracle.sql.CHAR NUMBER java.sql.Types.NUMERIC java.math.BigDecimal oracle.sql.NUMBER NUMBER java.sql.Types.DECIMAL java.math.BigDecimal oracle.sql.NUMBER NUMBER java.sql.Types.BIT boolean oracle.sql.NUMBER NUMBER java.sql.Types.TINYINT byte oracle.sql.NUMBER NUMBER java.sql.Types.SMALLINT short oracle.sql.NUMBER NUMBER java.sql.Types.INTEGER int oracle.sql.NUMBER NUMBER java.sql.Types.BIGINT long oracle.sql.NUMBER NUMBER java.sql.Types.REAL float oracle.sql.NUMBER NUMBER java.sql.Types.FLOAT double oracle.sql.NUMBER NUMBER java.sql.Types.DOUBLE double oracle.sql.NUMBER RAW java.sql.Types.BINARY byte[] oracle.sql.RAW RAW java.sql.Types.VARBINARY byte[] oracle.sql.RAW LONGRAW java.sql.Types.LONGVARBINARY byte[] oracle.sql.RAW DATE java.sql.Types.DATE java.sql.Date oracle.sql.DATE DATE java.sql.Types.TIME java.sql.Time oracle.sql.DATE DATE java.sql.Types.TIMESTAMP javal.sql.Timestamp oracle.sql.DATE 標準JDBC 2.0 型 SQL型 JDBCタイプ 標準Java型 Oracle 拡張機能Java 型 BLOB java.sql.Types.BLOB java.sql.Blob oracle.sql.BLOB CLOB java.sql.Types.CLOB java.sql.Clob oracle.sql.CLOB ユーザー定義オブジェクト java.sql.Types.STRUCT java.sql.Struct oracle.sql.STRUCT ユーザー定義参照 java.sql.Types.REF java.sql.Ref oracle.sql.REF ユーザー定義コレクション java.sql.Types.ARRAY java.sql.Array oracle.sql.ARRAY Oracle 拡張機能 SQL型 JDBCタイプ 標準Java型 Oracle 拡張機能Java 型 BFILE oracle.jdbc.OracleTypes.BFILE 利用不可 oracle.sql.BFILE ROWID oracle.jdbc.OracleTypes.ROWID 利用不可 oracle.sql.ROWID REF CURSOR 型 oracle.jdbc.OracleTypes.CURSOR java.sql.ResultSet oracle.jdbc.OracleResultSet 対応外のものは使用不可能? すくなくともBoolean型は使用不可能。 参考: JDBC 開発者ガイドおよびリファレンス第3章:基本機能データ型マッピング 第19章:コーディングのヒントおよびトラブルシューティングPL/SQLストアドプロシージャのブール型パラメータ