2007-03-01から1ヶ月間の記事一覧

なぜ論理的に考えられないか?

優秀なシステムエンジニアは"自然に"論理的な思考を行っています。 しかし、ほとんどの人はロジカルシンキングと呼ばれるスキルを学習して論理的思考が出来るようになったとは言わないでしょう。 彼らは学生時代の勉強や趣味などを通して論理的な思考を自然…

ロジック

プログラミングを生業とするならば、論理的思考(ロジカルシンキング)は欠かすことのできない最も重要なスキルです。 論理的でない仕様には必ず仕様漏れや不備があるものです。 論理的でないソースコードは非常に読み辛くメンテナンスが難しいものとなりま…

正規表現

正規表現(Regular Expression)とは文字列を特定のパターンで表す非常に強力なフォーマットです。 正規表現を用いる事で文字列を式として扱うことができる為、文字列に対して柔軟な検索や置換を行う事が可能となります。 この正規表現はJava特有の技術という…

システムエンジニアに必要なスキル

システムエンジニアの役割は要件定義・設計・実装まで及ぶ為、多種多様のスキルが求められます。 それらのスキルは「技術力」「コミュニケーション能力」「論理的思考能力」の3つに分類して考える事ができます。 技術力 ソフトウェア開発では最終的にプログ…

プリミティブ配列

配列は同じ型の変数をまとめて扱うデータ構造ですが、オブジェクト(参照)型だけではなくプリミティブ型の配列も扱う事ができます。 プリミティブ型配列も配列である以上はクラスに近い型であり、インスタンスを生成して使う必要があります。 これはプリミ…

オブジェクト型配列

配列とは同じ型の変数をまとめて格納する事ができるデータ構造で、C言語をはじめとするほとんどの言語でサポートしています。 JavaでもC言語と同じように配列を扱うことができますが、Javaの配列はC言語の配列とは仕組みが異なる為、充分に注意する必要があ…

例外(3)

例外処理は有効な機能ですが、使い方を誤ると発見しにくいバグを混入させてしまいます。 今回は例外処理(1)(2)で説明できなかった幾つかの機能と実装上の注意点を説明します。 finallyブロック try/catch構文にはfinallyブロックを追加する事ができます。 tr…

文字コード

Javaの内部では文字(char)は全てUnicodeで表されており、日本語も含めてほとんどの言語を"自然に"扱うことができます。 これは国際化(多言語対応)されたアプリケーションを開発するときには大きなメリットとなります。 文字列の長さ 既に学習したように…

マージソート

マージソートは、リスト(ArrayListなど)を分割していき、分割された要素をマージ(結合)していく事でソートを行うアルゴリズムです。 リストの要素はバラバラに分割されますが、バラバラになった要素は隣同士を大小比較しながら結合(マージ)します。 す…

バブルソート

バブルソート(Bubble Sort)は隣り合った2つの要素を比較し順序を入れ替えるという処理を繰り返すことでソートを実現するアルゴリズムです。 その名の通り、泡のように大きな(小さな)要素が上に浮いてくるようなイメージとなります。 聞いただけでは「ど…

選択ソート

選択ソート(Selection Sort)も基本的なソートアルゴリズムです。 挿入ソート(Insertion Sort)では、無作為に1要素づつ選び出し、適当な場所に挿入していく手順を踏みました。 これに対して選択ソートでは、最も小さい(大きい)要素から順に選び出し、…

挿入ソート

挿入ソート(Insertion Sort)は最も基本的なソートアルゴリズムです。我々の普段の生活の中でも馴染み深いアルゴリズムで、トランプの手札の整列や麻雀の牌を整列をする時に自然と行っています。 我々の行う挿入ソートでは要素を1つづつ適切な位置に挿入し…

線形検索

線形検索(Linear Search)は最も基本的な検索アルゴリズムで、目的のデータを探す為に集合から要素を1つづつ取り出し比較していく手順を踏みます。線形検索は非常に解りやすく単純です。 しかし、データがたまたま1つ目にあったならば1回で目的のデータ…

アルゴリズム

アルゴリズム(algorithm)とはある目的を実現する為の一連の手順の事です。 アルゴリズム (algorithm) は、なんらかの問題を解くための手順のことである。算法(さんぽう)と訳されることもある。 http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%82%B4%…

例外(2)

例外は呼び出し元に戻り値として返されるのではなく、throwされ上位メソッドに伝播されるものでした。 どんな場合でもJava仮想マシン(JVM)に例外処理を任せる事が許されるならば良いのですが、どんな例外でも発生したならばアプリケーションを終了してしま…

例外(1)

例外(Exception)はJavaの重要機能の1つですが、適切な使い方をしなければ大きなバグともなり得ます。 特に初学者にとって例外は解りにくく入門書でも深く触れていない為、よく解らないままにされる傾向にあります。 しかし、業務でJavaを扱うのであれば例外…