Going my way

いいなと思ったことをメモしていきます。

2012-08-01から1ヶ月間の記事一覧

Javaのマルチスレッドでオブジェクトをロックする方法(オブジェクトをロックするパターン)

前回はメソッドをロックしましたが、今回はオブジェクトをロックしてみましょう。やっていることは、スレッド①で彼女の名前をセットして、スレッド②で彼女の名前を取得して表示する、という処理です。スレッド①で彼女のロックを取得しているので、名前をセッ…

Javaのマルチスレッドでオブジェクトをロックする方法

マルチスレッドアプリケーションでは、同時にアクセスされるのを防ぎ、一連の処理を保証するため、ロックをします。 同時にアクセスされることを防ぐことを同期化といいます。あるインスタンスに関するsynchronizedメソッドは、一度に1つのスレッドしか実行…

Javaでマルチスレッドの基本のまとめ

スレッドとはアプリケーションプログラムには、アプリケーションの命令を最初から1つずつ順番に実行するための実行制御があります。 このような実行制御の流れを実行スレッドと呼びます。 すべてのアプリケーションには少なくとも1つの実行スレッドが存在…

「なるほど!」と納得した変数名の付け方のルール

CODE COMPLETEを読んで、今まで何気なくつけていた変数名にもきちんと意味があることがわかりました。 印象的だったものを紹介したいと思います。■変数に名前を付けるときに最も重要なことは、変数が表すものを完全かつ性格に説明するような名前を付けること…

【Java】ジェネリックスを使ったサンプルと周辺知識のまとめ

ジェネリックスは何のためにあるの? コレクション操作において、データ型の不一致をコンパイラに検出させるためです。 コレクションから要素を取得するときは適切なデータ型にキャストする必要があります。 しかし、キャストを指定する際にタイプミスがあっ…

System.out.printlnはなぜインスタンス化せずに使えるのか。

Javaプログラマーなら例外なく誰もが使うのがSystem.out.println("hoge");です。呼吸をするように、ごく自然に使ってきたから、普段は疑問に思うこともなかったのですが、 小便をしているときにふと、こんな疑問が浮かびました。 なんで、System.out.println…

StringBuilderクラス、エスケープなどまとめ

エスケープ処理とは 特別な文字を使い、後続する文字に別の意味を持たせる処理のこと。エスケープシーケンスとは エスケープ処理で表記した文字のこと。改行文字を含む文字列がほしい場合String str = "hoge/nfuga";と書く。すると hoge fuga と出力される。…

Stringクラスの中の人はけっこう面白かった。

JavaのコンパイラはJVMという仮想マシン用のマシン語を出力する。仮想マシンの実行速度は、本物のハードウェアが直接マシン語を実行する場合と比較すると遅くなる(と言われていた)その後、ホットスポットコンパイルなどの改善を行った。 ※ただし、ホットスポ…

MySQLの文字化けがどうしても直らないときは、my.cnfだけいじってもダメだとわかった。

・my.cnfでいじっても文字化けが直らない。 ・INSERTすると文字が化けて見える。 ・linux自体の文字コードもちゃんとutf-8にした。 どうしてもMySQLの文字化けが直らないから、念のため以下を実行してみた。 すると・・・ mysql> show variables like 'chara…

さくらVPSにmysqlをインストールしてみた

linuxにmysqlをインストール MySQLがインストールされていないことを確認。 # rpm -qa mysql*MySQLをインストールする。 # yum install mysql*MySQLのサービスを開始する。 # /etc/init.d/mysqld startrootのパスワードを設定する。 # mysqladmin -u root PA…

マルチスレッドことはじめ

スレッドとは 実行制御の流れのこと。 マルチスレッドとは、実行制御を複数並行で持つこと。 実際は同時に行なっているというよりは、CPUが短い時間で処理を切り替えて実行を切り替えている。 スレッドクラスの実装は2パターンある。 ・java.lang.Threadク…

さっそくテンプレートメソッドパターン使ってみたよ!

テンプレートメソッド(TempleteMethod)とは、読んで字のごとく、 テンプレート(型)を作って、テンプレに沿って実装するパターンである。 interfaceで型を決めて、実装はサブクラスに任せる。 クラスを使う側は、型だけ知っていれば良い。せっかくテンプレー…

Javaの実行コマンドとクラスパスの指定、jarにパスを通して実行する方法など

■Javaアプリケーションの実行外部jarの参照など、eclipseで設定するのは簡単だ。 しかし、linuxでバッチ処理として動かしたいときなどはjavaコマンドを使い、 その際は-classpathの設定をしなければならない。Javaアプリケーションの実行の際は、依存関係の…

Javaでファイル操作まとめ(FileInputStream編)

JavaではFileクラスを使ってローカルシステムにあるファイルをオブジェクトとして表現できる。 では、そのファイルを読み書きするにはどうしたらいいだろうか。そこで使うのは、「ストリーム」である。ストリームとは、データを読み書きできる性質のみを取り…

Javaでファイル操作まとめ(Fileクラス編)

Fileクラスを理解することが最も基本となる。 Fileクラスのオブジェクトは「不変」なので、一度パス名を指定してFileオブジェクトを作成すると、 そのオブジェクトによって表される抽象パス名は決して変わらない。システム依存の抽象パス名を取得する。 pack…

超簡単!Javaでツイートbotを作る手順まとめ

Javaでbotを作成しようと思い色々と調べてみたのだが、思ったよりずっと簡単であった。 しかし、やってみると簡単でも外から見ると難しそうに見えるかもしれない。 そんな誤解を解くために、手順を解説する。あなたがツイートするまで1時間もかからないだろ…

Javaコレクションのまとめ

package forBlog; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; public class SampleList { public static void main(String[] args){ //コレクションの要…

ブログにツイートボタンを表示する方法

ツイートボタンを表示する方法 下記のJavaScriptをブログの記事に書くだけ。 <a href="http://twitter.com/share" class="twitter-share-button">Tweet</a> <script type="text/javascript" src="http://platform.twitter.com/widgets.js"> </script>こうなる↓ Tweet ツイートボタンを英語で表示した場合は

PHPでMySQLにSELECTめも。 

<form>タグの意味 <form action="データの送信先" method="送信方法"> <input>タグなど記述する </form>属性の意味 action データを送信する先のプログラムを指定 method データを送信する方法を指定。postかget <input>タグの意味 <input type="ボタンの種類" name="データを識別する名前" size="サイズ" value="表示する文字" "デフォルト値"> 属性の意味 type 部品の種類を指定する文字列 name データを識別する名前を設定。受信する側はこのnameを</form>…

ALTER TABLEいろいろ。

以下のテーブルを色々いじってみる。 mysql> desc test1; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ |…

PreparedStatementの使い方の例

SQLに指定する値を動的に設定したい場合などに使えるPreparedStatementの例。 WHERE文の指定に変数を使うときなどに使おう。 package jdbc; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import jav…

javaからMySQLにINSERTする。

MySQLにINSERTのSQLを発行するjavaのコードの例 package jdbc; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLExcep…

JavaからMySQLにクエリを投げて、データ数をカウントする。

結果行の行数を数えるコードの例 package jdbc; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import j…

なぜArrayListの参照変数はList型で宣言しなければならないのか

掲題の疑問について考えてみよう。 ついでに一度リストについてまとめる。 package sample2; import java.util.ArrayList; import java.util.List; public class ListSample { public static void main(String[] args){ //① ArrayList<String> list = new ArrayList<String>(</string></string>…

ファクトリパターン超基礎

ファクトリパターンとは オブジェクト生成を1つの役割とみなし、その機能を分離することである。具体的には、ファクトリパターンでは、newによるオブジェクト生成をメソッド内に隠蔽する。 package sample2; public class Main { public static void main(S…

JavaからMySQLにSELECT文を投げるコードサンプル

MySQLサーバからJavaでデータを取得するためのサンプルを載せます。まずはDBの情報。 以下のようなDBのデータをJavaを使って取得したい。 mysql> desc test1; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null |…