Javaに関するarakashのブックマーク (35)

  • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

    AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaというかJVM言語がオススメできません。TypeScriptGoRustをオススメします。 どういうこと?まずこの記事を見ていただくのが一番分かりやすい。 https://aws.amazon.com/jp/builders-flash/202310/java-serverless-saas-backend/?awsf.filter-name=*all 素晴らしいエントリーだ。読みに行かないせっかちな方のために概要を紹介する JavaプロダクトをAWS

    Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
    arakash
    arakash 2023/12/08
    JVMとServerlessの相性が悪い話、がんばれは工夫の余地はあるが、他の言語ならがんばらなくてもできる
  • サーバーレスJavaの今 ~SnapStartとWeb Adapterを寄せて~

    Lizさんに届け!�AWS Jr. ChampionとTop Engineerが�書籍コンテナセキュリティを読んで感じたこと

    サーバーレスJavaの今 ~SnapStartとWeb Adapterを寄せて~
    arakash
    arakash 2023/06/05
    サーバーレスJavaの話、思ったより起動を早くできるらしい
  • Java 20, 21, オブジェクト指向からデータ指向へ / Java20, 21, Object Oriented to Data Oriented

    2023/5/10(水)に開催されたTechFeed Experts Night#18での登壇資料です。 https://techfeed.io/events/techfeed-experts-night-18

    Java 20, 21, オブジェクト指向からデータ指向へ / Java20, 21, Object Oriented to Data Oriented
    arakash
    arakash 2023/05/12
    Java 20, 21の変更点のまとめ
  • 徹底解説! Javaのラムダ式はどういうもので、どう使えばいいのか!

    Javaのラムダ式(lambda expression)とは、関数型インターフェイスを実装したクラスのインスタンスを、ごく短いコーディング量でとても簡単に作れてしまう文法のことです。 ラムダ式は、Java 8から追加された比較的新しい機能です。ラムダ式ってそもそも何だろうと思って調べると、大抵はStream APIとセットでの説明で、覚えることがものすごく多そうですよね。 そんな印象から、Javaのラムダ式に難しい印象を持っているそこのあなた、それはまったくの間違いです。ラムダ式そのものは、ポイントを押さえれば、実はもっと簡単に分かるものなのです。 この記事では、Javaのラムダ式とは当はどういうものかという考え方から、プログラムでの使いどころなどを、Javaの初心者や、Javaからしばらく離れていた人向けに、一つずつ解説します。 ※この記事はJava 13時点の言語仕様・APIに基づい

    徹底解説! Javaのラムダ式はどういうもので、どう使えばいいのか!
    arakash
    arakash 2021/08/20
    ラムダ式の文法的な話、注意点などを解説、ラムダで困ったら見れば大体解決しそう
  • Java7からJava16までの変遷。 - Qiita

    まえがき ずっとJava11を使っていました。そのためすっかりラムダ式やStreamAPIでの書き方に慣れていたのですが、最近Java7を使って稼働しているプロジェクトに異動したので、何ができて何ができないのか、ちょっと調べてみました。 Javaの変遷 私見ですが主要だと思う仕様変更を並べてみました。アプリ実装に関係する部分のみピックアップしています。 このバージョンのこれは入れておいたほうが良いよ!との意見がありましたらコメントにぜひお願いします。 Java8 2014/03/18 正式リリース(GA) https://openjdk.java.net/projects/jdk8/ ラムダ式 https://openjdk.java.net/projects/lambda/ https://qiita.com/sano1202/items/64593e8e981e8d6439d3 pub

    Java7からJava16までの変遷。 - Qiita
    arakash
    arakash 2021/06/25
    Javaのバージョンアップによる機能追加のまとめ
  • Eclipseデバッガを活用するための31のtips

    ORMがトラブル起こすから嫌い」なんじゃなくて、「ORMが起こすトラブルが解決できないから嫌い」ってのがほんとのところじゃない?だったら解決方法を知ればいいんじゃね?というお話。「N+1問題」もろくに知らずにORMを批判せんでほしい。 This document summarizes a microservices meetup hosted by @mosa_siru. Key points include: 1. @mosa_siru is an engineer at DeNA and CTO of Gunosy. 2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes usin

    Eclipseデバッガを活用するための31のtips
    arakash
    arakash 2013/09/30
    Eclipseのデバッグ色々、知らないテクニックが結構ある
  • JavaアプリをExe化するLaunch4jの使い方と仕組み - seraphyの日記

    Launch4jとは? Launch4jとは、JavaアプリケーションのExeラッパーを作成するツールである。 以下よりダウンロードできる。 http://launch4j.sourceforge.net/ このLaunch4jを使うことで、実行可能JarをExeファイルとして起動できるようにラップすることができる。 しかし、生成されたExeは単純なラッパーにすぎず、Exe化したといってもJavaランタイムが不要になるわけではない。 これは、端的にいえば、「Javaアプリケーションを起動するためのexe」を作るものだと考えてよい。 であれば、単純な「実行可能なjar」と比較して何が嬉しいのか? 機能的には以下のようなアドバンテージがある。 Launch4jでExe化するメリット Exeなので、これがアプリケーションであることが一目でわかる Javaに詳しくない人はjarファイルを見ても扱い

    JavaアプリをExe化するLaunch4jの使い方と仕組み - seraphyの日記
    arakash
    arakash 2013/08/12
    Javaアプリのexe化
  • JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのHatena

    lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。 ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできますが、ぼくはlombokを導入するべきだと考えて、lombokを使うようにしました。 このとき「lombokを導入するべき」と考えた理由を書いておきます。 lombokとは lombokは冒頭でも書いたように、Javaのアクセッサなどを生成してくれるライブラリです。 Project Lombok import lombok.*; @Setter @Getter @AllArgsConstructor @NoArgsConstructor @ToString public class LombokSample { privat

    JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのHatena
    arakash
    arakash 2013/07/30
    lombok(アクセサメソッドやtoStringの生成)を使ったほうがいい理由
  • Java 8は関数型なのか

    ITproの読者には既にご存じの方も多いと思うが、2014年3月に「Java SE」の次期版「Java SE 8」(以下、Java 8)がリリース予定である。国内のエンタープライズ分野では「レガシーJava」が多いとされ、現行版の「Java SE 7」に移行しているユーザーすら少数派と聞く。Java 8といっても遠い話のように感じる方も多いかもしれない。 しかし、Java 8はJavaにとって一つの大きなマイルストーンとなる。関数型プログラミングに由来する「ラムダ(lambda)式」なる構文が導入されるのだ。 Javaをよく知る技術者の方の中には、「いや、Java 8のラムダ式は関数型プログラミングのために導入されたのではない」と主張される方がいるだろう。この点については後ほど触れたいと思うが、「ラムダ式が何のために導入されたか」はさておき、ラムダ式という記法そのものが「関数型に由来する」

    Java 8は関数型なのか
    arakash
    arakash 2013/07/17
    Java8でlambdaを導入するのは、開発者を関数型プログラミングへ移行するための第一歩という説 色々興味深い
  • How to do a JUnit assert on a message in a logger

    I have some code-under-test that calls on a Java logger to report its status. In the JUnit test code, I would like to verify that the correct log entry was made in this logger. Something along the following lines: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } I suppose tha

    How to do a JUnit assert on a message in a logger
    arakash
    arakash 2013/06/20
    JUnitでログメッセージをテストする方法
  • JVMのオススメ起動オプション - oinume journal

    なんか秘伝のタレみたいになってきたので後世のために共有。 前提 Webアプリケーションを想定 TomcatなりJettyなりがListenするポートは外部からはアクセスできない ※-Xms -Xmx -Xmn あたりは搭載しているメモリ容量によって変える、-XX:MaxPermSize -XX:PermSizeは384mあれば十分だと思うけどロードするクラスの数次第なので要調整。 NOW=`date "+%Y%m%d-%H%M%S"` JAVA_OPTS="-server -Xms2g -Xmx2g -Xmn1g -XX:MaxPermSize=384m -XX:PermSize=384m \ -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=85 -XX:MaxTenuringThreshold=32 \ Javaプログラマーなら習得しておきたい J

    JVMのオススメ起動オプション - oinume journal
    arakash
    arakash 2013/03/27
    JVMのオススメオプション 参照先のリンクにも起動オプションの話が結構ある
  • javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ

    最初は誰しもがファッ!?となるんですよねロガーって。 いずれtree-tipsで公開しようと思っている、solrのプロジェクトを今作っています。mavenでjarを管理している訳ですが・・ なんだこのロガーの数は!! commons-logging、log4j、slf4j-api、jcl-over-slf4j、logback-classic・・・・、こいつら一体何が違うんだ!どう使い分けるんだ!そもそも必要なのか!?となりました。 昔はcommons-logging+log4jというのがトレンドだった訳ですが、今はslf4j+logbackがトレンドになり、jdkも1.4から1.7になり、これらトレンドが推移する過程で、いろいろなjarが旧式に依存してしまい、旧式依存を解決するためにアダプタが登場し始め、mavenでjarを収集すると大抵両方入ってしまい、カオスになっているのです。 特にs

    javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ
    arakash
    arakash 2013/03/18
    ロガーの整理記事 わかりやすい
  • 続・今日から始めるJava8 - JSR-310 Date and Time API - Taste of Tech Topics

    こんにちは id:cero-t です。 前回話題にしたJava8 ですが、もう少し別の機能を試してみましょう。 今回は新しい日時API、Date and Time API(JSR-310) を紹介します。 JDK8 M6時点でのJavadocは、以下のURLで公開されています。 http://cr.openjdk.java.net/~rriggs/threeten/threeten-javadoc-b75/ 注意:このエントリーの内容は、JDK8 M6 (b75) の時点のAPIに従っています。 M7以降では一部のAPIが変わっているので注意してください。GA時点でまた記事を見直します。 From Joda Time to Three Ten Javaの日付クラス(java.util.Date)の扱いは、 皆さんもなかなか苦慮していることだと思います。 というのも、、、 ・年月日などを指定

    続・今日から始めるJava8 - JSR-310 Date and Time API - Taste of Tech Topics
    arakash
    arakash 2013/02/13
    Java8 JSE-310 Date and Time API Joda Timeを参考に作られている
  • Javaスレッドメモ(Hishidama's Java thread Memo)

    概要 Javaでは、マルチスレッド用のクラスとしてThreadが用意されている。[2017-04-15] しかし新しいJavaでは、Threadを直接使う事はあまり無い。 ExecutorService/Future(JDK 1.5)やFork/Join(JDK 1.7)といったクラスが追加されているので、そちらを使う。 Java21で仮想スレッド(virtual thread)が導入された。[2023-09-23] これにより、従来のスレッドはプラットフォームスレッド(platform thread)と呼ぶようになった。 Javaでは、マルチスレッド用のThreadクラスが用意されている。 Threadを継承して独自のクラスを作り、runメソッドをオーバーライドして処理体を記述する。 class スレッドクラス名 extends Thread { @Override public vo

    arakash
    arakash 2012/12/24
    スレッド周りの話が纏まってるので、色々勉強になる
  • AtomicIntegerを追ってみた - プログラムdeタマゴ

    Atomic〜とか中身でsynchronizedしてるだけじゃね〜(´・∀・`) なんて思ってた。で、試す機会が来た。 import java.util.concurrent.atomic.AtomicInteger; public class Test{ //走らせるスレッドの数 static final int thread = 1000; //1つのスレッドの中でカウントする回数 static final int loop = 100000; //AtomicIntegerを使ってカウント static AtomicInteger acounter=new AtomicInteger(); static class Runnable1 implements Runnable{ public void run(){ for(int i=0;i<loop;i++)acounter.inc

    AtomicIntegerを追ってみた - プログラムdeタマゴ
    arakash
    arakash 2012/12/24
    AtomicIntegerの話、排他制御のカウンタならsynchronizedを使うよりずっと早い話
  • JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ

    ブログはJava8(特にMetaspace)に対応していない。 下記にJava8以降に対応した記事を記載する(予定)。 blog.pepese.com JavaVMのメモリ領域について JavaVMが管理するメモリ領域について 階層1 階層2 階層3 説明 Javaヒープ JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域とOld領域で構成される。 l" New領域 新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置される。(Young領域とも呼ばれる) l l" Eden領域 新規のオブジェクトが配置される。 l l" From領域 CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされる。(S0やS1とも呼ばれる) l lー To領域 CopyGC(Scav

    JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ
    arakash
    arakash 2012/06/03
    GCの動き、JVMパラメータ色々
  • Oracle

    オラクルは、イスラエルとその市民に対するテロ攻撃を許しません。オラクルは、当社の従業員、イスラエル政府、および同国の防衛組織に必要なあらゆる支援を提供する方針です。 Magen David Adomは、イスラエル市民に緊急医療サービスを提供する非営利団体で、あらゆる場所で人間の苦しみを軽減し、すべての人々の健康と尊厳を守ることに尽力しています。オラクルは、当社の従業員から寄せられた寄付金と同額を上乗せして、この重要な組織に寄付します。#istandwithisrael

    arakash
    arakash 2012/04/10
    JavaOneのトラブルシューティングの資料
  • Spring Framework勉強会

    The document discusses Spring Framework, including its concepts, new features in version 2.5, and components such as dependency injection, aspect-oriented programming (AOP), and the model-view-controller (MVC) architecture. It provides details on initializing application contexts in different environments, bean definition methods, and dependency injection.Read less

    Spring Framework勉強会
    arakash
    arakash 2012/03/30
    基本的なことが書かれている感じ。ただしバージョンは2.5
  • VisualVM 入門 — Java.net

    VisualVM は、Java 仮想マシン (JVM) で実行中の Java アプリケーションに関する詳細情報を提供します。VisualVM のグラフィカルユーザーインタフェースを使用すると、複数の Java アプリケーションに関する情報をすばやく簡単に表示できます。 この入門ガイドは、VisualVM をすばやく設定して実行するための支援を行います。このガイドでは、VisualVM をインストールする方法と、VisualVM のアップデートセンターからプラグインをインストールして、ツールに機能を追加する方法を説明します。また、VisualVM の起動方法と、ローカルおよびリモートの JVM で実行中のアプリケーションに関して取得できるいくつかの情報の表示方法を示します。 実行中の VisualVM java.sun.com で紹介された短いスクリーンキャストで、VisualVM の機能を

    arakash
    arakash 2012/03/16
    JVMのヒープダンプやアプリケーションプロファイルを取得できるGUIツール 見た目は結構使いやすそう
  • Apache MINA — Apache MINA

    Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO. Apache MINA is often called: NIO framework library, client server framework library, or a networking socket library Apache MINA comes with man

    arakash
    arakash 2012/03/14
    ノンブロッキングIOのFW