Profile cover photo
Profile photo
Hiroki Ohtani
583 followers
583 followers
About
Posts

Post has attachment
Javaとか
原稿の残りの部分。 コレクションAPI Iterableインタフェースを実装してみよう 前節でIterableインタフェースを実装したオブジェクトであれば拡張forループで回すことができると書きました。つまり、自作のクラスでもIterableインタフェースを実装していれば、拡張forループに対応できます。 例えば、リストの要素をループで回すとき、一緒にインデックス番号を取得して処理したいケースがあります。インデックスアクセスをする場合は、次のように記述します。 List list = Arrays.asLis...

Post has attachment
保土ヶ谷のジムとか
ほっといたら、だんだん書かなくなるので… で、平塚から横浜の保土ヶ谷に引っ越して数カ月がたちました。平塚にいたころは、セントラルのフィットネスクラブか市のトレーニングルームに行っていました。まあ、市のトレーニングルームはちょっと遠かったので、セントラルが休みの時とか、数えるほどしか行ってませんが… で、保土ヶ谷に引っ越して、近くにジムはいくつかあります。健康保険の福利厚生で利用できるのは天王町のコナミです。でも、ここ、狭い!まあ、狭いのはいいです。マシンが古い。使えなくもないのですが、狭い上にボロっちいマシン...

Post has attachment
拡張forループでループの回数も同時に欲しいよね、でこんなふうに書いた
昨日のアリエルであったJava8の勉強会で、iteratorをそのままstreamに流せないと初めて知って、いささかめんどくさい感があったりもしますが、世の中、そんなものです。あったかくなってきたとか、朝が夜ではなく朝になってきたとか、桜が咲いたとか、浮かれている場合ではありません。 前回、iterator自分で書いてみない?ってことで、だれも書いてくれなくってとても残念です。なので、自分で書いてみました。 import java.util.*; public class CollectionUtil {  ...

Post has attachment
拡張forループでループの回数も同時に欲しいよね、でこんなふうに書いた
昨日のアリエルであったJava8の勉強会で、iteratorをそのままstreamに流せないと初めて知って、いささかめんどくさい感があったりもしますが、世の中、そんなものです。あったかくなってきたとか、朝が夜ではなく朝になってきたとか、桜が咲いたとか、浮かれている場合ではありません。 前回、iterator自分で書いてみない?ってことで、だれも書いてくれなくってとても残念です。なので、自分で書いてみました。 import java.util.*; public class CollectionUtil {  ...

Post has attachment
DaoでのResultSetへのアクセスはenumでいいよね
Java8でラムダが使えれば…。 で、DaoでResultSetへのアクセスでインデックスでアクセスする場合、 int index=0; dto.setX(resultSet.getInt(++index); dto.setY(resultSet.getInt(++index); dto.setZ(resultSet.getInt(++index); ってアクセスさせるとメンテナンス性が落ちるよね、って話しでした。個人的にはカラムでのアクセスで問題ないと思っていますが、インデックスでのアクセスも内田さんが書い...

Post has attachment
拡張forループでループの回数も同時に欲しいよね。
ちょっとだけ、拡張forで質問があったので、追加です。 前回の記事の中で次のように書いています。 https://ckip.worksap.co.jp/aqua/a46fa1c4-701d-4279-af87-3ba10eedf94b/view?exa=blog > 拡張forループはいいのですが、今がコレクションの何番目か、ってのが取れたらもっと良かったのに…。 これは言語仕様としてはインデックスの位置が取れないと言うだけです。ちょっと別の言語で、goの場合は次のように書けてインデックスも同時に取得できます...

Post has attachment
Java8のString::join
実際のコードを書きたかったのですが、すぐに思い出せないので、わずかながらの記憶で書きます。java8を使わない人も楽しめるはず。

SQL文を組み立てるときに、時々こんな感じのコードを見かけます。

コード1 ::
StringBuilder sb = new StringBuilder()
boolean isFirst = true;
for (int i=0; i<10; i++) {
if (!isFirst) {
sb.append(",");
}
sb.ap...

Post has attachment
JITはすごいんだよ、とか
前回のリフレクションのベンチマークはJITの影響を受けています。Javaはコンパイル時だけじゃなくって実行時にももっと早くコードを実行できないか考えてくれるすごい子なのです。またはJITがないと使い物にならない速度でしか動かないかもしれません。普通に使用する分には可愛い子なのですが、ベンチマークするにはJITは厄介な子です。実際のソフトウエアとベンチマークでは最適化のされ方が異なるので、速度がかなり違ってきます。 で、前回の結果をJITのあるなしで計測すると次のようになります。 JITあり ======= $...

Post has attachment
あれからJavaのリフレクションのスピードはどうなったのか?
僕が一番最近Javaのリフレクションのパフォーマンスを計測したのは、今のアリエルの開発を始めたぐらいで、ライブラリの選定をしている時でした。jdkのバージョンも覚えていません。それより前はいつやったのか覚えていません。 その時の結果の詳細は残っていませんが、リフレクションは通常のアクセスより10倍以上遅い、って印象だけが残っています。印象でものを語るのは良くないし、バージョンが上がるに連れて改善されているのかもしれないので、もう一度計測してみました。 以前は自分でコードを書いていたのですが、今回はサボって h...

Post has attachment
javaのiteratorとかiterable
※ とあるところに書いたものの転載です。 ※ Java8の話はまた、あとで こんなコードよく書くよね。 BufferedReader reader = new BufferedReader(new FileReader("myfile.txt")); String line = null; while ((line = reader.readLine()) != null) {      System.out.println(line); } まあ、でも、ループの条件式とのとことか、微妙でわかりにくいし、変数...
Wait while more posts are being loaded