タグ

javaに関するymm1xのブックマーク (52)

  • Javaは今も無償です

    Oracle JDKの配布とサポートが少し前に変更され、Oracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを利用する際の権利に関して不透明なところが少なからずあります。無償アップデートや (新規と既存の) 有償サポートモデルがさまざまなベンダから提供される予定もあり、検討の余地があります。このドキュメントには要約バージョン と全詳細がある詳細バージョンのセクションがあります。 要約バージョン今もOracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを無償で取得できます (このニュアンスについては以下のコラムや以降のセクションを読んでください)。これは複数のプロバイダがJava SE仕様の実装を提供するからこそ可能となっているのです。 Java SE / OpenJDK / オラクルのOpenJDKビルド / Oracl

    ymm1x
    ymm1x 2018/10/10
  • trait と abstract class の使い分け

    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

    trait と abstract class の使い分け
  • Java初心者時代にコードレビューで指摘された悪しき習慣 - Qiita

    Java初心者だった新入社員の頃、先輩にコードレビューで指摘された事を思い出してまとめてみた。 追記:記事に関しては賛否含め、多くの有益なコメントを頂いています。記事をお読みになる際は、是非コメント欄も併せてご覧下さい。 2018/04/26 コメントを参考に「何でも定数にしようとする」の見出し・文を修正しました。@kagilinn さん、ありがとうございました。 2018/04/30 サンプルコードの判定バグってたので修正しました。@y_miz さん、ご指摘ありがとうございました。 コメントの誤記、用語誤りを修正しました。@scivola さん、編集リクエストありがとうございました。 不要なインスタンス変数を作ってしまう インスタンス変数は状態が保持されるので、バグを作り込みやすい。 「これローカル変数でよくない?」ってよく指摘された。 インスタンス変数を作る前に、ローカル変数で実

    Java初心者時代にコードレビューで指摘された悪しき習慣 - Qiita
  • 鬼が笑う。2018年Java界隈あえての一択。 - Qiita

    Java歴史が古いので、各種ライブラリ、ツールを選択するのにも様々な選択肢があります。それがJavaのいいところでもあります。 しかし、しかしです。ココでは、あえて、それらの中から項目別に選ぶべきモノを一度してみます。また、何を選ぶべきかと共に、何を選ぶ出来でないかも記載しています。完全に主観で、ネタでありポエムです。面白半分に読んで下さい。 バージョン Java 8 Java 9 がリリースされましたが、Jigsaw の各種ライブラリの対応の遅れから、格導入はまだされないでしょう。その代わり、Java 8の関数パラダイム がより多くのソフトウェアに反映され、ソースコードが洗練されていくことでしょう。 次点 Java 10(18) Javaのバージョン番号が西暦と連動され ます。 なくなったそうです。勉強になるな!アドベントカレンダー! Javaにもvarが導入されます。さぁ、こい。

    鬼が笑う。2018年Java界隈あえての一択。 - Qiita
  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • Visual Studio Code を使った Javaプログラム事始め - Qiita

    publickeyさんの記事「無償のコードエディタVSCode、実行中のJavaアプリのコードを動的に書き換えて修正できる「Hot Code Replacement」(ホットコード置換)を実現」に触発されてVSCodeを使ってみた。 環境 Windows 10 JDK 1.8.0_151 前準備 インストール https://code.visualstudio.com から Stable Build をダウンロード/インストールする。現時点はバージョン1.19。 Java開発環境の設定 拡張機能(Ctrl+Shift+X)ビューを開く Java Extension Packをインストール(Debugger for Java, Laguage Support for Javaもインストールされる) 設定画面(Ctrl+,)を開き、java.homeを自分の環境に合わせて設定しておく。 プログ

    Visual Studio Code を使った Javaプログラム事始め - Qiita
  • 昨今のメソッドの命名方法事情まとめ - Kengo's blog

    一時期はメソッド名は動詞で始まらなければならないと言われていましたが、昨今ではJava標準APIでも動詞ではないメソッド名が散見されます。エントリではその傾向をまとめます。 of, from(from, of, valueOf, fromString, fromNullable etc.) fromやofはEffective Javaでも触れられているように、ファクトリメソッドとして利用されることが多いようです。例えばJAX-RSでは valueOf(), fromString() といった名前のファクトリメソッドを利用します。 EnumSet.of Integer.valueOf to, as(toList, asList, toArray etc.) 主に自分自身を別の形に変換するインスタンスを返すメソッドに使います。 IntStream.toArray Arrays.asList

    昨今のメソッドの命名方法事情まとめ - Kengo's blog
    ymm1x
    ymm1x 2017/12/18
    “昨今ではJava標準APIでも動詞ではないメソッド名が散見されます”
  • Java使いをGroovyに引き込むサンプル集 - No Programming, No Life

    はじめに Java使いをScalaに引き込むサンプル集 | mwSoft のGroovy版を書いてみました。 記事中に登場するサンプルコードや文章など多くの部分を引用させていただいております。 (動作確認: Groovy Version: 1.7.7 JVM: 1.6.0_22) 前書き Groovyという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作し、またスクリプトとしても記述可能なオブジェクト指向スクリプト言語です。 Groovyは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 記事では、GroovyとJavaのコードを比較しながら、JavaユーザがGroovyに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように

    Java使いをGroovyに引き込むサンプル集 - No Programming, No Life
  • メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解するJavaバグ脆弱性トラブルシューティングjconsole 概要 Webアプリケーションの開発や保守をしていると、いろいろなバグに遭遇します。メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ等々、バグは様々です。こういったバグは、実際にコードを書いて、実行・再現させてツールで解析してみると理解が深まります。 ということで、いろいろなバグを実装したWebアプリケーションをつくってみました。現時点では、以下を簡単に再現できます。 メモリリーク (Javaヒープ領域) メモリリーク (Permanent領域) メモリリーク (Cヒープ領域) デッドロック (Java) デッドロック (SQL) 完了しないプロセスの待機 無限ループ リダイレクトループ JVM

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita
  • あっと驚かせるJavaプログラミング(をやめよう) - Qiita

    はじめに 驚き最小の原則(法則)という言葉があります。 Wikipediaの記事を引用すると http://ja.wikipedia.org/wiki/%E9%A9%9A%E3%81%8D%E6%9C%80%E5%B0%8F%E3%81%AE%E5%8E%9F%E5%89%87 ユーザインタフェースやプログラミング言語の設計および人間工学において、インタフェースの2つの要素が互いに矛盾あるいは不明瞭だったときに、その動作としては人間のユーザやプログラマが最も自然に思える(驚きが少ない)ものを選択すべきだとする考え方である。 要するに、使うときに「おやっ?」という驚きが少ないほうが良いプログラムであるといえます1。 この記事では敢えて驚きの多いプログラムの書き方を紹介します。驚きの多いプログラムを読むとどんな気分になるか、実際に体験してみてください。もちろん、当は驚きが少ないプログラムを書

    あっと驚かせるJavaプログラミング(をやめよう) - Qiita
  • プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ

    技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発

    プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ
  • プレミアムフライデーを求めるメソッドを作ろうと思ったらJava8の標準APIに既にあった - Qiita

    元ネタ プレミアムフライデーを求めるメソッドを作った - Qiita プレミアムフライデーを求めるメソッドを作った(Java8版) - Qiita プレミアムフライデーを求めるメソッドをワンライナーで作った - Qiita Java 8 なら TemporalAdjuster 作った方が Date and Time API 使ってる感出ると思って作ろうとしたら既にあった。 package premium.friday; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; public class Mai

    プレミアムフライデーを求めるメソッドを作ろうと思ったらJava8の標準APIに既にあった - Qiita
    ymm1x
    ymm1x 2017/03/02
  • シグネチャに、T とか、K とか書いてあると API そっ閉じしちゃうジェネリクス フォビア向けに、Java の総称型を説明してみた - KUSAMAKURA

    総称型(ジェネリクス)とは 総称型の書き方 クラス メソッド コンストラクタ 総称型のネーミング ワイルドカード(非境界ワイルドカード) extends と super(境界ワイルドカード) <? extends T>(上限付き境界ワイルドカード) <? super T>(下限付き境界ワイルドカード) まとめ 総称型(ジェネリクス)とは それまでは、Object 型で書かれていた型指定に対して、利用する型を限定できるように Java1.5 より、総称型が導入された。 主に Collection に対して導入されているので、実際に API を見てみる方が理解が早いと思う。 Java1.4 ArrayList.html#get(int)) では、次のように API が定義されている。 注目して欲しいのは、List に対する get の戻り値で Object 型で定義されている。つまり、Java

    シグネチャに、T とか、K とか書いてあると API そっ閉じしちゃうジェネリクス フォビア向けに、Java の総称型を説明してみた - KUSAMAKURA
    ymm1x
    ymm1x 2017/01/27
  • 我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H

    我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • CleanCode読書メモ - Qiita

    Clean Code アジャイルソフトウェア達人の技 の読書メモ。 書は、Clean Code――すなわち、綺麗で読みやすいコードを書くための様々なテクニックや考え方を紹介している。 書は、大きく以下の3つのパートに分かれている。 Clean Code を書くための原則・パターンの紹介・解説(第2~13章) 実際のコードをリファクタリングしながら Clean Code にしていく様子を説明したケーススタディ(第14~16章) コードのにおい、経験則をまとめたカタログ(第17章) ここでは、パート1と3の内容をメモする。 パート2については、どんなコードが対象になっているかの軽い紹介だけ。 基的に「どうすべきか」の部分だけをまとめる。 「何故そうするのか?」の部分は実際のを参照してください。 第2章 意味のある名前 意図が明確な名前にする (P.43) 変数の名前は、何の値が入ってい

    CleanCode読書メモ - Qiita
    ymm1x
    ymm1x 2016/11/08
    あとで読む
  • Java API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita

    はじめに Java API を巡って OracleGoogle の訴訟が続いています。世間の論調を見ていると、「OracleGoogle」の構図を「プロプライエタリ対オープンソース」と位置付け、あたかも Google が正義の味方であるかのように扱っていますが、この件に関しては、私は逆の立場です。むしろ、「Google けしからん」と思っています。私がそう思う理由をここに書きます。 Java の互換性 Android が登場するずっと前から、業界の皆は、JCP (Java Community Process) に則り、協議の上 Java API の仕様を決めてきました。仕様を策定する際には、RI (Reference Implementation) (リファレンス実装) と TCK (Technology Compatibility Kit) (テスト群) も同時に用意します。

    Java API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita
  • 昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita

    Excel は滅びぬ! Excel の力こそ日企業の夢だからだ! VBA 実装してて学んだこととかのメモ。 JavaJava してたかはあまり関係ないかも。 エディタの使い方 エディタを表示する Alt + F11 で VB エディタを表示できる。 環境設定 背景色・フォントを調整する デフォルトの白背景とか気が狂うので、暗い色にする。 「ツール」→「オプション」を選択し、「エディターの設定」タブを開く。 「コードの表示色」を選択して、「背景」の色を選択する。 ついでにフォントも見やすいやつに変更する。 これだけで開発効率が5割増しになる。 イミディエイトウィンドウ イミディエイトウィンドウを表示する いわゆるコンソールに当たるのが、イミディエイトウィンドウと呼ばれるウィンドウ。 Ctrl + G で表示される。 イミディエイトウィンドウに出力する ↓イミディエイトウィンドウに実行するプ

    昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita
  • String非推奨の勧め - minghaiの日記

    Javaプログラムにおいて,クラスを作ることを厭う人たちが多い. そのような人たちの多くはデータを桁数依存にて構造が存在する文字列にして扱うことを好む. しかしJavaにおいてStringを解析することは多くの例外の原因となり,ひいてはシステム障害の原因となることが多い. またStringの演算は重く,Stringはメモリ消費量が多い. この文章では,Java利用システムにおいてStringの濫用を戒め,適切な型の利用と適切なクラス設計を行うことを勧める.*1 Stringの問題 多発する例外 Stringを利用することにより発生する例外には次のものがある. NullPointerException StringIndexOutOfBoundsException IndexOutOfBoundsException IllegalArgumentException UnsupportedEn

    String非推奨の勧め - minghaiの日記
    ymm1x
    ymm1x 2016/04/14
  • GoogleがAndroidでのJava無断使用で1兆円超えの賠償金を請求される

    By Filip Maljković 6年前、Oracleは「Androidがライセンスの必要なJavaプラットフォームを無断で利用している」ということでGoogleを訴えました。現在も訴訟は続いているのですが、OracleGoogleに93億ドル(約1兆500億円)もの賠償金の支払いを求めていることが明らかになりました。 Oracle seeks $9.3 billion for Google’s use of Java in Android | Network World http://www.networkworld.com/article/3048814/android/oracle-seeks-93-billion-for-googles-use-of-java-in-android.html 2012年に行われたOracleGoogleの裁判で、GoogleJava使用が

    GoogleがAndroidでのJava無断使用で1兆円超えの賠償金を請求される
  • java-mysql-diff が出た - その手の平は尻もつかめるさ

    java-mysql-diff が出ました.Maven Central にもリリースしています. http://search.maven.org/#artifactdetails|net.moznion|mysql-diff|1.0.0| パッケージは id:onishi さん作の mysqldiff の Java 8 移植版です. 最近 Java の環境で作業することが多いので,なんだかんだで Java 版があると便利だよね〜ということで作成しました. 家の Perlmysqldiff と同じような感覚で利用したかったので,全部の依存パッケージを1つにまとめた fat-jar も用意してあります. java -jar というコマンドを余分にタイプする必要はありますが,Perl 版と同じような感覚で利用することが出来ます. https://github.com/moznion/j

    java-mysql-diff が出た - その手の平は尻もつかめるさ
    ymm1x
    ymm1x 2016/03/16
    “mysqldump を使って,入力をノーマライズして構文の揺れを無くしてパーズしやすくするという手法,マジで天才では”