タグ

関連タグで絞り込む (159)

タグの絞り込みを解除

javaに関するarephのブックマーク (118)

  • Java変態?コード最速マスター - うなの日記

    Java変態文法最速マスター - プログラマーの脳みそが面白かった && 参考になったので便乗してリスペクト。変態世間であまり見かけない(かも知れない)Javaコードを、過去のエントリからまとめてみました。 nullでなければループ 「配列がnullでなければループ」というシーンはまれにありますが、nullチェックのためにインデントが深くなるのが我慢ならん、というときにこういう記述はどうでしょう。 String[] strs = // 略 // 配列がnullでなければ各要素に対して処理を実行 if ( strs != null ) for ( String str : strs ) { // 処理 } if文の「{}」を省略してforを繋げているだけですが、インデントをさりげなく削れます。 似たような例で、「例外を無視して次へ」とかも。 // 例外が発生しても無視して次へ for ( S

    Java変態?コード最速マスター - うなの日記
    areph
    areph 2014/08/08
  • 日本Javaユーザーグループ

    Javaの標準化と標準管理を行なっている団体、Java Community Process(JCP)がその活動開始から25周年を迎えました。これを記念して来日中のNaoko Hamamotoさん(JCP Office)にご講演いただきます。また、JCP Executive CommitteeとしてのJJUGの活動報告もあわせて行います。 お申し込みは下記Doorkeeperページよりお願いします。 2024-08-01(木)19:00 - 20:50 https://jjug.doorkeeper.jp/events/175469

    日本Javaユーザーグループ
  • Collectorを征す者はStream APIを征す(部分的に)

    cero_tさんが書かれたラムダ禁止について気出して考えてみた - 9つのパターンで見るStream API は、とても良い記事です。Stream APIで実際に書いてしまいそうな、従来のfor/if文より読みにくいコード、予期せぬ不具合を起こしうるコードを例示し、いくつかの教訓を導き出しています。 何より、社内で「ラムダ式禁止、Stream API禁止」という悲しいことにならないように手を打とう! ラムダ式やStream APIの使い方やうれしさ、そして危ういところを社内の勉強会などで広げていこう! という、前向きな主張がすばらしいです。私も見習っていこうと思います。 さて記事では、cero_tさんが挙げられている8の教訓のうち、次の2点(カッコ内は私の補足です)について、少し異論を述べたいと思います。 (4) collectをしたら一度ローカル変数に入れよう!(collectで作ら

    areph
    areph 2014/07/28
  • ラムダ禁止について本気出して考えてみた - 9つのパターンで見るStream API - Taste of Tech Topics

    こんにちは @cero_t です。 今日のテーマは・・・ラピュタ禁止令! バルス! いや違う。ラムダ禁止令、です。 さて、なかなかの滑り出しですが、今日はただのラムダの紹介ではなく、禁止令に主眼を置いて語ります。 このエントリーは、Java Advent Calendar 2013の12/16分の投稿です。 http://www.adventar.org/calendars/145 前日は @sugarlife さんの JDK 8 新機能ダイジェスト (JDK 8 Features) です。 翌日は @setoazusa さんです。 ラムダ禁止令はあり得るのか? 勉強会やその懇親会などで、たびたび「ラムダ禁止令が出るのではないか」が話題に上ることがあります。 「そりゃ禁止する組織もあるでしょうね」というのがお決まりの答えなのですが、ただそれに従うだけでは面白くありませんし、要素技術の発展も

    ラムダ禁止について本気出して考えてみた - 9つのパターンで見るStream API - Taste of Tech Topics
  • JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena

    夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ

    JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena
    areph
    areph 2014/07/09
  • 最近のJava関係イベントの個人的なまとめと感想 - Splash of waters - 2nd. Season

    デブサミやJava Day Tokyoなど、会社の許可をもらってイベントにありがたく行かせてもらっているけど、ちゃんとレポートできていなかったということで、社内勉強会で話すことにしました。 まとめ資料を作ったので、このブログにて先行して公開してしまいます*1。少し前のエントリで資料をアップロードしたのはこのための準備でした。 資料の位置づけ 古いJavaの知識で止まっている人(自分含め)やこれから格的にJavaを学ぼうと思っている人に、最近のJava関連の新機能などをざっくりつかんでもらうための資料です。内容の深さ・広さは、聴く人のJavaスキルに合わせた一応合わせたつもりです。 Java SE 8がリリースされて、その界隈では「for文禁止」などと言われる一方で、会社の新人研修で教えるJavaでは、「ループはforやwhileを使って書きます」みたいに教えるわけで、その辺のギャップを埋

    最近のJava関係イベントの個人的なまとめと感想 - Splash of waters - 2nd. Season
    areph
    areph 2014/06/17
  • metadata-extractor — jpeg exif / iptc metadata extraction for java and c#

    metadata-extractor lets you access the metadata in digital images and video via a simple API. Implementations in Java and C# Mature project with countless contributors since 2002 Very fast due to efficient use of CPU, memory and IO Hosted on GitHub (Java, C#, test data) Apache license Heavily tested Widely used Supported Formats Image file types: JPEG PNG WebP GIF ICO BMP TIFF PSD PCX RAW CRW CR2

  • Java書けるんなら当然JavaScript呼び出せるよね? - プログラマーの脳みそ

    上司Java書けるんなら当然JavaScript呼び出せるよね?さっさとやっておいて」 JavaからJavaScriptを呼び出す Java 6 からスクリプトAPIを通じてスクリプト言語を呼び出すことができる。Java標準でJavaScriptのエンジン Rhinoが組み込まれているので特にインストール作業やクラスパスを通すような作業なしにJavaScriptの呼び出しをすることができる。 import javax.script.*; public class Sample { public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEn

    Java書けるんなら当然JavaScript呼び出せるよね? - プログラマーの脳みそ
  • JAVAでメールを受信する - 闘うITエンジニアの覚え書き

    2024-02-04 Goでリフレクション 他のdocker-compose へのネットワーク接続 2024-01-09 Grafanaパネルプラグイン開発(create-plugin版) Grafanaプラグイン開発(grafana/toolkit版) 2023-09-23 Jupyter Lab に他言語カーネルインストール 2023-09-19 Rustの基礎 Rustのインストール Rust 2022-11-01 MacBook(M1チップ) でOracledockerイメージ作成 2022-02-04 Grafanaバックエンドデータソースプラグイン開発 2021-02-11 dockernginxSSL証明書の自動更新 2021-01-17 GoExcelを読む 2021-01-05 GoでAzure AAD認証 2020-12-16 FrontPage 2020-12

  • メランジ雑記帳 » javaでSSL接続をすると、PKI PATHの構築に失敗となる

    JAVAのプログラムから、信頼できないサーバに接続すると、java 1.4(10年前)のころに比べるとやけに厳しくなっているのか、以下のようなエラーが発生する。 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed\ : sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to \ requested target これは、javaのランタイムが、PKI(Public Key Infrastructure)に基づいて「私である」という証明書の検査を厳しくするようになっているからである。年額

  • 泥臭くJNAにチャレンジ - DO☆KA☆TA ~information technology~

    前から気になってたJNA*1をやってみました。以前、JNI*2で泥臭くHellWorld的なものをやりましたが、泥臭過ぎてオエッとなりました。で、気持ち的にやっと泥が取れたところでJNAに取り組んでみます。 一応、泥臭くJNIにチャレンジ(2)でやったような感じでJNAをやってみます。 コマンドラインベースで泥臭いですが以前のJNIのエントリの流れでやればJNAとの比較がしやすいかなと思いました。 実施環境など 環境 WinXp MinGW 5.1.6 Java6u11 jna.jar 3.2.4 JNAは、jna.jarというライブラリが必要なのでここからダウンロードします。JNAは、JVM 1.4以降が対象です。 前提 MinGWへの環境パスは通しています。インストール含めてこちらを参考にしました。セットアップしてみよう Javaへの環境パスはとおしています。私の環境では、C:\Pro

    泥臭くJNAにチャレンジ - DO☆KA☆TA ~information technology~
    areph
    areph 2013/10/09
  • ファイルのメッセージダイジェストを計算する。 - うなの日記

    SHA1でファイルのメッセージダイジェストを計算するユーティリティを書きました。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.DigestException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * メッセージダイジェストを計算するユーティリティ。 * * @version $Revision:$ * @author $Author:$ */ public class MessageDigestUtil { /** * ファイルのメッセージダ

    ファイルのメッセージダイジェストを計算する。 - うなの日記
    areph
    areph 2013/10/04
  • Concurrency Utilities for EE 7

    Concurrency Utilities for EE 7 2013年5月15日 at 12:10 午前 日は、Java Day Tokyo に非常に多くの Java 開発者の皆様にお集まりいただきまして誠にありがとうございました。日私が C-4 のセッション「エンタープライズ環境における並列処理の実装方法について」で説明した資料に参考メモを付加した、参照用のバージョンを下記に公開します。 また併せて説明時に使用したデモ(CPU 256 個の環境で Java を並列処理実行させた際のデモンストレーション)動画も下記に公開します。下記のデモは内部的に単なる Σ 計算を行なっているだけなのですが、デモ動画をご覧いただくとわかるのですが、単なる逐次処理、JDK 1.0 からある昔ながらの Thread 生成方法、Concurrency Utilities を利用した場合で、どの位 CPU

    Concurrency Utilities for EE 7
  • Servlet 3.0 File Upload 機能

    Servlet 3.0 File Upload 機能 2010年3月11日 at 10:33 午後 3件のコメント Servlet 3.0 ではマルチパートデータを扱う事ができるようになったため、とても簡単にファイルアップロード機能を実現できます。 (表示用 HTML) <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> <title>JSP Page</title> </head> <body> <FORM action=”/FileUpload/MyFileUpload” enctype=”multipart/form-data” method=”POST”> アップロードするファイル名: <INPUT type=”file” name=”content”> <INPUT t

    Servlet 3.0 File Upload 機能
    areph
    areph 2013/03/19
    [multipart/form-data]
  • レッスン:基本的なI/O(Java?チュートリアル > 重要なクラス)

    このレッスンでは、基的なI/O処理に使用されるJavaプラットフォーム・クラスについて説明します。はじめに、I/O操作を大幅に簡素化する強力な概念である、I/Oストリームを取り上げます。 次に、シリアライズについて確認します。シリアライズを利用すると、プログラム内でオブジェクト全体をストリームに書き出したり、再度オブジェクトに読み込んだりすることができます。 その後で、ランダム・アクセス・ファイルを含む、ファイルI/Oとファイル・システムの操作について説明します。 I/Oストリームセクションに記載したクラスの大部分は、java.ioパッケージに含まれています。 ファイルI/Oセクションに記載したクラスの大部分は、java.nio.fileパッケージに含まれています。 I/Oストリーム バイト・ストリームは、RAWバイナリ・データのI/Oを処理します。 文字ストリームは文字データのI/Oを

    areph
    areph 2012/12/13
  • ジェネリックな設計 基礎編 - プログラマーの脳みそ

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

    ジェネリックな設計 基礎編 - プログラマーの脳みそ
  • Javaのbyte型を使ってみる。 - Object for cutie

    的な事ですが、byte[]を使う必要に迫られました、、 個人的にとても苦手な所なので、克服するために1つずつJavaの「byte」について調べてみました。 まず「wiki」を見てみました。 Javaのbyteはintやshort等と同じ基型といわれるもので、 その中でも整数型として提供されているようです。 符号付きの8bitで1000 0000 (-128) 〜 0111 1111 (+127)まで表現できます。 型 デフォルト値 サイズ 範囲 byte 0 8bit符号付き -128〜127 あとはどんどん色々な使い方を試して探っていくこととします。 以下はbyte型の変数に整数の127を代入して出力するコードです。 public class TestByte { public static void main(String[] args) { // Javaのbyte型 // 1

    Javaのbyte型を使ってみる。 - Object for cutie
  • DateFormatは前方一致だったのか - syttruの日記

    yyyy/MMという日付書式に、2010/06/15っていう文字列日付を入れてもパースできちゃうっていうのはどうゆう仕様なんだろうか。 JavaのDateFormat - 何言語でも話したいPGの開発日記 気になったので調べてみました。 メソッドは pos によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用する必要はありません) のあとのインデックスに更新され、解析された日付が返されます。更新された pos は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos のインデックスは変更されず、エラーが発生した文字のインデックスに pos のエラーインデックスが設定され、null が返されます。 DateFormat#pa

    DateFormatは前方一致だったのか - syttruの日記
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌

    このエントリを読む前提条件として、マルチコア時代に備えて気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - じゅんいち☆かとうの技術日誌を読んで、リオーダーとは何かを理解していることとします。 前回のおさらいをすると、 プログラムの実行順序は、リオーダーが許可される場合と禁止される場合がある。並行処理ではリオーダーを想定しなければ、処理結果の整合性が確保できない。(特にマルチプロセッサ環境) リオーダーを禁止して、可視性を保証する。(finalフィールドはコンストラクト時に完全に初期化され、コンストラクト後はスレッドから見えるようになる) でした。 リオーダーについて理解できたら、今度はメモリバリア命令でスレッド毎に扱うメモリと、大域のメインメモリとのメモリI/Oについて見ていきたいと思います。メモリバリアが理解できれば、以下のソース*1のスレッドがな

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌

    長い文章になってしまったので、概要だけ先に書きます。 以下のJavaプログラムは、常に上から下に順番に命令が実行されると思いますか?つまり、aに1が格納された後に、bに2が格納されると思いますか? 実は場合によってはこの実行順序が入れ替わる場合があります。これはJavaの言語仕様として定義されていることです。これを考慮しないと信頼性のある並行処理は実装できません。 気になる人は以下を読んでみてください。 a = 1; b = 2; すでにインターネットは社会インフラ化しています。ソーシャルネットワークで多くの人とコミュケーションやコラボレーションできる時代で、個人が情報を作り消費することは当たり前になってきています。そして、インターネット上のコンテンツは増加の一途を辿っています。「情報爆発」なんて言葉も耳慣れた言葉になりましたが、その問題解決のためにMapReduceなどの分散処理技術に注

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌