Javaに関するtrashtoyのブックマーク (91)

  • Java IDEの使いやすさはIDEがどのようにJavaを知ってるかで決まりがち - きしだのHatena

    Java IDEにもいろいろあるけど、それぞれの特性としてIDEがどれだけJavaを知っているかということで決まるということをTwitterに書いたので、ちょっと具体的に書いてみます。 IDEの使いやすさについて、そのIDEがどれだけちゃんと言語を知っているか依存するんだけど、IntelliJ IDEAが一番Java言語を知っていて、NetBeansはJavaのエコシステムを知っていて、EclipseはJavaビジネスを知っている・・・ VS Codeはまとめサイトで見たレベルでJavaを知ってる感— きしだൠ(K8S(Kishidades)) (@kis) 2020年10月30日 ちなみに、全体としてNetBeans推しです。 使い分けとしてはこんなこと書いてます。 Java IDEの選び方 機能いらんけど使いやすくて安定したのがいい→IntelliJ IDEA CE 機能多いのがいいけ

    Java IDEの使いやすさはIDEがどのようにJavaを知ってるかで決まりがち - きしだのHatena
  • Java 11 時代の Java プログラミングスタイルガイド - Qiita

    Java のリリースサイクル が変更され、2019/01 現在の Java の最新バージョンは早 11。文法面での改善も進んでおり、モダンな Java のスタイルにも変化が見られる。この記事では Java 11 時代におけるモダンな Java プログラミングのスタイルをまとめてみたい。 筆者の主観を多分に含むため、その点ご注意を。 var(ローカル変数の型推論) var を積極的に利用する。 Java 10 で導入された var によるローカル変数の型宣言だが、基的には使用できる場面では積極的に使用するというスタンスでよいだろう。モダンな言語の多くは同様の型推論を採用しているが、それで問題になったという話は聞かない。 高度に訓練された Java プログラマーにとっては左辺の型定義など IDE が自動補完してくれるので便利さを感じないという意見には一理あるのだが、コードを読むときに限っては

    Java 11 時代の Java プログラミングスタイルガイド - Qiita
  • Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了

    Java 10が日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了 昨年9月に登場したJava 9から、Javaは6カ月ごとのタイムベースによるアップデートサイクルが採用されました。そしてその最初のワンサイクルが経過し、今日3月20日付けでJava 9の次のメジャーバージョンアップとなるJava 10が登場する予定です。 おそらくJava 10の正式な発表は米国時間の3月20日、日時間では休日となる明日の午前中あたりになると思われます。 Java 10の新機能:ローカル変数の型推論、ガベージコレクタが入れ替え可能など Java 9では、通称「Project Jigsaw」と呼ばれるJavaのモジュール化機能が入り、Javaに対する大きな変更が行われました。しかし今回のJava 10では、それほど大きな機

    Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了
  • Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita

    はじめに 当たり前だと思うのですが、意外と守られていないことがあります。その1つの例として、条件分岐でのbooleanの扱いを挙げてみます。 ~~タイトルには「Javaでは」と書きましたが、おそらくどの言語でも同じです。~~JavaScriptなど他の言語では当てはまらないので取り消します1。 何がダメか 明確にコーディング規約で否定しているケースもありますが2、Javaでは以下のようなコードは書いてはいけません。 if (isAdmin == true) { // isAdminがtrueのとき } if (isAdmin == false) { // isAdminがfalseのとき }

    Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita
    trashtoy
    trashtoy 2018/02/20
    レガシーな PHP では返り値の型が一定ではないので if ($var === false) なコードは普通にありうる. Java などの静的型付言語であれば同感
  • もういい加減「nullチェックをしたら安全」とかわけのわからないことを言うのはやめよう - Qiita

    (僕の主観で)クソな記事をたまたま読んでしまってもにょったので愚痴。 Safe Harbor Statement 以下の事項は個人の見解であり所属する組織の公式見解ではありませんし、明日になったら違うことを思っているかもしれませんがそういう類のものです。 某所で危険と言われていたコード public void hogeMethod(Hoge hoge) { //hogeを使った処理 hoge.doSomething(); return; } 安全な理由: NullPointerExceptionが発生しない 僕がいいたかったこと それ、NPEを握りつぶしているだけですから!!!!!!! (とくにJavaの世界においては)非検査例外というのはコーディングバグを示してくれるものですから、へんなnullチェックをいれるのではなく、積極的にNPEを発生させていきましょう。 こういうわけのわからない

    もういい加減「nullチェックをしたら安全」とかわけのわからないことを言うのはやめよう - Qiita
    trashtoy
    trashtoy 2017/06/05
    むしろ「もしも hoge == null なら NPE をスローする」という旨のコードにしておいて, ロジックの意図 (null を引数にするのは NG) を明確にするというのはよくやる
  • Java Day Tokyo 2017で #Java三銃士 のパネルディスカッションに出てきました #JavaDayTokyo - CLOVER🍀

    グランドプリンスホテル新高輪 国際館パミールで開催された、Java Day Tokyo 2017に参加してきました。 Java Day Tokyo 2017|日オラクル Java Day Tokyoには去年初めて参加したのですが、今年は…なぜかよくわからない事態になりました。 見たセッション 今回は、こちらのセッションを見てきました。 D1-KY 「Java Day Tokyo 2017 基調講演」 Cloud、Reactive、Microservices、Java EE 8/9といろいろ出てきましたが、去年からすでに見たことがある図が 割と見受けられたり、Reactive、Microservicesの話を出したのにJava EE 8はあんまりそのあたり関係ない みたいな感じでけっこうバラバラな印象を受けました。 Java EE 8が7月ってホントですか? なお、このセッションで1番驚い

    Java Day Tokyo 2017で #Java三銃士 のパネルディスカッションに出てきました #JavaDayTokyo - CLOVER🍀
  • Java 歴 23 分の Ruby エンジニアが Effective Java を読んで感動した話 - scramble cadenza

    イントロ 例外処理を書くことはよくやっているのだけれど、その時の主軸となる考え方について、今までなんとなくで行っていた部分が多かった。 毎回考えるポイントは例えば以下のような疑問。 どこのレイヤーで、どこまで例外処理を行えばよいのだろうか? どの例外をキャッチし、どの例外を伝搬させればよいだろうか? 前提条件をチェックし、失敗した場合、例外を出したほうがよいか、nil, false を返すほうがよいか? 例外をどういう単位でラップさせるのが良いだろうか? 例外をチェインし過ぎると却って煩雑になる気がする。どうすれば良いのだろうか。 しかし、この辺りの話って、API の設計だったり、仕様の影響もあるので、都度対応が異なってしまうもの。 したがって抽象化して理解することが難しく感じた。 とてもよく使ってるし、とても大事な事なことなのに。 そんな今更な事で悩んでいた時に、Effective Ja

    Java 歴 23 分の Ruby エンジニアが Effective Java を読んで感動した話 - scramble cadenza
  • 1.0から学ぶJava

    タイトルを見て釣られクマーな皆さんこんにちは。 ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。 今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。 「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。 タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー 面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。 Java 1.0 1996年1月23日Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。 かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU

    1.0から学ぶJava
  • 「staticおじさん」はなぜ自信満々なのか

    「staticおじさん」という言葉をご存じでしょうか。「static」というのは、Javaのstaticメソッドのことです。Javaでメソッドを呼び出すときにはクラスからインスタンスを生成してインスタンスのメソッドを呼び出すのが普通です。一方、staticメソッドはインスタンスを生成しなくてもクラスから直接呼び出せます。このため、オブジェクト指向プログラミングを理解していない古いタイプのプログラマは、Javaでもstaticメソッドを多用します。これを揶揄して「staticおじさん」と呼ぶのです。 staticおじさんについては、わかりやすく解説したブログエントリが有名です(参考リンク)。実際のシステム開発の現場でstaticおじさんに苦しめられている様子をまとめたページもあります(参考リンク)。 なお、Javaのstaticメソッドを多用する人に限らず、古い感覚にとらわれて周囲に迷惑をま

    「staticおじさん」はなぜ自信満々なのか
    trashtoy
    trashtoy 2015/12/25
    「staticおじさん」がトレンドになっているの何故かと思ったらここが震源地なのね
  • [速報]JavaOne開幕。Java 9は「Project Jigsaw」でクラスパスの問題とJDK肥大化の問題を解決する。JaveOne 2015

    [速報]JavaOne開幕。Java 9は「Project Jigsaw」でクラスパスの問題とJDK肥大化の問題を解決する。JaveOne 2015 サンフランシスコでOracle OpenWorldと同時開催の「JavaOne 2015」が開幕しました。Javaが登場して20周年、19回目のJavaOneとなります。 基調講演ではJava歴史を振り返った上で、Oracle Java Platformチーフアーキテクト Mark Reinhold氏が来年にも登場する予定の次バージョンの「Java 9」で採用される予定の「Project Jigsaw」を紹介しました。 Mark Reinhod氏。

    [速報]JavaOne開幕。Java 9は「Project Jigsaw」でクラスパスの問題とJDK肥大化の問題を解決する。JaveOne 2015
  • JDK9 新機能 (日本語&ショートバージョン) #jjug

    Shortener and Japanese translation version of http://www.slideshare.net/YujiKubota/jdk9-features-31jul2015-jjug .

    JDK9 新機能 (日本語&ショートバージョン) #jjug
  • 変数の初期化にメソッドを用いる -final付与のために- - Qiita

    特に変更されないはずの変数(*1)にはfinalを付けることで、その変数が存在するスコープ内の状態パターンが減り、デバッグ可能性や可読性が向上する。 (*1 特にImmutableクラスやプリミティブ型) 上記の理解のもとで、なるべく変数にはfinalを付与するように心がけています。 ここで、 //.... final int x = .....; // X は外部パラメータから取得 String t = ""; if(x == 0) t = "test"; if(x > 0) t = "sample"; if....; System.out.println(t);

    変数の初期化にメソッドを用いる -final付与のために- - Qiita
    trashtoy
    trashtoy 2015/08/06
    親クラスのコンストラクタメソッドに渡す引数を生成する際にも利用するテクニックだったりする
  • 昨今のメソッドの命名方法事情まとめ - 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
    trashtoy
    trashtoy 2015/07/16
    contains は isXXX や hasXXX と同じで状態を調べるためのメソッドなので三単現の s を付けて現在形にさせる必要がある。if 文の中に入れることで "if X contains Y, do something." という意味のある英文になるので。
  • Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note

    テキストデータを読み込む場合、言語にかかわらず1行ずつ読み込んで処理します。ここではこのイディオムを"read-lines"と呼ぶことにします。 スクリプト言語なんかだと大抵、最初からforeachで済んでしまっていたりしますが、初期のJavaではちょっと面倒な手順が必要でした。 新しいバージョンではだいぶ簡単簡潔に書けるようになりましたが、今度はたくさんありすぎて、どれがなんなのかが良くわからなくなっています(大袈裟)。 そこで今回は、"read-lines"の変遷についてまとめてみました。 最近Javaを始めた方がバージョンが古い時に書かれたソースコードを読むときに役に立つ...かも知れません。 目次 基 BufferedReader (Java1.1~) Scannerと拡張for文 (Java5~) java.nio.file.Filesとtry-with-resources(J

    Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note
    trashtoy
    trashtoy 2015/06/08
    PHPみたいにfile_get_contentsで丸ごと読み込んでfile_put_contentsで丸ごと書き込むAPIが一番お手軽で良いなー。普段テキストファイルを扱う際に、行単位の処理が必要となるパターンってあまりない
  • イマドキの PHP を書いていれば Java は比較的理解しやすいんだなぁと、いまさらながら思っている - 雑文発散(2015-06-04)

    ▼ [PHP][Java] イマドキの PHP を書いていれば Java は比較的理解しやすいんだなぁと、いまさらながら思っている これまでは触る必然性が無かったし、あまり触りたい感じがしてなかったので Java のコードをまともに書いたことがなかったんだけど、ちょっと必然性が出てきたのでここ2〜3日書いている。 2〜3日書いているといっても、まずはテストをどうやって書いて実行すればいいんだ?ってところを探ってからのスタートだったので、実質的なコードを書き始めたのは今日からになる。 で、ようやくコードを書き始めて思ったのが、いまどきの PHPJava はそっくりなんだなってこと。 まぁ、PHPJava のほうを向いて拡張をしてきたという雰囲気が感じられるし(要出典)、似てくるのはそういうものなんだろうなという気分ではあるけど、改めて見ると、ホントにまぁ、そっくりだ。 Java

    イマドキの PHP を書いていれば Java は比較的理解しやすいんだなぁと、いまさらながら思っている - 雑文発散(2015-06-04)
  • プログラミング経験年数って全然意味ないよね

    採用関係の勉強がてら、Webサービス開発をしている企業の、採用案内を調べたり比べたりしていてふと思いました。たまに見かける「Java開発経験年数3年以上」などの表記。これは応募者のスキルチェックに使っているのかなぁと思うのですが、全然意味なさそうです。 経験年数 = 実力とはいえない 仕事内容やその人のモチベーションにもよりますが、経験年数が多いほど実力が高いわけではありません。たとえば、 なんとなくこの業界に入って、なんとなく過ごしている人の3年 プログラミングが大好きで、休日も自前のアプリ開発に熱中している意識高い系の3年 は、多分「厚み」が違うはず。かといって「経験年数ゼロでも歓迎!」なわけではありません。 こう考えてみると、経験年数がその人を評価するときの「ものさし」として、ふさわしくない気がするんです。 職務経歴書もあてにならない そもそも、経験年数のような自己申告型の情報だけで

    プログラミング経験年数って全然意味ないよね
    trashtoy
    trashtoy 2015/05/21
    巷で言われているように、GitHubアカウントを見せてもらうかFizzBuzz書かせるだけでもだいぶ足切りになりそう
  • 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木です。 先日、アプリケーションサーバーが応答を返さなくなるトラブルに遭遇しました。 今回はその時のトラブルの原因と対策の顛末についてお話しようと思います。 現象 アプリケーションサーバーが突如応答を返さなくなりました。 現象が発生したアプリケーションサーバーのスタックトレースを見ると、あるスレッドの先頭が上記のようになっていました。 "qtp258153142-514386" prio=10 tid=0x00007f40b8dbf000 nid=0x7b4e runnable [0x00007f415ccb0000] java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$Loop.match(Pattern.java:4692) at java.util.regex.Pattern$G

    遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
    trashtoy
    trashtoy 2015/05/12
    グラフの縦軸が指数表記なのがびっくり
  • Javaでのnullチェックのパフォーマンス - きしだのHatena

    Javaでのプログラムでは、Optionalが入ったとはいえ、nullとのつきあいは依然として重要です。 そんな中で、nullが入ってると困る処理を書くときには、nullチェックを行うほうが安全です。 そのとき、どのようにnullチェックを行うかというのが問題になります。 Java7からは、Objects.requiredNonNullというメソッドが導入されたので、このメソッドを使って、以降の処理でnullじゃないことを保証するということができます。 けど、このrequiredNonNullが遅いんじゃないかという話があるので、どう遅いのか調べてみました。 requireNonNullと同様に、値がnullだったらNullPointerExceptionを吐いて、null以外だったら素通りするという書き方のひとつに、getClassメソッドを呼び出すというものがあるので、これと比べてみま

    Javaでのnullチェックのパフォーマンス - きしだのHatena
  • Java Platform SE 8

    <noscript> <div>JavaScriptがブラウザで無効になっています。</div> </noscript> <h2>フレーム関連の警告</h2> <p>このドキュメントはフレーム機能を使って表示するように作られています。フレームを表示できないWebクライアントの場合にこのメッセージが表示されます。<a href="overview-summary.html">フレームなしバージョン</a>へのリンク。</p>

  • 至極のJavaクイズ 総集編

    Select your reason for reporting this presentation as inappropriate.**Required

    至極のJavaクイズ 総集編
    trashtoy
    trashtoy 2015/02/27
    面白いし、単なるニッチな仕様クイズに終わらず示唆に富むのが良い