#author("2025-02-07T23:09:20+09:00","default:irrp","irrp") #author("2025-02-07T23:12:25+09:00","default:irrp","irrp") →Java関連 #contents *サブトピック [#w5aac082] -Java関連Tips -Java文法系Tips --Javaのリフレクション -JavaのWebアプリ開発 -DI(依存性注入) --[[S2AOP]] *一般の話題 [#kc9ebd05] -[[「Java」が“死んだ言語”にならない納得の根拠:プレミアムコンテンツ - ITmedia エンタープライズ>https://www.itmedia.co.jp/enterprise/articles/2502/07/news016.html]] 2025.2 Javaの10個のメリット:オープンソースである: 2006年にオープンソース化され、JDKのカスタマイズが可能になった。 コミュニティー主導である: JCPを通じて進化し、コミュニティの貢献が活発。 OS非依存かつ高速である: JVMによりクロスプラットフォームを実現、JITコンパイラによる速度改善。 学習しやすい: JShellの導入、オンラインIDEの利用で学習ハードルが低下。 専門家のリーダーシップがある: マーク・ラインホルト氏とブライアン・ゲーツ氏がJavaの進化を牽引。 機能の導入が早い: コミュニティのニーズに迅速に対応し、新機能の導入も早い。 静的型付け言語である: コンパイル時に型をチェックし、大規模なコードベースを管理しやすい。 オブジェクト指向である: オブジェクト指向言語としての豊富な機能が、複雑な問題を解決する。 関数型プログラミングを利用できる: Streamやラムダ式を導入し、関数型プログラミングの要素を実装。 後方互換性を重視する: 新しいバージョンでも古いコードが動作するように配慮。 --オープンソースである: 2006年にオープンソース化され、JDKのカスタマイズが可能になった。 --コミュニティー主導である: JCPを通じて進化し、コミュニティの貢献が活発。 --OS非依存かつ高速である: JVMによりクロスプラットフォームを実現、JITコンパイラによる速度改善。 --学習しやすい: JShellの導入、オンラインIDEの利用で学習ハードルが低下。 --専門家のリーダーシップがある: マーク・ラインホルト氏とブライアン・ゲーツ氏がJavaの進化を牽引。 --機能の導入が早い: コミュニティのニーズに迅速に対応し、新機能の導入も早い。 --静的型付け言語である: コンパイル時に型をチェックし、大規模なコードベースを管理しやすい。 --オブジェクト指向である: オブジェクト指向言語としての豊富な機能が、複雑な問題を解決する。 --関数型プログラミングを利用できる: Streamやラムダ式を導入し、関数型プログラミングの要素を実装。 --後方互換性を重視する: 新しいバージョンでも古いコードが動作するように配慮。 -[[Javaの環境構築について #初心者 - Qiita>https://qiita.com/devharu-49/items/32df3aa73a1920df3c04]] 2025.1 -[[Javaフレームワークのおすすめ14選一覧|2024年トレンドから定番まで比較 - FLEXY(フレキシー)>https://flxy.jp/media/article/24852]] 2024.11 1. Spring Framework 2. Apache Struts 3. Play Framework 4. Apache Wicket 5. Jakarta EE (旧 Java EE) 6. Spark Framework 7. JSF (JavaServer Faces) ← Jakarta EE の一部なのでは? 8. SAStruts (Super Agile Struts) 9. Hibernate 10. GWT (Google Web Toolkit) 11. GRAILS 12. DropWizard 13. Ninja web framework 14. ZK -[[Javaを使わない理由:開発現場で選ばれる他の選択肢とは? | サイゼントの技術ブログ>https://cyzennt.co.jp/blog/2024/09/10/java%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e7%90%86%e7%94%b1%ef%bc%9a%e9%96%8b%e7%99%ba%e7%8f%be%e5%a0%b4%e3%81%a7%e9%81%b8%e3%81%b0%e3%82%8c%e3%82%8b%e4%bb%96%e3%81%ae%e9%81%b8%e6%8a%9e/]] 2024.9 -[[Javaの現状2024夏 / Java current status 2024 summer - Speaker Deck>https://speakerdeck.com/kishida/java-current-status-2024-summer]] 2024.7 -[[2024年版!VS Code で Java 開発環境を構築する | 豆蔵デベロッパーサイト>https://developer.mamezou-tech.com/blogs/2024/07/18/write-java-with-vscode-2024/]] 2024.7 -[[Javaを書くツールの使いやすさで言うと「NetBeans > IntelliJ IDEA >> Eclipse >>>(超えられない壁) >>> VSCode」→開発者から様々な声 - Togetter [トゥギャッター]>https://togetter.com/li/2386716]] 2024.6 -[[「理想のCOBOL」になったJava、システム開発で盤石の地位築く | 日経クロステック(xTECH)>https://xtech.nikkei.com/atcl/nxt/column/18/02821/042300001/]] 2024.5 -[[AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era - Speaker Deck>https://speakerdeck.com/kishida/write-a-executable-process-for-ai-era]] 2024.1 -[[知っておきたいJavaの話:どうやって実行する? - itstaffing エンジニアスタイル>https://www.r-staffing.co.jp/engineer/entry/20230630_1]] 2023.6 -[[知っておきたいJavaの話:Javaとは何か? - itstaffing エンジニアスタイル>https://www.r-staffing.co.jp/engineer/entry/20230414_1]] 2023.4 -[[OracleのJava SEサブスクリプションへの変更が酷い件について - ネットワークエンジニアが日々の出来事を語る>https://www.itbook.info/web/2023/01/oracle%e3%81%aejava-se%e3%82%b5%e3%83%96%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%b8%e3%81%ae%e5%a4%89%e6%9b%b4%e3%81%8c%e9%85%b7%e3%81%84%e4%bb%b6%e3%81%ab%e3%81%a4.html]] 2023.1 -[[オラクル、Java を値上げ - インストール先を探すなら HCL BigFix Inventory で | HCL Software (Japan) Blog>https://www.hcljapan.co.jp/software/blog/oracle-increases-prices-for-java-use-bigfix-inventory-to-find-installations]] 2023.1 -[[Oracleのライセンスモデル変更によりJavaのコストが急増する可能性 | TEXAL>https://texal.jp/2023/01/28/oracles-licence-model-changes-could-lead-to-a-spike-in-java-costs/]] 2023.1 -[[【Java】Windows 向けJRE同梱アプリケーションを作る - 虎の穴開発室ブログ>https://toranoana-lab.hatenablog.com/entry/2023/03/01/100000]] 2023.3 -[[何故Javaは敬遠されるのか? - Qiita>https://qiita.com/yone3/items/0dca5dfe45b586846b20]] 2023.2 -[[VSCodeのJavaプロジェクトをJava8からJava11に移行した話 - Qiita>https://qiita.com/mingchun_zhao/items/c92237b1ce645bdfdb56]] 2022.11 -[[ぼくたちは Java アプリケーションの起動速度をどこまで縮められるか - Speaker Deck>https://speakerdeck.com/bulbulpaul/bokutatiha-java-apurikesiyonnoqi-dong-su-du-wodokomadesuo-merareruka]] 2022.11 -[[Docker HubのOpenJDKイメージの利用を更新するためのアドバイス - 赤帽エンジニアブログ>https://rheb.hatenablog.com/entry/updating-docker-hubs-openjdk-image]] 2022.10 -[[Javaはなぜ関数型言語になろうとしているのか: プログラマの思索>https://forza.cocolog-nifty.com/blog/2022/09/post-504acb.html]] 2022.9 -[[javaコマンドで使える、JDK_JAVA_OPTIONS環境変数ってなんだ? - CLOVER🍀>https://kazuhira-r.hatenablog.com/entry/2022/07/06/002410]] 2022.7 --JDK_JAVA_OPTIONSは、その内容をコマンド行から解析されるオプションの先頭に追加します。 JDK_JAVA_OPTIONS環境変数の内容は、空白文字(isspace()で指定)で区切られた引数のリストです。 -[[環境変数JAVA_TOOL_OPTIONSで、Java VM引数を指定する(-XX:VMOptionsFileも加えて) - CLOVER🍀>https://kazuhira-r.hatenablog.com/entry/2020/10/23/003913]] 2020 -[[Using Headless Mode in the Java SE Platform>https://www.oracle.com/technical-resources/articles/javase/headless.html]] 2006 -[[java - Difference between openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib - Stack Overflow>https://stackoverflow.com/questions/24280872/difference-between-openjdk-6-jre-openjdk-6-jre-headless-openjdk-6-jre-lib]] 2014 --Headless JRE = minimal Java runtime, used for executing non-GUI Java programs. --Full JRE = full Java runtime, used for executing GUI Java programs. --JDK = Java Development Kit, always needed for developing Java programs. -[[Javaのmainメソッドの戻り値はvoidだが、リターンコードはどうなっているのか - DIVX engineer gateway>https://engineering.divx.co.jp/entry/2022/06/29/182921]] 2022.6 -[[【レポート】Java アプリとAWS の良い関係 – AWS でJava アプリを実行する一番簡単な方法教えます #jjug_ccc #jjug_ccc_a | DevelopersIO>https://dev.classmethod.jp/articles/jjug-ccc-2022-java-with-aws/]] 2022.6 --AWS App Runner --イベントドリブンな処理ではサーバーレスサービスを組み合わせる -[[【経験談】マジで初心者にはJavaをオススメできない3つの理由>https://suwaru.tokyo/%E3%80%90%E7%B5%8C%E9%A8%93%E8%AB%87%E3%80%91%E3%83%9E%E3%82%B8%E3%81%A7%E5%88%9D%E5%BF%83%E8%80%85%E3%81%AB%E3%81%AFjava%E3%82%92%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E3%81%A7%E3%81%8D%E3%81%AA/]] 2021.6 Java はプログラミング初心者にとって敷居が高い 労働環境があまり良くない (ことが多い) トレンド技術が身につきにくいので後々苦労する -[[Javaの将来性がある理由9つ|需要のあるJavaエンジニアを目指す方法は? – IT業界、エンジニア、就活生、第二新卒、転職者、20代向け情報サイト>https://www.acrovision.jp/career/?p=2611]] 2021.1 -[[Javaはもうオワコン?人気のあるJavaの将来性について考える | すべらない転職>https://axxis.co.jp/magazine/30623]] 2021.10 -[[オラクル、Oracle JDKを再び無料提供へ、本番環境でも利用可。昨日リリースのJava 17から>https://www.publickey1.jp/blog/21/oracle_jdkjava_17.html]] 2021.9 -[[Java】複数バージョンのJavaを切り替えて使う方法>https://qiita.com/nkojima/items/e3de6052554ee1d77144]] 2019.6 --alternative コマンド -[[Amazon linux2 にjava 1.8.0をインストールする>https://qiita.com/neko_com/items/ef0409bc85b8054a6004]] 2019 -[[[Linux] AmazonLinuxに、最新のJavaをインストールする>https://www.yoheim.net/blog.php?q=20180101]] 2018 -[[JDK11(OpenJdk)のインストール>https://snowsaber.dip.jp/page/etc/jdk11install.html]] 2021.8 -[[Oracle Java SEの有償化に伴うOpenJDKへの切り替えの案内>https://ipc.kyokyo-u.ac.jp/page/696]] 2020.11 -[[Java 11 時代の Java プログラミングスタイルガイド>https://qiita.com/ptiringo/items/71c2792e7c553399c2e2]] 2019.1 -[[Javaの歴史的転換点となる2018年9月となりました | わかりやすくまとめる>https://www.orangeitems.com/entry/2018/09/03/070000]] 2018.9 --Oracle Java 7/9はもう無償アップデートされていない --Oracle Java 10は2018年9月までで公開終了 --Oracle Java 8は2019年1月までで公開終了 --Oracle Java 11以降は無償公開されません --2018年9月以降はJava SEの最新のバージョン(11)がOracleからダウンロードできなくなる節目となります。 --無償で使うには以下のどちらかしかない ---OpenJDKに乗り換え、半年ごとにバージョンアップすることに慣れる ---Linuxであれば、有償ディストリビューションに含まれるOpenJDKを使い、OSのサポート期間使い続ける(RedHatなど) -[[モダンなJava開発ガイド (2018年版)>https://qiita.com/yoichiwo7/items/17190cb440ab7d253cea]] 2018.8 -[[Oracle Javaの無償配布終了で何が起こるのか?>http://qtamaki.hatenablog.com/entry/2018/02/09/124036]] 2018.2 -[[2018年にJavaを利用している人は全員理解すべきことを説明してみる(追記あり)>http://www.orangeitems.com/entry/2018/02/08/152022]] 2018.2 -http://www.jguru.com/ -[[アノテーション・ハンマー>http://www.infoq.com/jp/articles/Annotation-Hammer]] -[[「JavaはGoogleへ売却すべき」――脆弱性放置のOracleに忠告>http://techtarget.itmedia.co.jp/tt/news/1302/26/news03.html]] 2013.2.26 -Javaコントロールパネルの場所 C:\Program Files (x86)\Java\jre1.8.0_301\bin\javacpl.exe C:\Program Files (x86)\Java\jre7\bin\javacpl.exe C:\Program Files\Java\jre7\bin\javacpl.exe -[[Java Is No Longer Needed. Pull The Plug-In>http://www.readwriteweb.com/hack/2012/09/java-is-no-longer-needed-pull-the-plug-in.php]] 2012.9.5 -[[JavaプロジェクトでGroovyを導入すべき5つの理由>http://d.hatena.ne.jp/kyon_mm/20110711/1310396094]] -[[見習いJavaプログラマ向け10冊+α>http://d.hatena.ne.jp/JavaBlack/20101203/p1]] 2010.12.3 -[[Java 関連職の面接を受ける際の心構え>http://japan.internet.com/column/developer/20100903/26.html]] 2010.9.3 --最近はとにかく Spring と Struts であることを知っておきたい。ちょっと前まではそれが EJB と CORBA だった。 --職歴のなかには必ず「J2EE」を入れること -[[スクリプト言語の扱い方 >http://itpro.nikkeibp.co.jp/article/COLUMN/20100217/344653/]] 2010.2.22 --JavaからRubyを呼ぶ -[[Javaのかなめ、ガベージコレクションをやさしく学ぶ>http://h50146.www5.hp.com/products/software/oe/hpux/developer/column/gabage_01/index.html]] -[[java ガベージコレクションとパフォーマンス>http://www.ibm.com/developerworks/jp/java/library/j-jtp01274/index.html]] -[[javaにおけるアサーション環境>http://www.ctrlz.jp/as/assertion.html]] -[[EclipseやSplingで使われている基盤技術OSGiとは?>http://www.atmarkit.co.jp/fjava/special/osgi/osgi_1.html]] -[[Javaに不可欠なリソース>http://www.ibm.com/developerworks/jp/java/library/j-javaresources.html?ca=drs-jp]] 2009.4.17 --主要サイト、読むべき本など -[[良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき>http://d.hatena.ne.jp/higepon/20090326/1238067284]] 2009.3.27 -[[Java SE コアAPI使用コード例一覧>http://www.atmarkit.co.jp/fjava/channel/javaseapi.html]] -[[Javaのプリミティブクラスは抽象クラス?>http://d.hatena.ne.jp/higayasuo/20081227/1230352290]] 2008.12.27 -%%[[Javaがレガシーだって? 冗談じゃないよ - James Goslingが語るJavaの現在>http://journal.mycom.co.jp/articles/2008/12/03/javasfather/index.html]]%% 2008頃? --一部では"JavaはすでにCOBOLのようなレガシーに近い"という声も上がっていますが…。 ---その意見にはまったく賛同しかねるね。そういうことを一部のRubyユーザなどが言っているのは知っているが、彼らが"RubyがJavaに取って替わる"と主張する根拠は、単にWebアプリケーションを早く作れるからだろう。だが、(出来上がったアプリの)パフォーマンスなどを見ると、とてもJavaに取って替われる言語になるとは思えない。Webプレゼンテーション層しか扱っていないんだから。その最悪の例がTwitterだ。あの性能、UIは悪夢でしかないね。 -[[スクリプト言語からSunの財務状況まで〜James Gosling氏プレスインタビュー>http://gihyo.jp/news/report/2008/12/0301]] 2008.12.03 -[[Webサービスのヒント JAX-RPCとJAX-WS>http://www.ibm.com/developerworks/jp/webservices/library/ws-tip-jaxwsrpc.html]] -[[J2SE 5.0 Tiger 虎の穴 JMX基礎編>http://www.javainthebox.net/laboratory/J2SE1.5/MonitoringAndManagement/JMX/JMX1.html]] -[[Javaフレームワークの比較検討資料公開>http://d.hatena.ne.jp/t_yano/20081118/1227008018]] 2008.11.19 -[[Java 開発技術の変遷と今後の展望(安藤 幸央)>https://www.exa-corp.co.jp/technews/files/ER-08-3.pdf]] 2007 --なぜ、Javaがこのように広い応用分野で利用されるようになったか ・ネットワークや GUI を扱う API が標準で整っていること ・さまざまな分野の API が充実していること ・C/C++ と構文が似ており、他言語のプログラマが違和感なく利用することができたこと ・初めて本格的にビジネスプロモーションが行われたプログラミング言語であり、ビジネスユースとしてエンタープライズ分野で応用するための観点があったこと ・サーバマシンから、携帯電話までさまざまなデバイスで動作し利用できたこと ・オブジェクト指向プログラミング言語であり、過去の言語の良いところを引き継ぎ、しがらみのない「新しい言語」として浸透していったこと ・無料・無償で開発環境と実行環境を利用できること ・異なる OS の上でも同一のプログラムが動作することを目標とし、移植の手間が大きく減ったこと ・Web の浸透、書籍の充実を含め、Java の情報が数多く手に入ったこと -[[POJO(Plain Old Java Object>http://ja.wikipedia.org/wiki/Plain_Old_Java_Object]] --あるJavaオブジェクトがEJB(特にEJB 3より前のEJB)のように特殊なものではなく、ごく普通のJavaオブジェクトであることを強調した名称。設計はシンプルであればあるほど良いと主張する人たちが好んで使用する。 -[[Java Portlet Specification V2.0 (JSR 286) の新たな内容とは?>http://www.ibm.com/developerworks/jp/java/websphere/library/techarticles/0803_hepper/0803_hepper.html]] --ポートレットとは、ある種のマークアップを作成する、コンポーネント化された、ユーザー向けアプリケーションのことです。このマークアップは他のマークアップ・フラグメントと集約されて、より大きな 1 つのアプリケーション (例えば、図 1 に示すようなポータル・ページ) になるように意図されています。 -[[アノテーションの使用>http://www.thinkit.co.jp/free/marugoto/3/1/3/1.html]] -- アノテーションとは、クラスやメソッド、フィールドなどのプログラム要素に対して、プログラム的に意味付けを行うことです。 --C#の属性みたいなものと思ってよい --参考:http://journal.mycom.co.jp/column/java/026/index.html -[[自己流オブジェクト指向&Java参考書 『非』お勧め版>http://d.hatena.ne.jp/JavaBlack/20080401/p1#20080401f11]]