Testing your Regular Expression Pattern
卒論の発表原稿を書いている途中に突然ですがJavaにおいてListの要素を削除するベストな方法を検証してみたくなったためやってみました。 決して現実逃避ではありません。 ちなみにJavaのバージョンは1.6.0_23です。 ここではとりあえずArrayListを例にあげてみましょう ArrayListの要素を削除する方法としては forループで該当する値を削除する list.remove(Object o)メソッドを使う Iteratorを使う が挙げられます。 ※ここではあくまで削除する方法を列挙しているだけです。 とりあえず今回は ArrayList<Integer> list = new ArrayList<Integer>(); list.add(0); list.add(1); list.add(1); list.add(2); list.add(1); list.add(2);
はじめに Java 8 を導入し始めて既に半年以上になるけど、未だに Java 8 の Stream API で複雑な処理をしようとすると頭を抱えてしまうので、その時々の 自分なりの ベストプラクティスをメモしておくことにします。 今回のお題 Stream API に慣れてくると、データクラスのオブジェクトからなる List オブジェクトに対して、データクラスのある属性をグルーピングのキーに、もう一つ別の属性をグルーピングされた結果を保持する List の構成要素として持つような Map オブジェクトを Stream API で華麗に表現したくなるのが人間ってもんです。 今回はこの問題について、 Collectors.toMap() を使った方法と Collectors.groupingBy() と Collectors.mapping() を組み合わせて使った方法で解消してみることにしま
Javaで文字列連結をする場合に「String同士の足し算は効率が悪いのでやめましょう!」というよくある話とともに名前が挙がるStringBufferクラスとStringBuilderクラス。 最近だと「StringBufferクラスよりStringBuilderクラスの方が効率的!」というのも同じくらいよく聞くようになったが、そのたびに「ただしStringBuilderはスレッドセーフでないのでマルチスレッドでは使わないこと」と但し書きのような文言が添えられる。 この注意書きは果たして何を意味しているのだろうか、具体的にどういう場合に問題が起こるのかを調べてみた。StringBufferとStringBuilderの連結のパフォーマンス比較の記事はたくさんあるが、マルチスレッドでの使い分けおよび実行結果の違いについてはあまり見つけられなかったので、今回簡単なマルチスレッドなコードでStr
渡辺です。 現在開発しているシステムで帳票出力を実装したいなと思いまして、Javaの帳票系ライブラリを調べてみました。ここ5-6年はエンプラ系のシステムからは比較的に遠い場所にいたのですが、フリーで使えるライブラリとなるとPOIでExcel帳票にするか、JasperReportsを使うかの2択であることは変わっていないようです。有償のツールを見ると、帳票自体の機能よりもデータ分析などに価値付けがシフトしているようですね。 現在担当しているシステムは有償のライブラリを使うほど帳票が重要なシステムではありません。JasperReportsは7-8年ほど前に業務で使ったことがあり、現在もメンテナンスされているようだったので、JasperReportsを試してみました。 JasperReportsとは? JasperReportsは、Jaspersoft社が開発している帳票用のライブラリです。正確
Play Framework 2.3 For Java 入門記事一覧 要約 簡単にまとめるとJDKとactivatorがあればPlay Frameworkは起動する。activatorがScala、sbt、ivy2とか必要なものは落としてきてくれるから。 IDEは色々詰まったScala IDE for eclipseというのがあって、プロジェクトの読み込みも簡単。ただしアプリケーションの実行はコマンドラインからやる(Eclipseからやる方法もあるだろうけど調べてない)。 1. コマンドラインからactivatorでアプリケーションの作成と実行 まずは、typesafe activatorおとしてきて、activatorへPATHを通す。このへんは、公式チュートリアルに書いてある。 activator uiはWebブラウザがコンソール出てきてやるやつなので、コマンドラインからやりたい。 新
日本Javaユーザーグループは2014年5月18日、「JJUG Cross Community Conference 2014 Spring」を開催した。「JJUG Cross Community Conference」(以下、JJUG CCC)は毎年春と秋に開催されるカンファレンス。初心者向けからエキスパート向けまで、Java/JVMに少しでも関連すればいいという広いテーマでさまざまな講演が行われている。 今年は4トラック同時進行、合計25ものセッション、ハンズオンセミナーという規模で大いににぎわった。 そして最新仕様であるJava EE 7に準拠しているのは2014年5月現在「GlassFish」「WildFly」のみで、主流は多種多様なアプリケーションサーバーが対応しているJava EE 6とのことだ(楽天はGlassFishを活用していることでも有名)。 エンタープライズ分野でJa
概要 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
確実に一定時間スリープする - terazzoの日記ではThreadの割り込みがあっても確実に一定時間の停止を試みているが、そもそもこのようなコードは書いてはいけない。 Thread.sleep()は一定時間止まるための便利メソッドとしてよく知られているが、そのときに発生するInterruptedExceptionについての理解は広まっていない気がする。割り込みとはなんなのか。どういう時に使うのか。 目覚まし時計 お昼休みに昼寝をしようとする。寝過ごすといけないので15分後にアラームを鳴らす設定をした。 さて、ひと眠りするか、というところに友人がやってきた。昼寝はやめて売店に行くことにした。果たして売店でアラームが鳴り始めた。 さて、このとき、アラームは15分間の待機を命じられたわけだけども、お昼寝がキャンセルされたことで、もう待機しなくてよくなってしまった。むしろ、さっさと待機をやめてく
11月11日に「Javaエンジニア養成読本」が出版されます。 この本は、Javaの最新動向を踏まえつつ、開発現場で役に立つような実践的内容を含むことを目標に企画されました。幅広い内容を6名の著者による共著で執筆したものです。 新人エンジニアの方や、最新のJavaを採用検討している方、開発現場へツールの導入検討される方など、様々な方々に読んで頂ければ幸いです。 私はJava EEのパートを担当させて頂きました。今年の7月くらいからブログが全く書けなかったのは、こちらに集中していたためでした(^^; Javaエンジニア養成読本 [現場で役立つ最新知識、満載!] (Software Design plus) 執筆している当時、ちょうど仕事で新人さん(プログラミング経験はない方)のOJT担当をしていたのですが「この書籍を使えば幅広くまとまってて楽に教えられるのに…」と思っていました。そんな使い方も
なんとなくネットサーフィン (死語) してたら次の記事を見つけました。 確かに Java のファイル読み込みはいろいろややこしいですよね。 今時なJavaでテキストファイルを読みこむ方法 - /dev/null 「Java ファイル 読み込み」 とかで検索しても FileInputStream を InputStreamReader でラップしてさらに BufferedReader でラップする例が出てたりして、Java を使い始めたころの私も混乱させられました。 参考: テキストファイルを読む - テキストファイルの入出力 - Java入門 Java ファイル読み込み(文字) とほほのJava入門 昔はこういった方法が当たり前でしたが、今ではもっと簡単になっています *1。 Java SE 7 で導入された Files や Path といった便利なクラスを使うことで、ファイル読み込みの処
HTML Parser is a Java library used to parse HTML in either a linear or nested fashion. Primarily used for transformation or extraction, it features filters, visitors, custom tags and easy to use JavaBeans. It is a fast, robust and well tested package. Welcome to the homepage of HTMLParser - a super-fast real-time parser for real-world HTML. What has attracted most developers to HTMLParser has been
LL から Java に移行した人がはまりがちなこと こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e
JDKのダウンロードは、普段ここから行いますが、ダウンロードにはOracleのLicenceの同意にチェックする必要があります。 同意はしているのですが、ansibleやchefなどで同意チェックを画面からせずに直接wgetしたい時の方法です。 仕組みは単純でAcceptしたというCookieがリクエストに含まれていれば同意したとみなされ、URL直指定でもダウンロードできます。 以下のコマンドはそのCookieを含むリクエストを送りますので、利用する場合はOracleのLicenseに同意した上で利用して下さい。 下記にないURLは、サイト上で"Accept"した後、ダウンロードしたいファイルを右クリックして確認できます。 コピペして実行出来るものを置いておきます。 (※ダウンロードは自己責任でお願いします) (※2015/11/2変更:最新バージョンに変更) ※注意: 古いバージョンはア
※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterで Javaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
Javaの開発環境といえば、Eclipseが定番です。コードアシスト、コンパイル、テスト、デバッグからソースコード管理まで開発に必要な基本的な機能を網羅しつつ、オープンソースライセンスの下、無料で利用できたことがJava開発環境のデファクトスタンダードに押し上げたといえるでしょう。しかしながら、Eclipse単独では基本的な機能しか提供されておらず、サーバサイドのアプリケーションを開発するには機能不足です。そこでプラグインの出番となります。Eclipseは柔軟なプラグインアーキテクチャにより設計されており、Eclipseに足りない機能を補うために数多くのプラグインが提供されています。プラグインを利用することにより、HTMLやJSPの編集、EJBの開発、データベースの閲覧、編集、O/Rマッピングツールのサポート、アプリケーションサーバの起動、デバッグ等、さまざまな機能を付加することができます
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く