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

JAVA関連のことを調べてみた2020年08月27日
目次

Kubernetes利用時のJavaアプリケーションリソースの制限に関するよくある誤解

このシリーズの最初の記事では、**Kubernetes**を使用する際のJavaアプリケーションリソースの制限について、よくある誤解のいくつかを見ていきます。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/kubernetes-demystified-restrictions-on-java-application-resources_594108)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

このシリーズの記事では、企業のお客様が[Kubernetes](https://www.alibabacloud.com/ja/product/kubernetes)を使用する際に遭遇する一般的な問題のいくつかを探ります。

[コンテナ技術](https://www.alibabacloud.com/ja/product/container-service)がますます洗練されるにつれ、アプリケーションプラットフォームの基盤としてDockerとK

元記事を表示

【初心者】java開発ツールをcloud9 開発環境にインストールする。

# はじめに

AWScloud9の導入編はこちら
https://qiita.com/tu-kun/items/d7b4f1fa19cc93bc5b75

java開発ツールのインストールにあたって、参考にさせていただいた記事等はこちら
https://qiita.com/tu-kun/items/91efb172f7dd7501602e

わかりやすくて、とても助かりました。ありがとうございます。

#この記事ですること
####【目的】
javaを学習するため、javaの開発ツールをインストールする。
※駆け出しの私が、どんな風に調べて作業していくかを逐一書いています。
※<脱線>:個人的な脱線。即スクロール推奨。

####【開発環境】
筆者:駆け出し(プログラミング学習2ヶ月め。元々Ruby、初java)
MacBookpro
cloud9

#下調べ(インストール作業に移るまで)
####【ぐぐる】
 インストール方法をぐぐる。
 キーワードは「java、cloud9」。
 すると、いくつか検索結果が出てきました。

####【何はともあれAWS公式サイト様】

元記事を表示

JavaでポストオブジェクトフォームのOSSへのアップロードをシミュレートする方法

**Alibaba Cloud Object Storage Service(OSS)**は、「バケット」と呼ばれるリソース内にオブジェクトを格納します。Post ObjectはHTMLフォームを使って、指定したバケットにファイルをアップロードします。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/simulate-post-object-form-upload-to-oss-in-java_332241)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#序章
Alibaba Cloud Object Storage Service (OSS)は、クラウド上で大量のデータを保存、バックアップ、アーカイブすることができる使いやすいサービスです。OSSは暗号化された中央リポジトリとして機能し、世界中のファイルに安全にアクセスすることができます。さらに、最大99.9%の可用性が保証されており、グローバルチームや国際的なプロジェクト管理に最適で

元記事を表示

macでandroidアプリの開発を始めるまで

#目次
0.はじめに
1.Android Studioのインストール
2.プロジェクトの作成
3.実機を利用した実行
4.「Error running ‘app’: No target device found.」の対処法
5. おわりに

#0. はじめに
ふとAndroidアプリを作ってみようと思い立ち、やってみたが、つまずいたところがあったのでその記録を残しておく。
言語は「Java」。
普段からスマホがAndroidのものなのでテストでは実機を利用する。

#1. Android Studioのインストール
Androidアプリを開発するためにはまずGoogleが提供している「Android Studio」をインストールする必要があります。
以下のサイトからダウンロードしてください。
http://developer.android.com/sdk/index.html

起動すると「Import Studio settings from:」という今までのバージョンを使うかという質問が出てくるので「Do not import settings」を選択してください。

「Welc

元記事を表示

パッケージ所属JavaファイルのJarファイルの生成及び実行

概要
=
「スッキリわかる Java入門 実践編 第2版」13章 練習13-2,練習13−3に取り組んでいた際に、
パッケージに所属したclassファイルのJarファイル生成とJarファイル実行でつまづいたので、
その際に行ったことを本記事にて紹介したします。

*クラス名、パッケージ名は書籍とは別の名称、ソースコードは書籍よりも簡素なものを例として取り上げております。

環境
=
OS: macOS Catalina 10.15.6
JDK:14.0.1

状況
==

ターミナルにて実行

①パッケージ「hoge」に格納した「Main.java」のJarファイルを生成

“`
//カレントディレクトリを設定
HIrokinoMacBook-Pro:~ user$ cd /Users/user/src/Java/sukiri1/Chapter6/hoge
//jarを生成
HIrokinoMacBook-Pro:hoge user$ jar -cvfm test.jar manifest.txt Main.class
マニフェストが追加されました
Main.classを追

元記事を表示

JavaでXMLファイルから属性と値を取得する

####以下のようなxmlファイルから、fugaタグの属性と値を取得したいとします。

“`xml


example

“`

####以下のように出力したいとします

“`text

id,1
name,tarou
age,20
gender,male

“`

####以下のコードによって出力することが出来ます

“`java:
package example;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedN

元記事を表示

はじめて学ぶjava 【入門】

##javaを初めて学びました

####HelloWorld 文字出力

“`
public class Main {
public static void main(String[] args) {
System.out.println(“hello, world!”);
}
}
“`

出力

“`
Hello World!
“`
System.out.printlnが出力
文字列は””で囲う
おわりには;をつける

####計算方法

“`
public class Main {
public static void main(String[] args) {
System.out.println(“hello, world!”);

System.out.println(“31+31の計算をします”);

System.out.println(31+31);
}
}

“`
出力

“`
hello, world!
31+31の計算をします
62
“`

数式の場合は”で囲わない

####変数の定義と掛け算
“`
public c

元記事を表示

【Java】PaizaのBランク問題を解いてみた

# はじめに
スキルチェック過去問題集(Java編)から`「日別訪問者数の最大平均区間 (paizaランクB相当)」`を解いてみました:blush:
プログラム初心者ですが、アルゴリズムの部分もわかりやすくまとめてみました!
ちなみに筆者は実務未経験のBランクです。。

【問題のリンク】
https://paiza.jp/works/mondai/skillcheck_archive/max_range?language_uid=java

# 目次
– 問題
– 解き方の流れ
– 解答コード

# 問題
>### 問題文
>あなたは、とあるウェブサイトを管理していました。
>ある連続したk日間、このウェブサイトでキャンペーンを行ったのですが、いつからいつまでの期間に行ったかを忘れてしまいました。

>幸い、ウェブサイトを運営していた全n日分のアクセスログが残っており、1日ごとの訪問者数が分かっています。
>とりあえず、連続するk日の中で、1日あたりの平均訪問者数が最も多い期間を、キャンペーンを行った期間の候補だと考えることにしました。

>n日分の訪問者数のリストとキャンペーンの日数

元記事を表示

Javaの3つのBlockingQueuesがもたらす問題を解決する方法

最近、私と私のプログラマーチームは、アプリケーションのリクエスト機構に些細な障害を発見しました。いくつかのチェックの後、その根本的な原因を見つけました。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/learning-through-mistakes-javas-three-blockingqueues_62942)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#障害と診断

アプリケーションの処理要求のためのスレッドプールが一杯になっていたため、追加の要求を処理できませんでした。スレッドをダンプした後、ログ書き込み領域でスレッドスタックがブロックされているのがわかりました。スレッドスタックがログ書き込み領域でブロックされるのは新しい問題ではありませんが、以前はこれは他の何かの結果だと考えていました。したがって、過去の経験に基づいて、問題はログ書き込み領域にはないと仮定しました。

多くのトラブルシューティングを使用し、問題の根本的

元記事を表示

[Java & Kotlin] 複数選択可能なRecyclerViewを作る

##RecyclerViewって機能なにもないよね
僕自身、Android開発をはじめてから1年ほどはListView信者でした。「だって**RecyclerViewって機能なにもないし**、**ListViewの劣化版でしょ?**なんか難しそうで使いづらいし、**生理的に無理**」と思っていたんです。ListViewにはDividerやFastScroll、ChoiceModeだってある。それなのに後継の**RecyclerViewには何も備わっていない**じゃないか!皆さんもそう思っていた時期があったのではないでしょうか。

しかし実際はRecyclerViewのほうが扱いやすいんですよね。これが栄えている理由です。僕自身、ListViewのほうが簡単に実装できるとしてもRecyclerViewで実装してしまいます。昔、**徹夜で必死に**RecyclerAdapterを作る練習をした成果かもしれませんが、後の拡張性を考慮するとRecyclerViewで実装したほうがいいんです。今ではListViewを裏切ってRecyclerView信者になっています。

RecyclerView

元記事を表示

結果の理由が分かるAIで計画最適化「活用イメージ」

著者: 高久 隆史, 株式会社日立製作所

# はじめに
本稿では、「[結果の理由が分かるAIによる計画最適化](https://qiita.com/t-takahisa/items/6cb1287f97a5139bffbc)」で投稿した[Red Hat Decision Manager](https://www.redhat.com/ja/technologies/jboss-middleware/decision-manager)を利用した計画最適化の特長について、具体的なモデルケースと活用イメージを紹介します。
上記記事を読んでいない方は、先に読んで頂くことをお勧めします。

投稿一覧:
1. [結果の理由が分かるAIで計画最適化](https://qiita.com/t-takahisa/items/6cb1287f97a5139bffbc)
2. 結果の理由が分かるAIで計画最適化「活用イメージ」(本投稿)

# モデルケース(機器検査計画)
今回のモデルケースでは、大型機器の年間検査計画を最適化します。

## 背景
次の理由から、人手で実施していた検査計画の立案作業をシス

元記事を表示

【忘備録】Java : 設定ファイルの仕組みを学びながら簡易プロジェクトを作成。

## 記事を通して分かること
・eclipseを使用した簡易プロジェクトの作り方
・サーバーの立て方
・web.xmlファイルの中身

## 前提
・eclipseがインストールされていること
・apache tomcat9 がインストールされていること
・Java : 1.8
・OS : Mac

## サーバーの立て方
##### 1, eclipse起動
##### 2, サーバを立てる
2-1, 「`使用可能なサーバがありません…`」をクリック
2-2, 「`Tomcat v9.0 サーバー`」をクリック
2-3, 完了をクリック
##### 3, 動的プロジェクトの作成
3-1, `ファイル→新規→動的プロジェクト`の順にクリック
3-2, `プロジェクト名`を記入(今回は適当に「tomcat_test」)
(注意)「ターゲット・ランタイム」欄は立てたサーバのバージョンに合わせる。
3-3, 完了をクリック
##### 4, 立てたサーバにプロジェクトを追加
4-1, 立てたサーバを右クリック
4-2, `追加および除去`

元記事を表示

WELD-001408: Unsatisfied dependencies for type Bean with qualifiers @Defaultとなったときの対応方法

– 環境
– Windows10 64bit バージョン1909
– openjdk 11 2018-09-25
– Eclipse IDE for Enterprise Java Developers Version: 2020-03 (4.15.0)
– JSF 2.3.9

# 事象 : Payaraを起動したらエラーメッセージが表示された
“`bash:ダイアログのエラー
cannot Deploy app-name
deploy is failing=Error occurred during deployment:
Exception while loading the app :
CDI deployment failure:WELD-001408:
Unsatisfied dependencies for type HogeBean with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private jp.co.ç.bean

元記事を表示

The lifecycle method [methodName] must not throw a checked exception.となったときの対応方法

– 環境
– Windows10 64bit バージョン1909
– openjdk 11 2018-09-25
– Eclipse IDE for Enterprise Java Developers Version: 2020-03 (4.15.0)
– JSF 2.3.9

# 事象 : Payaraを起動したらエラーメッセージが表示された

“`bash:ダイアログのエラー
cannot Deploy app-name
deploy is failing=Error occurred during deployment:
Exception while deploying the app [app-name] :
The lifecycle method [methodName] must not throw a checked exception. Related annotation information:
annotation [@javax.annotation.PostConstruct()] on annotated ele

元記事を表示

Spring Boot で server.tomcat.use-relative-redirects 設定による相対リダイレクトの挙動を見る

## 概要

– Spring Boot の server.tomcat.use-relative-redirects の設定によって、指定したリダイレクトが Location ヘッダにてどのような値でセットされるか検証する

## 検証環境

– Spring Boot 2.3.3
– Spring WebMVC 5.2.8
– Apache Tomcat Embed 9.0.37
– Java 14 (AdoptOpenJDK 14.0.2)
– macOS Catalina

## server.tomcat.use-relative-redirects の設定

HttpServletResponse#sendRedirect の呼び出しによって生成された HTTP 1.1 以降の Location ヘッダーが相対リダイレクトを使用するか絶対リダイレクトを使用するかを制御する設定。application.properties などで設定できる。

“`properties
server.tomcat.use-relative-redirects=false
“`

true

元記事を表示

色々な言語でファイルIOを競って速度比較

複数のプログラミング言語で約 1GB の CSV ファイルを Read/Write して時間を測定してみました!

# 共通ルール

– どの言語でも同じファイルを使用して確認すること
– ファイルは一行ずつ読み散り、一行ずつ書き込むこと
– OSの差を無くすため、Docker Image は全て base(Ubuntu 18.04 LTS)を使用すること

# まずは結果

|言語|5回実行した平均タイム(秒)|
|:–|:–|
|C-lang|6.2962|
|C++|6.0538|
|C#|17.1798|
|Golang|10.3966|
|Java|21.0840|
|Python|32.6949|
|Ruby|30.7153|
|Scala|21.8364|

やっぱりC/C++がダントツで早い!!
次点でGo言語

# 実装サンプル

5年ぶりくらいにC++書いたので綺麗ではないと思いますが、一番早かったのでサンプルとして載せます。

他の言語でも以下の動作をベースとして実装しました。

– 5回実行した平均時間を計算
– 1行読んで1行書き込む

“`c
#inc

元記事を表示

たったの3秒でJava環境を作る方法

## はじめに
Dockerというソフトウェアを活用してjavaの環境を一瞬で作る方法について解説します。
いくつかのJavaのバージョンをローカルマシンで管理することによってバグが発生。なんてことはこれでおしまいです。

## 作業 
任意の名前のディレクトリを作成します。次にDockerfileとMain.javaをそのディレクトリの中に作成します。
内容は次の通りです。

“`Dockerfile:Dockerfile
FROM openjdk:7
# Dockerfileのあるディレクトリの中のファイルをコンテナに保存する。
COPY . /usr/src/myapp
# 作業ディレクトリを指定する
WORKDIR /usr/src/myapp
# コンテナ内でコンパイルする
RUN javac Main.java
# コンテナで”java Main”を実行する
CMD [“java”, “Main”]
“`

“`Main.java
public class Main {
public static void main(String[] args) {

元記事を表示

javaのvarについて

## javaの変数宣言 var
Java Silverのお勉強の整理メモです・・・

## varの使い方
– SE10から登場
– ローカル変数の型推論
– 右辺の値に応じてデータ型が推論される

“`java

var v1 = “hoge”; //Stringとして扱われる
var v2 = 123; //intとして扱われる
“`

– 変数型推論なので、**宣言だけ**ができない -> 値を代入しないと型の推論ができないため
– そのため、**nullの代入は不可**

“`java
var v3; //これはコンパイルエラー
var v4 = “huga”; //ok
var v5 = null; //これもコンパイルエラー
“`

– 変数の複数宣言ができない

“`java

int i1 = 1, i2 = 2, i3 = 3; //ok
var v6 = 6, v7 = 7, v8 = 8; //コンパイルエラー
“`

– メソッドの仮引数の型に使用できない

“`java

Strin

元記事を表示

【更新中】Java屋さんのためのPython Syntaxチートシート

最近Pythonをはじめました。
が、やりたいことはググると出てくるし、Python3に至ってはオブジェクト指向になってくれたおかげで、だいたいは雰囲気つかめちゃったりするので良いのですが、いざ書いてみると躓くのは文法だったりしますよね?(私だけ?)
だいたいJavaに慣れきってたりすると、Javaだとああ書くんだけど、Pythonだとどう書くんだろ?的な発想になるので、似たようなことを考えてる人のお役に立てれば幸いです。

というわけで、Javaだとこう書いてたけど、Python3だとこう書くんだよ、というのを残しておきます。
始めたばっかりなので、多少考え方とか間違ってるかもしれないけど、そのへんはご愛嬌。ざっくりです。書きながら覚えていくタイプなんで。
気が向いたら更新していくと思います。

## 環境

Python 3.8
Java 8

## 公式のチュートリアル

https://docs.python.org/ja/3/tutorial/index.html

## 公式のユニットテスト(unittest)

https://docs.python.org/ja/3/l

元記事を表示

モノレポでJavaのFWを開発していることに気付いたので運用を考える。

# はじめに
本記事は、JavaのFWを開発するプロジェクトにおいて、モノレポ開発のメリットを享受する為のリポジトリ運用について考える記事です。

# モノレポとは
端的にいって、モジュールを横断してコードを一つのリポジトリで管理しようというリポジトリの運用戦略です。モノレポの考え方として下記の2つがありますが、本記事では**後者**について考えます。

1. 企業のコード全てを1つのリポジトリで管理しようとする考え方
2. プロジェクトのモジュール全てのコードを1つのリポジトリで管理しようとする考え方

# これってモノレポでは?
私の所属するチームでは、JavaのFWを開発しています。FWはいくつかのモジュールから構成されており、それらのモジュールは1つのGitリポジトリで開発されていました。何故こういったリポジトリ構成になったのか、チームに経緯を確認した所、製品として品質保証したい範囲でリポジトリを作成した為とのことでした。
当時、Gitの経験が浅かった私は違和感を抱かなかったのですが、どうやらこういったリポジトリの運用をモノレポと言うらしいので、モノレポ運用のメリットを活かせて

元記事を表示

OTHERカテゴリの最新記事