前回のエントリーでは「Java関係ないやん」的なツッコミも受けましたが、 今回からは、Javaを前提にしていきます。 Javaで文字から文字コードを作る 新人くん「Javaで文字から文字コードを作りたいんですが、どうすれば良いんですか?」 先輩社員「getBytesすれば一発だね」 新人くん「getBytesした後のバイト配列から上手く文字列を作れないんですが・・・」 先輩社員「それは別の話だね」 前回のエントリーでは、WordやIMEを利用した文字と文字コードの変換方法を説明しましたが、 では、Javaではどうやれば良いのでしょうか。 Javaで文字から文字コードを作るには、 先輩社員も言っている通り、String#getBytes(charset)するだけです。 具体的なコードは、以下のようになります。 String str = "あいうえお"; byte[] utf8 = str.g
昨日に引き続き。今日は「きつねさんと学ぶLambda式&StreamAPIハンズオン」の方。 【Date and Time API】Java 8徹底再入門【ラムダ式ハンズオン】(大阪,7/11) - connpass 全然難しく感じなかったので。すごいなーと思いました。 順を追って丁寧にワンステップずつ進めてくれました。 そこのハンズオンやっている人、どこからどう見ても学生チューターにしか見えないが、実はLambdaにも若干絡んでいる最年少JDKコミッタというとんでもない大物である。 #kanjava— HASUNUMA Kenji (@khasunuma) 2015, 7月 11 ハンズオン用のコードはこれ bitter_fox / Lambda — Bitbucket です。 ステップ1 Lambda式の書き方 これを。。。 Runnable r = new Runnable() {
こんにちは、今シーズンのNBAもGSWの試合は全試合観てる米林です🏀 今年は毎試合満員御礼のOracleアリーナに行って観戦したいなぁと思いつつカリフォルニア州オークランドの人たちはOracleがデータベースの会社って知ってるのかどうか毎回気になっています🏀 うちの会社ではJavaの開発において、Error Prone を積極的に取り入れている。 その理由はCTOのmopemopeが入れろって怖いから、ただそれだけである。 実際のところ導入して損は無いので皆さんも是非導入を検討して頂きたい。 Error Prone とは github.com Error Prone とはGoogleが公開していて、githubに記載されている説明のとおり “Catch common Java mistakes as compile-time errors” そのままである。 コンパイル時にエラーが起き
10周くらい遅れている感がありますが気にせず紹介します。なお実装はJDKによって異なる可能性があるので、お手元のJDKに付属しているコードをご覧になることをおすすめします。 java.util.concurrent.atomic.AtomicInteger ロックフリーでスレッドセーフな実装を実現ことで有名なjava.util.concurrent.atomicパッケージの代表格。そんなすごいことをどう実装しているのか?というのは誰もが1度は気になるはず。openjdk7のコードを読むとこんな感じです。 public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; } } C
APT とは Annotation Processing Tool のことで、Java でコードの自動生成を行う際に利用される。 APT を利用すると、Java クラスやリソースの自動生成が可能となる。 インターネットに情報は結構あるのだが、昔のものが多くて、Eclipse に JAR を追加して云々とかそういう感じのものが多くて辛いので調べたことをまとめておく。 アノテーションを作る 適当なアノテーションを作る。 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.SO
Lombok とは 読みは、「ロンボック」もしくは「ロンボク」。 アノテーションを付けるだけで、 getter, setter, toString, equals などの「何度も繰り返し書くコード」をコンパイル時に自動生成してくれるようになる。 でも、 Getter, Setter の自動生成は無闇にやるとオブジェクト指向を破壊するので、「使ってるフレームワークがどうしても Getter, Setter を要求するから仕方ないんじゃい」ってとき以外は使うべきではないと思う。 Hello World apply plugin: 'application' configurations { provided } sourceSets { main { compileClasspath += configurations.provided } } repositories { mavenCent
Doma へようこそ DomaはJavaのデータベースアクセスフレームワークです。Domaには様々な強みがあります。 コンパイル時にアノテーションプロセッサーを使用して、ソースコードを検証および生成します。 型安全なCriteria APIを提供します。 Kotlinをサポートします "two-way SQL"と呼ばれるSQLテンプレートをサポートします。 他のライブラリに依存しません。 このドキュメントは、以下のセクションで構成されています。 ユーザー向けドキュメンテーション Domaについて リンク集 私たちのドキュメントの改善とローカライズをお手伝いください。 ドキュメントに関する英語版および一般的な問題については、 GitHub リポジトリ に issue や pull request を追加してください。 日本語にローカライズするには、Crowdin プロジェクト を介して翻訳
Reacive〜と名の付くものに関する話題について、そろそろ少しずつ追ってみようかなということで。 とりあえず、触りつつ試しつつ始めてみようと思い、まずはReactorを触ってみることにしました。 Project Reactor GitHub - reactor/reactor: Reactor BOM and legacy (2.x, 1.x) Reactorとは、Pivotalが開発しているReactive Streamsの実装っぽいです。 Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3 まあ、いろいろ難しいことは抜きにして、単純に動かしてみましょう。 準備 今回は、Reactor Coreを使ってコードを書いて試すことにします。 GitHub - reactor/reactor-core: Non-Blocking Rea
突然ですが、先日参加したJJUG ccc fallでReactiveStreams/ReactiveExtensionsという仕様とそのJava実装の一つであるReactorというものを知りました。 JJUG ccc fallでReactiveStreamsとかとかを知ったセッション Reactive Streams Reactor リアクティブ~~についてものすごく参考になった資料 リアクティブなJavaといえばRxJavaだと思っていましたが、いろいろあるもんですね。 RxJavaもReactiveStreamsが実装されているようです。 https://github.com/ReactiveX/RxJava RxJavaは触ってみたことがあったので、今回はReactorについてコードを交えながらつらつらと書いていきたい。 ふわっとしているリアクティブプログラミングというものを少しでも
これからJavaを勉強する人が検索時に必ず一回は目にしそうなサイトまとめ。 基本の基本 Java APIは目を通そう。 http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html APIを読んでわからなくても、大抵のことはここを見ると載っている(気がする) Javaメモ目次(Hishidama's Java Memo) http://www.ne.jp/asahi/hishidama/home/tech/java/index.html Javaを勉強する時はブックマークしておこう。 Java全般 寺田 佳央 - Yoshio Terada | Java & Java EE https://yoshio3.com/ きしだのはてな http://d.hatena.ne.jp/now
このEntryは JavaFX Advent Calendar の最終日です。今年は誰も落とさずに、Adventしました!!すばらしい!!!! 昨日は @masanori_msl さんの JavaFX + Apache POIでSpreadsheet操作 でした。 さて、バンプマッピングです。 なぜ、バンプマッピングかというと、JavaFX Advent Calendar の 19 日目のひらおかさんの JavaFX で小惑星を描いてみよう で、私が Twitter で次のようにコメントしたからです。 @yumix_h SquareはSphereのtypoでしょうか。また、小惑星の表面はバンプマッピングした方がらしく見えると思いますよ。— Yuichi Sakuraba (@skrb) 2016年12月19日 とコメントしたのにもかかわらず、バンプマッピングのことってどこかに書いたことない
Effective Java is considered by many, one of the most important books for writing Java code that is maintainable in the long run and efficient at the same time. Android is using Java and that means that all of the advice given in the book must be applicable, right? Not exactly. Some people consider that most of the advice given by the book are not applicable in the Android development world. In my
SAMタイプのSAMとは、Single Abstract Method の略です。 直訳すればなんとなくイメージはつかめます。「単一」「抽象」「メソッド」。 つまり、SAMタイプとは、 一つの抽象メソッドだけで構成されたクラスもしくはインタフェース のことです。 Comparatorのcompare()などがSAMタイプですね。 SAMタイプのメリットは分かりやすさだと自分では思っています。「Comparator」なら、あぁ、「compare()」できるのね。って一目了然です。また関数オブジェクト的に使ったりします。 Javaには、匿名メソッドがないので、SAMタイプのインタフェースやクラスをつかって疑似クロージャを作ったりするのが有名ですね。 interface Invoker<T>{ public void invoke(T arg); } こんなインタフェースを定義しておいて、 Da
java8 Stream APIの終端処理についてのメモです。 前回の続きで、Stream APIの終端処理について書きました。 pppurple.hatenablog.com ストリーム生成⇒中間処理⇒終端処理の終端処理の部分です。 目次 終端処理 count min max sum average summaryStatistics findFirst findAny anyMatch allMatch noneMatch reduce(identity, accumulator) reduce(accumulator) reduce(identity, accumulator, combiner) toArray iterator spliterator forEach forEachOrdered collect(supplier, accumulator, combiner) c
今年も Advent Calendar の季節がやってきました。 Java をネタにしたブログを公開してしまいましょう。 Java といえば、サーバーからクライアント、クラウドに組み込みと、さまざな分野で使われており、そこで使われている技術もたくさん。 Java の Tips でもいいし、ライブラリの使い方でもいい、自作のツールの紹介など、Java に関していれば何でもかまいません。ぜひこの機会に、Java のブログを書いてみましょう!! qiitaのアドベントカレンダーを使用していますが、もちろんqiita以外からの投稿もできます! 普段お使いのブログがあるかたはそちらでご参加ください! Supported by JJUG. 過去のJava Advent Calendar Java Advent Calendar 2015 Java Advent Calendar 2014 Java A
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く