JAVA関連のことを調べてみた2020年02月12日

JAVA関連のことを調べてみた2020年02月12日

Java 基礎知識 1

#はじめに
現在、私はRubyを中心に学んでおります。
学習を進める中、他言語にも興味が沸いた為、Javaに関して用語等を整理していたいと思いました。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。

#Javaとは

– プログラミング言語の1つであり、世界的に人気の高い言語であること

###人気の理由は?

– 多くの現場で使われていること
– 汎用的でOSに依存しないこと(超重要)

#Javaで何ができるのか?
– 上述の通り、OSに依存をしないことからどんな環境でもソフトを動かすことができる。
– [こんなものが作れるようです。すごい!有名なのが多いです!](https://eng-entrance.com/java_product_summary)
– それだけ信頼されているのかと思いました。

#Javaのメリットは?

– 処理速度が速いこと
– 起動にコンパイルを必要とするコンパイラ言語であること
– Ruby等のスクリプト言語よりも処理速度が速いのが特徴のようです。

– プラットフォームに依存しないこと
– 上述の通り、OSに

元記事を表示

IntelliJでJavaをKotlinへ変換する 〜その1〜

# はじめに

[過去の記事](https://qiita.com/kaad/items/efa6833df1e3f1eb1f18)で作ったものをkotlinへ変換してみました。(まだ途中)
この記事では、java(spirng-boot)からkotlinへ変換するステップやちょっとしたテクニックを紹介します。

## なぜkotlin?

ぼくはjavaが結構好きですし、kotlinに精通しているわけではないです。
そして、javaは不滅だと思っています。

不滅と言うと言い過ぎですが、今javaで作られているアプリケーションは多く、javaのスキルを求められるケースも多いです。
そのため、javaエンジニアも多く、今後も使われ続ける言語だと思っています。

しかし、より生産性、安全性を高めるために「ラムダ式や関数型プログラミングの機能」や「non null/nullable」を搭載し、よりシンプルにかけるkotlinを学んでみようと思いました。

## Source

こちらにコミットしています。
比較の際には、kotlinへ変換したリポジトリの履歴を見てもいいですし、kotlin

元記事を表示

ColdFusionにCA証明書をインストールする

ColdFusionで接続先のWebサーバーやメールサーバー、LDAPサーバー(OpenLDAP、Active Directoryなど)が利用している証明書がプライベートCAから発行された証明書や自己証明書だと通信できないので、それを解決する方法です。

※この記事はColdFusion 2018をデフォルトの設定でインストールしている場合を前提としています。ColdFusion 2016でもパスを読み替えれば使えると思います。

# ぱぱっと知りたい

ColdFusionはJVMで動作しているので、keytoolコマンドを利用してcacertsキーストアに証明書をインポートするJavaの方法がそのまま使えます。付属のJavaランタイム(JRE)にもkeytoolが同梱されています。

– JREは `C:\ColdFusion2018\jre` にあります。
– cacertsキーストアのパスワードは `changeit` がデフォルトです。

基本これだけ分かればあとはググればいろいろと出てきますが、私が良く利用しているWindows環境での方法をまとめてみました。

# 手順

元記事を表示

[Java] TreeMap successor method and entrySet complexity

## Succcessor Method

As we know `TreeMap` is implemented by Binary Search Tree. So I am very curious about the `entrySet` or `subMap` method implementation and complexity.

It turns out java do it very straight forward. For entrySet, it start from the first node and by finding successor to move to next node.

It has a successor method to find next node by the following steps.

– if current node is null, then no next, return null
– if current node has right child
– find the most left one of

元記事を表示

で、結局APIのパスパラメータ、クエリパラメータ、リクエストボディってどう違ってどう設計するが正しいの?

## 事の発端
基本フロントのお仕事をしているのですが、RESTfulAPIの設計をしてね、と言われてRESTfulAPIについて色々調べることがありました。
パスパラメータ、クエリパラメータ、リクエストボディの使い分けについてヘ〜〜〜と思ったので、その結果を備忘として残したいと思います。
(かなり基礎的な情報なので、初心者向けです。)

### この記事で書くこと
– パスパラメータ、クエリパラメータ、リクエストボディってHTTPリクエストで言うどれのこと?
– パスパラメータ、クエリパラメータ、リクエストボディにはどういう情報を持たせればいいの?

### この記事で書かないこと(この記事を読む上での前提知識)
– HTTPリクエストとは何か?
 これを読めば大体OKです。→
[「HTTPリクエスト」と「HTTPレスポンス」 / ITSakuraさん](https://itsakura.com/network-http-get-post)
– RESTful APIとは何か?
   これを読めば大体OKです。→
[RESTful APIとは何なのか /
@Na

元記事を表示

今月はJava強化月間と決めました

 こんにちは、ヨースケです。[以前](https://qiita.com/ysk75/items/278c52bf4052991eb99d)投稿した記事でコメントしてくださった方ありがとうございます。大変勉強になりました!
## アプリ開発する上での危機感
 その記事でコメントにあったソースコードを見て「このままじゃダメだな」と感じ、もう一度勉強しなおそう!と思いました。こんな書き方があったんだ!という衝撃と自分の勉強不足さがあらわになって今月2月はJavaを隅から隅まで勉強し直そうと決めました。
 次に作る予定があるアプリもありますが、いったんはお休みしてJavaを強化したいと思います。
 まぁ、うつ病のせいで毎日がっつりはできないんですが少しずつでも進めていきます!

元記事を表示

2020年オープンソースWebクローラー10選

[Webクローラー](https://www.octoparse.jp/blog/what-is-web-crawler/)とはインターネット上に公開されているテキスト・画像・動画などの情報を自動で収集し、データベースに保管するプログラムのことです。さまざまなウWebクローラーがビッグデータのブームで重要な役割を果たし、人々がデータを簡単にスクレイピングできるようにしています。

さまざまなWebクローラーの中には、オープンソースのWebクローラーフレームワークがたくさんあります。オープンソースのWebクローラーを使用すると、ユーザーはソースコードまたはフレームワークに基づいてプログラミングでき、スクレイピング支援のリソースも提供され、データ抽出が簡単になります。この記事では、おすすめのオープンソースWebクローラーを10選紹介します。

#1. Scrapy

**言語: Python**

Scrapyは、Pythonで最も人気のあるオープンソースのWebクローラーフレームワークでです。Webサイトからデータを効率的に抽出し、必要に応じて処理し、好みの形式(JSON、XML、C

元記事を表示

JMeter チートシート

# JMeter とは

自動でブラウザ操作をするツール
主にラッシュテストに使う
ちょっとした操作なら[postman](https://www.postman.com/) の方が優秀だが、
**postman は複数スレッドを起動できないため、JMeterを使わざるおえない** 

# 前提

JMeterのインストール先:c:\apache-jmeter-5.2.1

# JMeter の起動(画面)

“`:jmeter_view.bat

set JMETER_LANGUAGE=-Duser.language=”ja” -Duser.region=”JP”
c:\apache-jmeter-5.2.1\bin\jmeter.bat -H “プロキシホスト” -P “プロキシポート” -u “プロキシユーザー” -a “プロキシパスワード” -t honya_rush_test.jmx
“`

1行目:日本語化
2行目:jmeterをviewモードで起動
 起動オプション
 -t:ブラウザ操作の設定を保存するファイル名。初回はファイルがないのでエラーになる

# JM

元記事を表示

【初心者向け】java -jar コマンドでJVM(-D)オプションが効かない、ライブラリがバグってるんじゃないかと言いたくなったとき。

## 背景

Java製のOSSや社内に閉じたライブラリを開発していると、こんな問い合わせを受けることが何度かあったので、せめてQiitaに書いておけばググって自己解決してくれるのではないかという淡い期待をこめて。

## 問い合わせはこんな感じ

### パターン1

ライブラリのドキュメントには、`-Dxxxx=yyyy`を指定すると、`xxxx`オプションが有効になると書いてありますが、動作しません。ライブラリがバグってませんか?

### パターン2

組み込みTomcat(またはJettyなど)を使用したjarを起動する際、JMXを有効にするために`-Dcom.sun.management.jmxremote`やそのほかJMXのオプションをつけてますが、アプリケーションを起動してもJMXのポートがLISTENになりません。

組み込みTomcat(またはJettyなど)のパラメータ調整が必要でしょうか?

## バグってるのはライブラリでもServletコンテナでもない

“`bash:誤ったコマンド
java -jar zzzz.jar -Dxxxx=yyyy -Dcom

元記事を表示

Javaのメソッドと引数の関係を生化学式に解釈する

Javaをはじめたのですが、なかなか理解できないので自分なりの解釈で勉強します:ghost:

##メソッドの定義
“`

public static メソッド名 (引数リスト) {
処理
}
“`

##メソッドの呼び出し

“`
メソッド名(引数)
“`

###引数とメソッドの考え方
:point_up_tone1:引数=基質
:point_up_tone1:メソッド=酵素
と考える

“`eg)
public class Main {
public static void main(String[] args){
hello (“Java”);
}

public static void hello (String name){
System.out.println(name + “こんにちは”);
}
}
“`

基質(引数)が酵素(helloメソッド)を活性化する(呼びだす)
活性部位(変数の型と順番)があわなきゃダメ:helmet_with_cross:→コンパイルエラーになっちゃう

![622.jpg](https://qiita-ima

元記事を表示

Minecraft Plugin開発(Java)

1.15.2-R0.1
Minecraft(JE)です
アイテムをドロップしたことを検知して、その数秒後にアイテムの名前を変更するコードを書きたいのですが、上手くいきません。
Bメソッドまで呼ばれていることを確認しましたが、Bメソッド内のitemStackの更新が上手くいかないようです。
Aメソッド内では問題なく名前の変更ができました。
回答お待ちしています

下記コード

//省略//
@EventHandler
public void onPlayerDrop(PlayerDropItemEvent e) {
ItemStack itemStack = e.getItemDrop().getItemStack();
Test test = new Test(itemStack);
test.A();
e.setCancelled(true);
}
}

public Test {
java.lang.System.out

元記事を表示

Lombokのカスタムアノテーションを作ろうとして諦めたメモ

Lombokのカスタムアノテーションを作ろうとして諦めたメモです。

3行でまとめ:

1. Lombokのアノテーション実装ではJava内部クラス(コンパイラ関連)を参照する。
2. Java9 以降、Java内部クラスの参照方法がビルドシステムやIDEで大きく変わり、難易度がめちゃくちゃ高くなった。
3. アノテーションを集約するメタアノテーション的なのもLombokでは未対応なので、打つ手なし、ギブアップ。

作ろうとした経緯:

1. `@Value` 大好きなんだけど、Eclipse上からlombokが作成したgetterの利用箇所を Ctrl + Shift + F で逆引きできない。というかしづらい。
– ソースコード上にはgetterは無いので当然といえば当然。
– 一応、Outlineビューで表示すれば getter も見えるので、その getter を右クリックして “References” メニュー選べば参照箇所逆引きできるけど、まぁめんどいっちゃめんどい。
– 参考: https://stackoverflow.com/questions/42

元記事を表示

Angularチュートリアル + SpringBoot + PostgreSQLをやってみた

# Angular + SpringBoot + PostgreSQL

## はじめに
フロントエンド: Angular(TypeScript)
バックエンド: SpringBoot(Java)
DB: PostgreSQL

こちらの記事を参考にして、タイトル通りのものを作ってみました。
[Angularチュートリアル + Spring Bootやってみた](https://qiita.com/panichi/items/7e17820d02fa274bf04a)

## 前提条件

[Spring Initializer](https://start.spring.io/)でプロジェクトを作成していること
Maven Projectで作成し、
Dependenciesは`postgreSQL Driver`と`Lombok`を入れました。

名前は適当に

環境
– Mac OS Catalina 10.15.2
– Intellij Community 2019.3.1
– Java 11
– PostgreSQL 12.1

この記事ではMacでやっていますが、Wind

元記事を表示

Groovy超簡単入門

##Groovyの紹介
Groovyは2003年開発されたJavaプラットフォームで動作する動的プログラミング言語であり、直接スクリプトで実施することを特徴としています。

##Groovyプロジェクト作成

まずは、簡単なJava Beanを作ります。

“`java

public class Cat{

/**The name of the cat*/
private String name;

/**The age of the cat*/
private int age;

/**Constuct*/
public Cat(String name, int age) {
this.name = name;
this.age = age;
}

/**Get the cat name*/
String getName() {
return name
}

/**Set the cat name*/
void setName(Strin

元記事を表示

OpenJDKについて簡単に整理

#はじめに
開発言語のJava。
はいくつか種類があるって知ってました?
簡単に知識整理をしておきたいと思います。

#OpenJDKとは
+ Open Java Development Kit
+ Java のフリーかつオープンソースの実装。
+ 2006年、サン・マイクロシステムズが始めた。
+ GPLリンク例外つきの GNU General Public License (GNU GPL) でライセンスされている。
+ OpenJDKはJava SE 7以降の公式リファレンス実装とされている。
+ 参考:https://ja.wikipedia.org/wiki/OpenJDK

その他の用語と合わせてみると。

|用語|説明|
|—|—|
|Java SE|Java Platform Standard Edition。**仕様**の集まり。|
|OpenJDK|Java SE に基づいた開発を行っている**オープンソースプロジェクト**。ソースコードが管理されている。|
|JDK|Java Development Kit。**Oracle**が提供するJava SE開発

元記事を表示

[写真整理][java][windows]選択した写真を2クリックでフォルダに移動する

###フォトビューアで参照している写真を★★★のフォルダに振り分けを行います

写真ファイルの振り分けって、地味に手間がかかります。
選んでいるうちに番号を忘れたり、印刷しようとするのがコレジャナイ。となったり、また、要らない写真をみていたり。
必要なファイルだけを見たい!しかも超絶簡単に振り分けたいって自分の都合から、こんなものを作りました。

フォトビューアから、これ(★★★.EXE)を起動すると、今いるフォルダの一つ上に★★★をつくり、★★★に移動します。

例えば

こんなフォルダ構成にて、001.JPGから005.JPGまでのファイルがあったとします。

CANON001/
└ jpg
  ├ 001.jpg
  ├ 002.jpg
  ├ 003.jpg
  ├ 004.jpg
  ├ 005.jpg

この状態で、フォトビューアにて003.jpgを選択中に★★★を起動すると、以下のようにJPGと同列に★★★フォルダが作成され、003.jpgが移動されます。

CANON001/
└ jpg
  ├ 001.jpg
  ├ 002.

元記事を表示

【資格試験】Java SE8 Silver学習方法まとめ

#はじめに
最近Java SE8 Silverの資格を取得しました。
このあとJava SE8 Goldも受験予定なので、諸々振り返りと今後の整理をするためメモにまとめます。

あくまで個人的な意見ですが参考になれば幸いです^^
また、間違いや異なった意見を持ってる方いらっしゃったら、コメントいただけると嬉しいです!

※本めもは、企業でしっかり研修などを受けて受験する方というより、個人的に資格取得を目指している初学者の方向けな感じです。(私がソンな感じ)

#受験者のバックグラウンド
十数年前に1ヶ月ほど、入社時研修としてJava研修を受けた事があります。
その後は、ほぼプログラミングに関わる事なく10年ほど金融系企業向けのアカウントSEをしておりました。そのため、プログラマーとしては下の下。現在駆け出し中です(笑)

※ちなみに、Androidエンジニアとして転職して2ヶ月半ほど経ちます。現在、Java,kotlin双方で開発を行なっています。

#Java Silver SE8 試験について
OracleのJavaSE8認定資格公式ページより概要を抜粋します。
>Oracle C

元記事を表示

C#とJavaの書き方の違いをまとめる

## 前置き
いつもはC#で開発をしていますが、使用するAPIにC#用のインターフェースがまだ整っていなくJavaで開発を始めてみました。
あまりJavaは触ったことがなかったため、C#でいう「xxxx」はJavaでいう「xxxx」というのをまとめてみました。
私がよく使っている予約語、実装方法が中心となっています。そのため全ての違いが網羅できているわけではありません。

## C#とJavaの予約語、実装方法の違い

### 予約語の違い
C#、Javaでの予約語の違い、変わらない点をまとめてみました。
同じ、似ていると思った項目を横並びにして比較してみます。

|差異|C#|Java|備考|
|:——|:——————|:——————|:——————————————————————|
||namespace|package||
||using|import||
|なし|class|class||
||:|extends|クラス継承|
|なし|

元記事を表示

安易なメソッド参照は気を付けるべし

#導入
こんにちは。けちょんです。
**皆さん、メソッド参照使っていますか?**
便利だし、可読性も上がりますよね。
そんなメソッド参照で。気を付けるべき仕様があったので紹介します。

#よくやる使い方

“`Java
public class Main {
public static void main(String[] args) throws Exception {
Arrays.asList(“test1”, “test2”).stream().forEach(System.out::println);
}
}
// test1
// test2
“`
staticメソッドをメソッド参照していますね。
他にもこんな使い方ができますね。

“`java
public class Main {
public static void main(String[] args) throws Exception {
Arrays.asList(“test1”, “test2”).stream().map(String::toUpperCase).forEach(Syst

元記事を表示

現場で「StreamAPI使うな」と言われたあなたへ

寒暖差激しいですね。
暖かい日しか出社したくないですが、人は習慣に飼いならされることで怠惰にならなくて済むので、定時出社という悪しきルーティンを受け容れようかなとか思っています。

## 「ストリームの乱用はプログラムの理解や保守を難しくする」
> Effective Java第3版より
“ストリームの乱用はプログラムの理解や保守を難しくする”

いきなりですがこれが結論です。短くて読みやすいコードは素晴らしいです。しかし、StreamAPIは、短くて難解なコード、長くて難解なコードを生み出すことも容易です。私をはじめ、StreamAPIを理解しきれていない人が実装する際は、プログラムの可読性悪化のリスクを常に認識しなければなりません。
これはすなわち現場のプログラマの問題であり、StreamAPIが悪い訳ではないということです。
StreamAPIが書きたければ、場所を変えましょう。あなたの実装したStreamAPIによる簡潔なコードが、コピペによる濫用によってそこかしこに広がり、問題の種になる前に。

## 短くて読みやすいStreamAPIによる実装
とはいえ、このまま終わって

元記事を表示

OTHERカテゴリの最新記事