タグ

Javaに関するsyonxのブックマーク (82)

  • ConcurrentHashMapという選択 - 技術開発日記

    最近「java.util.HashMap」がスレッドセーフじゃないことを知って それについていろいろ調べてみた。 まず、「java.util.HashMap」はスレッドセーフじゃないから、複数スレッドが並行してHashMapにアクセスする場合はハッシュテーブルの破壊とか無限ループ、メモリリークを起きてしまうことがあるみたい。 なんで、その対策としては基的にはHashMapの代わりに以下のようなsynchronizedMapを使うのがいいらしい。 Map map = Collections.synchronizedMap(new HashMap(...)); ただ、このsynchronizedMapについても少し調べてみると、実はこれはこれで問題があるらしく、 Iteratorで要素を取り出すときに同期を保証してくれないから、Mapの要素数が変わったりするとConcurrentModifi

    ConcurrentHashMapという選択 - 技術開発日記
    syonx
    syonx 2015/07/27
  • Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD

    この記事は、JavaScalaの例外分析・パフォーマンス監視のツール Takapiblog に投稿されたものです。 Javaのマイクロフレームワークとは何か、推奨される理由とは? どんなプログラミング言語にも、長所と短所はあるものです。例えばJavaは、安全性の高さや、厳しいテストを経ていること、後方互換性などの利点を持つ言語です。しかし、その代償として、アジリティ(俊敏性)や合理性といった面が少なからず犠牲になっています。冗長で、Java自体が肥大化しているという事実も否定できません。とはいえ、新規開発や大規模な開発を行いたい場合、JVM(Java仮想マシン)はバックエンドとして非常に魅力的です。JVMはパワフルな上に、非常に厳しい環境でテストされています。このような利点があるため、結果的にJavaは広く使用され、積極的にデプロイされているのです。 しかし、このJavaの現状を皆

    Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD
    syonx
    syonx 2015/07/27
  • POI CellReferenceメモ(Hishidama's Apache POI CellReference Memo)

    A1形式でのセルの取得 A1形式での位置はCellReferenceで取得できる。 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.util.CellReference; Sheet sheet = ~; Cell cell = getCell(sheet, "A1"); public static Cell getCell(Sheet sheet, String position) { CellReference reference = new CellReference(position); // A1形式 Row row = sheet.g

    syonx
    syonx 2015/07/06
  • Singleton パターン - Wikipedia

    Singleton パターン(シングルトン・パターン)とは、オブジェクト指向のコンピュータプログラムにおける、デザインパターンの1つである。GoF (Gang of Four; 4人のギャングたち) によって定義された。Singleton パターンとは、そのクラスのインスタンスが1つしか生成されないことを保証するデザインパターンのことである。ロケールやルック・アンド・フィールなど、絶対にアプリケーション全体で統一しなければならない仕組みの実装に使用される[1]。 クラス図[編集] Singleton パターンの一般的なクラス図を示す。 Singleton は同じ型のインスタンスを private なクラス変数として持つ。この変数には Singleton.getInstance() からアクセスする。Singleton のコンストラクタは private である。 このクラス図で注目すべきこ

    Singleton パターン - Wikipedia
    syonx
    syonx 2015/06/23
  • Javaファイルアップロードメモ(Hishidama's FileUpload Memo)

    S-JIS[2007-07-08/2007-08-27] 変更履歴 Jakarta commons fileUpload Apache Jakartaプロジェクトで作られた、ブラウザからサーバーへファイルをアップロードする際の、サーバー側の受信ライブラリ。 インストール commons fileUploadのダウンロードページからアーカイブをダウンロードする。(commons-fileupload-1.2-bin.zip) 適当な場所にアーカイブを展開する。 「展開したディレクトリ/lib」のjarファイルを、所定の場所に置く。 Commons IOのダウンロードページからアーカイブをダウンロードする。(commons-io-1.3.2-bin.zip) IOに入っているいくつかのクラスがfileUploadで使われる。fileUpload1.0まではfileUploadのjarに含まれて

  • Spring Cloud - Release Trains

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration. If you’re looking for information about a specific version, or instructions about how to upgrade fr

    Spring Cloud - Release Trains
    syonx
    syonx 2015/05/26
  • WebJars - Web Libraries in Jars

    WebJars are client-side web libraries (e.g. jQuery & Bootstrap) packaged into JAR (Java Archive) files. Explicitly and easily manage the client-side dependencies in JVM-based web applications Use JVM-based build tools (e.g. Maven, Gradle, sbt, ...) to download your client-side dependencies Know which client-side dependencies you are using Transitive dependencies are automatically resolved and opti

  • Homepage - Flyway

    Increase reliability of deployments by versioning your database Get Flyway for free Stay updated about Flyway Get all the latest guides, community news, product updates, and resources

    Homepage - Flyway
    syonx
    syonx 2015/05/26
  • Spring Boot 使い方メモ - Qiita

    Spring Boot とは Spring プロジェクトが提供する様々なライブラリやフレームワークを、手っ取り早く使えるようにしたフレームワーク。 Dropwizard の Spring 版みたいなの。 ビルドすると単独の jar ファイルができあがる。 Web アプリの場合は、組み込みの Tomcat が起動する(Jetty や Undertow に切り替え可)。 Web アプリでなく、普通の Java プログラムとしても動かせる。 Maven や Gradle などのビルドツールを利用する(Ant でもできなくはない)。 使用したいコンポーネントを依存関係に追加するだけで、結合に必要な設定などが自動で行われる。 環境 Java 1.8.0_45 Gradle 2.3 Spring Boot 1.2.3 Hello World 実装 buildscript { repositories

    Spring Boot 使い方メモ - Qiita
    syonx
    syonx 2015/05/26
    これは素晴らしいまとめ
  • Maven – Guide to Coping with Sun JARs

    Apache/ Maven/ Guide to Coping with Sun JARs | Last Published: 2019-09-05 | Get Sources Download Often users are confronted with the need to build against JARs provide by Sun like the JavaMail JAR, or the Activation JAR and users have found these JARs not present in central repository resulting in a broken build. Unfortunately most of these artifacts fall under Sun's Binary License which disallows

  • MavenでOracle JDBC(ojdbc.jar)を使うには

    Mavenは便利だけど中には手に入らないjarも存在します。 特に会社でMavenを使おう!となるとojdbc.jar つまり、Oracle JDBCが無くて困ります。ではどうするか? 答えは3つあるかなーと。 ojdbcだけはMaven以外で管理する。 つまり普通にlibフォルダに突っ込んでビルドパス通すなりなんなりする。 JDBCドライバのリポジトリは? 上記URLを参考にする。 ローカルリポジトリを使う。 1でもまあ良い気もします。特に欠点はないかもしれません。 2は以下の理由で採用しづらいです。 まずojdbcのバージョンが古いです。2013/9/8現在、Oracle DBは11gでojdbc6.jarが最新です。そしてコメントにもあるように再配布OKなのか怪しいので、ここのURLから取得していいのか分かりません。普通OracleからDLするときにライセンス承認求めてくるので、そっ

  • Maven Central Repository Search

    Official search by the maintainers of Maven Central Repository

  • MavenをEclipseで使いたい初学者のトラブル例 - Qiita

    はじめに(経緯) 「せんせー、Mavenがなんかうまく動きません」 というわけで、初学者向けにまとめておく。 プロジェクトと動作環境のJDK Versionの不一致 mvn packageやmvn jetty:run でプロジェクトのパッケージ化や動作をさせようとする際に、次のようなエラーが発生する。

    MavenをEclipseで使いたい初学者のトラブル例 - Qiita
    syonx
    syonx 2015/05/25
    プロキシの闇
  • Springframework.org

    Spring Tools 4 is the next generation of Spring tooling for your favorite coding environment. Largely rebuilt from scratch, it provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE. Spring Tools 4 for Visual Studio CodeFree. Open source. Spring Tools 4

    Springframework.org
    syonx
    syonx 2015/05/25
  • 春だから!Javaでの開発にSpring Bootを使おう! | 株式会社メイプルシステムズ

    こんにちは、STです。季節の中で心地よい春がやってきました。 桜はすでに散ってしまい、花見の時期を逃してしまいました。 そんな春にお届けするのは『Spring Boot』です。 Spring Bootとは Javaのフレームワークに「Spring」というフレームワークがあります。 「Spring Boot」と「Spring」は別物なのでしょうか? 答えはNoです。 Spring Bootは、Springの機能とは別の全く新しいフレームワークというわけではなく、 それまでのSpringの各種フレームワークを新しい形で「統合」したものです。 フレームワークは「Spring Boot」だけ Spring Bootは、いかに簡単に使えるアプリケーションを作るかで設計されています。 内部では様々なSpringのフレームワークが使われていますが、開発者はそれらを意識する必要がありません。 以下に Sp

    春だから!Javaでの開発にSpring Bootを使おう! | 株式会社メイプルシステムズ
    syonx
    syonx 2015/05/25
  • Grails® Framework

    Flat Learning Curve Convention-over-configuration, sensible defaults, opinionated APIs, and the Groovy language combine to make the Grails® framework easy to learn for Java developers. On top of Spring Boot The Grails framework is built on top of Spring Boot and leverages Spring Boot's time-saving features, such as Spring-powered dependency injection. Smooth Java Integration The Grails framework s

    Grails® Framework
    syonx
    syonx 2015/05/25
    聖杯...
  • Project Grizzly

    Writing scalable server applications in the Javaprogramming language has always been difficult. Before the advent of the Java New I/O API (NIO), thread management issues made it impossible for a server to scale to thousands of users. The Grizzly NIO framework has been designed to help developers to take advantage of the Java™ NIO API. Grizzly’s goal is to help developers to build scalable and ro

    syonx
    syonx 2015/05/22
  • Maven2

    Maven2にプロキシを教える Maven2は動作時にインターネットから、必要なライブラリをかき集めてきます。 このとき、会社のイントラ環境では、プロキシを設定しないといけない場合があります。 ブラウザにプロキシ設定した記憶があれば、このページの作業が必須です。 プロキシが不要な環境では、このページは飛ばしてください。 さっそく設定する Maven2の動作設定ファイルを編集します。 場所:c:\maven-2.0.6\conf\settings.xml この settings.xmlを開くと、下の図のように 75行目あたりからproxyの設定項目があります。 最初は XML的にコメントアウトされているので、図の赤い四角(75,76,77行目 と 88行目 )を削除します。 必要な項目を記入します 項目名 意味 設定不要なとき id

  • Maven - Welcome to Maven

  • Gradle入門 | DevelopersIO

    よく訓練されたアップル信者、都元です。Gradle(グレードル)つかってますか? 筆者は、プロダクトコードを書くのも好きなのですが、その周辺にある「プロジェクトのライフサイクル管理」の自動化にも非常に興味を持っています。つい半年前くらいまではMaven信者だったのですが、今は宗旨替えをし、Gradleにどっぷりハマっております。 Gradleは、進化系のビルド自動化ツールです。Gradleは、ソフトウェアパッケージもちろん、その他様々な形式のプロジェクト(例えば自動生成された静的Webサイトやドキュメント等)のビルド・テスト・(ライブラリ等の)公開・デプロイ・その他を自動化します。 プロジェクトライフサイクルマネジメントツール? このようなビルド自動化は、古くはGNU Makeやシェルスクリプトが利用されており、その後Javaの世界ではAnt, Mavenと進化を遂げて来ました。Gradl

    Gradle入門 | DevelopersIO