タグ

javaに関するtohokuaikiのブックマーク (148)

  • 最近のJava Webフレームワーク / Java Web Framework javaq2019

    2019/6/25に行われたJavaコミュ@福岡での登壇資料です

    最近のJava Webフレームワーク / Java Web Framework javaq2019
    tohokuaiki
    tohokuaiki 2019/06/27
    へー。Java自体は使うことは無さそうだけど、方向性を掴むのは大切そう。昔、RailsがここまでWeb入門者用になるとは思わなかった経緯もあったしな。
  • 「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに/「Java 8」の無償アップデートは新ライセンス下で少なくとも2020年終わりまで継続

    「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに/「Java 8」の無償アップデートは新ライセンス下で少なくとも2020年終わりまで継続
  • Java 11正式版がリリース、本バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄 - Publickey

    Java 11正式版がリリース、バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄 Java 11正式版がリリースされました。 Java 11は2017年9月から始まった6カ月ごとのJavaバージョンアップサイクルからちょうど1年となるバージョンであり、また2014年3月に登場したJava 8以来、4年半ぶりに長期サポート(LTS:Long Term Support)対象となるバージョンでもあります。 JDK 11 General Available Release is Out! #OpenJDK #JDK11 Download: https://t.co/GxeXcyGUiv Release Notes: https://t.co/h5tqx7d9U5 pic.twitter.com/XByIzINXCj — Java (@j

    Java 11正式版がリリース、本バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄 - Publickey
    tohokuaiki
    tohokuaiki 2018/09/26
    もはや人々がJavaに求めているのは代替COBOLって気がしないでもない。
  • 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
    tohokuaiki
    tohokuaiki 2018/02/20
    「Javaでは」っていうからすげー身構えたJava初心者です。拍子抜けでホッとした。むしろブコメ参考になりました。
  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

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

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • 若手Javaエンジニア必見。知っておきたいフレームワーク・ツール23選 - エンジニアHub|若手Webエンジニアのキャリアを考える!

    若手Javaエンジニア必見。知っておきたいフレームワーク・ツール23選 システム開発において、登場頻度が非常に高いJava。数多くのフレームワークやツールが存在しますが、一体どれを選べば、効率的な開発が行えるのでしょうか。おすすめのものを一挙にご紹介します! システム開発をする際、欠かせない存在なのが各種フレームワークやツールです。これらを導入することで、工数の削減やアプリの品質向上、セキュリティの堅牢化など数多くの利点があります。中でもJavaのフレームワーク・ツールは、Javaを開発に使用している企業の多さゆえ、利用される頻度も高いものです。 しかし、それらは数えきれないほどの種類があるため、知識の少ない若手のうちは「どれを選べばいいんだ……」と途方に暮れてしまうケースも少なくありません。 そんな悩みを解決するため、今回はよく使われるものから珍しい機能のもの、最近注目されているものまで

    若手Javaエンジニア必見。知っておきたいフレームワーク・ツール23選 - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • How do I change Saxon's standard error output stream in Java?

    tohokuaiki
    tohokuaiki 2017/12/18
    saxon9でErrorListenerを付ける方法
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    tohokuaiki
    tohokuaiki 2017/12/15
    XMLの文字列を直接指定する場合は、文字コードを指定するこの方法がいいみたい。“* 「builder.parse(new InputSource(new ByteArrayInputStream(xml.getBytes('UTF-8'))))」とする ”
  • JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary

    JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす

    JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary
  • volatileとか使うなと怒られた話 - 谷本 心 in せろ部屋

    JJUG Night Seminar ~ Java VM<&納涼会 ~ http://kokucheese.com/event/index/48437/ に参加してきました。 「スタックマシンとしてのJavaVM」なんて言う 一見さんお断りみたいなタイトルに集まった人たちはもちろんレベルが高く 参加者のjavap経験率が20%ぐらいになるなど、なかなか偏った集客具合でした。 そんな中、私もLTでBTraceの話をしようと、45枚のスライドと、2種類のデモを用意していました。 ただ客層を考えるに、最近Twitterでちょっと呟いていた 「longに複数スレッドから値を代入すると、想定外の値になる」話をした方が良いんじゃないかと思い、 観客にどちらが聞きたいか尋ねてみたところ、longの方が圧倒的人気。 そんなわけで、45枚のスライドをドブに捨てて(いつか再利用するよ!) スライドなしで、lo

    volatileとか使うなと怒られた話 - 谷本 心 in せろ部屋
    tohokuaiki
    tohokuaiki 2017/11/07
    “普通にAtomicIntegerやAtomicLongを使ってください。”
  • Why Servlets are not thread Safe?

    tohokuaiki
    tohokuaiki 2017/11/07
    ServletはパフォーマンスのためにThread Safeではない。Struts2も同じであるが、Struts2のActionはThread Safeである。
  • SimpleDateFormatのマルチスレッド問題 | プログラミング

    JavaベースのWebサイトを番リリースした後、発生するトラブル・・・。あってはいけないけど、トラブルが発生した原因を調査し、対処しなきゃいけない。 で、原因を調査するとき、まず再現条件を調べるんだけど、再現させるのが難しいのがこのマルチスレッド問題。ページをリロードする度に、うまくいったり、エラーになったりを繰り返すから、再現条件は分からない。ほとんどの場合、調査にも時間がかかってしまう。 Javaの関連記事: OutOfMemoryError回避のためのJavaコーディング – 前編 自力でNoClassDefFoundErrorを解決!(前半) マルチスレッドの注意点まとめ OracleでDate型の時刻が00:00:00になる原因 MissingResourceExceptionの解決法 NoClassDefFoundErrorの原因と対応(2) Eclipse スクラップブック

    SimpleDateFormatのマルチスレッド問題 | プログラミング
    tohokuaiki
    tohokuaiki 2017/11/07
    スレッドごとにDateFormatインスタンスを生成/DateFormat#formatメソッド呼び出しの同期化
  • OutOfMemoryErrorの原因と対応(1) | プログラミング

    Javaアプリケーションサーバーを使っていると、OutOfMemoryErrorに遭遇することが時々ある。最近はサーバーの物理メモリサイズが2GBを超えることもあるのに、やっぱりこのエラーは発生する。 OutOfMemoryErrorは文字通り、メモリが足りないという意味だ。だけど、当然ながら物理メモリを増設する必要があるというわけではない(当にそうするしかない場合もあるけど・・・)。通常はサーバーチューニングやアプリケーションロジックの見直しでこのエラーに対処する。 今回はそのうち、アプリケーション側の原因によって発生したOutOfMemoryErrorをターゲットとし、アプリケーションの見直しにより対処する方法について話したいと思う。 Javaの関連記事: OutOfMemoryErrorの原因と対応(2) OutOfMemoryErrorの原因と対応(3)番リリース後にトラブル発

    OutOfMemoryErrorの原因と対応(1) | プログラミング
    tohokuaiki
    tohokuaiki 2017/11/07
    Servletってインスタンス化されて永続するのか。そういうのってF.Wの注意点だな。“更新対象オブジェクトはServletのインスタンス変数やstatic変数などにせず、リクエスト毎に毎回インスタンス化する”
  • 「Java のヒープサイズ」についての簡単な説明

    Java のヒープ領域及び 非ヒープ領域、メモリ管理について簡単に説明いたします。 ヒープやヒープサイズはガーベジ・コレクション:GC ( Garbage Collection ) と密接な関連があります。以下のページも合わせて参照ください。 ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法 Java のオブジェクトは、大きく分けて、New、Old 、Permanent というメモリ領域で管理されます。 新しいオブジェクトを格納するのが New 領域と呼ばれ、古いオブジェクトを格納するのが Old 領域と呼ばれます。 Permanent 領域にはクラスやメソッドなどの情報が格納されます。 ( これらは Permanent Generation, Tenured Generation, Young Generation とも

  • 【Java初心者】参照型を引数として渡したときの挙動 - Qiita

    20190422追記 「参照渡し」への間違い部分に修正を入れています。 一部取り消し線で対応していますが、取り消し線での対応が難しい部分は大きく改変しています。(該当部分にはその旨を書いています) 追記ここまで 以前、【Java初心者】値渡しと参照の値渡し(”参照渡し”という言葉は誤解を生むとのことで修正しています)という記事を投稿したのですが、さらに詳しく知ることができたのでまとめます。 値渡しと参照の値渡し メソッドの引数には、基データ型も参照型も指定できます。しかし、どちらの型を使うかによって挙動がかわってきます。 基データ型を指定した場合は値のコピーがメソッドに渡されます。値のコピーが渡されるので、メソッドの中で引数に対して行われた操作は、呼び出し元には影響しません。 参照型を指定した場合はその値の参照のコピーをメソッドに渡します。そのためメソッドの中で引数に対して行われた操作

    【Java初心者】参照型を引数として渡したときの挙動 - Qiita
    tohokuaiki
    tohokuaiki 2017/06/19
    あぁ、そういうことか。Object自体を変更すると参照先がそのメソッド内ですげ変わるから呼び出し元に影響されないのか。
  • Javaパッケージの分割、命名についてのまとめ。 - be a ninja engineer

    Java: The Good Parts 作者: Jim Waldo,矢野勉(監訳),笹井崇司出版社/メーカー: オライリージャパン発売日: 2011/02/24メディア: 大型購入: 3人 クリック: 148回この商品を含むブログ (37件) を見る JavaTheGoodPartsを読み終わったので、良いタイミングと思い、パッケージの分割、命名に付いてまとめてみました。 パッケージとは Javaのパッケージとは、名前空間を作成するものである。 クラス名に一意な名前を指定する必要があるので、重ならないドメインを使用してパッケージ名を決定するのは基だと思います。 パッケージ分割指針 レイヤでの分割 私は通常、Webアプリケーションを4層構造(view, controller, service, model)で作成し、クライアント側とサーバ側はJSONでやり取りすることが多いため、以下の

    Javaパッケージの分割、命名についてのまとめ。 - be a ninja engineer
    tohokuaiki
    tohokuaiki 2017/06/19
    へぇー。自分はなんか適当だなぁ。
  • Java開発 Lang - MethodUtilsクラス

    MethodUtils を使用せずにリフレクションを使用するとオブジェクトを生成したり、引数の型を指定したりで何かと大変です。 Class clazz = new Java6().getClass(); Object object = clazz.newInstance(); Method method = clazz.getMethod("out", new Class[] {String.class}); method.invoke(object, new Object[] {"Sato"}); しかし、MethodUtils を使用すれば1行で実行ができます。 // invokeMethod メソッド // 引数なし MethodUtils.invokeMethod(new Java6(), "out", new Object[] {}); // 引数あり MethodUtils.i

    tohokuaiki
    tohokuaiki 2017/06/19
    メソッドの呼び出しをリフレクション使って呼び出す。
  • Hibernateはどのようにして私のキャリアを破滅寸前にしたか | To Be Decided

    このエントリでは、Grzegorz Gajosによる記事、How Hibernate Almost Ruined My Careerを紹介する。 (Grzegorzから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 想像してくれ。 君はJava開発者で、次のビッグプロジェクトを開始しようとしているところだ。 君は、そのプロジェクト全体に影響する根的な決断をする必要がある。 君の柔軟なデータモデルをオブジェクト指向で抽象化するベストな方法を選択したい。生のSQLを扱いたくはないからね。 どんな種類のデータもサポートしたいし、理想では全種のデータベースをサポートしたい。 すぐに思いつくのは、単にHibernateを使うという解だ。そうだろ? Javaディベロッパの90%は君に同意するだ

    Hibernateはどのようにして私のキャリアを破滅寸前にしたか | To Be Decided
    tohokuaiki
    tohokuaiki 2017/05/18
    キャッシュで苦しんだ記憶ある。
  • Javaの難しいところ - きしだのHatena

    Javaをプログラム未経験者に教えるときの話。 細かいところまでちゃんと理解するための難しさではなくて、とりあえず頻出コードが読み書きできるまでの難しさの話です。細かいところまでの理解、どの言語も難しいので。 あと、ここではプログラム自体の難しさは別の話、ということで。 で、Javaには難しいところが結構あるんですけど、難しいのをひとことでいうと「昔の事情や歴史的経緯により、が多い」ところです。 プログラムを教えるときに何が難しいか たとえばpublic static void mainを書くとか、おまじないが多いとか記述量が煩雑とかは、ツールで対処可能で、ツールで対処可能というのは機械的に慣れればいい部分なので、そこまで問題にならないと思います。 あと「おまじないを減らしたい」というのは教える側のこだわりであって、理解しやすさとは別で、そのおまじないがどういうときに必要かというところさえ

    Javaの難しいところ - きしだのHatena
    tohokuaiki
    tohokuaiki 2017/04/03
    最近のJavaってinterfaceも継承もあんまりつかわないの?よくわかんないな。
  • Struts2が危険である理由

    はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーションであり、Java製のアプリケーションサーバ上で動作します。Javaはいわゆるコンパイル型の言語であるため、通常はランタイムにおいて任意のコードを実行することはできず、RCEは難しいはずです。 JavaのウェブアプリケーションでRCEが成

    Struts2が危険である理由
    tohokuaiki
    tohokuaiki 2017/03/28
    不必要に強力な記述ができてしまうっていうのも考えものなんだけど、それがライブラリ開発の醍醐味でもあるからなぁ。