タグ

*Javaに関するyamadarのブックマーク (84)

  • Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena

    みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から解放される日が近づいています。 TL; DR 9月リリースのJava 21の試用機能として void main() { System.out.println("Hello"); } をhello.javaで保存したら、java hello.javaで実行できるようになります。 (Java 21では--enable-preview --source 21が必要) Javaではプログラムを開始するときにpublicなclassなどにStringの配列を受け取るpublicでs

    Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena
    yamadar
    yamadar 2023/06/12
    初学者の頃に public static void main(String[] args) は呪文として覚えたなぁ...。void main() か、シンプルになっちまいやがって...。
  • Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた - piyolog

    2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software

    Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた - piyolog
  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

  • Google Best Practices for Java Libraries

    Google Best Practices for Java Libraries Google Best Practices for Java Libraries are rules that minimize problems for consumers of interconnected Java libraries. These practices come from decades of aggregated experience in maintaining open source Java libraries and are informed by many hard-learned lessons from mistakes that have been made. We have found that following these rules results in hig

    yamadar
    yamadar 2020/08/11
    久しぶりにJava関連のブクマした
  • TOMCAT殺害事件 - Qiita

    OOMKillerの殺意 顧客EC2のTomcatがアクセスの無い早朝にもかかわらずOOMKillerに突然殺されてしまったので、調査した顛末をたぶん同じような問題に直面されている方もおられるかと思いますので備忘録として記載します。 Javaヒープのチューニングにも多少役立つかと思います。 (この記事はJava8が対象となります。) OOMKillerとはOut of Memory時に、サーバ全体を守るためにメモリーを消費しているプロセスを停止するLinuxの標準機能です。 そのOOMKillerになんとTomcatが突然殺害されてしまいました。 問答無用の辻斬り状態です。 早朝ですのでアクセスログには何も記録されておらず、catalina.outには OpenJDK 64-Bit Server VM warning: Setting LargePageSizeInBytes has no

    TOMCAT殺害事件 - Qiita
    yamadar
    yamadar 2020/01/10
    確固たる知識のベースがあって良記事
  • モダンなJava開発ガイド (2018年版)

    2018年現在でもJava開発をしていると、Antすら使っていないEclipseプロジェクトにそこそこの頻度で出くわします。Eclipseの自動コンパイルが通ればOKであり、ビルドはExcel手順書をもとに手動で行われ、依存関係ライブラリはもちろんlibフォルダに各種jarファイルが放り込んであります。Eclipse上以外ではどう動かせば分かる人がいないため、コマンドラインからビルドなどを行うことは叶わず、CI化なんて夢のまた夢です。 そんなJava開発から脱却したい人向けのJava開発のモダン化ガイドです。 基的にJava 8以降での開発を想定しています。 OpenJDK/OracleJDK上での開発を想定しています。 Android開発の場合は一部適用できない可能性あり。 英語のIDE、ツール等は積極的に使用します。 英語嫌いだとモダン化は難しい。 Java開発全般を前提としているた

    モダンなJava開発ガイド (2018年版)
  • 182124

    追記(2018/07/19) 処理速度ではなくてプログラムの起動時間というご指摘を受けたのでタイトルを修正しました🙏🙏 純粋な処理時間の測定は別途行おうと思います.後半の感想の部分は読み流して頂けると 🙇 🙇 目的 今回は以前のエントリで書いたようなPerl6の正規表現などを使い同じ処理をするプログラムが,各言語でどういったパフォーマンスの差が出るかの検証を行います. 題材 題材としてはmac os Xの /var/log/system.logのデーモンの回数を数え上げるというプログラムです. 処理の流れとしてはまずコマンドライン引数を確認し,それに応じてファイルを開きます. 開くことが想定されている/var/log/system.logファイルは次のような形式になっています. Jul 18 01:31:55 anatofuzMBP Dropbox[96084]: [0718/01

    182124
    yamadar
    yamadar 2018/07/19
    「Perl6と多言語の速度比較(Perl5,Ruby,Python,Java,Perl6 on MoarVM,Perl6 on JVM)」
  • 2019年にJavaを利用している人は全員理解すべきことを説明してみる - orangeitems’s diary

    ※注 当初「2018年にJavaを利用している人は全員理解すべきことを説明してみる」として公開した記事ですが、2019年になっても有用性が変わりませんのでタイトルを改変して公開します。 最新ニュース(2019/4/16) www.orangeitems.com 新元号対応のJava SE Development Kit 8u211から、ライセンスが変わり、無償利用は「開発・個人のみ」に変わっています! >> Javaのこの記事が衝撃的 新野淳一さんのとても分かりやすいJavaの将来についての記事を読みました。 www.publickey1.jp これは、大変なことになります。断定します。 劇的に変更されるJavaのサポートポリシー 世の中にはサーバーサイドがOracle Java SE 8で動いているたくさんのWEBアプリケーションが存在しています。Oracle Java 7が2015年4

    2019年にJavaを利用している人は全員理解すべきことを説明してみる - orangeitems’s diary
  • オラクル、JavaやJavaScript、Ruby、Pythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitterが本番環境で採用

    オラクル、JavaJavaScriptRubyPythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitter番環境で採用 JavaJavaScriptなどには、それぞれその言語を実行するためのランタイムが存在します。JavaならJavaVM、JavaScriptならJavaScriptエンジンといった具合です。 米オラクルがオープンソースで公開した「GraalVM」は、これまで言語ごとに個別に用意されていたランタイムを統合し、単一の高性能なVMにするという同社の研究の結果開発された汎用仮想マシンあるいは汎用ランタイムです(米オラクルのブログ、日語訳)。 GraalVMのWebサイトには、次のような説明が記されています。 GraalVM is a universal virtual machine for running appli

    オラクル、JavaやJavaScript、Ruby、Pythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitterが本番環境で採用
    yamadar
    yamadar 2018/04/20
    オラクルのイメージが悪くて使う気になれない
  • NTT、Java開発フレームワークをGitHubで公開

    NTTは、Webシステムを開発するためのアプリケーションフレームワーク「Macchinetta(マキネッタ)フレームワーク」をGitHub上で公開した。 Macchinettaフレームワークは、Java言語向けのオープンソースソフトウェアのアプリケーションフレームワーク「Spring」を中心に、Webシステムの開発において必要となる共通機能の提供と、アプリケーションの基的な実装手法等をドキュメントとして整備したもの。NTTグループにおいて広く標準的に活用されており、豊富なベストプラクティスに基づいて作成されているという。 OSSの組み合わせによる共通機能の提供においては、様々なユースケースを想定した動作検証を行い、OSSのアプリケーションフレームワークであるSpringを中心にOSSスタック推奨モデルとして定義しているという。 MacchinettaフレームワークのOSSスタック推奨モデ

    NTT、Java開発フレームワークをGitHubで公開
    yamadar
    yamadar 2018/03/14
    初見で今どきMVCかい、と思ったけど、その辺はどうとでもなるなぁと思い直した。
  • 来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)

    来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり) 2017年9月に「Java 9」が登場したばかりですが、いまから1カ月後の2018年3月には早くもJavaの新バージョン「Java 10」がリリースされます。そしてその6カ月後の9月にはさらに次の「Java 11」がリリース予定です。 Java 9以後のJavaは、毎年3月と9月の年2回メジャーバージョンアップを行う、タイムベースのリリースモデルを採用することになりました。今年はその最初の年となります。 オラクルによるJDKの提供方法やサポートポリシーも、これから大きく変更されることが明らかになっています。一般公開され無償でダウンロードできたOracle JDKの公開はJava 10が最後となり、サポートは3年

    来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)
  • 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
    yamadar
    yamadar 2016/06/18
    はてブの一覧で冒頭が見えるので釣りだと分かったつもりで開いたら、予想を裏切る展開。見事すぎて清々しい。
  • 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
  • Home | Eclipse Che

    Enjoy Development Again Spend your time coding, not configuring your laptop Easy Quick onboarding. A browser is the only requirement. Click on a link and start coding Automated git setup Run your application on Kubernetes with no pain Fast Gain time. No setup required. Switch branch or project opening a new browser tab Faster dependencies download from within the cloud. Cloud Native Repeatable, so

    Home | Eclipse Che
    yamadar
    yamadar 2016/03/10
    EclipseがWeb化した。
  • Java/Androidにおける例外設計、あるいは「契約による設計」によるシンプルさの追求 - Qiita

    なぜ今Javaの例外処理か Javaにおける「チェック例外」はSwift、Objective-C、RubyJavaScriptといったネイティブ・ウェブアプリ開発でよく用いられる他の言語には現れないものです。 SwiftにはOptionalやErrorTypeがありますが、Javaにおいてもnullやエラーのハンドリングの実装方法をうまくやる必要があります。 なぜ例外を握りつぶしたらいけないのか、なぜアサーションが望ましいのか、なぜチェック例外と非チェックを分けたのか、という点を考えてみたいと思います。 参考資料 例外設計における大罪 (契約プログラミングについて) Effective Java読書会9日目 - 例外 (Javaにおける例外の扱いについて) 契約による設計から見た例外 (この記事の方がより詳しいけど難しいイメージ) チェック例外と非チェック例外の違い チェック例外→「回復

    Java/Androidにおける例外設計、あるいは「契約による設計」によるシンプルさの追求 - Qiita
    yamadar
    yamadar 2016/03/07
    例外のあ使い方について。
  • 俺は守りに入らない、これが今の俺だ - ひがやすを技術ブログ

    Seasar Conferenceが久々に開催されます。 興味のある方はぜひお申し込みください。 http://seasar.connpass.com/event/19317/ 正直、話す内容は、個々人にまかされているので、どんな感じになるのかはやってみないとわからないのですが、私は、今取り組んでいることを話したいと思います。 今、私が取り組んでいるのは、 「ダンスマシン(すっげー仮)の開発」 イメージはこんな感じ。 Padをたたきながら、ダンスを組み立てていきます。ダンスは、1,2小節ごとに組み立てていくことがほとんどなので、曲を作るのと同じような感じで組み立てていくことになります。出来上がったダンスは、Audioムービーの静止画の上に、シルエットで踊らせるようなことを考えています。 いわゆる、VJ用のマシンな訳ですが、DJのソフト&ハードと、MIDIで連動させることができ、曲とダンスを

    俺は守りに入らない、これが今の俺だ - ひがやすを技術ブログ
    yamadar
    yamadar 2015/08/27
    ひがやすをさん、何時の間にDJになってたの。。。/Seasarにはお世話になった。
  • サービス終了のお知らせ

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

  • i++ と ++i、++i の方が高速という都市伝説を解明 - satosystemsの日記

    昔、ある時、ふと気がついた。 int i; for (i = 0; i < 10; i++) { } for (i = 0; i < 10; ++i) { } 同じ動作をする for ループなんだけど、i++ と ++i の部分で、i++ の方が処理に無駄がある(下の値とインクリメントした値の両方を保持しなきゃならない)から性能面で劣っていないか、と。 結構ずーっと気になっていたんだけど、腰を上げて確認してみたら、gcc ではどちらも同じだった。以下は for ループ内のインクリメント部分の抜粋 movl _i, %eax /* i を eax に読み込み */ addl $1, %eax /* 1 を eax に足し込み */ movl %eax, _i /* eax を i に戻す */ インクリメントの部分は i++ でも ++i でもこのようになっていて、副作用がないので最小のコー

    i++ と ++i、++i の方が高速という都市伝説を解明 - satosystemsの日記
  • 日本Javaユーザーグループ

    皆様お待たせいたしました! 6月16日(日)にJJUG CCC 2024 Springを開催します! JJUG CCCは、例年2回、春と秋に開催する日最大のJavaコミュニティイベントです。 Java関連の技術や事例に関する良質なセッションが行われ、また異なる分野で活躍するJava技術者が一堂に会する場ともなっています。 今回もオフラインでの開催です。 みんなでワイワイJavaについて語り合いませんか? コロナ後から会場が変わっております。 以前はベルサール新宿での開催でしたが、 野村コンファレンスプラザ新宿での開催となっているのにはご注意ください。 以下からお申し込みください。 https://jjug.doorkeeper.jp/events/172019 皆様と当日会えることを楽しみにしております! また、当日一緒に運営をしてくださるボランティアスタッフも募集しております。 興味の

    日本Javaユーザーグループ
  • 至極のJavaクイズ 総集編

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

    至極のJavaクイズ 総集編