class Test { public static void main(String[] args) { system.out.println("test"); } }でけた!すげえ!
2010年2月28日日曜日
Bloggerにソースコードをいい感じに表示したい
この記事の「導入」てところを参考にしてみた。
2010年2月25日木曜日
JSPから生成されたJAVAプログラムが文字化け
全然気づいて無かったのだが、JSPのプログラムを書くと、~~.javaというJAVAファイルが生成されている。あまり意識することがなかったのだが、ふとしたきっかけでJSPから生成されたJAVAファイルのソースを見てみたら、日本語が文字化けしていた。作成したJSPのページをブラウザで見る分には日本語もきちんと表示され動作も問題ない。
だからいいといえばいいんだけど、しかしこれはこの先なにかのきっかけで支障が出てくるんじゃないかなあと一抹の不安もぬぐえない。
いろいろ検索してみたら、JSPからJAVAソースファイルにコンパイル?する段階での文字エンコーディングがよろしくないみたい。ただ、それをどうやって指定してやれば文字化けが治るのか結局わからなかった。
そもそもコンパイルしているのはサーバで利用しているtomcatの何かしらの設定なのか、開発環境として使っているeclipseの設定なのか、web.xmlで何かしら文字コードについて記述してやればいいのか、JSPのソースの記述の問題なのか、これらのどれでもない何かなのか。ううむ、文字コードややこしい。
だからいいといえばいいんだけど、しかしこれはこの先なにかのきっかけで支障が出てくるんじゃないかなあと一抹の不安もぬぐえない。
いろいろ検索してみたら、JSPからJAVAソースファイルにコンパイル?する段階での文字エンコーディングがよろしくないみたい。ただ、それをどうやって指定してやれば文字化けが治るのか結局わからなかった。
そもそもコンパイルしているのはサーバで利用しているtomcatの何かしらの設定なのか、開発環境として使っているeclipseの設定なのか、web.xmlで何かしら文字コードについて記述してやればいいのか、JSPのソースの記述の問題なのか、これらのどれでもない何かなのか。ううむ、文字コードややこしい。
2010年2月23日火曜日
消費メモリを意識し始めるお年頃
ほんとに趣味で素人でプログラム書いてると、このプログラムの処理速度がどうとか、消費メモリがどうとかあまり意識しないのではないだろか?私はそう。動けばいい、動かして楽しい、というところに主眼がある。
だけど、最近知ったんだけども、例えばJAVAの文字列を扱うとき、Stringクラスをよく使うが、これはどうも、固定長で大きさを変更しようとするごとに新しいオブジェクトを生成するとかいう文言を見かけた。(詳しくは各時検索で。)
で、それに対してStringBufferクラスという可変長のものがあり、文字列の変更や追記がある場合にはStringBufferクラスを使った方が、メモリを効率よく使えるようだ。
StringとStringBufferとの処理時間や消費メモリの比較などを行った記事なども検索するとたくさん見られるので参考になる。
試してないけど、きっと配列とリスト、String[]とArrayListとかも違ってくるんだろうなと意識し始める、そんな素人な私。
メモリについて、スマートなプログラムの記述、適切な例外処理、などなど趣味プログラムではついほったらかしになるあたりも、意識してみるとなかなか難しいけど楽しみも見出せる、かも。
だけど、最近知ったんだけども、例えばJAVAの文字列を扱うとき、Stringクラスをよく使うが、これはどうも、固定長で大きさを変更しようとするごとに新しいオブジェクトを生成するとかいう文言を見かけた。(詳しくは各時検索で。)
で、それに対してStringBufferクラスという可変長のものがあり、文字列の変更や追記がある場合にはStringBufferクラスを使った方が、メモリを効率よく使えるようだ。
StringとStringBufferとの処理時間や消費メモリの比較などを行った記事なども検索するとたくさん見られるので参考になる。
試してないけど、きっと配列とリスト、String[]とArrayListとかも違ってくるんだろうなと意識し始める、そんな素人な私。
メモリについて、スマートなプログラムの記述、適切な例外処理、などなど趣味プログラムではついほったらかしになるあたりも、意識してみるとなかなか難しいけど楽しみも見出せる、かも。
2010年2月21日日曜日
tomcatPluginV31.zip を探す旅
ServletやJSPを試してみようと思うと、サーバ環境が必要になる。で、tomcatというのが無料でサーバ環境を構築できるときいて調べるうちに、eclipseとtomcatとの連携は結構メジャーで、かつeclipse用のtomcatプラグインが便利らしいと知った。
もろもろ調べるうちに最新バージョンのプラグインであるtomcatPluginV321よりも、ひとつかふたつ古いバージョンのtomcatPluginV31がほしくなって延々探した。
検索してヒットする数々のページのほとんどがsysdem.comとかいう公式の?場所からダウンロードしてくださいて書いてあるが、
肝心のhttp://www.sysdeo.com/eclipse/tomcatplugin
のページがリンク切れで悲しい気持ちになる。
で、巡り巡るtomcatプラグイン探しの旅の末、ようやっと、見つけたので、記念にここに記したい。
ここのページの下の方にあったよかった助かったありがとう↓
http://www10.atwiki.jp/eclipse/pages/12.html
もろもろ調べるうちに最新バージョンのプラグインであるtomcatPluginV321よりも、ひとつかふたつ古いバージョンのtomcatPluginV31がほしくなって延々探した。
検索してヒットする数々のページのほとんどがsysdem.comとかいう公式の?場所からダウンロードしてくださいて書いてあるが、
肝心のhttp://www.sysdeo.com/eclipse/tomcatplugin
のページがリンク切れで悲しい気持ちになる。
で、巡り巡るtomcatプラグイン探しの旅の末、ようやっと、見つけたので、記念にここに記したい。
ここのページの下の方にあったよかった助かったありがとう↓
http://www10.atwiki.jp/eclipse/pages/12.html
2010年2月19日金曜日
Galileoからの卒業
JAVAの開発環境で使うEclipseを、ちょっとスペックの低いパソコンで使わざるをえない時、最新版のGalileo使用から思い切って2,3コ下のバージョンに替えてみたら結構サクサク動くようになった。バージョンをかえることでプラグインとか気をつけなきゃ危険だけど、どうしようもなく重い場合は有効だなと思った。
2010年2月18日木曜日
JAVAのリファレンスを読むこと
基本中の基本なのかも知れないけど、JAVAをちまちまと触り続けていたら、JAVAのリファレンス?と言っていいのか知らんが、ここ↓
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/
を読むのが勉強になるというか便利だとやっと気付いたのであった。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/
を読むのが勉強になるというか便利だとやっと気付いたのであった。
2010年2月14日日曜日
あっさりDropBox
いつぞやニュースで見たネットでもローカルでもファイルを同期して保存しておける基本無料サービスを試してみたくなった。
DropBoxというサービス。
ここが丁寧に書いてあったので読めば安心して導入できた↓
http://web-tan.forum.impressrd.jp/e/2008/11/13/4371
なにが驚きって導入も利用も思った以上にあっさり簡単にできてしまうこと。
便利ってこういうことだー!と強く感じた。サービスはこうあらねば。こうあるから人気サービスになるんだなと思った。
DropBoxというサービス。
ここが丁寧に書いてあったので読めば安心して導入できた↓
http://web-tan.forum.impressrd.jp/e/2008/11/13/4371
なにが驚きって導入も利用も思った以上にあっさり簡単にできてしまうこと。
便利ってこういうことだー!と強く感じた。サービスはこうあらねば。こうあるから人気サービスになるんだなと思った。
2010年2月12日金曜日
Buzz API 発見
http://code.google.com/intl/ja/apis/buzz/
↑
昨今のTwitterのマッシュアップサービス乱立みたいに、今度はGoogleBuzzマッシュアップサービスが出てくるのだろうか?俺もなんか作ろうかなあ。
↑
昨今のTwitterのマッシュアップサービス乱立みたいに、今度はGoogleBuzzマッシュアップサービスが出てくるのだろうか?俺もなんか作ろうかなあ。
2010年2月10日水曜日
Google携帯 Nexus Oneの日本発売はいつやねん。
ほしいのに。iPhone使ってるけどAndroid携帯もほしい。JAVAでアプリ作れるという話を聞いてるので、実機を買ってアプリ作って試してみたい。それをモチベーションにJAVAを勉強しているといっても過言ではない。なんかNexus One海外で売れてないみたいなニュースも見たけど、iPhoneと対立軸なのかもしらんけど、おれはiPhoneとNexusOneの2台持ちを夢見ている。早くしないと、先にiMac購入してiPhone用アプリを開発し始めてしまう。そうしたらJAVA熱が冷めてしまうじゃないかー。
今日はExceptionエラーについてあれこれと調べていた。なにかをするクラスを作成してそのメソッドで出るエラーをメソッド側でtry~catchしてエラーを出力するか、それともthrowsやあるいはthrowを利用してメソッドを呼び出す側にエラーを投げてしまうかどうしたらいいのか悩んでいたけれど、まあ基本的にはthrowsやthrowでクラスやメソッドを呼び出してる側へ投げっぱなして、あとは使う側でtry~catchでもなんでもしてくれよということでよろしいか?どうだろう。メソッド内でtry~catchしてSystem.out.printlnで"エラーですよ!!"みたいにすることも時には必要なのだろうか?
今日はExceptionエラーについてあれこれと調べていた。なにかをするクラスを作成してそのメソッドで出るエラーをメソッド側でtry~catchしてエラーを出力するか、それともthrowsやあるいはthrowを利用してメソッドを呼び出す側にエラーを投げてしまうかどうしたらいいのか悩んでいたけれど、まあ基本的にはthrowsやthrowでクラスやメソッドを呼び出してる側へ投げっぱなして、あとは使う側でtry~catchでもなんでもしてくれよということでよろしいか?どうだろう。メソッド内でtry~catchしてSystem.out.printlnで"エラーですよ!!"みたいにすることも時には必要なのだろうか?
2010年2月9日火曜日
Eclipseが重い
JAVAに限らないかもしれないが、Eclipseという統合開発環境を使い始めるとかなり便利。便利なんだけど、ちょっと昔のスペックの低いPCを使わざるを得ないとき、Eclipseが異様に重く感じて使えない。推奨スペックはいくつぐらいなのだろうか?バージョンによっても違うのだろうか?OSがWindowsXP、メモリ512MBの環境では、なかなか厳しかった。なにかEclipseの設定で手っ取り早く軽量化できる方法はないだろうか。欲張りだろうか。
2010年2月8日月曜日
Integer.parseIntとオーバーフロー
String型で取得した数値をint型の数値に変換しちゃうぜ!こりゃ便利だぜー!とInteger.parseIntを使いまくっていたら落とし穴があった。世の常。
int型って、数字の有効桁数というか有効値があって、こちらの意図してなかったような大きな数値が入ったりするとプログラムがおかしくなる。
ちなみに-2147483648~+2147483647の範囲。
んで、これの対策のためにどうやってプログラムを書けばいいのか?考えてたけど、いまいちよくわからなかったので、とりあえず付け焼刃的にint型じゃなくて、もう少し数値の範囲に余裕のあるlong型に変換して、それでもダメな場合は、「有効範囲越えてまっせー!これ以上はもうやめてええええええ!」と出力するという対策しか頭がまわらなかった。プログラム奥深ぇ。
int型って、数字の有効桁数というか有効値があって、こちらの意図してなかったような大きな数値が入ったりするとプログラムがおかしくなる。
ちなみに-2147483648~+2147483647の範囲。
んで、これの対策のためにどうやってプログラムを書けばいいのか?考えてたけど、いまいちよくわからなかったので、とりあえず付け焼刃的にint型じゃなくて、もう少し数値の範囲に余裕のあるlong型に変換して、それでもダメな場合は、「有効範囲越えてまっせー!これ以上はもうやめてええええええ!」と出力するという対策しか頭がまわらなかった。プログラム奥深ぇ。
2010年2月4日木曜日
ファイルの入出力でtry-catch-finally
JAVAで基本的なファイルの入出力を書くときにいろいろ調べて、へぇ~って参考になったページがあったんだけどもう見つからなくなってしまったのでメモっとく。
ファイルをオープンした後は、きちんとクローズしないといけない。
それとIOExceptionの例外の可能性があるのでtry~catchをしないといけない。
で、これら2つのことを鑑みてプログラムを書くと、try~catch~finallyとして、finallyの中にファイルのクローズを書くといい。理由は、例外が発生した場合にファイルがオープンしたまま(クローズしないまま)catchに行ってしまう可能性があるからだ。
さらーに、へぇ~と思ったのは、そのfinally内のファイルのクローズ(close)処理も、エラーが発生する可能性があるのでtry~catchするということだ。
なるほど私のような素人の趣味レベルプログラムでは、なかなか気づけないなかなか書けないことだなあと大変参考になった。
ファイルをオープンした後は、きちんとクローズしないといけない。
それとIOExceptionの例外の可能性があるのでtry~catchをしないといけない。
で、これら2つのことを鑑みてプログラムを書くと、try~catch~finallyとして、finallyの中にファイルのクローズを書くといい。理由は、例外が発生した場合にファイルがオープンしたまま(クローズしないまま)catchに行ってしまう可能性があるからだ。
さらーに、へぇ~と思ったのは、そのfinally内のファイルのクローズ(close)処理も、エラーが発生する可能性があるのでtry~catchするということだ。
なるほど私のような素人の趣味レベルプログラムでは、なかなか気づけないなかなか書けないことだなあと大変参考になった。
2010年2月2日火曜日
やさしいJava活用編第3版読んだ
独学でJAVA勉強するかと思って、一通り読んだ本↑。JAVA ServletとかAppletとかJSPとかネットワーク接続(Socket通信)とかその辺のことをざっくり触れるのが結構よかった。ほんとのほんとにJAVAの入門的なことは、やさしいJavaの活用編じゃない方を買えばいいと思うけど、ぱらぱらっと本屋でめくった感じでは、ネットでたくさんJAVAの基本をまとめてくれてるサイトがあるので、そこを熟読すれば事足りるのではないかという印象。
実際、ちょこちょこっと簡単なプログラムを組むとき、本もいいけどネットで検索しがちで、それでいて結構便利なので。
あとは日々なにか作ってみることが大事だろかやっぱり。
2010年1月30日土曜日
HTMLのFORMからデータを取得する
JAVAでformからGETやPOSTされたデータを取得するには、doGETやdoPOSTというのを使うらしい。
参考
http://www.javadrive.jp/servlet/ini/index4.html
上記のJavaDriveというサイトは入門者にはとてもわかりやすくて参考になる。いい!!
あと、formから受け取ったデータをエスケープ処理するには、replaceとかreplaceAllメソッドを
使えばいいのかな?いいんじゃなかろうか。これでいってみよう。
参考
http://www.javadrive.jp/servlet/ini/index4.html
上記のJavaDriveというサイトは入門者にはとてもわかりやすくて参考になる。いい!!
あと、formから受け取ったデータをエスケープ処理するには、replaceとかreplaceAllメソッドを
使えばいいのかな?いいんじゃなかろうか。これでいってみよう。
2010年1月29日金曜日
sendRedirectとforward
参考
@IT:Java TIPS -- リダイレクトとフォワードの違いを知る
JSPページのform→サーブレットでデータ取得&加工
↓
最初のJSPページへ画面遷移して
↓
加工したデータを受け取って表示
って、ことをやりたくていろいろ調べてみたけどよくわからない。
sendRedirectだと画面遷移できるけど、データの受け渡しができず、
forwardだとデータの受け渡しはできるけど、
画面は遷移しない(サーブレットのURLのまま)っぽい?
どうしてもするならsessionを使うことになるのだろうか?
登録:
投稿 (Atom)