or1ko's diary

日々を書きます

Java

クラス名とメソッド名を出力するカスタムDoclet

クラス名やそのメソッド一覧が取得したくてJavadocのカスタムDocletを思い出して、使ってみたが、以外と目的にたどり着けなかったため、記録を残す。JDK 9 からカスタムDocletの作成方法が変更されたようだ。 Using the new Doclet API SampleDoclet.java im…

Java Se 8 実践プログラミングを読んで記憶に残った3点

Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング作者: Cay S. Horstmann,柴田芳樹出版社/メーカー: インプレス発売日: 2014/09/22メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る1. object::staticMethodでstaticメ…

ユーザ認証があるプロキシのHTTPクライアント

Javaでプロキシを使うHTTPクライアントについて下記が参考になる。 JavaのHTTP通信でプロキシを使うユーザの認証がプロキシにある場合は、下記の通り。 java.net.Proxyではできない模様。調べたが見つからなかった。 システムプロパティで指定はできる。java…

HTTP クライアント GETの例

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; public class SampleGetHttpClient { public static…

キーと値の設定(ファイル)の読み書き

キーと値だけの設定(ファイル)であれば、 java.uti.Propertiesクラスで簡単に作成できる。 XMLでも入出力できるようになっている。 日本語を含む場合、XMLで出力しておけば、エディタで開いても値がわかる。 import java.io.IOException; import java.util.P…

HTTPクライアント POSTの例

http://localhost:8080にPOSTでアクセスして、 レスポンスをUTF-8でエンコーディングしてコンソールに表示する。 public class SamplePostHttpClient { public static void main(String[] args) throws IOException { String url = "http://localhost:8080/"…

HTTP サーバのGETの例

単純にHello Worldを表示する例。 起動し、http://localhost:8080/にアクセスすると表示される。 import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.s…

FileSystemView.getFileSystemView().getSystemIconの出力画像

下記のURLでサムネイルの取得方法を知ったので、実際にどんな画像がでてくるのか試してみた。 実際とれたのは、サムネイルというよりはアイコンだった。http://stackoverflow.com/questions/1498506/java-howto-get-the-thumbnail-from-a-file 入力に使った…

つかれて...

気づいたら、文字列を==演算子で比較してた。流石に、その時は帰ろうかと思った。

メソッドにstaticをつけるか否か

僕は積極的につける。staticがついてると、若干安心できるから。少なくとも、インスタンスのフィールド変数に変更が加えられないことがわかる。non-staticなメソッドは、クラス変数にも、インスタンス変数にもアクセスできる。なんで、インスタンス変数を使…

メソッドの引数にfinalは必要なのか

ref:変更しない変数にfinalを付けるべきですか? − Java Solution − @IT 以前、CheckStyleにこった時に、やたらメソッドの引数にfinalをつけるようにしたことがある。そのときは、finalにコンパイル的な効力はないことは知っていたけれど、メソッドの利用者…

Yahoo知恵袋を見ていると

Javaを勉強しようとしたのだかしらんけれど,JDKだかJREだかをインストールしたら,ブラウザでJava Appletが動かなった人が結構いる. システム関係の質問は基本的に難しいし,さらに,こういう人の質問はだいたいが情報不足(というか,問題を解くために必要…

OpenJDK6b11-9の日本語フォント

ref:でびあんでじゃば - PukiWiki OpenJDK6b11-9のディフォルトフォントがIPA Monaに指定されているので、VLゴシックに変更した $ cd /usr/lib/jvm/java-6-openjdk/jre/lib $ sed 's/ipamona\-uigothic/vlgothic\-gothic/g;s/ipamona\/ipagui\-mona\.ttf/vlg…

エンクロージングクラス

ref:内部クラスのインスタンス生成 - ori’s diary ref:内部クラスのインスタンス生成は誰がインスタンス生成したかによって結果が異なる - Nazo-log エンクロージングクラスという名前があるとは知りませんでした。 エンクロージングクラスを検索してみたと…

内部クラスのインスタンス生成

今までインスタンスに対して、newを呼び出せるとは知らなかった。 なにか、効果的に使う方法はあるのかな? class Test { static int count = 0; public static void main(String[] args) { new Object(){ class InnerClass{ public InnerClass() {count++;} …

libusbのjavaラッパに関するメモ

ref:help:topic:ch.ntb.infoportal:tools.html [Infoportal] を参考にやった。1.共有ライブラリの作成 windows版はsourceforgeに存在するようだけれど、linux版は見当たらなかったので自分で作成。 $ svn co https://libusbjava.svn.sourceforge.net/svnroot…

ArrayListとLinkedListのメモリ効率

ArrayList と LinkedList - odz bufferLinkedListのほうが使用しない領域が発生しないので、メモリ効率がいいのだと思っていました。でも、上の結果みると違いますね。 リンクリストはオブジェクトのポインタを格納する領域と次のリストを格納する領域の2つ…

ローカル変数を抽象型で宣言する利点

http://cappuccino.jp/keisuken/logbook/20080308.html#p02 http://d.hatena.ne.jp/kwatch/20080309/1205022466 http://d.hatena.ne.jp/odz/20080309/1205034733微妙なことかもしれませんが、ローカル変数を抽象型で宣言する利点があります。 例えば、 List<String> </string>…

BufferedImageを別のBufferedImageに拡大縮小する方法

(# 一部のIndexColorModelタイプに対応できませんでした.) 以下のメソッドを使う. http://ja.wikipedia.org/wiki/Portable_Network_Graphics http://ja.wikipedia.org/wiki/JPEG http://ja.wikipedia.org/wiki/Graphics_Interchange_Format Java 6.0のImag…

クイックソートは安定ソートではない

クイックソートは安定ソートではないです.すぐ気付いて良かった.危なかった.運がイイ!というかjava.util.Arrays#sortって全部クイックソートだと覚えていたのだけど,一部マージソードで安定ソートなんすね. プリミティブタイプのソートがクイックソート…

1255 Floors

1255 -- Floors アルゴリズムよりもComparatorの定義の仕方に議論が集中した。フロアを2つに分けられるかどうかの判定方法が人それぞれだったけれど、基本的には同じアルゴリズムだった。 僕が書いたコードは下のやつ。 import java.util.Arrays; import jav…

2958 Pizza deliveryの続き

2958 Pizza delivery - ori’s diaryの続き 上の記事の最後で,局所解が明らかにあると書いたのだけども,これは間違いだった.いつもの会で,先生が説明してくれたので,それを自分なりに説明してみる.まず,getCostメソッドを式として書くと以下のようにな…

2958 Pizza delivery

2958 -- Pizza deliveryすこし早いけれど,今週のPKU. 今回のプログラムは胡散臭いので,日記に書こうか悩みました. import java.util.Arrays; import java.util.Scanner; public class Main { public static int getCost(int x, int y, int[][] costs, in…

3298 Antimonotonicity

ちょっと早いですが今週のPKUです。 import java.util.*; public class Main{ static{ Scanner s=new Scanner(System.in); s.next(); for(int n,x,y,c;(n=s.nextInt())>0;System.out.println(c)) for(x=c=1;n-->0;x=y) c=c%2!=1^x>(y=s.nextInt())?c+1:c; } …

2291 Rotten Ropes

Javaのコード(236B) 1の補数を利用したところがおきにいり。 import java.util.*; class Main{ static{ Scanner s=new Scanner(System.in); for(int t=s.nextInt(),n,k,c,a[];t-->0;System.out.println(n)){ for(a=new int[k=n=s.nextInt()];n-->0;) a[n]=-s…

2291 Rotten Ropes

Acceptした後にプログラムがバグっていることに気付き、焦った。どうも、テスト入力にある規則があり、問題なく通ってしまったようだ。チートコード書いてしまったと、なんとか別の方法で記録を更新しないとまずいなぁと30分くらいがんばったすえやっとのこ…

Scannerクラスの読み込み

PKU2402の問題でSなコードを書くために以下のようなコードをかいた。 for(;;){ long l=new Scanner(System.in).nextLong(); // 以下処理 }ローカルで実行すると、問題なく動くのだけれども、PKUに送るとRuntime Errorになる。 ループ文の外で一度だけScanner…

interfaceのメソッドって

ほんとにどうでもいいことなんですけど、Javaのinterfaceのメソッドって、全部、public abstractですよね。publicとつけられると、むずむずする。

Comparatorを実装するのは面倒くさい

たいして意味のないクラスが1つ増えるのも面倒だし、 そのクラスをどこに置くのか考えるのも面倒。 Java 7 に期待しよう。

可変長引数の配列の展開は微妙

一見、以下の3つのコードは同じ結果を返しそうだけれど、1つだけ異なる。 Arrays.asList(new int[] {3,4,5}).indexOf(4);Arrays.asList(new Integer[] {3,4,5}).indexOf(4);Arrays.asList(3,4,5).indexOf(4);