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

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

MacでJavaを利用するときのメモ(2021年3月)

いつも何も考えずbrew install openjdkとかでインストールしていたが、いろいろ奥が(闇が)深いらしいのでメモ。

>javaをAndroid以外の開発で利用することはほとんどないので謎ワールド。

## brew install openjdk

### インストール

brewコマンドで簡単インストール。

“`bash
brew install openjdk
“`

が、どうやらkeg-onlyとうものであるため/usr/local/bin等にリンクが自動で張られない。
通常brew installすると/usr/localCellarに実体がインストールされ/usr/local/binにシンボリックリンクが設定され、PATHが通りますが、key-onlyでは実体だけのようです。

>2021年3月現在、15.0.2がインストールされるみたい。

### PATHの設定

そのため、.zshrcに

“`bash
export PATH=”/usr/local/opt/openjdk/bin:$PATH”
“`

必要に応じて

“`bash
expo

元記事を表示

Java言語について調べてみた

今回は、一番人気と言っても過言ではない言語(1991年〜現在にわたり非常に人気な言語)**「Java」**について調べてみた。

#Javaについて
・Java仮想マシン(JVM)で動くため、どのような環境でも動かすことができる。
・オブジェクト指向言語である。
・Androidアプリやゲーム開発、WebアプリやWebサイトまで万能にこなす。
・有名なゲームの「マインクラフト」もJavaで作られている。
・セキュリティ面も優れている。
・みずほ銀行や三菱UFJ銀行などのシステムを開発できるくらい優れている。

##メリット
**実行速度の速さ**。理由はJavaがコンパイラ型言語であること。
**ライブラリがとても充実している**。よって開発もしやすい。
**プラットフォームに依存しない**。これは非常に大きなメリット。
**言語として高性能**。その反面、学習難易度が高め。

 
 

##デメリット
**JVM**が入っていないパソコンだと機能しない。
**マイコン**にはJavaは組み込めない。(マイクロコンピュータの略で主に家電に使われている。)
**習得にはかなりの時間

元記事を表示

servletRequest+forward+リクエストスコープ+calcEX

中途半端初心者の忘備録

/CalcControllerからWEB-INF/jsp/firstView.jspへフォーワード

“`CalcController.java
@WebServlet(“/CalcController”)
public class CalcController extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dsp = request.getRequestDispatcher(“WEB-INF/jsp/firstView.jsp”);
dsp.forward(request, response);
}
“`

WEB-INF/jsp/firstView.jsより/firstNu

元記事を表示

Java Silver 覚えられんやつメモ

試験6日前に、2か月前にキックオフしたプロジェクトの基本設計フェーズに突然ぶち込まれ、試験前日の土曜日の出勤が確定して勉強時間の確保ができないこと間違いなしな状態になってしまったので、今まで勉強してきて見たことあるけどイマイチ頭に入ってきてなかった部分をざっと見返せるものを作って直前に詰め込もうと思いました。

Java SE11 Silverの受験を控えている方の参考にもなれば幸いです。
(黒本のまとめ問題を参考にしている&自分用なので、順番とか整理してません。)

## String型の同値判定
– ==はインスタンスの参照が同じかどうかを判定している。
– リテラルとして記述した文字列は、基本的に使いまわされる。
– `intern`メソッドはすでにメモリ上にあるString型オブジェクトへの参照を戻す。

“`java
public class Main {
public static void main(String[] args) {
String s1 = new String(“java”); //新規オブジェクト
String s2 = “java”; /

元記事を表示

レスポンスデータを加工する(Stream)

※前回記事[レスポンスデータを加工する(拡張for文)](https://qiita.com/kilalabu/items/a1879315d292647cfcb5)のStream版です。
違いだけを知りたい人は「データを加工」までジャンプしてください。

## はじめに
レスポンスデータって全要素使うわけではなかったり、ネスト構造になってたり、結構見にくいことが多いと思います。
ということで取得したレスポンスを加工(フィルター, マッピング, ソート)して、自分好みのデータクラスを作成してみました。

## ゴール
フィルター(抽出):likeCountが5より大きいもの
マッピング(結合):title,body,likeCount,name
ソート(並び替え):likeCountで降順

|加工前|加工後|
|—-|—-|
|![スクリーンショット 2021-03-16 22.02.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/f5eee0bb-25e2-cbf1-add

元記事を表示

EasyBuggyでクロスサイト・スクリプティング(XSS)脆弱性を再現し、それを修正する

# 概要

[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)を利用して、クロスサイト・スクリプティング(XSS)脆弱性をシミュレーションし、その修正を試みます。

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

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

# 再現する

EasyBuggyを起動し、`脆弱性 > XSS(クロスサイトスクリプティング)`を選択します。

![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3571/9e2928b8-03cd-0a5a-c67f-de4c3bf7e443.png)

画面の指示に従い`>tpircs/<;)eikooc.tne

元記事を表示

SpringBoot + MySQL でTodoリストを作る!CRUDの実装(Update編)

#はじめに

前回はフォームを用意してTodoの新規登録機能を実装しました。

今回は、**「blooeanの値を変更してMySQLのデータを更新する」**をゴールとしています。

SpringBootを学び始めた方、復習をしたい方に向けて学んだ事を共有します。

##開発環境

“`
OS: macOS Mojave(バージョン 10.14.6)
“`

“`
$ java -version
openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
“`

“`
$ mvn -version
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 15.0.2, vendor: N/A, runtime: /usr/local/Cellar/openjdk/15.0.2/

元記事を表示

初心者のためのオブジェクト指向

#オブジェクト思考とは?

###いかに効率よく開発を行うかを突き詰めた考え方
例え)新入社員研修の時に御社はこういう考えのもとで働いてもらいますとういう研修を受けるようにオブジェクト指向も何かに基づいた考え方で動いています。

そしてオブジェクト指向には主に4つの考え方があります。1つ目は設計、2つ目はカプセル化、3つ目は継承、4つ目はポリーモーフィズムと言います。

#1 設計
基本的にオブジェクト指向は物と物の関係性を考えて作っていきます。このプロセスを設計と言います。この設計を効率よく無駄なくできるかがオブジェクト指向の最も重要な考え方と言えます。

#2 カプセル化
現在開発しているプログラムが他のプログラムから干渉されないようにするために基本的に決まった設計図で書いていくという考え方です。

例え)自動車の設計をしているときに横から自転車の設計図をもらっても困りますよね?このように自動車の設計をしている時は自動車関連の設計図のみでやるという考え方です。

#3 継承
一口に自動車と言ってもバスやスポーツカーやトラックなど種類は様々です。その時に自動車という基本的な設計の

元記事を表示

プログラミング初心者が基礎基本を地道に身に着ける日記(Java_ABC188編)

※本稿はAtCoderProblemsのBeginnerContest,A~C問題をJavaを用いて地道に解いていく人間の観察日記です

###目次
– まえがき
– AtCoder Beginner Contest 188に挑戦
– A問題
– B問題
– C問題
– 感想
– お世話になったサイト(参考に使用)

##まえがき
 [前回の記事(ABC194)](https://qiita.com/e2vee/items/11adc8b387290ebf0bdd)
 ふぁっきんコロナのせいでなかなか研究室仲間(主に同期)に会うことができなかったんですけども、久々に会えました。そこで、研究室仲間と一緒に問題を解いたのですが、同期のうちの一人は水色コーダーだそう。

 ..圧迫面接、開始ッ!!!

##AtCoder Begginer Contest 188に挑戦
###[A問題](https://atcoder.jp/contests/abc188/tasks/abc188_a)
“`188A.java:
import java.util.*;

pub

元記事を表示

Java PowerPointでグラフにデータラベルを追加

データラベルによって、データ系列またはその個々のデータポイントに関する詳細情報が表示されるので、グラフが理解しやすくなります。今回はSpire.Presentation for Javaを使ってPowerPointでグラフにデータラベルを追加する方法を説明します。

下準備

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

f:id:lendoris:20210317120248p:plain

元記事を表示

Java PowerPointでグラフに傾向線を追加

PowerPointでいろいろなグラフを作成することができます。今日はSpire.Presentation for Javaを使ってトレンドグラフを作る方法を紹介します。グラフに傾向線を追加すると、視覚的なデータの傾向を示すことができますね。

下準備

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

f:id:lendoris:20210317120248p:plain

元記事を表示

Cause: cannot assign instance of java.util.Collections$EmptyList to field java.lang.StackTraceElement.moduleVersion of type java.lang.String in instance of java.lang.StackTraceElement

昨日まで動いていたサービスが急に動かなくなり、ググっても良い感じの情報がでなかったので備忘録兼ねて記事作成しました。

# 発生した事象
IntelliJでGralde実行したところ以下のエラーが発生

“`
Cause: cannot assign instance of java.util.Collections$EmptyList to field java.lang.StackTraceElement.moduleVersion of type java.lang.String in instance of java.lang.StackTraceElement
“`

# 原因
裏で別のサービスが動いており、それとポートがかぶっていたため発生

# 解決方法
* 裏で動いてるサービスを停止する
* 動かすサービスで使うポートを変更する

# 参考元
[IntelliJ has stopped printing stack traces when my app fails
](https://stackoverflow.com/questions/64530844/int

元記事を表示

レスポンスデータを加工する(拡張for文)

## はじめに
レスポンスデータって全要素使うわけではなかったり、ネスト構造になってたり、結構見にくいことが多いと思います。
ということで取得したレスポンスを加工(フィルター, マッピング, ソート)して、自分好みのデータクラスを作成してみました。

## ゴール
フィルター(抽出):likeCountが5より大きいもの
マッピング(結合):title,body,likeCount,name
ソート(並び替え):likeCountで降順

|加工前|加工後|
|—-|—-|
|![スクリーンショット 2021-03-16 22.02.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/f5eee0bb-25e2-cbf1-addf-6f8de6535538.png)|Java 16新機能まとめ

Java 16が2021/3/16にリリースされました。

http://mail.openjdk.java.net/pipermail/jdk-dev/2021-March/005188.html

[Java SE 16 Platform JSR 391](http://openjdk.java.net/projects/jdk/16/spec/)
[JDK 16 GA Release](http://jdk.java.net/16/)

APIドキュメントはこちら
[Overview (Java SE 16)](https://cr.openjdk.java.net/~iris/se/16/latestSpec//api/index.html)

MacやLinuxでのインストールには[SDKMAN!](https://sdkman.io/)をお勧めします

Oracle OpenJDK以外に無償で商用利用できるディストリビューションとしては、次のようなものがあります。

– [AdoptOpenJDK](https://adoptopenjdk.net/?variant=ope

元記事を表示

Java学習 基礎編 ~ 配列と繰り返し処理 ~

Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。

* * *
#### 配列とfor文
下記のように、配列**names**の要素をすべて出力するために、for文を用いて記述すると、配列の要素の値を簡単に一覧表示できる。

“`Main.java
String names[] = {“おおた”, “すだ”, “ささき”};

for (int i = 0; i < 3; i++) { System.out.println(names[i]); // iが0、1、2の間、繰り返される。 } ``` #### lengthとは 配列には、要素の数を数える「**length**」という機能が備わっている。 使い方は「**配列.length**」というように、ドット「.」でつなぎ、配列の要素数を気にする必要がなくなるメリットがある。 上記例をlengthを用いて記述する。 ```Main.java String names[] = {"おおた", "すだ", "ささき"}; for

元記事を表示

Android Studio パズルアプリ制作(動画有り)

今回はパズルアプリを制作しました。
YouTubeに作っている動画をアップしています。

“`xml:strings.xml

PuzzleApp
Puzzle Game
ゲームを始める
パズルの大きさ設定
縦:
横:
整数値を入力してください

元記事を表示

SpringBoot + MySQL でTodoリストを作る!CRUDの実装(Create編)

#はじめに

前回は、DBから取得したデータを画面に表示させるところまで実装しました。

![スクリーンショット 2021-03-13 11.27.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/9783d90d-4cf3-95d7-9f51-5921892caabe.png)

今回は入力フォームと送信ボタンを用意して、**「送信ボタンが押された時、フォームで入力された値をMySQLに登録する」**をゴールとしています。

SpringBootを学び始めた方、復習をしたい方に向けて学んだ事を共有します。

前回の[Read編はこちら]()。

##開発環境

“`
OS: macOS Mojave(バージョン 10.14.6)
“`

“`
$ java -version
openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit

元記事を表示

Java学習 基礎編 ~繰り返し処理 for文 ~

Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。

* * *
### 繰り返し処理
簡単にいうと、
『**一定の処理を自動で繰り返し行う処理**』
のことを繰り返し処理と言う。

#### for文

前回学習した「**while文**」と同じ、繰り返し処理のひとつ。
記述方法は下記になり、**条件がtrueの間、{}内の処理を繰り返す**ことができる。

for文の方が、while文よりシンプルに書けるイメージかも。

“`Main.java
for (変数の初期化; 条件式; 変数の更新) {
繰り返す処理;
}

// while文と比較してみましょう。

while (条件) {
繰り返す処理;
}

//————————————————-

// 例 for文
for (int i = 1; i <= 5; i++) { System.out.println(i); } // 例 while文 in

元記事を表示

EasyBuggyとEasyBuggy BootをEclipseから同時に開発・デバッグできるようにするまで

# EasyBuggy / EasyBuggy Bootとは

メモリリーク、デッドロック、JVMクラッシュ、SQLインジェクションなど、バグや脆弱性の動作を理解するためにつくられたバグだらけのWebアプリケーションです。Apache 2.0ライセンスで公開されています。

EasyBuggyは[基本的な技術のみが使われています](https://t246osslab.wordpress.com/2017/03/14/easybuggy-%e3%81%ae%e3%83%88%e3%83%aa%e3%82%bb%e3%83%84/)が、EasyBuggy Bootは[Spring Bootなどの新しい技術が使われています](https://t246osslab.wordpress.com/2017/08/27/easybuggy-boot%E3%81%AE%E3%83%88%E3%83%AA%E3%82%BB%E3%83%84/)。

# やりたいこと

[EasyBuggy](https://github.com/k-tamura/easybuggy/blob/master/READM

元記事を表示

djUnit pluginに新しいASMを適用した話

# いまさらで恐縮です
いまさらEclipse、しかもdjUnitの話もどうなのかと思いますが、新規開発はないとしても、djUnitで単体テストされているシステムをメンテナンスする場合とか、それを新しいjavaに移行させる場合とか、そういった用途では、今でもdjUnitが必要となる場面があるのかもしれないと思い、新しいEclipseで、新しいjavaでdjUnitが動くよう修正しました。
以前から、ちょいちょい作業していたのですが、やっと公開できるレベルになったので公開します。

# 機能追加は特になし

これと言った機能追加はしていませんが、まずは新しいEclipseでも動作するようにしたversion0.8.6と、バイトコード処理ライブラリのASMを新しいものに入れ替えたversion0.9.0を公開します。
また、Eclipse 3.7(Indigo) – 4.6(Neon)で動作するものと、4.7(Oxygen)以降で動作するものは、分けて公開しています。

[djUnit plugin for Eclipse version 3.7 – 4.6](https://piecem

元記事を表示

OTHERカテゴリの最新記事