- 0.0.1. Java学習 基礎編 クラスとインスタンスとは?①
- 0.0.2. [Excel]Excelを処理するJavaのライブラリー(メモリリーク問題解決)
- 0.0.3. GradleでJavaのコンパイルオプションを設定する方法
- 0.0.4. FessをAmazonLinux2にインストールする手順
- 0.0.5. 頭文字を打つだけで文章ができていくアプリケーションを作る
- 0.0.6. PlantUMLまとめ
- 0.0.7. 【Java】RomeでRSSリーダーAPIを簡単に実装する
- 0.0.8. AsyncTaskを使った非同期処理
- 0.0.9. 初心者の初心者による初心者のための配列プログラム課題のソースコード例
- 0.0.10. 現在の状況
- 1. プログラムに慣れる
- 1.1. プログラムの練習
- 1.2. 最後に
- 1.2.1. Java ExcelをTIFFで保存
- 1.2.2. Java Excelに透かしを設定
- 1.2.3. Eclipseを使ってJavaで実装してるとき、開いていたファイル(タブ)が消えるから設定してみた。(初心者向け、未経験者向け)
- 1.2.4. Javaの拡張ForループでMapをループするときの書き方
- 1.2.5. なぜPythonにはsetter/getterメソッドがないのか?
- 1.2.6. 【paiza】【Java編】Cランクレベルアップメニュー 標準入出力 STEP: 2 複数行にわたる出力 解いてみた!
- 1.2.7. 【paiza】【Java編】Cランクレベルアップメニュー 標準入出力 STEP: 1 単純な入出力 解いてみた!
- 1.2.8. ArrayList+クラス+拡張for文
- 1.2.9. [Android][Java]ボタン付きのカスタムセルのListViewを作成する
- 1.2.10. [Android/Java] Jetpack LifecycleObserver
Java学習 基礎編 クラスとインスタンスとは?①
Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。* * *
#### クラスとは?『**クラスは、インスタンスを作るための設計図である。**』
インスタンスは、情報と振る舞いを持っており、
この情報と振る舞いを設計図であるクラスに定義する。人間を例にすると、
情報にあたるのが、「名前」、「年齢」であり、
振る舞いにあたるのが、「あいさつする」、「歩く」などである。#### クラスの定義
プログラムの一番外側に記述されているもので、クラスの中には具体的に何をさせたいのかを、メソッドの形で記述していく。“`Main.java
class クラス名{}
“`#### インスタンスとは?
『**インスタンスは、クラスから作られた実体である。**』
インスタンスは実体という意味。
オブジェクトの別名がインスタンスなのは、設計図から実際に生み出された実体であるため。#### インスタンスの生成
インスタンスは変数に代入して使用する。
【定義方法】
**クラス
[Excel]Excelを処理するJavaのライブラリー(メモリリーク問題解決)
# 概要
EasyExcelというJavaライブラリーApache poi、jxlなどライブラリーより、使うメモリは少ないらしいので、今回使ってみました。もっと詳しい情報はEasyExcelのgithubを見てください。
[EasyExcelのgithub](https://github.com/alibaba/easyexcel)
# 環境
## OS
macOS Catalina## Java
1.8## Gradle
5.2.1## easyexcel
2.1.1# ライブラリーをインストール
“`kotlin
plugins {
id ‘java’
id ‘application’
}sourceCompatibility = 1.8
repositories {
mavenCentral()
}mainClassName = ‘demo’
// exayexcelライブラリー追加
dependencies {
implementation group: ‘com.alibaba’, name: ‘ea
GradleでJavaのコンパイルオプションを設定する方法
## 概要
Javaではコンパイル時に[コンパイルオプション](http://www.ne.jp/asahi/hishidama/home/tech/java/application.html#javac)というものがあり、classファイルの出力ディレクトリやデバッグ情報を含めるかなどを設定できます。普通にjavacコマンドで行う場合はコマンドにオプションをつければ良いのですが、Gradleでビルドしている場合はどこに設定すれば良いのか、今回書きます。## 設定方法
[こちら](https://stackoverflow.com/a/29593630)のstackoverflowの記事にある通り、pluginに`java`を設定し`options.compilerArgs`項目にオプションを設定します。## 設定サンプル
上記の記事そのままですが、設定内容のサンプルを記載します。`-parameters`オプションの設定を行うときの設定です。“`gradle:build.gradle
apply plugin: ‘java’compileJava {
op
FessをAmazonLinux2にインストールする手順
# FessをAmazonLinux2にインストールする手順
# 前提
各種バージョンは以下とする.
|アプリ/OS|バージョン|
| :-: | :-: |
|OS|AmazonLinux2|
| Fess | 13.11.1 |
| Elasticsearch | 7.11.2 |
| Java | adoptopenjdk-11-openj9 11.0.10+9.openj9_0.24.0-3 |# Javaインストール
https://adoptopenjdk.net
## リポジトリ設定
[https://adoptopenjdk.net/installation.html#installers](https://adoptopenjdk.net/installation.html#installers)の`RPM installation on Centos, RHEL, or Fedora`記載の内容から若干変更しているため注意.
“`bash
sudo vim /etc/yum.repos.d/adoptopenjdk.repo# 以下を記載
頭文字を打つだけで文章ができていくアプリケーションを作る
# できたもの
まずはできたものがこちら。
ソースコード:https://github.com/lake429c/InfiniteMonkeyTheorem
![InfiniteMonkeyTheoremDemo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521715/3e26c303-8e16-1f0f-8559-178ed6fb9cee.gif)# 概要
標準出力・標準入力を利用するコンソールアプリケーション。
ひらがな一文字を入力すると、その文字から始まる単語と助詞・句読点が挿入されていく。
終了する際は「おわり」と入力。
Javaで作成。+ Java SE 11
+ MySQL 8.0.23製作時間 3時間半。
フローは以下の通り。
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521715/ef82f31d-52e8-609e-9375-7cf6c1125
PlantUMLまとめ
# 資料の目的
PlantUMLを多方面に展開して、UML作成の工数を削減したい。
# PlantUMLとは?
PlantUMLとは、UMLをソースから自動生成するツールです。
# 結論
– 個人で使う分には、手早い管理が可能なので導入の価値ありです。以下の点について考慮不要として扱えます。
– 線の繋ぎ、矢印の向き、矢印の形、枠、図の被りの考慮– 誰かへの説得資料としての完璧な資料にはできないものの、部署内の共有であれば強度十分(ある程度見やすくできるため)
– アクティビティ図だと多重if esle文、for文があまり対応していない。他のUML形式であれば問題なさそう。
– ソースによる差分管理が可能。– PlantUML導入のハードルは、DockerかJavaを入れていない部署にとって高いので、他部署への本格的な展開は難しい。
# 導入手順
PlantUMLはJavaでUMLを生成するので、Javaのインストールが必要です。Javaのインストールが面倒であればDockerで利用が可能です。
導入手順は以下記事が分かりやすかったです。
【Java】RomeでRSSリーダーAPIを簡単に実装する
## まえがき
・RSSリーダーって何?という方は [Wikipedia:フィードリーダー](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC) をご参考ください。
・あまり流行してないですが、作る機会があったので載せます。
・RSSリーダーはあまり処理を行わず戻りのオブジェクトをJSON形式で出力、 JS側で整形する方式を想定。
・JSで直接他ドメインのRSSを読もうとすると [CORS](https://developer.mozilla.org/ja/docs/Web/HTTP/CORS) のエラーが出てできないので、サーバー側でRSSリーダーの処理をしています。
・[Caffeine](https://qiita.com/a__i__r/items/44e9b0aa934de26ba5bd) 利用のキャッシュ有り## 環境
・Windows10 64bit
・Spring Framework 4
・Rome 1.15.0
AsyncTaskを使った非同期処理
メモです。詳細は下記URL先を参照してください。
https://dev.classmethod.jp/articles/asynctask/
初心者の初心者による初心者のための配列プログラム課題のソースコード例
初心者の初心者による初心者のための配列プログラム課題のソースコード例です。
課題は下記のURLの問題です。
https://qiita.com/nogizakapython/items/dd0bb83e729b9a7ffafe
私が書いたソースコード例です。(Java)
“`java
//
// 配列課題1模範解答(Java)でかきました
// Author 坂道好きのITエンジニア
// Date 2021/3/23 新規作成
// 修正する場合は下に修正日と修正者名を書く
//package paiza;
public class hairetsu2 {
public static void main(String[] args) {
//配列の宣言
int[] data = {7,4,5,8,2,6};
//配列の長さを取得する
int nagasa = data.length;
//配列の長さを出力する
System.out.println(“配列の長さは” + nagasa + “です”);}
}
現在の状況
プログラムに慣れる
今自分は「すっきりわかるサーブレット&JSP入門」という本を読んで
プログラムを書いています。この本は「すっきりわかるJava入門」という
本を経た人が次に読む本で、実際にWEBサイトがどのように動いている
かが分かってくる内容になってます。プログラムの練習
この本の10章では簡易的な掲示板を作って開発を体験することができます。
最終的にこの掲示板が見なくても作れるようになることを目標にプログラム
のコーディングをしています。
内容としてはユーザーが書いた内容をほかのユーザーが視認できるものを
作っています。最後に
しばらくSpringBootを使って開発をしていてJavaのコード内容を
忘れてしまったのでこれを機会にまたJavaの再復習を行いたいと思う。
Java ExcelをTIFFで保存
TIFF は、ビットマップ画像の符号化形式の一種です。タグと呼ばれる識別子を使うことによって、様々な形式のビットマップ画像を柔軟に表現できます。今回は Spire.XLS for Javaを使ってExcelをTIFFで保存する方法を紹介してあげましょう!
下準備
1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。
Java Excelに透かしを設定
ワードでは最初から透かし機能が存在するのですが、エクセルでは透かし機能が存在しないので、ちょっと難しいかなと思いっていますか?実はSpire.XLS for Javaというライブラリを通して、簡単に設定できます。
下準備
1.E-iceblueの公式サイトからFree Spire. XLS for Javal無料版をダウンロードしてください。
Eclipseを使ってJavaで実装してるとき、開いていたファイル(タブ)が消えるから設定してみた。(初心者向け、未経験者向け)
普段、仕事でJAVAを使った保守開発の案件に携わっています。
その際は、ツールとしてEclipseを使っています。作業をやっているときに、
開いていたファイル(タブ)が他のファイルを開くと”消えていること”があるので、度々開くのがめんどくさいので、設定しました。**~手順~**
1 **ウィンドウ**
2 **一般**
3 **設定**
4 **エディター**
5 **エディターを自動的に閉じる**
6 **適用して閉じる**
7 **Eclipseを落として、再度立ち上げる**1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1174366/111aa5b5-9ec3-d5ed-c67e-920e13c064f5.png)基本のタブ欄から”ウィンドウ”をクリックする。
2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1174366/f175baab-60a6
Javaの拡張ForループでMapをループするときの書き方
JavaでMapの拡張For文の書き方を忘れてしまったのでメモ的に記載。
“`java:SampleController.java
for(Map.Entryentity : map.entrySet()) {
System.out.println(entity.getKey());
System.out.println(entity.getValue());
}
“`
なぜPythonにはsetter/getterメソッドがないのか?
# 概要
JavaやC++などの他のオブジェクト指向言語では`setter/getter`メソッドの使用が推奨されているが、Pythonには存在しない。
もともとJavaやC++に触れていた僕には「**なぜPythonにはsetter/getterメソッドがないのか?**」がすごく疑問だった。
さらに、Javaなどの言語の資料では
「**クラス内部の変数はprivateにして隠蔽せよ**」
と書いてあるが、逆にPythonの資料では
「**privateはなるべく使わずpublicを使え**」
と書いてあることが多い。
**矛盾しているのでは…?**気になったのでいろいろ調べて見た結果、そこには**2つの理由**があることがわかった。
さらに、Pythonで`setter/getter`を使いたい場合の**1つの代替案**があるということもわかった。
この記事では– オブジェクト指向とカプセル化について
– Pythonにsetter/getterメソッドが存在しない2つの理由
– setter/getterメソッドの代替案の順に説明する。
最初のオブジェクト指向につい
【paiza】【Java編】Cランクレベルアップメニュー 標準入出力 STEP: 2 複数行にわたる出力 解いてみた!
Aybeeです!
Javaのスキルアップのために、「paizaラーニング」さんの問題を解き始めました。
記録用ですが、お役に立てれば幸いです:innocent:他の問題についても記事をアップしております。
興味がございましたら、マイページへどうぞ!#はじめに
この記事では、「paizaラーニング」さんの以下の問題について記載しています。
より良くするためのアドバイス、お待ちしております!プログラミング練習問題「複数行にわたる出力」
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step2
※当問題は、以下のように作成したコードを公開することが推奨されています。
![スクリーンショット (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/424017/9f51b8e5-9aab-019c-e19f-09d71eb92ea5.png)#問題
整数 n が与えられるので、 n 回
【paiza】【Java編】Cランクレベルアップメニュー 標準入出力 STEP: 1 単純な入出力 解いてみた!
はじめまして、Aybeeです!
Javaのスキルアップのために、「paizaラーニング」さんの問題を解き始めました。
記録用ですが、お役に立てれば幸いです:innocent:#はじめに
この記事では、「paizaラーニング」さんの以下の問題について記載しています。
より良くするためのアドバイス、お待ちしております!https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step1
※当問題は、以下のように作成したコードを公開することが推奨されています。
![スクリーンショット (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/424017/37c5fead-bd3a-909f-8a4e-d2d8b745aaa2.png)#問題
文字列 s が与えられるので s をそのまま出力してください。
##入力される値
入力は以下のフォーマットで与えられます。
s
文字列 s が 1
ArrayList+クラス+拡張for文
###Drink取り出し
分かりやすかったので。“`ArrayListClass.java
public static void main(String[] args) {
var drinkList = new ArrayList(); //Drinkクラスを格納するArrayListに飲み物を追加
Drink coffee = new Drink(“コーヒー”,1,130);
drinkList.add(coffee);Drink water = new Drink(“水”,2,100);
drinkList.add(water);//取り出すメソッドの呼び出し
displayProduct(drinkList);
}
//メソッドの定義/ArrayListからDrinkクラスのフィールドを順に取り出す
public static void displayProduct(ArrayList
[Android][Java]ボタン付きのカスタムセルのListViewを作成する
ボタン付のカスタムしたセルでListViewを作成する方法を記載します。
リスト表示する場合にはRecyclerViewの方が柔軟に様々な事ができますが、その分実装量が多くなるため、簡単に実装ができるListViewについて書いていきます。
完成イメージは以下です。
AndroidStudioで空のアクティビティを作成した状態から始めます。
#1.layout/activity_main.xmlにListViewを定義する
空のアクティビティを作成すると、ConstraintLayoutだけが定義されている状態なので、以下のようにListViewを定義します。“`activity_main.xml
[Android/Java] Jetpack LifecycleObserver
Android Studio 4.1.3(windows版) で動作確認しています
Jetpack LifecycleObserverの簡単な説明とサクッと試すためのコードです
Android DeveloperのLifecycleObserverの説明は以下です
https://developer.android.com/topic/libraries/architecture/lifecycle?hl=ja
getViewLifecycleOwner()についてはこちら
https://developer.android.com/reference/androidx/fragment/app/Fragment#getViewLifecycleOwner()
## 確認用コード
各イベント/イベントの引数は省略できます
Lifecycle.Event.ON_ANYはすべてのイベントを受け取れて
Lifecycle.Event.ON_ANYのみ引数でLifecycle.Eventを指定できます
getCurrentState()で現在のLifecycleの状態も取得できます