タグ

javaに関するarray08_12のブックマーク (47)

  • 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築

    2014年3月18日に一般公開予定のJava SE 8へのバージョンアップでは、新たな表記法として「ラムダ式」が追加されます。このラムダ式を使うことによって効果を発揮する数々のAPIも追加されることになり、今回のバージョンアップはJavaを使う人にとって無視できないバージョンアップとなります。 しかしラムダ式は今までJavaプログラミングをやってきた人でも前提知識なしにソースだけを見て理解するのは難しい内容となっています。この連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。 JDK 8は2013年9月10日に開発者向けプレビュー版が公開され、2014年2月18日現在、Early Access版がリリースされています。 コラム「ややこしいJavaのバージョン番号」 Javaのバージョン番号について、ところどころで1.8のよ

    初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
  • 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena

    Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl

    文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena
  • Java8には型推論があるので型指定不要で変数が使えますよ - きしだのHatena

    Javaプログラマのみなさんは、Javaは型推論がないから変数の型指定をしなくていけなくてダサい、などとイジメられた経験があると思います。 おかあさんに型推論をねだるとGroovyをわたされたり、おとうさんに型推論をねだるとScalaがやってきたり、プレステが欲しいって言ったのにWiiやXboxを買い渡される感を味わった人も多いのではないでしょうか。 そんな良い子のJavaプログラマのために、今年はサンタが素敵なプレゼントを持ってきてくれましたよ。 同じ型を書くのがダサい たとえばウィンドウを出してボタンを押したらメッセージが表示されるサンプルを書くとこんな感じになりますね。 public static void main(String... args){ JFrame f = new JFrame("テスト"); JButton b = new JButton("押して"); JText

    Java8には型推論があるので型指定不要で変数が使えますよ - きしだのHatena
    array08_12
    array08_12 2014/01/28
    コレジャナイ感ハンパない
  • Java SE 7徹底理解 第5回 New I/O 2の新しいファイルシステムインタフェース その2

    先月に引き続き、今月もNIO2で導入されたファイルシステムインタフェースについて紹介していきます。 簡単に前回のおさらいをしておきましょう。 新しいファイルシステムインタフェースは、既存のFileクラスの欠点を解決すべく導入されたAPIです。 ファイルシステムを表すのがjava.nio.file.FileSystemクラス、java.io.Fileクラスに対応するのがjava.nio.file.Pathインタフェースです。Pathオブジェクトに対するユーティリティメソッドはjava.nio.file.Filesクラスで提供されています。 先月はPathオブジェクトの生成、Fileオブジェクトとの相互変換、入出力などに関して説明を加えました。今月はFilesクラスで提供している機能を中心に説明を加えていきます。 ファイル・ディレクトリの作成 はじめに、ファイルやディレクトリを作成するところか

    Java SE 7徹底理解 第5回 New I/O 2の新しいファイルシステムインタフェース その2
  • Apache commons-langのStringUtilsで使えそうなものを抜き出してみた - ソフラボの技術ブログ

    commons-lang3.1のAPIから気になるものだけ抜き出したので、他に記載してないものもあります。 サンプルコードはAPIのコピペです。 文字列に関するよく使うロジックがまとまっているクラスです。 文字列をnullで比較するとぬるぽで落ちてしまうのですが、このクラスのものを使うとぬるぽで落ちなくなります。 if(hoge != null)という冗長なコードがなくなってスッキリします。 まとめていると同じようなものがあったので使い分けはどうするのか不明です。 若干処理内容が異なるかもしれませんのでその点は注意して下さい。 バージョンcommns-lang 3.1 目次 判定 isEmpty:nullまたは空文字のときtrueを返す isNotEmpty:nullまたは空文字ではないときtrueを返す isBlank:空文字ならtrueを返す isNotBlank:空文字ではないならt

    Apache commons-langのStringUtilsで使えそうなものを抜き出してみた - ソフラボの技術ブログ
  • Cloud Datastore Overview  |  App Engine standard environment for Java  |  Google Cloud

    フィードバックを送信 Google App Engine 上の Java コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 App Engine では Java アプリケーションについて、スタンダードとフレキシブルの 2 つの環境を選択できます。どちらの環境も同じコード中心の開発ワークフローが採用されています。素早く効率的にスケーリングを行って増加するリクエストに対応し、Google の実績あるサービス技術で、オペレーション上のオーバーヘッドを最小限に留めながら素早くウェブ、モバイル、IoT のアプリケーションを構築できます。2 つの環境には多くの共通点がありますが、重要な違いがいくつかあります。 スタンダード環境 トラフィックの急増に応じて直ちにスケーリングできるように最適化されています。 トラフィックを処理しない期間が長いアプリケーションでは、費用対効果

    Cloud Datastore Overview  |  App Engine standard environment for Java  |  Google Cloud
  • 正規表現

    Javaにおける正規表現 Javaには正規表現に関する機能を実現するためのパッケージ java.util.regex があります (Java SDK 1.4 で導入)。 このパッケージにより、強力な正規表現の機能を持つ Perl とほぼ同等の機能が実現されています。 クラス java.util.regex.Pattern が正規表現を表すクラスで、このクラスの matcher メソッドによって、実際にマッチングを行うクラス java.util.regex.Matcher のインスタンスを生成します。 クラス Pattern は new ではなく、compile という static メソッドによりインスタンスを生成します。なお、static メソッドはクラスに属し、インスタンスがなくても呼び出すことができます。通常のメソッド呼び出しは「インスタンス名.メソッド名」ですが、static メソ

  • JAX-RSを使ったWebサービスの作成

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    JAX-RSを使ったWebサービスの作成
  • 最近の Java Web 開発 : http://qiita.com/monzou/items/9174d0baf08af295e703

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    最近の Java Web 開発 : http://qiita.com/monzou/items/9174d0baf08af295e703
  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
  • Java セキュアコーディングセミナー資料

    これまでにJavaセキュアコーディングセミナーで使用した講義資料を公開しています。 Javaアプリケーションの脆弱性事例の解説資料については解説資料のページをご参照ください。 オブジェクトの生成とセキュリティ 数値データの取扱いと入力値検査 入出力(File,Stream)と例外時の動作 メソッドとセキュリティ オブジェクトの生成とセキュリティ クラスの設計とオブジェクトの取扱いをセキュアに行うためのポイントについて、オブジェクトの生成におけるセキュリティをテーマに解説します。 基礎概念のおさらい(クラス、シリアライズ、GC) クラスとセキュリティ上の脅威 オブジェクトを生成する3つの方法(new, clone(), deserialize) 上記トピックスに関するクイズと演習 公開日 タイトル PDF PGP 署名

    Java セキュアコーディングセミナー資料
  • Java 8を関数型っぽく使うためのおまじない - きしだのHatena

    やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ

    Java 8を関数型っぽく使うためのおまじない - きしだのHatena
  • 第1回 はじめてのSpring Framework | DevelopersIO

    今やすっかりAWS屋、しかもアプリではなくインフラ寄りのプロダクトばかり触っている都元です。しかし元々はサーバサイドアプリ屋ということで、ボスのAWSへの想いとは裏腹に、ぼちぼちとサーバサイドJavaの話も出して行こうと思っています。 というわけで、Spring Frameworkについて色々書いて行こうと思うのですが、どう考えても1回で終わる内容ではないため、シリーズ形式(連載)とさせて頂きたいと思います。ただ、書くネタは無限にありそうなので、回数は反響に応じて調整しようかな、と思っています。ギブミー・いいね。 Javaフレームワークの世界 Javaはフレームワークがいっぱいあることが利点でもあり欠点でもあります。多くの言語にはデファクトと言えるフレームワークが存在します。あまり知らない分野なので深く触れてヤケドしたくはないのですが、例えばRubyだったらRailsでしょうし、Pytho

    第1回 はじめてのSpring Framework | DevelopersIO
  • Javaはどのように動くのか~スライドでわかるJVMの仕組み

    Javaユーザーグループ JJUG ナイトセミナー 2 月 27 日(水) http://www.java-users.jp/?p=309 注:サンプルソースはあくまでも例であり、その修正例も完全なものではありません。Read less

    Javaはどのように動くのか~スライドでわかるJVMの仕組み
  • Apache Isis: ドメイン駆動設計のためのJavaフレームワーク

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    Apache Isis: ドメイン駆動設計のためのJavaフレームワーク
  • 頑健なJavaプログラムの書き方

    日頃より、アレスネットをご愛顧いただきまして誠にありがとうございます。 「ホームページサービス」のサービス提供は2016年1月31日をもちまして終了させていただきました。 これまで長らくご利用いただき、誠にありがとうございました。 今後も、皆様によりよいサービスをご提供させていただけるよう、サービス品質向上に努めて参りますので、何卒、ご理解いただけますようお願 い申し上げます。 <アレスネットをご契約のお客様へ> 後継サービスとして「userwebサービス」を提供させていただいております。 詳しくは、以下のリンクをご参照ください。 ▼「userwebサービス」のご案内 http://www.ejworks.info/userhp/alles/index.html 今後ともアレスネットをご愛顧いただけますようお願い申し上げます。 株式会社イージェーワークス アレスネット カスタマーサポート

  • プログラマーの脳みそ

    これは経験則なのですが、ある程度を超えたスパゲッティコードはリファクタリングを試みても状況が改善しなくなります。 ブラックホールから光が脱出できない事象の地平線になぞらえ、これをソフトウェア品質における事象の地平線と言い(ません— なぎせ ゆうき (@nagise) 2023年6月27日 リファクタリングの事象の地平線という比喩について解説をしておきます。 前提知識として リファクタリングの価値の考察 - プログラマーの脳みそ での議論を参照していただけるとありがたいです。 事象の地平線とは 事象の地平線というのは天文学用語でシュバルツシルト面などとも呼ばれます。超大雑把にいえば、ブラックホールのまわりのここから中に入ると光でさえも出ることはできないぞ、というラインです。 つまり、比喩としてはこの中に落ち込むと二度と脱出できないぞ、ということです。リファクタリングの力ではどうやってもソフト

    プログラマーの脳みそ
  • Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して

    Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具

    Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して
  • ジェネリックな設計 基礎編 - プログラマーの脳みそ

    11/10に開催されたJJUG CCC 2012 Fallでジェネリクスについてセッションを行いました。 このエントリはセッション内容を補足するものです。セッションはジェネリックなクラスの設計を行えるようになって欲しいという狙いで話をしました。ジェネリックなクラスを利用できるというのは前提条件として書いてます。入門的な内容であれば Javaジェネリクス再入門 - プログラマーの脳みそ を参考にしてください。 セッション資料はこちら ジェネリクスの基礎と応用 JJUG CCC 2012 Fall ジェネリクスのスコープ まずジェネリクスのスコープの話から入ります。Javaのジェネリクスには2つのスコープがあります。 メソッドをスコープとした型変数 インスタンスをスコープとした型変数 後者はおなじみの public interface List<E> などの型変数です。 これに対して pub

    ジェネリックな設計 基礎編 - プログラマーの脳みそ
  • Javaプログラマであるかを見分ける10の質問-回答編 - やさしいデスマーチ

    想定を超えた反応がありましたので、予定はしていなかった回答編をお送りします。ですが、正確な解答を書いても面白くないので、これをネタに面談をした場合に、自分ならどんなポイントを持って選考するかをまとめてみました。 はじめに このエントリーの質問の意図は「優れたJavaプログラマ」を見つける事ではありません。「最低限のスキルを持った戦力が欲しい」という状況です。したがって、優れた指摘をしてくるのであれば超したことありません。設問について議論が発生するならば、この設問を投げる必要がなかったということです。 Javaを詳しく知っている人からすれば間違いでは?曖昧な質問では?と感じる設問があるのは確かです。しかし、優秀な人をテストしたい訳ではないのです。したがって、正確性とか厳密性については求めません。「だいたいあっている」ならば前提条件である「中堅プログラマの補充」の条件を満たすからです。 中堅プ

    Javaプログラマであるかを見分ける10の質問-回答編 - やさしいデスマーチ
    array08_12
    array08_12 2012/10/24
    だいたい合ってて安心した。