約 3,965,441 件
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ストアドプロシージャのブール型パラメータ
https://w.atwiki.jp/ce00582/pages/1251.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 tax33 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); tax33 app = new tax33(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 500, 500); frame.setTitle("Mirrlees(1971)の追試"); frame.setVisible(true); } public void paintComponent(Graphics g){ int n; double data[]=new double[201]; 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-500*data[n], 5*n+5,500-500*data[n+1])); g2.draw(new Line2D.Double(5*n, 500-500*data[n+100], 5*n+5,500-500*data[n+101])); } } 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]; double data3[]=new double[201]; double maxy; 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; } maxy=-999; for (s=1;s 101;s++){ if (y[s] maxy)maxy=y[s]; } for (s=1;s 101;s++){ data3[s]=c[s]/maxy; data3[s+100]=y[s]/maxy; } return data3; } 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/ohden/pages/336.html
Java SDKのinstall方法。 【for Ubuntu 10.04 LTS】 環境 Ubuntu 10.04 LTS Install $ sudo apt-get install sun-java6-jdk 上記コマンドでpkgが見つからない場合は、 $ sudo add-apt-repository "deb http //archive.canonical.com/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk で、よう見んとしょったら...何かエラー出た...(..;) 色々やって結局、 $ sudo apt-get -f install ってやったらなんやかんや入れる事できたが... 『-f』ってなんだ? 説明読んでもようわからんが、壊れたインストール情報を修正するような機能なんかな? 一応、正しいパターンは、apt-getした後しばらくするとTUI環境が立ち上がる。 tab、space押下で次へ、選択肢のYes/Noはライセンスへの同意なので『Yes』を選択。 ちゃんと入ってれば、 $ java -version java version "1.6.0_22"Java(TM) SE Runtime Environment (build 1.6.0_22-b04)Java HotSpot(TM)Client VM (build 17.1-b03, mixed mode, sharing) $ javac -version javac 1.6.0_22 てな感じにversionが表示される。 過去のversionのInstall Linux向けのアーカイブを取得しようとすると2種類ある。 『.rpm.bin』はRedhut系のみなので、Debian系であるUbuntuは『.bin』を取得する。 Java Development Kit 5.0 Update 22jdk-1_5_0_22-linux-i586-rpm.bin 45.71 MBJava Development Kit 5.0 Update 22jdk-1_5_0_22-linux-i586.bin 47.46 MB link先をwgetすれば良いのですが... $ wget http //cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_22-linux-i586.bin?BundledLineItemUUID=K_GJ_hCygGwAAAEu3qUIRzOD OrderID=nM2J_hCy6XIAAAEuwqUIRzOD ProductID=EW5IBe.nXqsAAAEk2Q5UGl.X FileName=/jdk-1_5_0_22-linux-i586.bin とかすると、変な名前で落ちた...これでえぇんじゃろうか? まぁ、気を取りなおして名前の修正 $ mv jdk-1_5_0_22-linux-i586.bin\?BundledLineItemUUID\=K_GJ_hCygGwAAAEu3qUIRzOD jdk-1_5_0_22-linux-i586.bin パーミッション変更。 $ chmod 755 jdk-1_5_0_22-linux-i586.bin インストールしたいdirを作成して、そこへ移動して実行。よう知らんが、カレントdirにinstallされるらしい。 $ sudo mkdir /usr/local/java $ cd /usr/local/java $ sudo ~/wk/jdk-1_5_0_22-linux-i586.bin ※jdkをhomeの下にwkってdir作って格納してたので... あとは環境設定。 $ cd $ vi .bashrc .bashrcの最後に以下を追記。 #JavaSDKJAVA_HOME=/usr/local/java/jdk1.5.0_22PATH=$JAVA_HOME/bin $PATHCLASSPATH=$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH ※exportすることで当該shから呼び出した子sh、孫shでも環境変数が有効になる。 コレで完了。jdk6、jreに限らず似た様な感じ。 JDK5を入れたいんだけど、見つからない場合は... /etc/apt/sources.listに以下を追加 ※8.04LTS参照先 deb http //us.archive.ubuntu.com/ubuntu/ hardy multiverse deb http //us.archive.ubuntu.com/ubuntu/ hardy-updates multiverse で、 $ sudo apt-get update $ sudo apt-get install sun-java5-jdk でokらしい。 更新日: 2011年05月31日 (火) 12時56分58秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/java_pro/pages/35.html
import java.io.*; public class Copy2_01 { public static void main(String[] args){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String line; while ((line = reader.readLine()) != null){ System.out.println("こんにちは、" + line + "さん!"); } } catch (IOException e){ System.out.println(e); } } }
https://w.atwiki.jp/naiwa/pages/45.html
http //java-ja.yoshiori.org/ ないわー
https://w.atwiki.jp/bdjen/pages/4.html
ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_174_ja.html たとえば、#news(wiki)と入力すると以下のように表示されます。 【グランサガ】リセマラ当たりランキング - グランサガ攻略wiki - Gamerch(ゲーマチ) マニュアル作成に便利な「画像編集」機能を提供開始! - ナレッジ共有・社内wikiツール「NotePM」 (2021年12月6日) - エキサイトニュース マニュアル作成に便利な「画像編集」機能を提供開始! - ナレッジ共有・社内wikiツール「NotePM」 - PR TIMES 「Wiki」創設者のPC 競売に - auone.jp 篠原悠希×田中芳樹が明かす「歴史ファンタジー小説ならではの悩み」(現代ビジネス) - Yahoo!ニュース - Yahoo!ニュース 【Apex Legends】ヴァルキリーの能力と評価【エーペックス】 - Gamerch(ゲーマチ) モンハンライズ攻略Wiki|MHRise - AppMedia(アップメディア) 【ウインドボーイズ】リセマラ当たりランキング(最新版) - ウインドボーイズ攻略Wiki - Gamerch(ゲーマチ) ポケモンBDSP(ダイパリメイク)攻略wiki - AppMedia(アップメディア) 【テイルズオブルミナリア】リセマラ当たりランキング - TOルミナリア攻略Wiki - Gamerch(ゲーマチ) SlackからWikiへ!シームレスな文章作成・共有が可能な「GROWIBot」リリース - アットプレス(プレスリリース) ドラゴンクエストけしケシ攻略Wiki - Gamerch(ゲーマチ) 【ウマ娘】チャンピオンズミーティングの攻略まとめ - Gamerch(ゲーマチ) 【ウマ娘】ナリタブライアンの育成論|URAシナリオ - Gamerch(ゲーマチ) サモンズボード攻略wiki - GameWith 【スタオケ】カード一覧【金色のコルダスターライトオーケストラ】 - Gamerch(ゲーマチ) 【スマブラSP】ソラのコンボと評価【スマブラスペシャル】 - Gamerch(ゲーマチ) 【ブレフロレゾナ】リセマラ当たりランキング【ブレイブフロンティアレゾナ】 - ブレフロR攻略Wiki - Gamerch(ゲーマチ) 【ポケモンユナイト】サーナイトの評価と性能詳細【UNITE】 - Gamerch(ゲーマチ) 【ガーディアンテイルズ】ギルドレイド戦(秘密の研究所)の攻略とおすすめキャラ【ガデテル】 - Gamerch(ゲーマチ) 【ENDER LILIES】攻略チャートと全体マップ【エンダーリリィズ】 - Gamerch(ゲーマチ) 【ウマ娘】あんしん笹針師の選択肢はどれを選ぶべき? - Gamerch(ゲーマチ) 【ポケモンユナイト】アップデート情報・キャラ調整まとめ - ポケモンユナイト攻略Wiki - Gamerch(ゲーマチ) 【Apex】シーズン11の新要素と最新情報まとめ【エーペックス】 - Gamerch(ゲーマチ) ロストジャッジメント攻略Wiki - Gamerch(ゲーマチ) 【Among us】新マップThe Airship(エアシップ)の解説【アモングアス】 - Gamerch(ゲーマチ) ハーネスについて小児科医の立場から考える(坂本昌彦) - 個人 - Yahoo!ニュース - Yahoo!ニュース ゼルダ無双攻略Wiki|厄災の黙示録 - AppMedia(アップメディア) ウマ娘攻略Wiki - AppMedia(アップメディア) ゲトメア(ゲートオブナイトメア)攻略Wiki - Gamerch(ゲーマチ) 【白夜極光】リセマラ当たりランキング - 白夜 極光 wiki - Gamerch(ゲーマチ) お蔵入りとなった幻の『スーパーマリオ』 オランダの博物館でプレイ可能?(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース ナレッジ共有・社内wikiツール「NotePM」が「ITreview Best Software in Japan 2021」のTOP50に選出 - PR TIMES 真女神転生5攻略Wiki|メガテン5 - AppMedia(アップメディア) 【B4B】近接ビルドデッキにおすすめのカード【back4blood】 - Gamerch(ゲーマチ) ポケモンスナップ攻略wiki - AppMedia(アップメディア) 富野由悠季「ブレンパワード」作り直したい!ファンを前に意欲(シネマトゥデイ) - Yahoo!ニュース - Yahoo!ニュース 【ウマ娘】査定効率から見た取るべきスキルとおすすめキャラ【プリティーダービー】 - Gamerch(ゲーマチ) 【スマブラSP】カズヤの評価とコンボ【スマブラスペシャル】 - Gamerch(ゲーマチ) メモ・ドキュメント・wiki・プロジェクト管理などオールインワンのワークスペース「Notion」が日本語ベータ版提供開始 - TechCrunch Japan 【ギアジェネ】リセマラ当たりランキング【コードギアス】 - ギアジェネ攻略Wiki - Gamerch(ゲーマチ) モンスターファーム2(MF2)攻略wiki|アプリ・Switch移植版 - AppMedia(アップメディア) 【ブラサジ】最強キャラTierランキング【ブラックサージナイト】 - Gamerch(ゲーマチ) 【パワプロ】鬼滅の刃コラボ情報まとめ - Gamerch(ゲーマチ) 【SPAJAM2021】第3回予選大会は「クイズ!WIKIにゃんず!」を開発したチーム「かよちゃんず」が最優秀賞! | gamebiz - SocialGameInfo 検索結果における「ナレッジパネル」の役割とは・・・ウィキメディア財団とDuckDuckGoの共同調査 - Media Innovation ナレッジ共有・社内wikiツール「NotePM」が「BOXIL SaaS AWARD 2021 Autumn」にて「コラボレーション部門」を受賞! - PR TIMES 【ポケモンユナイト】カメックスの評価と立ち回り【UNITE】 - Gamerch(ゲーマチ) 「ゼルダの伝説 BotW」のマラソンで23秒? 驚きの速さで完走した方法が話題(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース Wikipediaが「中国人編集者の身の安全を守るため」に一部の編集者アカウントをBANに - GIGAZINE BTS(防弾少年団)のV、8月のWikipedia閲覧数が韓国アーティストで1位!グループでは4ヶ月連続トップ - Kstyle 【イース6オンライン】リセマラ当たりランキング|召喚ガチャの開放条件は? - Gamerch(ゲーマチ) BacklogからNotePMへwiki情報を自動API連携する「Backlog to NotePM」をSaaStainerに掲載開始 - PR TIMES ライザのアトリエ2攻略Wiki - AppMedia(アップメディア) 真女神転生3リマスター攻略Wiki|メガテン3 - AppMedia(アップメディア) ガーディアンテイルズ(ガデテル)攻略Wiki - Gamerch(ゲーマチ) タスクも文書もWikiもデータベースもまとめて管理できる「Notion」とは? - ASCII.jp ナレッジ共有・社内wikiツール「NotePM」が、見るだけ専用ユーザー『無料』の新プランを発表! - PR TIMES 【かのぱず】リセマラ当たりランキング【彼女お借りします】 - Gamerch(ゲーマチ) 【乃木フラ】リセマラの必要はある?【乃木坂的フラクタル】 - Gamerch(ゲーマチ) メトロイド ドレッド攻略Wiki - Gamerch(ゲーマチ) 【パワプロ】生放送まとめ|パワフェス2021 - パワプロ攻略Wiki - Gamerch(ゲーマチ) ルーンファクトリー5攻略wiki|ルンファク5 - AppMedia(アップメディア) 【ふんクロ】リセマラ当たりランキング【シャーマンキング】 - ふんクロ攻略Wiki - Gamerch(ゲーマチ) 簡単操作で自分専用Wikiを構築できるMarkdownエディタ「Obsidian」のモバイル版を使ってみた - GIGAZINE 【ポケモンユナイト】配信時間は何時から?スタートできない?【UNITE】 - Gamerch(ゲーマチ) ディーサイドトロイメライ攻略Wiki - Gamerch(ゲーマチ) 【ウマ娘】体操服の変更方法と法則性 - Gamerch(ゲーマチ) 情報マネジメントツール「Huddler」がwiki機能を刷新 - PR TIMES シェアエコ配送アプリ「DIAq(ダイヤク)」のアンカーアプリで、高層ビル・商業施設の入館方法などお役立ち情報をまとめた「DIAqwiki」を公開 - アットプレス(プレスリリース) 異常熱波のカナダで49.6度、いま北米で起きていること(森さやか) - 個人 - Yahoo!ニュース - Yahoo!ニュース 【ツイステ】マスターシェフの攻略~辛味のふるさと~【料理イベント】 - Gamerch(ゲーマチ) 【ラグナロクオリジン】リセマラは不要?おすすめ職業は?【ラグオリ】 - Gamerch(ゲーマチ) 【アイプラ】リセマラ当たりランキング【アイドリープライド】 - AppMedia(アップメディア) 白夜極光攻略wiki - AppMedia(アップメディア) 【バイオミュータント】2.02アプデ|アップデート1.4情報 - バイオミュータント攻略Wiki - Gamerch(ゲーマチ) 【ひな図書】リセマラ当たりランキング【日向坂図書館】 - Gamerch(ゲーマチ) ニーアレプリカントリメイク攻略wiki|ver.1.22 - AppMedia(アップメディア) アイプラ攻略Wiki|アイドリープライド - AppMedia(アップメディア) 【ウマ娘】ゴルシウィークはいつから?キャンペーン情報まとめ - Gamerch(ゲーマチ) シーズン66 - 【超速GP】ミニ四駆 超速グランプリ攻略まとめwiki - 電撃オンライン 乃木坂的フラクタル攻略Wiki - Gamerch(ゲーマチ) 「こんなことになるとは…」13年前のエイプリルフールについた“嘘”がネットで… ある男の告白(BuzzFeed Japan) - Yahoo!ニュース - Yahoo!ニュース 整理不要の情報共有ツール(社内Wiki)「Nerve」シードラウンドで総額約3500万円の資金調達を実施 - PR TIMES 【ウマ娘】隠しイベントの発生条件と効果まとめ - Gamerch(ゲーマチ) Nerve - 整理不要の情報共有ツール(社内Wiki) ローンチカスタマー募集開始のお知らせ - PR TIMES Among Us攻略Wiki【アマングアス・アモングアス】 - Gamerch(ゲーマチ) パニシンググレイレイヴン(パニグレ)攻略wiki - Gamerch(ゲーマチ) 【ひなこい】最強ひな写ランキング - ひなこい攻略Wiki - Gamerch(ゲーマチ) 稲作アクションRPG『天穂のサクナヒメ』における「農林水産省攻略wiki説」は本当なのか? - AUTOMATON スタスマ攻略Wiki【スタースマッシュ】 - Gamerch(ゲーマチ) 無料とは思えない多機能っぷりなWikiインフラ「Wiki.js」レビュー、自前でホスト&外部サービスと連携可能 - GIGAZINE Microsoft Teamsの基本と活用(24) TeamsのWikiを使う - マイナビニュース 『ゲーミングお嬢様』での提起が話題に “企業系wiki”に横たわる問題点とは - リアルサウンド 「エイリアンのたまご」,自動周回機能と公式wikiが登場 - 4Gamer.net 【リゼロス】Re ゼロから始める異世界生活 Lost in Memories攻略まとめwiki - 電撃オンライン パワプロ2021/2020攻略Wiki - Gamerch(ゲーマチ) ヌーラボ、「Backlog」の絵文字入力の補完機能やWiki編集の自動マージ機能を改善 - CodeZine(コードジン) ヌーラボ、プロジェクト管理ツール「Backlog」の絵文字入力の補完機能・Wiki編集の自動マージ機能を修正改善 - PR TIMES Backlog、Wikiにファイル添付が容易にできる機能をリリース -- グローバルバーの視認性改善なども実施 - PR TIMES
https://w.atwiki.jp/aias-jsstyleguide2/pages/14.html
JSDocコメント 我々はC++ style for commentsの考え方に従います。 全てのファイル、クラス、メソッド、プロパティにJSDocコメントが、適切なタグとデータ型を伴って記されるべきです。また名前から明白に判断できる場合を除き、プロパティ、メソッド、メソッドの引数、メソッドの戻り値を説明する文章が含まれているべきです。 インラインのコメントには//の方を使います。 完全文(Complete sentence)で書くことを推奨しますが、必須ではありません。完全文を使う場合は適切に大文字で開始し、句読点で終わらせましょう。 コメントの構文 JSDocの構文はJavaDocを元にしています。沢山のツールがJSDocコメントから取り出したメタデータを使ってコードの検証や最適化を行なっているため、コメントは適切に整形されたものでなければなりません。 /** * JSDocコメントはスラッシュと2つのアスタリスクから始めます。 * インラインタグは {@code this} のように波括弧で囲みます。 * @desc ブロックタグは必ず行の先頭から開始します。 */ JSDocのインデント ブロックタグ内で改行が必要な場合、コードの改行と同様にスペース4つ分インデントしてください。 /** * 長いparam/returnアノテーションの説明文の折り返し方を示します。 * @param {string} foo これは1行でおさめるには長すぎるパラメータの * 説明文です。 * @return {number} この戻り値の説明文は長すぎて、とても1行の中には * 入りきりません。 */ project.MyClass.prototype.method = function(foo) { return 5; }; @fileoverviewコマンドをインデントすべきではありません。@descコマンドはインデントしなくてかまいません。 推奨はしませんが、説明文の先頭で折り返しを揃える書き方も認めます。 /** * これは決してお勧め しない インデントの方法です。 * @param {string} foo これは1行でおさめるには長すぎるパラメータの * 説明文です。 * @return {number} この戻り値の説明文は長すぎて、とても1行の中には * 入りきりません。 */ project.MyClass.prototype.method = function(foo) { return 5; }; JSDocの中のHTML JavaDocと同じく、JSDocも多くのHTMLタグをサポートしています。 code 、 pre 、 tt 、 strong 、 ul 、 ol 、 li 、 a 等々です。 これは、プレインテキストに書式を設定しても無視されることを意味します。このため、スペースによってJSDocを整形しようとしてはいけません /** * 以下の3つの要因に基づいて重さを計算します * 送った項目 * 受け取った項目 * タイムスタンプ */ 上のコメントは次のように表示されます。 以下の3つの要因に基づいて重さを計算します 送った項目 受け取った項目 タイムスタンプ 代わりに、こうしてください /** * 以下の3つの要因に基づいて重さを計算します * ul * li 送った項目 * li 受け取った項目 * li タイムスタンプ * /ul */ JSDocコメントを適切な形式で書くには、JavaDocのスタイルガイドが役に立ちます。 トップ(ファイル)レベルのコメント 著作権表示と著作者情報は省略できます。ファイルが複数のクラス定義からなる場合には、一般的にファイル概要の記述が推奨されます。トップレベルのコメントは、そのファイルの中のコードに詳しくない読者をうまく導くように設計しましょう。そこにはファイルの全体的な説明、著者名、依存関係や互換性の情報が提供されているべきです。例を示します /** * @fileoverview ファイルの説明、使い方や依存関係に * ついての情報。 */ クラスへのコメント クラスへのコメントには、説明文とコンストラクタであることを示すタグを記述します。 /** * 何だか楽しくなるクラス * @param {string} arg1 もっと面白くする引数 * @param {Array. number } arg2 処理される数値のリスト * @constructor * @extends {goog.Disposable} */ project.MyClass = function(arg1, arg2) { // ... }; goog.inherits(project.MyClass, goog.Disposable); メソッドと関数へのコメント パラメータと戻り値について記述されるべきです。メソッドのパラメータと戻り値が自明である場合には、説明を省略してもかまいません。メソッドの説明文は三人称の平叙文で書きます。 /** * MyClass のインスタンスを操作し、何かを返します。 * @param {project.MyClass} obj 折り返して2行にしなければならないほど * 長いコメントが続く、MyClass のインスタンス * @return {boolean} 何かが起きたかどうか */ function PR_someMethod(obj) { // ... } プロパティへのコメント /** @constructor */ project.MyClass = function() { /** * 枠の中に入れられる最大数。 * @type {number} */ this.someProperty = 4; } JSDocタグリファレンス タグ 書式と例 説明 @author @author メールアドレス (名 姓) 例: /** * @fileoverview テキストエリアを扱うためのユーティリティ群。 * @author kuth@google.com (Uthur Pendragon) */ ファイルの著者、またはテストの所有者を記載します。通常@fileoverviewを含むコメントの中でのみ使用されます。 @code {@code ...} 例: /** * 選択されたものの中で次の位置に移動します。 * Throws {@code goog.iter.StopIteration} 最後尾を * 超えた場合に発生する。 * @return {Node} 次の位置のノード。 */ goog.dom.RangeIterator.prototype.next = function() { // ... }; JSDocの説明文に含まれる語句がコードであることを示します。生成されたドキュメント内で適切に整形されることが想定されています。 @const @const @const {型名} 例: /** @const */ var MY_BEER = stout ; /** * 名前空間が好きなビールの種類 * @const {string} */ mynamespace.MY_BEER = stout ; /** @const */ MyClass.MY_BEER = stout ; /** * リクエストを初期化します。 * @const */ mynamespace.Request.prototype.initialize = function() { // サブクラスはこのメソッドをオーバーライドできません。 }; 変数(またはプロパティ)が読み取り専用であることを示します。このタグはインラインで記述するのに向いています。@constが付けられた変数はある値への固定された参照と見なされ、@const付きの変数やプロパティが上書きされているとCompilerは警告を出力します。データ型を明確に推測できるのであれば型の宣言は省いてもかまいません。その他のコメントの追加も必須ではありません。メソッドに@constが付けられている場合、そのメソッドに対しては単に上書きだけでなく、サブクラスによるオーバーライドも禁止されていることを意味します。@constのより詳細な説明は「定数」を参照してください。 @constructor @constructor 例: /** * 長方形。 * @constructor */ function GM_Rect() { ... } クラスの説明の中で使い、関数がコンストラクタであることを示します。 @define @define {型名} 説明文 例: /** @define {boolean} */ var TR_FLAGS_ENABLE_DEBUG = true; /** * @define {boolean} ブラウザがIEかどうかが * コンパイル時に設定される。 */ goog.userAgent.ASSUME_IE = false; コンパイル時にCompilerによって上書きされる定数であることを示します。左の例でコンパイルフラグに--define= goog.userAgent.ASSUME_IE=true と指定すると、ビルド後のファイルではgoog.userAgent.ASSUME_IEの値はtrueに置き換えられます。 @deprecated @deprecated 説明文 例: /** * ノードがフィールドかどうかを判定します。 * @return {boolean} 要素の内容が * 編集可能ならtrue。ただし要素そのものは * 編集不可。 * @deprecated isField() を使ってください。 */ BN_EditUtil.isTopEditableField = function(node) { // ... }; 関数、メソッド、プロパティをこれ以上使うべきでないことを伝えます。説明文の中でそれに替わるものを指示するのが普通です。 @dict @dict 説明文 例: /** * @constructor * @dict */ function Foo(x) { this[ x ] = x; } var obj = new Foo(123); var num = obj.x; // 警告 (/** @dict */ { x 1 }).x = 123; // 警告 コンストラクタ(左の例のFoo)に@dictが付けられた場合、Fooオブジェクトのプロパティへのアクセスは角括弧による表記法でのみ可能となります。アノテーションをオブジェクトリテラルに直接記述することもできます。 @enum @enum {型名} 例: /** * 3つの状態を値にもつ列挙型。 * @enum {number} */ project.TriState = { TRUE 1, FALSE -1, MAYBE 0 }; @export @export 例: /** @export */ foo.MyPublicClass.prototype.myPublicMethod = function() { // ... }; --generate_exportsフラグを付けてコンパイルを実行すると、左のコードは次のように出力されます goog.exportSymbol( foo.MyPublicClass.prototype.myPublicMethod , foo.MyPublicClass.prototype.myPublicMethod); コンパイル前のシンボルがエクスポートされているのが分かります。@exportを使用するには以下の条件のどちらかを満たしていなければなりません。1. //javascript/closure/base.jsをインクルードしている2. コードベース内にgoog.exportSymbolとgoog.exportPropertyの両方が同じメソッドシグネチャで存在している。 @expose @expose 例: /** @export */ MyClass.prototype.exposedProperty = 3; 外部公開されているプロパティであることを宣言します。外部公開されたプロパティには削除、名前の変更、圧縮、Compilerによるいかなる最適化も実施されなくなります。同じ名前のプロパティを個別に最適化することはできません。ライブラリのコードに対しては@exposeを使用すべきではありません。今まで正常に行われていたプロパティの削除を妨げることになるからです。 @extends @extends 型名 @extends {型名} 例: /** * 常に空のノードリスト * @constructor * @extends goog.ds.BasicNodeList */ goog.ds.EmptyNodeList = function() { ... }; @constructorと共に使用し、あるクラスが別のクラスを継承していることを示します。型を囲む波括弧は省略可能です。 @externs @externs 例: /** * @fileoverview これはexternファイルです。 * @externs */ var document; externファイルであることを宣言します。 @fileoverview @fileoverview 説明文 例: /** * @fileoverview 何かをするユーティリティ群。その説明には * このように長くてインデントされていないコメントを必要とします。 * @author kuth@google.com (Uthur Pendragon) */ ファイルレベルの情報を提供するコメントブロックを構成します。 @implements @implements 型名 @implements {型名} 例: /** * 形状。 * @interface */ function Shape() {}; Shape.prototype.draw = function() {}; /** * @constructor * @implements {Shape} */ function Square() {}; Square.prototype.draw = function() { ... }; @constructorと共に使用し、あるクラスがインタフェースを実装していることを示します。型を囲む波括弧は省略可能です。 @inheritDoc @inheritDoc 例: /** * @inheritDoc */ project.SubClass.prototype.toString() { // ... }; 非推奨。@overrideを使ってください。 サブクラスのメソッド・プロパティが、スーパークラスのメソッド・プロパティを意図的に隠蔽しており、全く同じJSDocコメントを持つことを示します。@inheritDocは@overrideを包含する点に注意してください。 @interface @interface 例: /** * 形状。 * @interface */ function Shape() {}; Shape.prototype.draw = function() {}; /** * 多角形。 * @interface * @extends {Shape} */ function Polygon() {}; Polygon.prototype.getSides = function() {}; その関数がインタフェースであることを示すために使います。 @lends @lends オブジェクト名 @lends {オブジェクト名} 例: goog.object.extend( Button.prototype, /** @lends {Button.prototype} */ { isButton function() { return true; } }); オブジェクトリテラルのキーが他のオブジェクトのプロパティとして扱われるべきであることを示します。このアノテーションはオブジェクトリテラルにだけ付けられます。他のアノテーションとは異なり、波括弧の中の名前はクラス名ではなくオブジェクト名である点に注意してください。それはプロパティが "lent"(貸与)されているオブジェクトの名前です。例えば@type {Foo} は "Fooのインスタンス" を意味しますが、@lends {Foo} は "Fooのコンストラクタ関数" のことです。このアノテーションについてのより詳しい説明はJSDoc Toolkit のドキュメント(日本語)を参照してください。 @license or @preserve @license 説明文 例: /** * @preserve Copyright 2009 SomeThirdParty. * このファイルに関する完全なライセンス条項と * 著作権表示を記載します。文章は複数行にわたっても構いませんが、 * 必ず末尾は */ で閉じられている必要があります。 */ @licenseまたは@preserveが付けられたコメントはCompilerの処理から保護され、コンパイルされたコードよりも前に出力されます。コンパイルの影響を受けないことから、このアノテーションは重要な通知(ライセンスや著作権のような)を行うのに向いています。改行もそのまま残されます。 @noalias @noalias 例: /** @noalias */ function Range() {} Externファイルの中で使い、この変数または関数に別名を付けてはならないことをCompilerに示します。 @nocompile @nocompile 例: /** @nocompile */ // JavaScriptコード ファイルの先頭に記述し、このファイルのコードをパースするだけでコンパイルしないようコンパイラへ伝えます。このアノテーションは、コンパイルが意図されていない、またはコンパイルテストから除外すべきコード(例えば、ブートストラップコード)に対して使用します。控えめに使ってください。 @nosideeffects @nosideeffects 例: /** @nosideeffects */ function noSideEffectsFn1() { // ... }; /** @nosideeffects */ var noSideEffectsFn2 = function() { // ... }; /** @nosideeffects */ a.prototype.noSideEffectsFn3 = function() { // ... }; 関数やコンストラクタに付けられ、それらの呼び出しが他のコードに影響を及ぼさないことを示します。このアノテーションはCompilerに対し、戻り値が使用されていない場合にそれらの関数を削除することを許可します。 @override @override 例: /** * @return {string} project.SubClassの人間が理解できる表現。 * @override */ project.SubClass.prototype.toString = function() { // ... }; サブクラスのメソッド・プロパティが、スーパークラスのメソッド・プロパティを意図的に隠蔽していることを示します。コメントにこれ以外の記述が含まれない場合、スーパークラスで書かれた内容がサブクラスに引き継がれます。 @param @param {型名} 変数名 説明文 例: /** * 各項目のBazを問い合わせます。 * @param {number} groupNum 問い合わせのためのサブグループID。 * @param {string|number|null} term 項目名、 * または項目ID、もしnullの場合は全て検索します。 */ goog.Baz.prototype.query = function(groupNum, term) { // ... }; メソッド、関数、コンストラクタに対し、それらの引数を説明するために使用します。型名は必ず波括弧で括られていなければなりません。型名が省略された場合、Compilerは型チェックを行いません。 @private @private @private {型名} 例: /** * このロガーを監視しているハンドラの配列。 * @private {!Array. Function } */ this.handlers_ = []; メソッド・プロパティ名の末尾にアンダースコアを付加する仕様と組み合わせて、メンバがprivateであり、オーバーライドできないことを示します。 @protected @protected @protected {型名} 例: /** * 指定されたDOM要素をコンポーネントのルート要素として設定します。 * @param {Element} element コンポーネントのルート要素 * @protected */ goog.ui.Component.prototype.setElementInternal = function(element) { // ... }; メソッド・プロパティがprotectedであることを示します。名前の末尾にアンダースコアを付けてはいけません。 @public @public @public {型名} 例: /** * イベント内部のキャプチャ/バブリング処理をキャンセルするかどうか * @public {boolean} * @suppress {visibility} これをこのパッケージの外部から参照すべき * ではありません。 */ goog.events.Event.prototype.propagationStopped_ = false; メソッド・プロパティがpublicであることを示します。変数やプロパティはデフォルトでpublicなので、このアノテーションはめったに必要とされません。古いコードの中で、privateを表す名前を簡単に書き換えられないときにだけ使用してください。 @return @return {型名} 説明文 例: /** * @return {string} 最後の項目の16進数表記のID */ goog.Baz.prototype.getLastId = function() { // ... return id; }; メソッドと関数に対し、それらの戻り値を説明するために使用します。論理型の戻り値の説明では、"コンポーネントが見えるならtrue、そうでなければfalse" よりも "コンポーネントが見えるかどうか" の方が良い書き方です。戻り値が無い場合、@returnタグは使わないで下さい。型名は必ず波括弧で括られていなければなりません。型名が省略された場合、Compilerは型チェックを行いません。 @see @see リンク 例: /** * むやみに項目を追加します。 * @see #addSafely * @see goog.Collect * @see goog.RecklessAdder#add ... 他のクラス、関数、メソッドへの参照を記載します。 @struct @struct 説明文 例: /** * @constructor * @struct */ function Foo(x) { this.x = x; } var obj = new Foo(123); var num = obj[ x ]; // 警告 obj.y = asdf ; // 警告 Foo.prototype = /** @struct */ { method1 function() {} }; Foo.prototype.method2 = function() {}; // 警告 コンストラクタ(左の例のFoo)に@structが付けられた場合、Fooオブジェクトのプロパティへのアクセスはドットによる表記法でのみ可能となります。また、生成されたFooオブジェクトへ新しいプロパティを追加することはできません。アノテーションをオブジェクトリテラルに直接記述することもできます。 @supported @supported 説明文 例: /** * @fileoverview イベントマネージャ * ブラウザ固有のイベントシステムを抽象化した * インタフェースを提供します。 * @supported これまで IE6 と FF1.5 でテスト済みです。 */ @fileoverviewを含むコメントブロックで使用し、このファイルの内容をサポートするブラウザを記載します。 @suppress @suppress {警告1|警告2} @suppress {警告1,警告2} 例: /** * @suppress {deprecated} */ function f() { deprecatedVersionOfF(); } ツールからの警告を抑止します。警告の種類が複数ある場合は|か,で区切ります。 @template @template 例: /** * @param {function(this T, ...)} fn * @param {T} thisObj * @param {...*} var_args * @template T */ goog.bind = function(fn, thisObj, var_args) { ... }; このアノテーションはテンプレート型を宣言するために使用します。 @this @this 型名 @this {型名} 例: pinto.chat.RosterWidget.extern( getRosterElement , /** * 名簿ウィジェットの要素を返します。 * @this pinto.chat.RosterWidget * @return {Element} */ function() { return this.getWrappedComponent_().getElement(); }); 特定のメソッドが呼ばれるときのコンテキストの型を表します。thisがプロトタイプメソッドでない関数から参照されているときに必要です。 @type @type 型名 @type {型名} 例: /** * 16進数形式のID。 * @type {string} */ var hexId = hexId; 変数、プロパティ、式のデータ型を表します。ほとんどの型において波括弧で囲むことは必須ではありませんが、一貫性のためにそれを強制しているプロジェクトもあります。 @typedef @typedef 例: /** @typedef {(string|number)} */ goog.NumberLike; /** @param {goog.NumberLike} x 数値か文字列 */ goog.readNumber = function(x) { ... } このアノテーションは複雑な型に別名を付けるために使用します。 サードパーティのコードの中で、上記以外の種類のJSDocアノテーションが使われているのを目にするかもしれません。それらはJSDoc Toolkitタグリファレンスに現れるものですが、Googleのコーディングルールでは今のところ使用を推奨しません。以下のアノテーションは将来の利用に備えて「予約されている」名前だと考えてください @augments @argument @borrows @class @constant @constructs @default @event @example @field @function @ignore @inner @link @memberOf @name @namespace @property @public @requires @returns @since @static @version
https://w.atwiki.jp/ce00582/pages/1231.html
import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import java.awt.*; import javax.swing.*; public class ex18 { public static void main(String[] args) { ex18 test = new ex18(); } public ex18() { JFrame frame = new JFrame(); frame.setSize(500,500); frame.setTitle("名古屋"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); //============================================================================ //次にJava3D関係の設定。 //============================================================================ //現在使用している画面の、ハードウェア情報を取得する GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration(); //Canvas3Dは、3Dグラフィクスを表示する領域 Canvas3D canvas = new Canvas3D(g_config); //3D表示領域の大きさを設定。今回はウィンドウいっぱいに表示する canvas.setBounds(0,0,250,250); //コンテントペインにCanvas3Dを登録 cp.add(canvas); //============================================================================ //空のSimpleUniverseを生成。 //============================================================================ //仮想空間のインスタンスを生成。表示先としてcanvasを指定。 SimpleUniverse universe = new SimpleUniverse(canvas); //canvasにuniverseを登録後、ウィンドウ可視化 frame.setVisible(true); } } //ソースコードここまで。 //********************************************
https://w.atwiki.jp/sfrontier/pages/70.html
Java Book_Java 作成日 2007/11/05 H.Naito 更新日 2007/11/14 H.Naito この本の目的とするところ 第1章 はじめに 第2章 オブジェクトの生成と消滅項目1 コンストラクタの代わりに static ファクトリーメソッドの提供を検討する 項目2 private のコンストラクタでシングルトン特性を強制する 項目3 private のコンストラクタでインスタンス化不可能を強制する 項目4 重複したオブジェクトを生成するのを避ける 項目5 廃れたオブジェクト参照を取り除く 項目6 ファイナライザを避ける 第3章 すべてのオブジェクトに共通するメソッド項目7 equals をオーバーライドする時は一般契約に従う 項目8 equals をオーバーライドする時は、常に hashCode をオーバーライドする 項目9 toString を常にオーバーライドする 項目10 clone を注意してオーバーライドする 項目11 Comparable を実装することを検討する 第4章 クラスとインタフェース項目12 クラスとメンバーへのアクセス可能性を最小限にする 項目13 不変性を選ぶ 項目14 継承よりコンポジションを選ぶ 項目15 継承のために設計および文章化する、でなければ継承を禁止する 項目16 抽象クラスよりインタフェースを選ぶ 項目17 型を定義するためだけにインタフェースを使用する 項目18 非 static のメンバークラスより static のメンバークラスを選ぶ 第5章 C 構文に対する置き換え項目19 構造体をクラスで置き換える 項目20 共用体クラス階層で置き換える 項目21 enum 構文をクラスで置き換える 項目22 関数ポインタをクラスとインタフェースで置き換える 第6章 メソッド項目23 パラメータ正当性を検査する 項目24 必要な場合には、防御的にコピーする 項目25 メソッドのシグニチャを注意深く設計する 項目26 オーバーロードを注意して使用する 項目27 null ではなく、長さゼロ配列を返す 項目28 すべての公開API要素に対してドキュメントコメントを書く 第7章 プログラミング一般項目 29 ローカル変数のスコープを最小限にする 項目 30 ライブラリーを知り、ライブラリーを使う 項目 31 正確な答えが必要ならば、float と double を避ける 項目32 他の型が適切な場合は、文字列を避ける 項目33 文字列結合のパフォーマンスに用心する 項目34 インタフェースでオブジェクトを参照する 項目35 リフレクションよりインタフェースを選ぶ 項目36 ネイティブメソッドを注意して使用する 項目37 注意して最適化する 項目38 一般的に受け入れられている命名規約を守る 第8章 例外項目39 例外的状態にだけ例外を使用する 項目40 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する 項目41 チェックされる例外を不必要に使用するのを避ける 項目42 標準例外を使用する 項目43 抽象概念に適した例外をスローする 項目44 各メソッドがスローするすべての例外を文章化する 項目45 詳細メッセージにエラー記録情報を含める 項目46 エラーアトミック性に努める 項目47 例外を無視しない 第9章 スレッド項目48 共有された可変データへのアクセスを同期する 項目49 過剰な同期は避ける 項目50 ループの外で決して wait を呼び出さない 項目51 スレッドスケジューラに依存しない 項目52 スレッド安全性を文章化する 項目53 スレッドグループを避ける 第10章 シリアライズ項目54 Serializable を注意して実装する 項目55 カスタムシリアライズ形式を使用することを検討する 項目56 防御的に readObject を書く 項目57 必要な時には readResolve メソッドを提供する 勉強の成果!? ( メモ ) を残します。 by 内藤 この本の目的とするところ 基本的パターンの忠実な遵守 不必要な装飾を持たない 簡潔性と調和 ようするに、簡潔なコードを書いて、自分と他人にわかりやすく、メンテしやすいコードを書くための注意点を網羅したものだと予想しています。 # まだ全部読んでないので、断言できません。 ( 2007/11/05 現在 ) Java プログラマ教育のための教材として使われているようですね。 # 例えば、新人 Java プログラマに対して、この本読んで自分のコードを修正しろ!! みたいな・・・ 第1章 はじめに 第2章 オブジェクトの生成と消滅 項目1 コンストラクタの代わりに static ファクトリーメソッドの提供を検討する 項目2 private のコンストラクタでシングルトン特性を強制する 項目3 private のコンストラクタでインスタンス化不可能を強制する 項目4 重複したオブジェクトを生成するのを避ける 項目5 廃れたオブジェクト参照を取り除く 項目6 ファイナライザを避ける 第3章 すべてのオブジェクトに共通するメソッド 項目7 equals をオーバーライドする時は一般契約に従う 項目8 equals をオーバーライドする時は、常に hashCode をオーバーライドする 項目9 toString を常にオーバーライドする 項目10 clone を注意してオーバーライドする 項目11 Comparable を実装することを検討する 第4章 クラスとインタフェース 項目12 クラスとメンバーへのアクセス可能性を最小限にする 項目13 不変性を選ぶ 項目14 継承よりコンポジションを選ぶ 項目15 継承のために設計および文章化する、でなければ継承を禁止する 項目16 抽象クラスよりインタフェースを選ぶ Java は複数の実装を許す型を定義するためにインタフェースと抽象クラスを提供している インタフェース メソッドに対する実装が許されていない 抽象クラス メソッドに対する実装を含むことが許されている 実装するクラスは、抽象クラスのサブクラスでなくてはならない 一般に、既存のクラスに対して抽象クラスを設定することはできない 2つのクラスに同じ抽象クラスを継承させたければ、それぞれのクラスの祖先になるように抽象クラスを継承させる必要がある インタフェースは、階層を持たない型フレームワークを構築することを可能にしている 発展のしやすさが、柔軟性と能力よりも重量だと考えられる場合には、抽象クラスを使用する 項目17 型を定義するためだけにインタフェースを使用する 項目18 非 static のメンバークラスより static のメンバークラスを選ぶ 第5章 C 構文に対する置き換え 項目19 構造体をクラスで置き換える 項目20 共用体クラス階層で置き換える 項目21 enum 構文をクラスで置き換える 項目22 関数ポインタをクラスとインタフェースで置き換える 第6章 メソッド 項目23 パラメータ正当性を検査する 項目24 必要な場合には、防御的にコピーする 項目25 メソッドのシグニチャを注意深く設計する 項目26 オーバーロードを注意して使用する 項目27 null ではなく、長さゼロ配列を返す 項目28 すべての公開API要素に対してドキュメントコメントを書く 第7章 プログラミング一般 項目 29 ローカル変数のスコープを最小限にする ローカル変数のスコープを最小限にする最も強力な技法は、ローカル変数が初めて使用されたときに宣言することです。 ループ変数の内容がループした後に必要ない場合には、while ループより for ループを選んでください。 ほとんどすべてのローカル変数宣言は、初期化子を含んでいるべきです。 → 変数を合理的に初期化するのに十分な情報がなければ、情報が得られるまで宣言を先送りにするべきです。 項目 30 ライブラリーを知り、ライブラリーを使う 標準ライブラリを使用することで、それを書いた専門家の知識と、それをあなたよりも前に使用した人々の経験を利用することになります。 すべてのプログラマは、java.lang、java.util の内容とある程度 java.io の内容を知っているべきです。 項目 31 正確な答えが必要ならば、float と double を避ける float 型、double 型 は、正確な答えを必要とする計算に使用しない ( 特に金銭計算 には適していない ) float 型 と double 型は主に科学計算 と工学計算 のために設計され、2進浮動小数点算術を行う 2進浮動小数点算術は、広い範囲の大きさに対して正確な近似値 をすばやく行うために設計されている float 型、double 型を使用しないで計算する方法は 2つ BigDecimal を使用する [ 利点 ] システムに小数点を把握させることができる( 丸め処理を完全に制御でき、且つ、8種類の丸めモードを選択できる ) [ 欠点 ] 基本データ型ではないので、扱いが多少不便。また、基本データ型ではないので(?)、処理が遅い。 [ API仕様書 - 1.4 ] http //sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/math/BigDecimal.html [ Sample ] http //www.nextindex.net/java/class/BigDecimal.html [ Sample ] http //msugai.fc2web.com/java/class/DecimalTips.html int 型 もしくは long 型 を使用する [ 利点 ] 基本データ型なので高パフォーマンスを期待できる。 [ 欠点 ] 9桁を超えたら int を使用できない。また、18桁を超えたら long を使用できない。18桁を超えたら BigDecimal を使用しなければならない。 項目32 他の型が適切な場合は、文字列を避ける 要するに、[はい/いいえ] なら boolean でもつとか、できる限り String 型で値を持ちましょうねという話らしいが、いまいち理解しきれない・・・ 項目33 文字列結合のパフォーマンスに用心する 文字列の連結に文字列連結演算子(+) をできる限り使用しない 理由は、処理時間が遅いから。( n個の文字列を連結するのに、文字列結合演算子を繰り返し使用すると、nに関して2次の時間を必要とする ) 文字列は不変の要素として扱われるので、結果的に、連結する要素のコピーを行うことになるというのが、そのからくり。 文字列連結する場合は、String の代わりに StringBuffer を使用し、append メソッドを使用する。 項目34 インタフェースでオブジェクトを参照する インタフェースを使用してプログラムの柔軟性を高めなさいという話・・・だが、よく理解できない。 [ Sample ] List subscribers = new Vector(); 項目35 リフレクションよりインタフェースを選ぶ java.lang.reflect に関する記述。reflection そのものがよくわからないので、後で勉強しなおす。 項目36 ネイティブメソッドを注意して使用する ネイティブメソッドとは? C / C++ ( native programming language )などで書かれた特別なメソッド。Java Native Interface( JNI ) を使用して呼び出すことが可能。 ネイティブメソッドの主な用途は? プラットフォーム固有の機構( レジストリ / ファイルロック )へのアクセスを提供する( → レジストリ操作は Java1.4 から提供されている ) 古いデータへのアクセスを提供している古いコードのライブラリへのアクセスを提供する( → ものによっては、Java で書き換えた方が良い場合もある ) パフォーマンスが重要な部分の処理を代行する( → Java1.3 以降は推奨していない ) ネイティブメソッドを使用するデメリット ネイティブ言語は safe ではないので、メモリ破壊の影響を受ける場合がある。 ネイティブ言語は、プラットフォーム依存なので、アプリケーションを自由にプラットフォーム間で移動できない。 ネイティブ言語は、書くのが難しいし、読むのも難しい ( ← そうかなあ ) 項目37 注意して最適化する 時期尚早の最適化は、良くなるよりは害になりやすい。 早いプログラムよりも、良いプログラムを書くように努めるべき。( 良いプログラムはカプセル化に成功しているので、変更点以外に影響を与えることない。 ) 良いプログラムを書けば、結果としてスピードが得られる。 設計の段階からパフォーマンスを意識した構造を構築する。API、通信レベルのプロトコル、永続データ形式 などの設計要素を検討するときは、特に注意したい。 良い API 設計は、良いパフォーマンスと矛盾しない場合が一般的。 項目38 一般的に受け入れられている命名規約を守る Java プラットフォームには、確立した命名規約の集まりがあり、その多くは『Java言語仕様』に含まれている。 パッケージ名の命名規則 ピリオドで区切られた要素を持ち、階層的であるべき。 区切られた要素は、小文字のアルファベット文字と稀に数字から構成されるべき。 組織外で使用されるパッケージの名前は、トップレベルのドメインを最初にした、その組織のインターネットドメイン名で始まるべき。( ex. com.sun ) java / javax で始まる標準ライブラリとオプションパッケージは、この規則に対する例外。( ユーザは java / javax で始まるパッケージを作成してはいけない ) 詳細な規則については、『Java言語仕様』を参照のこと。 パッケージ名の残りは、パッケージに記述する1つ以上の要素( 一般的に 8文字以下の1単語/1省略形 )から構成されるべき。 意味を持った省略形は推奨されている ( utilities → util、Abstract Window Toolkit → awt ) クラス名 / インタフェース名の命名規則 1つ以上の大文字から始まる単語から構成されるべき( ex. TimerTask ) 省略系は避ける ( 例外. 頭文字、min/max などの一般的な省略形 ) インタフェース名は、-able や -ible で終わる形容詞で命名される。( ex.Runnable、Accessible ) なんらかの処理を行うメソッドは、一般に動詞/動名詞で命名される。 boolean 値を返すメソッドは、たいてい is で始まり、その後に形容詞/名詞(句) が続く。( ex. isDigit、isEmpty ) メソッド名 / フィールド名の命名規則 基本は、クラス名 / インタフェース名と同じ規則。ただし、最初の文字は小文字から始める。頭文字の場合は、頭文字部分を全部小文字にする。 定数フィールドは、1つ以上の大文字から構成され、アンダースコアで区切られる。定数フィールドだけが、唯一アンダースコアの使用を推奨している。 オブジェクト方を変換し、別の型の無関係なオブジェクトに返すメソッドは、たいてい toType と呼ばれる。 ( ex. toString、toArray ) レシーバーオブジェクトの型と異なる型を持つビューを返すメソッドは、たいていは asType と呼ばれる。 ( ex. asList ) メソッドが呼び出されたオブジェクトと同じ値を持つ基本データを返すメソッドは、たいてい typeValue と呼ばれる。 ( ex. intValue ) static ファクトリーに対する共通の名前は、valueOf と getInstance 。 第8章 例外 項目39 例外的状態にだけ例外を使用する 項目40 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する 項目41 チェックされる例外を不必要に使用するのを避ける 項目42 標準例外を使用する 項目43 抽象概念に適した例外をスローする 項目44 各メソッドがスローするすべての例外を文章化する 項目45 詳細メッセージにエラー記録情報を含める 項目46 エラーアトミック性に努める 項目47 例外を無視しない 第9章 スレッド 項目48 共有された可変データへのアクセスを同期する 項目49 過剰な同期は避ける 項目50 ループの外で決して wait を呼び出さない 項目51 スレッドスケジューラに依存しない 項目52 スレッド安全性を文章化する 項目53 スレッドグループを避ける 第10章 シリアライズ 項目54 Serializable を注意して実装する 項目55 カスタムシリアライズ形式を使用することを検討する 項目56 防御的に readObject を書く 項目57 必要な時には readResolve メソッドを提供する
https://w.atwiki.jp/ce00582/pages/3763.html
import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException; import java.io.*; import java.awt.image.*; class game0703 extends Frame{ PixelGrabber pg; Color col; Image img; int w=500; int h=500; double size; int red,green,blue; int pix[]=new int[w*h]; int memor[][]=new int[h][w]; int memog[][]=new int[h][w]; int memob[][]=new int[h][w]; int girlr[][]=new int[h][w]; int girlg[][]=new int[h][w]; int girlb[][]=new int[h][w]; int rgb[][]=new int[h][w]; int mx,nx,m,n; int m1,n1,m2,n2; int sx,sy; int j; String s1,s2,s3,s4; game0703(){ s1="kasi.jpg"; catchimg(s1); for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ girlr[mx][nx]=memor[mx][nx]; girlg[mx][nx]=memog[mx][nx]; girlb[mx][nx]=memob[mx][nx]; } } s2="meme.png"; catchimg(s2); for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ j=0; if(memor[mx][nx] 50)j=j+1; if(memog[mx][nx] 50)j=j+1; if(memob[mx][nx] 50)j=j+1; if(j==3)rgb[mx][nx]=100; } } size=7.4; sx=175; sy=21; } public static void main(String[] args) { game0703 f = new game0703(); f.setSize(500,500); f.setBackground(Color.blue) ; f.setVisible(true); f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}}); } public void paint( Graphics g ) { Graphics2D g2 = (Graphics2D)g; BufferedImage readImage = null; if (readImage == null){ readImage = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR); } Graphics2D off = readImage.createGraphics(); off.setColor(Color.red); off.fillRect(0,0,500,500); mx=1; nx=1; for (mx=0;mx 500;mx++){ for (nx=0;nx 500;nx++){ off.setColor(new Color(girlr[mx][nx],girlg[mx][nx],girlb[mx][nx])); off.fillRect(nx,mx,1,1); } } for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ m=sy+(int)(mx/size); n=sx+(int)(nx/size); if(m 0)m=0; if(m 499)m=499; if(n 0)n=499; if(n 499)n=499; off.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx])); if (rgb[mx][nx] 50)off.fillRect(n,m,1,1); } } off.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); BasicStroke wideStroke = new BasicStroke(2.0f); off.setStroke(wideStroke); if (readImage != null){g2.drawImage(readImage,0,0, this);} try { boolean result = ImageIO.write(readImage, "jpg", new File("sam.jpg")); } catch (Exception e) { e.printStackTrace(); } } void catchimg(String s){ img = createImage(w,h); img = Toolkit.getDefaultToolkit().getImage(s); pg = new PixelGrabber(img,0,0,w,h,pix,0,w); try{pg.grabPixels();}catch(InterruptedException ie){} m=0; n=0; for(int i=0;i w*h;i++){ int p = pix[i]; col=new Color(pix[i]); red=col.getRed(); green=col.getGreen(); blue=col.getBlue(); memor[m][n]=red; memog[m][n]=green; memob[m][n]=blue; n=n+1; if (n==w)m=m+1; if (n==w)n=0; } } }