タグ

javaに関するrydotのブックマーク (64)

  • 京都教育大学情報処理センター

    メンテナンス 2024年05月07日 【完了】 eduroamの証明書更新【5/7実施】 一般 2024年04月15日 【注意喚起】転送設定の間違いが非常に多く発生しています。 セキュリティ 2024年03月12日 学内eduroamネットワークの外部接続IPアドレス変更について 一般 2024年01月05日 認証ネットワークKUENET無線LAN接続に関する構成変更について 障害 2024年01月05日 【復旧済】 停電復旧後のネットワーク障害について 開館日程 2023年12月28日 年末年始のIPC閉館及びネットワーク停止について 障害 2023年12月14日 【復旧済】 学内専用の一部のサイトで証明書エラーが発生する セキュリティ 2023年12月11日 プロキシのセキュリティ強化 一般 2023年10月30日 プロキシ経由のFTPアクセス廃止について 障害 2023年09月21日

    rydot
    rydot 2019/05/31
  • [JavaSpecialists 165] - Starvation with ReadWriteLocks

  • Java8でJava8っぽいコードを書く - Qiita

    概要(お前は何を言っているんだ) コードレビューしていると、Java8のfeature(Stream APIとかOptionalとか)を使ってるんだけど、Java7以前と大差ない書き方をされているコードをよく見かける。 もっと皆にJava8っぽいコードを書いて欲しい。そうじゃないともったいない。 (*"Java8っぽい"の基準は割りと(かなり?)私見が入っている) 言葉を尽くしても伝わりづらいので、例を作ろう。 ← これ ついでに、「無理してJava8のfeature使うことで、逆に悪くなってしまっている例」も作ろう。 対象読者 Java8でコード書いてるけど、Java7以前の書き方が染み付いちゃっていてなかなか抜け出せない人 「forやnullチェックは絶対使うべきでない」という思いが強すぎて、何でもかんでもStream APIやOptional使ってる人 Notice この記事で書いて

    Java8でJava8っぽいコードを書く - Qiita
    rydot
    rydot 2017/08/30
  • もういい加減「nullチェックをしたら安全」とかわけのわからないことを言うのはやめよう - Qiita

    (僕の主観で)クソな記事をたまたま読んでしまってもにょったので愚痴。 Safe Harbor Statement 以下の事項は個人の見解であり所属する組織の公式見解ではありませんし、明日になったら違うことを思っているかもしれませんがそういう類のものです。 某所で危険と言われていたコード public void hogeMethod(Hoge hoge) { //hogeを使った処理 hoge.doSomething(); return; } 安全な理由: NullPointerExceptionが発生しない 僕がいいたかったこと それ、NPEを握りつぶしているだけですから!!!!!!! (とくにJavaの世界においては)非検査例外というのはコーディングバグを示してくれるものですから、へんなnullチェックをいれるのではなく、積極的にNPEを発生させていきましょう。 こういうわけのわからない

    もういい加減「nullチェックをしたら安全」とかわけのわからないことを言うのはやめよう - Qiita
  • Java Generics are Turing Complete, Radu Grigore

    Java Generics are Turing Complete Radu Grigore University of Kent, United Kingdom Abstract This paper describes a reduction from the halting problem of Turing machines to subtype checking in Java. It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007. It also follows that Java’s type checker can recognize any recursive language, which

  • 悩めるJava子羊たちに入門書と教科書の違いを説く

    プロローグ 矢澤: けっこうな数のJavaを集めましたねぇ。 遠藤: ここに集めたのは、書店のPOSデータ編集注※1やAmazonランキングなどで売れているように見えるタイトルです。Javaとしては、ほかにも資格Android編集注※2のもあります。 高橋: Androidは、Javaって言っちゃっていいんですかね。 鹿野: Javaの概説が章立てに含まれているAndroidもあるので、ぜんぜん問題ないと思いますよ。 高橋: いや、むしろ政治的な理由編集注※3でどうなのかなと。 一同: あー。 矢澤: この、全部、読者プレゼントにするといんじゃないかな。 高橋: たしかに、これを全部読めれば、Java、なんとかなるだろうという気がしますね。 鹿野: で、ちゃんとレポートを書いてもらって、それを改めて記事にする、と。 遠藤: 個人的に、を読まないプログラマは信用

    悩めるJava子羊たちに入門書と教科書の違いを説く
    rydot
    rydot 2016/09/18
  • JavaでMonadをはじめからていねいに :: Igreque -> Info

    JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ

  • 既に最強なIntelliJ IDEAを更にパワーアップさせられる10個のプラグイン - Qiita

    紹介するプラグインについて この投稿で紹介するプラグインは何かのツール、言語、フレームワーク、サービスなどとintegrateする類のものは含まず、それ単体で便利に感じられるであろうプラグインに絞って紹介している。 (アルファベット順) A prevent pinned tabs from closing plugin - by momomo.com 固定したタブを閉じられなくするプラグイン。いらないタブを複数閉じようとすると間違って開いておきたいタブまで閉じてしまうことがある。それを防ぐことができるようになる。 AceJump 見えている範囲でカーソルを移動させたい場所にサッと移動させられるようにするプラグイン。慣れるとめちゃくちゃ速い。設定したショートカットで機能を起動すると1文字入力を求められ、入力するとその文字がある場所に飛ぶためのショートカットが画面に表れる(画像参照、これはst

    既に最強なIntelliJ IDEAを更にパワーアップさせられる10個のプラグイン - Qiita
  • 動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD

    私はSkienaの『Algorithm Design Manual』 (訳注:『アルゴリズム設計マニュアル』 上巻 ・ 下巻 ) を読んでいました。ところでこのは素晴らしいで、連結リストと配列についてこんな比較をしていました(chapter 3.1.3)。 連結リストが静的配列に勝る相対的な長所には以下のものがあります。: • メモリが当にいっぱいにならない限り、連結構造にオーバーフローが生じない。 • 連続的な(配列)リストに比べて、挿入と削除が単純である。 • 大きなレコードを扱う場合、要素自体を動かすよりもポインタを動かすほうが容易かつ高速である。 一方で、配列の相対的な長所には以下のものがあります。 • 連結構造には、ポインタのフィールドを格納するための余計な領域が必要となる。 • 連結リストでは、要素に対する効率的なランダムアクセスができない。 • 配列は、ランダムなポイン

    動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD
    rydot
    rydot 2016/08/08
  • 最近はJavaScriptにJavaが書けるらしい(JavaPoly.js) - Qiita

    JavaScriptJavaで書けてjarファイルのライブラリも読み込める、JavaPoly.jsというのがあったので、試してみました。 基公式の写経です。 公式サイト 試してみる とりあえず一旦公式に乗っかってHelloWorldしてみます。 htmlファイルはこんな感じになります。 <!-- Include the Polyfill --> <script src="https://www.javapoly.com/javapoly.js"></script> <!-- Write your Java code --> <script type="text/java"> package com.demo; import com.javapoly.dom.Window; public class HelloWorld { public static void sayHello() {

    最近はJavaScriptにJavaが書けるらしい(JavaPoly.js) - Qiita
  • 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
  • 「staticおじさん」はなぜ自信満々なのか

    「staticおじさん」という言葉をご存じでしょうか。「static」というのは、Javaのstaticメソッドのことです。Javaでメソッドを呼び出すときにはクラスからインスタンスを生成してインスタンスのメソッドを呼び出すのが普通です。一方、staticメソッドはインスタンスを生成しなくてもクラスから直接呼び出せます。このため、オブジェクト指向プログラミングを理解していない古いタイプのプログラマは、Javaでもstaticメソッドを多用します。これを揶揄して「staticおじさん」と呼ぶのです。 staticおじさんについては、わかりやすく解説したブログエントリが有名です(参考リンク)。実際のシステム開発の現場でstaticおじさんに苦しめられている様子をまとめたページもあります(参考リンク)。 なお、Javaのstaticメソッドを多用する人に限らず、古い感覚にとらわれて周囲に迷惑をま

    「staticおじさん」はなぜ自信満々なのか
  • String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiita

    あるSlackでの会話 何がおきているのか Android 端末でプラットフォームの API バージョンを出すのに、ちょっと色気を出して、 なんて書いたりします。で、だいたい android-22 みたいな感じになるんですけど、でもやっぱり世界ってのは広くて、ふと見たらなんか android-١٦ とか android-၂၂ とか不思議なやつがいるんですよ。 何それ読めない。 もしかして SDK_INT が変な端末がいるのかな??と一瞬考えたんですが、 Build.VERSION.SDK_INT は名前通りプリミティブな public static final int なので疑いようがなかった。 AndroidじゃなくてJavaの仕様 でよくよく調べると、 java.util.Formatter のドキュメントに Number Localization Algorithm なんてものが書か

    String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiita
  • Java の語彙で Maybe を説明してみる - ぐるぐる~

    java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;

    Java の語彙で Maybe を説明してみる - ぐるぐる~
  • 今までに経験した中で最悪の開発環境について書く

    なんとなく吐きだしてみる。老害の昔語りなので興味ない人はスルー推奨。 時は2000年代初頭、俺は最初に就職した独立系SIerから4次請けの派遣として某銀行の営業店システム開発に参加していた。 新卒で入社して、二つ目のプロジェクトだった。当時は最先端であったJavaでのプロジェクトということで、ずいぶんと喜んだことは記憶している。 1フロアが丸ごとプロジェクトルームとなっており、プロジェクト統括の事業部長が常に怒号をあげながらフロアを徘徊するなかで、15インチCRTディスプレイ(当然液晶なんかじゃない)がようやく置ける狭い机とパイプ椅子で、右も左もわからないまま、Excelで書かれた仕様書と向き合い、秀丸エディタ(当時はEclipseがまだ生まれていなかった)でジャバを書いていた。 デスマであったかというと、今思うとそこまでデスってはいなかったように思う。頻繁にリスケが行われていたのでプロジ

    今までに経験した中で最悪の開発環境について書く
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
  • iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena

    ちょっと気になったので、簡単にベンチマークしてみました。 最初は、ラムダ呼び出しが入る分forEachは遅いんじゃないかと思っていたら、倍の速さに。 もちろん、いろんな条件で変わるんだろうけど、ここまで差が出ることがあるのは驚き。 あと、Collectors.summingIntのような基型に対するCollectorを使うよりは、intStreamに変換してからsumなど専用メソッドを使うほうが圧倒的に速いことも確認できた。 とりあえず、0から10万件のListを用意。 array = IntStream.range(0, 100_000).boxed().collect(Collectors.toList()); それからベンチマーク用のメソッドを用意。 public static void bench(String name, Supplier<Integer> proc){ ben

    iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena
    rydot
    rydot 2014/04/07
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • [Java] 専用機-ウンコード・マニア

    山田さん(仮名)専用機らしいことがクラス名からも推察できる。 再発明された車輪が大盛りになっている。 すでに辞めた人の似たような専用機もついでに発掘される。 /** * My Army Knife * 20XX/XX/XX * @author X. Yamada(仮) */ public class YamadaUtil { public static double max (double a, double b) { … } public static String[] yamadaSplit (String str, String delimiter, boolean isRegExp, boolean escape, boolean ignoreXxx, boolean ignoreYyy, boolean isDebug) { … //TODO … } public static

    rydot
    rydot 2014/01/05
  • Java SE 8 lambdaで変わる プログラミングスタイル

    20110730_Redmineでのタスク管理を考える勉強会@大阪 第1回 (2011/07/30) - RxTstudy https://sites.google.com/site/rxtstudy/home/20110730 【公開】RedmineのFAQとアンチパターン集 #Rxtstudy: プログラマの思索 http://forza.cocolog-nifty.com/blog/2011/07/redminefaq-rxts.html RxTstudy Redmineでのタスク管理を考える勉強会@大阪 - Togetterまとめ http://togetter.com/li/168362

    Java SE 8 lambdaで変わる プログラミングスタイル