タグ

javaに関するyharaのブックマーク (18)

  • Javaによる型制約を持ったインスタンスメソッドの模倣 - ロジニキ雑記

    概要 Javaではレシーバーが特定のParameterized Typeである時のみ呼び出す事が出来るインスタンスメソッドを定義するという言語機能はありません。しかし、Parameterized Typeを引数に取る関数を外部で定義し、ジェネリック型には外部から渡された関数を自身のインスタンスで評価するメソッドを定義する事により模倣することができます。 型制約 インスタンスメソッドを呼び出す事が出来る条件として型変数の継承関係を取る事を記事では型制約と呼びます。 型制約のモチベーションを確認するために次のコードを考えましょう。 public final class Holder<T> { private final T t; public Holder(T t) { this.t = t; } public T t() { return t; } // ネストしたHolderを「潰す」

    Javaによる型制約を持ったインスタンスメソッドの模倣 - ロジニキ雑記
  • The changes of JVM Specifications - JVM仕様の変更点 - #chiroito ’s blog

    Java 8 以降の Java 仮想マシンの仕様のうち、各バージョンの差分を洗い出しました。the が that になったり、item が entry になる変更で、文の意味が変らない変更は除いています。 I listed the differences between each version of the Java Virtual Machine specification for Java 8 and later. I excluded changes that do not change the meaning of the statement, such as the changing of "the" to "that" or the changing of "item" to "entry". 元の情報はこちらです。 The original information is h

    The changes of JVM Specifications - JVM仕様の変更点 - #chiroito ’s blog
    yhara
    yhara 2020/10/12
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
    yhara
    yhara 2020/06/09
  • OpenJDK を開発する流れ - #chiroito ’s blog

    自分が使うコマンドをうっかり忘れるときがあるのでその備忘録のために、開発の流れとそこで使ってる内容をメモ。 公式のガイドはこちらを参考にしてください。The OpenJDK Developers' Guide – Index OpenJDK の開発は以下のような流れで行います。 バグを上げる 開発の準備 OpenJDKのソースをダウンロード jtregをダウンロード webrevをダウンロード パッチを書く ビルド jtreg のビルド OpenJDKのビルド テスト 自分が書いたテストを実行 レグレッションテスト レビューの作成 webレビューのアップロード レビュー依頼 コミット・プッシュ ユーザ情報を追加 コミット チェンジセット作成とアップロード 連絡 コミッターになったら Submitリポジトリからソースを取得 Submitリポジトリの設定を変更 SSH クライアントに鍵を登録

    OpenJDK を開発する流れ - #chiroito ’s blog
    yhara
    yhara 2019/02/04
    ド玄人だ
  • 最近のJava界隈はとても良い感じ - Qiita

    はじめに 私はこれまでのエンジニア歴で継続的にJavaを使い続けていますが、以前と比較すると使い勝手の面で格段に良くなっていると実感しています。 また、JJUG、JSUGなどで講演を聞いたりしたりする中で、個人的に最近のJava界隈は非常に進歩的で良い感じだと感じています。 そんな中、「Javaは人口が多いだけで特別に採用するメリットが無い」「Javaはレガシーで生産性が低い」というツイートを見かけたので、その反論を込めて私の考えを書き連ねたいと思います。 なお、以下で述べる内容には、Javaが良いというよりは、特定のフレームワークが良いだけ、というものもありますが、あくまでJava「界隈」について述べているのであしからず 。 最近のJavaの良いと思う点 言語仕様、標準ライブラリの改善 プロジェクトの立ち上がりの早さ 型安全性の活用 マイクロサービスアーキテクチャへの対応 パフォーマンス

    最近のJava界隈はとても良い感じ - Qiita
    yhara
    yhara 2018/11/11
  • Amberで検討されているJava構文の変更 - Qiita

    Amberとは Java言語を拡張するプロジェクトです http://openjdk.java.net/projects/amber/ Amberのブランチ records データ保持用のクラスです sealed-types シールドタイプ newesapes line blockのエスケープ対応 patterns パターンマッチの全体的な開発 patterns-deconstruction パターンマッチでのデコンストラクション patterns-stage-1 instanceofのみのパターンマッチ pattern-runtime パターンマッチのランタイム? local-methods ローカルメソッド lambda-leftovers ラムダで_使えるようにする concise-method-declarations メソッド定義の簡略化 enhanced-enums 拡張enu

    Amberで検討されているJava構文の変更 - Qiita
    yhara
    yhara 2018/02/05
  • Java ジェネリクスのポイント - Qiita

    久しぶりにジェネリクスを多用するライブラリを作成していて、忘れていたことやはまりどころがあったので、今更ですが備忘録的にポイントをまとめておきます。 用語 ジェネリクスは似たような用語があって混乱しやすいので、まずは用語をきちんと抑えておく。 以下は、Effective Javaの項目23からの抜粋である。 用語 例

    Java ジェネリクスのポイント - Qiita
  • Jigsawについて雑にまとめてみた - mike-neckのブログ

    以前、Gradle3におけるJavaプロジェクトのビルドについてのエントリーを書きましたが、Gradle3のJVM component modelって、まあ、わりと、Java9のJigsawみたいなものなんですね。で、Jigsaw自体知っている人が多いと思いますが、あらためてJigsawが解決したい問題(と僕が勝手に認識しているもの)とその解決方法について、雑にまとめてみることにしました。 なお、Gradle3のJVM component modelでのビルドについてはこちらを参照。 mike-neck.hatenadiary.com JVM component modelとJigsawとの関連について、少し言及があるエントリーについてはこちらを参照。 mike-neck.hatenadiary.com あと、Jigsawについて一番よくまとまっている資料見れば、このエントリーを見る必要は

    Jigsawについて雑にまとめてみた - mike-neckのブログ
    yhara
    yhara 2017/02/22
  • Javaの列挙型が明確な型付けをサポート

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Javaの列挙型が明確な型付けをサポート
  • Java8 と fugue で Validation (エムスリー Advent Calendar 2015 18th)

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Java8 と fugue で Validation (エムスリー Advent Calendar 2015 18th)
  • Java Generics 導入の裏側 - kmizuの日記

    このエントリは、これまで自分がさんざんTwitterで書いてきたことですし、Martin Odersky教授へのインタビュー www.artima.com でおおむね語られていることでもあります。ただ、この辺の事情についてあまり詳しくない方も居るようなので、上記インタビューの引用を交えて、JavaにGenericsが入るに至った経緯や関連して活躍した人物についても書いてみようと思います。 事の始まりは1995年にJavaが発表されたことでした。これに触発された、Philip Wadler先生(世界的に有名なコンピュータ科学者)、Martin Odersky先生と同じ研究室に居た助手さん?がこれでなんかやってみないかと煽ったらしく、翌年の1996年には、JavaにGenericsや高階関数、ADTなど関数型プログラミング言語の機能を入れ込んだPizza言語をMartin Odersky先生が

    Java Generics 導入の裏側 - kmizuの日記
  • Java で higher kinded polymorphism を実現する - Qiita

    Disclaimer この記事では一般的な(一般的とは…?)Java プログラマにも理解してもらえるように、比較的理解が簡単なかわりに informal な説明をしています。higher kinded polymorphism に関する formal な情報を求めている人は…ちょっと探した感じでは Qiita にはないようなので、適当にぐぐるか、References を参照してください。 TL;DR 俺はスーパー Java プログラマだぜって人は記事最下部の References にある highj を参照してください。これ読まなくていいです。Don't Read. higher kinded polymorphism とは higher kinded polymorphism をさす言葉として、他にも type constructor polymorphism とか実に様々な呼称があるの

    Java で higher kinded polymorphism を実現する - Qiita
  • エイプリルフールの種明かし

    みなさん、エイプリルフールはいかがでしたか? ネットでの1年に一度のお祭りですからね。楽しまない手はありません。 当blogでは3のエイプリルフールネタを用意しました。 *で隠されたパスワードがJavaScriptによって抜取られる * Microsoft J#に代わる新しいJava互換言語 *演算子を用いてJavaでポインタを扱う わんくま同盟ではエイプリルフールネタは先頭に*をつけるようになっています。 そのほかのエイプリルフールネタは こちらをどうぞ。 *で隠されたパスワードがJavaScriptによって抜取られる これはJavaScriptを用いたセキュリティホールっぽいネタでした。 参照している元ネタ記事は物で、JavaScriptを使うことでpasswordフィールドの値を 参照できてしまいます。のんきに「便利~」とか言っているのはいかがかと思うのですが…。 サンプルコード

    yhara
    yhara 2014/12/10
  • Java : Generator - lethevert is a programmer

    PythonのGeneratorみたいなものをJavaで作ってみようと思った。Javaには物のマルチスレッドがあるのだから、Generatorくらいは当然作れるのだけれど、いざちゃんと協調動作させようとすると上手く書けなくてあきらめる人とか多いのじゃないかとか思ったので。 実装上は2つのスレッドを協調動作させているのだけれど、使っている側からは1つのスレッドが交互に制御を移しているような感覚で使えます。 これがサンプルコード。 public class GenMain{ public static void main (String[] args) { Generator<String> g = new Generator<String>(new Call()); String s = "開始"; i = 0; do{ System.err.println(i); System.err.

    Java : Generator - lethevert is a programmer
  • JavaでContinuationモナド - kmizuの日記

    .@kmizu のScalaのサンプルコードが、まるでPerlのコードのようにイミフだ... http://d.hatena.ne.jp/kmizushima/20090925/1253890980 *P3 http://twitter.com/t_yano/statuses/4370238778 よーし。じゃあ、Javaなら大丈夫ですよね?*1というわけでJavaで書いてみた。…………非常にしんどかった。なんか当に人間型推論器になった気分。せっかく作ったので一応貼っておくけど、読む気がしないことうけあいのコードになったと思う(ライブラリ側はさほどではないけど、利用側が…)。 import java.util.*; import static java.lang.Integer.*; import static java.lang.Character.*; public class Co

    JavaでContinuationモナド - kmizuの日記
    yhara
    yhara 2009/09/26
    純粋関数型言語Java
  • Symbol - @katzchang.contexts

    puts :hoge # => hoge Java屋としては、定数として定義されたStringと等価とみてよさそう。つまり: public class Hoge { public static final String hoge = "hoge"; public static void main(String...args) { System.out.println(hoge); // => hoge } } Javaは長いってことだけはガチ。

    Symbol - @katzchang.contexts
  • 肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT

    肥え続けるTomcatと胃を痛めるトラブルハッカー:現場から学ぶWebアプリ開発のトラブルハック(8)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) メモリリークと聞いて、良いイメージを思い浮かべる開発者は少ないだろう。経験したことのある人にとっては、思い出したくない過去の記憶がよみがえるかもしれない。もしかしたら、その単語を聞くだけで胃が痛くなる人もいるかもしれない。筆者もかつてはその1人であった。 前々回の記事では、WebサーバとTomcatの間の接続において、スレッド数の不整合により発生したトラブル事例を、前回はTomcatとDBサーバの間のトラブル事例を紹介した。今回もTom

    肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT
  • Wicketはライトウェイトなフレームワークじゃない。でも気持ちがいい。 - 矢野勉のはてな日記

    Java, Wicket Wicketの紹介ページのタイトルを書く時、最初は「Java軽量フレームワーク『Wicket』の使い方」としようと思ってました。いろんなところで「Lightweight framework」と呼ばれていたから。でも実際に書いてみたらどうもしっくりこない。軽量....? なんか違う....。なのでお茶を濁して「Javaウェブフレームワーク」としたんですよ。 道具が手に合うようなしっくりさを持ったフレームワークなのに、「軽量」というとなんか違うという感覚が自分でもよく分からなかった。でも最近オライリーのOn JavaにてWicketのレビューが出てたのを読んで、やっぱりそうか、と思いました。 Wicket - (another) Java Web Framework: My First Impressions レビュー自体は比較的長めです。でも結構的を射たレビューです

    yhara
    yhara 2007/01/18
    "WicketはJavaの機能を使ってJavaプログラマにオブジェクト指向のウェブ開発環境を提供するのが目的のフレームワーク" XML使わない指向。
  • 1