タグ

Javaに関するtyamamotoのブックマーク (135)

  • Javaの標準機能だけで実現する帳票印刷の基本

    Javaで好みの用紙に自由に文字や線を印刷したいと思ったことはありませんか。Java SEの機能だけを使った帳票印刷の方法を解説します。筆者は教員として学校の成績一覧表、通知表、宛名印刷などのプログラムを書いてきました。もちろん罫線を含めて印刷できますが、すでに印刷された罫線に合わせて文字を入れることもできます。データの量に合わせて表の行数を変えたり、行の高さを変えることもできます。文字列の均等割付や右寄せ、枠に入り切らない時のフォントのサイズ調整や自動改行をさせることもできます。請求書や伝票なども思い通りにレイアウトでき、後の仕様変更にもすぐに対応できます。 はじめに やっていることは極めて単純で印字位置をmmで指示して文字列を描き、線を引くだけです。複雑なレイアウトでも実現できるという見通しを持つことができます。 最近はライブラリやツールが出てきているようですが、筆者はよく知りません。

    Javaの標準機能だけで実現する帳票印刷の基本
  • 「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに/「Java 8」の無償アップデートは新ライセンス下で少なくとも2020年終わりまで継続

    「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに/「Java 8」の無償アップデートは新ライセンス下で少なくとも2020年終わりまで継続
  • staticおじさんの逆襲 - Qiita

    実はオブジェクト指向ってしっくりこないんです! 私はJavaでキャリアを始めたので、当然、オブジェクト指向を前提としてプログラミングを学んでいきました。オブジェクト指向の概念を聞いたとき、なるほどこれはよくできているなと思ったのを覚えています。オブジェクト指向では、現実世界の「もの」をそのままオブジェクトに表現します。なるほど、合理的でプログラミングが簡単になるように感じます。ちょうど現実のものを操作するようにプログラミングができるのですね。 実際にオブジェクト指向でプログラムを書こうとして分かったのは、私が作っているのはコンピューターのコードであって、現実のものではなかったということです。ArrayListって現実の何に対応するんでしょうか? 棚? 「プログラミングはデータの入出力と、その変形のことだ」というデータ指向プログラミングの考えを知ったことが、決定的にオブジェクト指向への興味

    staticおじさんの逆襲 - Qiita
  • 日本オラクルが今後のJavaのリリースモデルと公式バイナリについてあらためてJava Day Tokyoで説明。オラクルによる公式バイナリの無償提供はOpenJDKベース

    オラクルが今後のJavaのリリースモデルと公式バイナリについてあらためてJava Day Tokyoで説明。オラクルによる公式バイナリの無償提供はOpenJDKベース 日オラクルは5月18日に都内でイベント「Java Day Tokyo 2018」を開催。午後に行われたセッション「Java SE の新しいリリースモデル」で、あらためて今後のJavaのリリースモデルと配布について説明を行いました。 説明の基的な内容は、以前の記事「来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり) - Publickey」と変わっていません。 記事はセッションの内容を基に、現時点でのステータスをあらためて確認するものです。 Javaは6カ月ごとのタイムベースのリリースへ

    日本オラクルが今後のJavaのリリースモデルと公式バイナリについてあらためてJava Day Tokyoで説明。オラクルによる公式バイナリの無償提供はOpenJDKベース
  • JavaにC#のLINQを移植してみた - jLinqer - Qiita

    JavaでLINQが使いたい Javaで使えるLINQライブラリを作成しました。C#のLINQなら流暢に表現できるのに,Java8のStreamでは上手く表現できない悩みをラップします。 jLinqerはJavaでLINQ (Language INtegrated Query: 統合言語クエリ) が使えるライブラリです。C#のLINQに存在してJava8のStreamに不足している機能(selectMany,Union, Intersect, Except等)も追加しています。 使用方法 Gradleで使用する場合は,以下を登録してください。

    JavaにC#のLINQを移植してみた - jLinqer - Qiita
  • クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)

    2015/04/11に開催されたJJUG CCC 2015 SpringのタイムテーブルAB4にて発表した「クリスマスを支える俺たちとJava」の資料です。 --- AB-4 クリスマスを支える俺たちとJava 阪田 浩一 (フリュー株式会社/関西Javaエンジニアの会) プリントシール機が、話題になった10年以上前のころと変わらず若い女性に利用されていることをご存知でしょうか? 私が所属するフリュー株式会社は、プリントシール機(プリ機)を出している会社です。そしてWebにてプリ機と連動して画像を取得するサービスを提供しています。実はこのサービス、会員数が1000万人を超えており、女性で特定の年齢層であれば90%以上の方が会員となっています。 JavaRDBMS、分散ファイルシステムMogileFSにて構築したこの少し古いWebアプリケーションは、当初ここまでの規模になるとは想定していま

    クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
  • Androidアプリをリバースエンジニアリングする方法

    結構前の記事でapkファイルを解凍して、中身のAndroidManifest.xmlをデコンパイルする方法を調べてみたが、前回の方法では何が書かれているのかを知ることはできても、元のXMLファイルを復元することはできなかった。 今回は、いくつかのツールを利用することでAndroidManifest.xmlに限らず、各種のバイナリ形式となっているXMLファイルを復元したり、dex形式になっているJavaのバイナリコードをJavaソースコードへ復元する方法をまとめる。 まずは解凍 対象のAPKファイルをzipファイルとして解凍し、下記のファイルおよびディレクトリを得る。 META-INF res AndroidManifest.xml classes.dex resources.arsc バイナリXMLをテキストXMLへコンバート AndroidManifest.xmlや、res/layout

    Androidアプリをリバースエンジニアリングする方法
  • Androidアプリをリバースエンジニアリングしてみる | 女プログラマってどうよ?

    目的 事の発端は、新しくお下がりされた Android 端末である。 標準音楽プレイヤーであるところのWALKMAN様が、私には激しく使いづらい。 前の端末に入っていた標準プレイヤーもイマイチ残念な子だったが、 そっちのほうがまだ良かった。 私が満足できるアプリも(無料では)存在しないようだ。 ならば自分で作るしかない。 しかしちゃんとした Android アプリは作ったことがない。 サンプルだのプロトタイプだのばかりである。 一から作るのは敷居が高い。 そうだ、前の端末の標準プレイヤーの作りを参考にさせてもらおう! 作業環境は windows7。 前の Android 端末はナイショ(使用規約的な意味で)。 準備 参考にしたページは以下。 Androidアプリケーションのリバースエンジニアリング | JUMPERZ.NET Blog ・参考にしたいアプリを前の端末から持ってくる /sys

    Androidアプリをリバースエンジニアリングしてみる | 女プログラマってどうよ?
  • Androidアプリを逆コンパイル - Qiita

    逆コンパイルしての解析が仕事です。 セキュリティ関連ではなく、悪の領域です。 Androidのapkを逆コンパイルする手順を超軽く紹介します。 1.apkをPCにコピー マニフェストにてバックアップ可なら普通にバックアップできますが、 そうではないならルート化が必要です。 2.apkをzipにして展開 おなじみ、apkの正体はzipファイルです。 拡張子を変更して展開して下さい。 この段階でアセットなどは普通に覗くことができます。 画像データ等は普通に存在しますが、res.values.stringsなどは普通には覗けません。 3.プログラムデータをJavaプログラムデータに変換 apkではJavaプログラム体であるjarは classes.dex です。 これをjarに変換するには dex2jar を使用します。 dex2jar.sh ./classes.dex 4.jarを逆コンパイ

    Androidアプリを逆コンパイル - Qiita
  • Androidリバースエンジニアリング(apkからjavaソースコードとasset取り出し) - Qiita

    Help us understand the problem. What are the problem?

    Androidリバースエンジニアリング(apkからjavaソースコードとasset取り出し) - Qiita
  • SQLiteの書き込み速度をアップさせる (System.Data.SQLite, SyncMode, JournalMode, PRAGMA) - いろいろ備忘録日記

    忘れないようメモメモ。 SQLiteさんは、そもそも速度が速いのですが書き込み速度をさらにアップさせたい時があります。 (データがもの凄い速さで流れてきて、それを出来るだけ遅延なく書き込みしたいときとか) 書き込み速度をアップさせるのに、すぐ適用できるのがPRAGMAを設定することです。 以下のPRAGMAを設定するとグッと速度が変わります。 SyncMode JournalMode デフォルトは、System.Data.SQLiteの場合 SyncMode=Normal JournalMode=Default です。これを SyncMode=Off JournalMode=Memory にすると、爆速になります。または SyncMode=Off JournalMode=Wal にしても同じくらい速くなります。SyncModeはNormalのままがいい場合は SyncMode=Normal

    SQLiteの書き込み速度をアップさせる (System.Data.SQLite, SyncMode, JournalMode, PRAGMA) - いろいろ備忘録日記
  • スマホアプリに必須なデータ永続化のためのDBテスト

    Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるテストのノウハウを、実際のテストコード例とともに紹介していきます スマホアプリにデータ永続化が欠かせない理由 連載「Androidアプリ開発テスト入門」では、Androidアプリを開発している方のためにテストの基的なノウハウを解説しています。第4回では、データベース(以下、DB)のテストについて解説します。 第2回の「Androidでビジネスロジックのテストを自動化するには」でも触れたように、DBのテストはビジネスロジックのテストの一部に含まれます。 これまでの連載でお伝えしてきた内容では、外部通信のやりとりは発生しませんでしたが、アプリが外部リソースを参照したり更新するようになると、サーバとのやりとりによってネットワーク通信が発生します。 サーバに毎回リソースの処理を要求する作りになっていると、その都

    スマホアプリに必須なデータ永続化のためのDBテスト
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • S2JDBCのiterate()で OutOfMemoryError - ログ日記

    S2JDBCを使って DBのデータ数十万件をまとめてDLしようとしたらエラーになった。 getResultList()じゃなくてiterate()使ったら結果をまとめて保持しなくなるからメモリを使わなくなるんじゃないの?と思ったけどダメ。 WicketのResourceStream系がキャッシュしてるのか自分で書いたオブジェクトを書き出す処理がミスってたのか何か使い方が間違ってたのか分からずハマった。 Eclipse Memory Analyzer でダンプを見たら、どこかでデータを全件保持している模様。 2/29 ここから追記S2JDBC+PostgreSQLだとs2jdbc.diconのfetchSizeプロパティの設定+トランザクションをきちんと開始する、で解決しそう。(とりあえずローカル環境でエラーの再現 → エラー修正の確認まではできた) PostgreSQL: http://o

    S2JDBCのiterate()で OutOfMemoryError - ログ日記
  • サンプルアプリでおぼえる実践的Android入門

    はじめに Androidをはじめとするスマートフォンが盛り上がりをみせています。2011年上半期の携帯電話販売ランキングの上位はスマートフォンがほぼ独占、爆発的な増加となっています。 スマートフォンのシェアが急激に拡大する中、開発の現場にも変化が起こっています。スマートフォン案件の増加です。iPhone用のアプリをAndroidに対応する案件や、業務端末としてAndroidiPadを使いたいといった案件が増えてきました。スマートフォンへの開発ニーズの高まりを感じます。 稿はサンプルアプリの作成を通じてAndroid開発について解説していきます。 電卓アプリをサンプルとして使用しますが、よくある機能が限定されたようなサンプルではありません。実用に耐えうる電卓アプリの基盤を作成していきます。 稿を読み終えた後は、電卓アプリにさらに機能追加が可能となりあなただけのカスタマイズ電卓が作成でき

  • クラウドアプリケーション開発をJavaScriptだけで!

    対象ユーザ GoogleのPaaS型クラウド「Google App Engine」に興味はあるが経験のない方。JavaScriptやActionScriptによるプログラミング、およびjQueryでの簡単なプログラミング経験のある方。JavaPythonの開発経験は不要です。 必要な環境 コマンドライン動作環境 Java SE5またはJava SE 6 Eclipse(オプショナルですが強く推奨) 1 クラウド移行の意義 1.1 災害発生時に実証されるクラウドの威力 5年ほど前から米国で構築され始めたクラウドコンピューティングは、日でも急速にその価値が認識され存在感を高めつつあります。クラウドは東日大震災への対応と復興/復旧においても、公共Webサイトの複製を構築したり業務システムを復旧させたりするときに、拡張性・可用性・迅速性などがいかんなく発揮されています。もちろん平時での利用で

    クラウドアプリケーション開発をJavaScriptだけで!
  • JSF2の画面でAjaxの非同期通信を作る

    はじめに 稿では、Java Enterprise Edition 6のプレゼンテーションの基となるJSFJavaServer Faces)の送信機能と、Ajaxの扱い方について紹介します。 対象読者 JavaEE6開発に興味がある方 これからJavaのWebアプリケーション開発をはじめる方 必要な環境 動作環境は以下のとおりです。 Java SE 6 NetBeans 6.9.1 フォームの送信をJSF2のAjax機能で行う 今回紹介するJSF2でのAjax機能で使われている基技術について、簡単におさらいします。 フォームの送信とAjax Webアプリケーションは、利用ユーザーからの入力情報をサーバへ送信し、その結果を画面へ返すまでをひとつのサイクルとしています。送信するデータをくくるHTMLタグは<form>で、フォームと呼ばれます。この<form>と</form>で囲まれた内

  • Twitterが、Ruby on RailsからJavaVMへ移行する理由

    オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail

    Twitterが、Ruby on RailsからJavaVMへ移行する理由
  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して
  • 普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して

    以前はJava EEの普通のWebアプリケーションで、JavaScriptはあくまでも利便性のために補助的に使うものという認識がありましたが、さすがに最近では普通の業務系のSI案件でもテーブル表示や入力補助などで高度なAjaxライブラリーの使用が当たり前のように求められるようになりつつあります。サーバーサイドのJavaScript技術といったものもありますが、そういった新しい技術を使わないまでも、ごく普通にある程度大きなJavaScriptの作成が必要になってきているということです。 もちろん、JavaJavaScriptはその名前にかかわらず、来全く別の言語です。しかし、意図的に似た構文でロジックが書ける*1ため、兄弟の言語として認識している人も意外に多いのではないかと思います。しかし、使用できるライブラリーに違いがあるという点が一見してわかる最も大きな違いですが、基的な言語の文法

    普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指して