JAVA関連のことを調べてみた2021年03月24日

JAVA関連のことを調べてみた2021年03月24日
目次

Java ExcelをTIFFで保存

TIFF は、ビットマップ画像の符号化形式の一種です。タグと呼ばれる識別子を使うことによって、様々な形式のビットマップ画像を柔軟に表現できます。今回は Spire.XLS for Javaを使ってExcelをTIFFで保存する方法を紹介してあげましょう! 

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。

f:id:lendoris:20210324105601p:plain

元記事を表示

Java  Excelに透かしを設定

ワードでは最初から透かし機能が存在するのですが、エクセルでは透かし機能が存在しないので、ちょっと難しいかなと思いっていますか?実はSpire.XLS for Javaというライブラリを通して、簡単に設定できます。

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Javal無料版をダウンロードしてください。

f:id</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>Excel</div>
<div class='tag-cloud-link'>エクセル</div>
<div class='tag-cloud-link'>透かし</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/d094514962af128b2188'>元記事を表示</a></div>
<h3 id=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.Entry entity : 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の状態も取得できます

元記事を表示

Java 変数修飾子についての 簡単な説明 と 自分なりの解釈

#普段からよく目にするJavaの変数修飾子
* **public**
* **private**
* **static**
* **final**

上記4つのみ対象にしています

##public
* **簡単な説明**
どこからでもアクセス可能な変数

* **自分なりの解釈**
基本的には明示されていないもの
メンバ変数(フィールド変数)で変数宣言時に外部から参照できる理由は
省略されて見えないだけ

“`java:publicについて
public class Main {
//明示してないがpublic
int a;

//明示してpublic
public int b;

public static void main (String[] args) {
}
}
“`
##private
* **簡単な説明**
同一クラスからのアクセスのみ許可

* **自分なりの解釈**
**簡単な説明**の通り、同一クラスからのアクセスのみ許可するもの
外部クラスから参照したい場合は、メソッド経由(getter or setter)で参照が可能

“`ja

元記事を表示

ProcessingでTwitterを表示&投稿のやり方

##前書き
Processingを学んでいた途中で、Twitterの情報の表示ができるサイトをある方から
教えてもらいました。Twitterは日ごろから使っているため身近なもので
ProcessingとTwitterAPIの勉強ができるのであれば
一石二鳥じゃんと思って始めました。

次からSTEP事に手順を踏んでプログラムを完成させていきましょう。
またProcessingのダウンロードなどは他の記事を参考にしてください

今回の開発環境はProcessing3.0で言語はJava
OSはWindows10となっています

今回の記事は(http://www2.kobe-u.ac.jp/~tnishida/misc/processing-web-api.html)
この記事の内容を元に改良したものとなっています。
この記事を書いた人には頭が上がりません

完成品は自分のタイムラインの確認とツイートができるものになっています。
正直実用性は微妙ですがtwitterAPIの勉強の第一歩としていいと思います。
今回の完成品はいたってシンプルな構造にしていますので
完成後は背景の色を変えたり

元記事を表示

javaで記述した TimSortよりも 高速 かつ 安定・安全 な qsort (Sqsort)

最近のソートは、クイックソートに代わってマージソートが主流のようです。
最大の理由は「安定」性にあると思われます。しかし、マージソートは
 (1)要素の移動回数が多い
 (2)同じキー値が複数現れる場合でも速度向上が十分には望めない
などの欠点があります。
#####このことから「安定」な qsort (Sqsort) (比較ソート) を作りました。
#####最大の特徴は、キー値に同じ値が現れる場合に極めて高速なことです。
Sqsortはjavaで記述してあり、同じくjavaで記述したTimSortより高速です。
大雑把にいうと、Sqsortは補助配列(bas2)と対象配列(base)で
以下のような移動を繰り返します。

“`
bas2:…………… → bas2:5555……77787 → bas2:……….77787
base:357358257257237 A base:332223……… B base:3322235555…..
“`

プログラム(約150行 classファイル 3164b

元記事を表示

[Android/Java] Jetpack LiveData (Jetpack ViewModel MVVM+Repositoryパターン)

Android Studio 4.1.3(windows版) での流れとなります

ここではMutableLiveDataをRepositoryで持ち単純なデータのModelを扱うだけの
シンプルな構成で一連の流れを説明します

以下の記事のプロジェクトベースでの説明となります

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

Android DeveloperのJetpack LiveData/MVVM+Repositoryパターンの説明は以下です

https://developer.android.com/jetpack/guide?hl=ja

## Layoutの準備
ここではViewBindingを使用して実装します
ViewBindingの設定方法を知りたい方は以下を参照してください

https://qiita.com/smurata_pvt/items/99cd5f878b4eedb84dc8

MainFragmentのテンプレートにあるTextViewはidが指定されていないため
ここではtext

元記事を表示

美大生のためのプログラミング入門:繰り返し(ループ)

※ Qiita では、本文部分のみの印刷に苦労します。そのため、同じ内容を以下のページにも掲載しています。プリンツアウトしたり PDF 化したい人は、こちらのページを利用して下しさい:

http://gurakura.sakura.ne.jp/hellomondrian/loop/

一覧はこちら:
http://gurakura.sakura.ne.jp/series/美大生のためのプログラミング入門/

Qiita 版の総合目次:
https://qiita.com/iigura/items/37180d127da93d0b8abb

# はじめに
![Composition with Grid IX](https://uploads5.wikiart.org/images/piet-mondrian/composition-with-grid-ix-1919.jpg!Large.jpg)
Composition with Grid IX by Piet Mondrian, 1919.
[https://www.wikiart.org/en/piet-mondrian/compo

元記事を表示

JavaでAtCoder青色になりました

遭難者です。[ARC115](https://atcoder.jp/contests/arc115)でに青色になったので記事を書くことにしました。![スクリーンショット 2021-03-22 0.57.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1227863/3c819cbc-17b9-34a5-c190-16aa3d0845e3.png)
緑色に4ヶ月程度いたのに水色には1ヶ月もいないのは春休み中毎日競プロと数学しかしていなかったからだと思います。
#自己紹介
現在高専1年の、情報系の学生です。
得意分野は数学とグラフ問題、苦手分野は文字列の操作とデータ構造、DP等です。
学校の授業でJavaを扱っていたということもあり、競プロをJavaで始めました。

#精進量

![スクリーンショット 2021-03-22 1.13.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1227863/eb8cf377-5

元記事を表示

Java: EasyBuggy – 30分でわかる!XMLエンティティ拡張(XEE)の脆弱性

# 概要

[EasyBuggy](https://github.com/k-tamura/easybuggy/blob/master/README.jp.md)または[EasyBuggy Boot](https://github.com/k-tamura/easybuggy4sb/blob/master/README.jp.md)を利用して、XMLエンティティ拡張(XEE)の脆弱性をシミュレートし、その修正を試みます。

環境構築はこちらの記事から。

https://qiita.com/flyaway/items/4922af5dbaafa1942e88

## 注意事項

本記事では脆弱性をついた攻撃手法について解説しています。

しかし、実際に第三者が運用しているWebサービスなどに対して、勝手に脆弱性の検査をおこなうのは違法行為となる可能性が非常に高いです。無害な検査用文字列を送信しているだけのつもりであっても、意図しない破壊を招いたり、監視システムによって攻撃と勘違いされる可能性があります。

絶対にやめましょう。

参考事例: [脆弱性検査について](https://ww

元記事を表示

セッション管理

### セッション
サーバ内に情報を保存し、異なるページ間で同一のクライアントを認識する仕組みのことです。

### セッション管理
##### 1.クライアントが初めてServletプログラムにアクセスした際、セッションIDが生成されます。

##### 2.生成されたセッションIDはクライアントに返され、保管されます。

##### 3.再びクライアントがServletプログラムにアクセスする際にセッションIDがクライアントから送信されます。

##### 4.Servletプログラムでは送信されたセッションIDにより、同一クライアントかどうかを判断します。
これらの一連の処理はcookieにより管理されます。cookieが使えない環境では、URLリンクでセッションIDを管理することもできます。

| 戻り型 | メソッド | 説明 |
|:———–|————:|:————:|
| HttpSession | getSession( )| HttpServletRequestインタフェースで定義されているメソッドです。セッションオブジェ

元記事を表示

[Android/Java] Jetpack Navigation 画面遷移とFragment間のデータ受け渡し

Android Studio 4.1.3(windows版) での流れとなります

以下の記事のプロジェクトベースでの説明となります

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

Android DeveloperのJetpack Navigationの画面遷移とFragment間のデータ受け渡しの説明は以下です

https://developer.android.com/guide/navigation/navigation-pass-data?hl=ja

https://developer.android.com/jetpack/androidx/releases/navigation

## SafeArgs を追加する
※ 現時点ではandroidx.navigation:navigation-safe-args-gradle-pluginをimplementationでは動作しないようです
※ androidx.navigationのバージョンに合わせて設定してください

“`build.gradl

元記事を表示

文字列を指定文字数で分解し、逆順で出力する

# 目次

[1.はじめに](#1)
[2.リトルエンディアン](#2)
[3.import](#3)
[4.文字列を指定文字数で分解](#4)
[5.逆順に並び替える](#5)
[6.splitを使う場合](#6)

1.はじめに

…主に自分が見直すための記録です…

16進数の文字列データをリトルエンディアンにしたかった。

調べると split で正規表現を用いて分解する例が多かったが、今回は
0E0A0D6F0014A55F29
みたいな区切られていない文字列を
[0E,0A,0D,6F,00,14,A5,5F,29] (配列)
       ↓
295FA514006F0D0A0E (リトルエンディアン文字列)
にしたかった。

2.リトルエンディアン

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/721559/6f8fca4c-a7b9-5260-2513-84d68ba64e85.png)

元記事を表示

OTHERカテゴリの最新記事