タグ

Javaに関するmimimi0101のブックマーク (25)

  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して
  • wise9 › JavaとJavaScriptの20年戦争

    モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲーム歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS

  • 普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して

    以前はJava EEの普通のWebアプリケーションで、JavaScriptはあくまでも利便性のために補助的に使うものという認識がありましたが、さすがに最近では普通の業務系のSI案件でもテーブル表示や入力補助などで高度なAjaxライブラリーの使用が当たり前のように求められるようになりつつあります。サーバーサイドのJavaScript技術といったものもありますが、そういった新しい技術を使わないまでも、ごく普通にある程度大きなJavaScriptの作成が必要になってきているということです。 もちろん、JavaJavaScriptはその名前にかかわらず、来全く別の言語です。しかし、意図的に似た構文でロジックが書ける*1ため、兄弟の言語として認識している人も意外に多いのではないかと思います。しかし、使用できるライブラリーに違いがあるという点が一見してわかる最も大きな違いですが、基的な言語の文法

    普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して
  • Javaで覚えるIT技術者の40の常識 - @IT

    ~新人プログラマ/SEは覚えておきたい“まとめ”~ @IT編集部 2011/3/24 このページは、開発者/プログラマが、以下のような項目に関して、常識的な基礎知識を学ぶための記事リンクのまとめです。 デスクトップなどの見た目に関する3つの常識 プログラミング・コーディングに関する6つの常識 ネットワーク/通信に関する9つの常識 セキュリティに関する3つの常識 データとファイルに関する5つの常識 設計・アーキテクチャに関する6つの常識 ソフトウェアの品質管理に関する3つの常識 業務アプリに関する5つの常識 Java SE(旧、J2SE)のコアAPIやJSP/サーブレット+StrutsのWebアプリケーション開発、JBossやその他のJavaオープンソースソフトウェアのサンプルコードや使い方を通じて、さまざまな“常識”を学習する以下の連載の記事に、基礎知識のカテゴリごとに分けてリンクしていま

  • 初心者がJavaを“超高速”で学ぶためのコツ:ITpro

    皆さんの中には,「いまどきJavaくらいできなきゃねぇ~」と言われてからもう何年も過ぎちゃった…なんて人も多いのではないでしょうか。いつ何時「新しいプロジェクトJavaでいくから」なんて上司に言われたりしないか,内心ドキドキしてる方もいらっしゃるでしょう。私が受け持つJavaの授業でも,受講生の方からそういった悩みをよく聞きます。 しかしよく聞いてみると,なんだかとても効率の悪い勉強をしているなあと驚くことがあります。なぜなら多くの方が「Javaの入門書で勉強しているのにJavaのプログラムを作れるようにならない」と言われるからです。COBOLやC言語のプログラミング経験があるにもかかわらずです。 なぜJavaの学習がなかなか進まないのでしょうか。残念ながら「Javaのスキルが上がらない」という方の多くは,「データとアルゴリズム」「Javaの文法」「オブジェクト指向」の三つをきちんと学べ

    初心者がJavaを“超高速”で学ぶためのコツ:ITpro
  • 『Java Portable』を使えばポータブルアプリでJavaが使える! | ライフハッカー・ジャパン

    デスク配線がスッキリ。Ankerの全部入り12 in 1モニタースタンドが突然8,250円OFFされてた #Amazonセール

    『Java Portable』を使えばポータブルアプリでJavaが使える! | ライフハッカー・ジャパン
  • Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ

    元ネタはこちらですが、「優れたJavaプログラマ」を見分ける質問ではありません*1。次のような状況を想定してください。 受託業務を中心にしている弊社は、Javaで業務系ウェブアプリケーションの開発を行う事になりました。しかし社内のリソースを使うにも1−2名足らない事が見積もりから解っています。そこで、中堅エンジニアを1−2名募集することになりました。正社員か派遣かは問いませんが、経験が3年程度の中堅プログラマが必要です。同等またはそれ以上のスキルを持つ正社員がプロジェクトを牽引しますが、ゼロから教えながら教育することはできないので、必要最低限のスキルを持っていることが条件になります。 こんな状況を想定して、面接の質問を考えてみました。経験が3年程度あれば、問題なく答えられるはずです*2。尚、質問はホーム言語がJavaである前提です。 下記質問にそれぞれ50文字以内を目安に簡単に説明すること

    Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ
  • Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その3) - 達人プログラマーを目指して

    少し間が開いてしまいましたが、前回のJavaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その2)に続いて、試験問題のリファクタリングについて説明します。 Template Methodデザインパターンを使った制御の反転 前回までのリファクタリングで、 全体的にレイヤー化されたパッケージ構造を規定 わかりにくい変数名やクラス名をリネーム Repository、Consoleなど複雑で再利用可能な処理をインタフーフェースとその実装クラスとして抽出 各機能を担当するアプリケーション層のクラスに共通のインターフェースを実装させることでポリモーフィック(多態的)に処理を起動 といった手順を実行してきました。これまでのリファクタリングで、オリジナルのソースコードに比べると飛躍的に可読性の高いコードになっていると思いますが、ところどころで同じような制御構造が繰り返し出現することが

  • Java基礎文法最速マスター - いろいろ解析日記

    Javaの文法一覧です。他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1. 基礎 classの作成 プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.javaファイル内に次のように書きます。 public class Sample { } mainメソッドの作成 プログラムはclass内のmainメソッドの先頭から実行されます。mainメソッドは次のように書きます。 public class Sample { public static void main( String[] args ) { // 処理を書く } } System.out.printlnメソッド 文

    Java基礎文法最速マスター - いろいろ解析日記
  • “コンストラクタ”と初期化、本当に理解できてる?

    “コンストラクタ”と初期化、当に理解できてる?:【改訂版】Eclipseではじめるプログラミング(13)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります コンストラクタでケアレスミスを少なくしよう Javaでは、正しい状態のオブジェクトを生成するために、「コンストラクタ(construtor、組立てる者)」というものが用意されています。クラスの各フィールドの初期化処理を実行するコンストラクタを用意することにより、「プログラマが、初期化がされていないオブジェクトをケアレスミスで用意してしまう」ことを防いでいるのです。 前回の「継承やオーバーライドで簡単にクラス

    “コンストラクタ”と初期化、本当に理解できてる?
  • Javaを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 (リスト&マップ編) - 何かしらの言語による記述を解析する日記

  • finalをつけたらパフォーマンスが落ちたでござるの巻 - やさしいデスマーチ

    山岳信仰の盛んだった日では山奥の開発現場など、まだまだfinal信仰が盛んなわけですが、先ほどのコードにfinalを付けてみました。 public static void main(String[] args) { final int NUM = 31; long start = System.currentTimeMillis(); for (int i = 0; i < Integer.MAX_VALUE; i++) { int hash = 17; hash = hash * NUM + i; hash = hash * NUM + i; hash = hash * NUM + i; hash = hash * NUM + i; hash = hash * NUM + i; } System.out.println(System.currentTimeMillis() - star

    finalをつけたらパフォーマンスが落ちたでござるの巻 - やさしいデスマーチ
  • 総まとめ:Javaの将来的な後継者としての Scala

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    総まとめ:Javaの将来的な後継者としての Scala
  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • 未経験者に教える - はてっちょ

    雑記いま新人の面倒を見てて思ったことをつらつらと書いてみる。俺がプログラム始めたのは花も恥じらう0x10歳の時だったのだけど、そのころに比べて未経験者が立ち向かうことは非常に多くなったと思う。N-88BASICを書くときに、構造化であるとか、オブジェクト指向であるとか、スパゲッティコードとか、そういうことをあまりうるさく言われなかったと思う。まぁ自分で全部やれたからなんだけど。とにかく書いてみればいい、というそんな時代だった気がするのは、今ほどパソコンが強力無比ではなかったことも影響していたと思う。少ないメモリーをやりくりするためにトリッキーなことしたりとか、そんな時代。そんな時代からなくなったもの実は今って、プログラムを開始するには、敷居が高いんじゃないかと少し思うようになった。ツール類は非常に充実したんだけど、そういったものは結局、プログラムを理解している人がより快適にプログラムをする

  • Javaの参照型を文字列操作で理解して文法を総復習

    【総復習】Javaの変数は大きく2つに分かれる これまでの連載で、Javaには基型(プリミティブ型)のほかに配列やクラスといった型があることを解説しました。実は、Javaの変数の型は「基型」「参照型」の2つに大きく分けることができ、配列やクラスは参照型に含まれる型になります。 今回は、この参照型について解説します。また、参照型の中でもよく使うStringクラスについても解説します。さらに、これまで解説してきた基型、クラスとインスタンス、メソッドについても総復習する良い機会にもなるはずです。EclipseでJavaプログラミングを始める準備がまだの方は、連載第1回の「Eclipse 3.4で超簡単Javaプログラミング基礎入門」で準備しておいてください。 イメージで何とか理解したい「参照型」とは これまでの連載でも説明しましたが、基型の変数では、変数宣言をすれば、そのまま値を代入でき

    Javaの参照型を文字列操作で理解して文法を総復習
  • shokosブログ

    OS:Yosemite vimの設定 github.com .vimrcは上記を参考に hybridが効かないと怒られるので、 git clone https://github.com/w0ng/vim-hybridhybrid.vimを~/.vim/colorsにおく NeoBundleの設定 mkdir -p ~.vim/bundle git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vimvimを起動して、:NeoBundleInstall Erlangインストール qiita.com この記事を参考にした curl -O https://download.basho.co.jp.cs-ap-e2.ycloud.jp/otp/download/otp_src_18.1.tar.gz ta

    shokosブログ
  • 「Java SE 6完全攻略」番外編 Java SE 6u10の新機能 その10

    先週から次世代Java Plug-inのJNLPサポートについて紹介してきました。先週はJNLPを用いたアプレットのデプロイメントと実行について紹介しましたので,今週からJNLP APIについて紹介していきます。 実際にJNLP APIを紹介する前に,なぜJNLP APIが必要なのか考えてみましょう。 アプレットにはいろいろと制限があることは,よく知られています。例えば,次のアプレットをブラウザ上で実行してみましょう。 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFileChooser; // このアプレットは署名しないと // アクセスコ

    「Java SE 6完全攻略」番外編 Java SE 6u10の新機能 その10
  • Perl Tips | Java で、サイトにアクセスして HTML を取得する方法

    Perl だとほんの数行で書けてしまうことが Java だと結構かかる (C だともっとかかる)。以下は STR_URL で指定した URL の内容 (HTML) を取ってきてコンソールに表示する例。何をしているかはコメントをご覧ください。 import java.net.URL; import java.net.HttpURLConnection; import java.io.InputStreamReader; import java.io.BufferedReader; ... // アクセスする URL を文字列に設定する。 String STR_URL = "https://perltips.twinkle.cc/"; // URLを作成する。 URL url = new java.net.URL(STR_URL); // 接続を取得する (接続は new して作るのではなく、

  • Javaテクニック:コンストラクタの引数が多いときにはビルダーを検討する(その2) - バイオインフォマティクスって何ですか?

    Java | 書籍『Effective Java』から Java のプログラミングテクニックを紹介します。前回、コンストラクタの引数が多い場合の解決策として、テレスコーピングコンストラクタパターンと JavaBeans パターンの2つの方法を見ました。これらの方法には、それぞれ「可読性」と「安全性」において問題がありました。今回は、これらの欠点を同時に解決できる第3の方法、ビルダーパターンについて説明します。ビルダーパターンビルダーパターンでは、欲しいオブジェクトを直接生成する代わりに、まず、ビルダーオブジェクトを生成します。このビルダーオブジェクトに対して、パラメータを設定するセッターのようなものを呼び出し、個別にパラメータを設定します。設定が終わったら、最後に build() メソッドを呼び出し、欲しいオブジェクトを生成します。実際にどのようになるかを次に示します。 // ビルダーパタ