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

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

Java入門[packageとimport]

前回のメソッドは、同じディレクトリ(ファイル内)のクラスから使用することもできます。

“`java:matome/Main.java
public class Main {
public static void main(String[] args){
System.out.println(Calc.tasukake(3,2));
System.out.println(Calc.hikuwaru(4,2));
}
}

// 10
// 1
“`

“`java:matome/Calc.java
public class Calc{
public static int tasukake(int a, int b){
int tasu = a + b;
return (tasu * 2);
}
public static int hikuwaru(int a, int b){
int hiku = a – b;
return (hiku / 2);
}
}
“`

Main.javaでは出力結果を表示させる

元記事を表示

キャストに触れてみた!

今回はキャストについて説明していこうと思う。

**キャストとは**
型を変換すること。例えばint型をdouble型に変換など。
※int型→整数まで扱える
※double型→整数〜少数まで扱える

整数までしか扱えないものを整数〜少数まで扱えるものに変換するのは?‍♂️
扱える範囲が狭いものから範囲が広いものに変換。
**これを拡大変換という**

コードだと下記のようなものになる。

“`Java
public class Main {
public static void main(String[] args){
double doubleA = 1234.5678;
int intA = 12345;
doubleA = intA;
System.out.println(doubleA);
}
}
“`

3行目でdouble型の変数をdoubleAに代入。
4行目でint型の変数intAに代入。
5行目でintAの値をdoubleAに代入。

では扱える範囲が広いものから狭いものに変換することができ

元記事を表示

正規表現で末尾が一致するのにif文でfalseが返ってくる。

Javaの正規表現を学習しているときに躓いたところがあるので、忘備録として残しておきます。

#やりたかったこと

あるディレクトリにあるファイルのうち、拡張子がpdfのもの(末尾がpdfで終わる文字列)をListに追加していく処理を行いたかった。

ちなみに拡張子がpdfのファイルはファイル名が8桁の整数で構成されているとする。

例:00000001.pdf

上記の処理を行うために以下のようにコードを記述した。

“`Java:Java
File[] files = new File(args[0]).listFiles();

//rcdファイルを保持するためのList
ArrayList pdfFiles = new ArrayList<>();

//配列filesに代入したファイルをfile数の数だけ取得する
for(int i = 0; i< files.length; i++) { String fileName = files[i].getName(); if(files[i].isFile() && fileName.

元記事を表示

安全かつ前向きなバグ修正の手順~新しいメソッドを作り、既存メソッドを非推奨にする~

# はじめに: バグ修正の際に意識するべきこと

バグ修正の際に意識するべきこととは、何でしょうか。
単に「そのバグが直る」ことだけではなく、今後は同じ間違いに陥らないようにすることも含まれるのではないでしょうか。それにより、プログラムの品質が高まり、アプリケーションの価値を高めることにつながります。

本記事では、そのためのメソッド修正の基本的な手順について説明します。

# やりたいこと

バグ修正の際には、下記の3つの要件を達成したいです。

– 問題となっている箇所では、動作を変更し、バグを修正したい
– 問題となっていない箇所では、動作を変更せず、悪影響が無いようにしたい
– 今後追加する箇所では、同じ間違いに陥らないようにしたい

# 解決策

理想的には、バグの原因が含まれるメソッド自体を修正するべきです。
ただし、そのためにはすべての呼び出し元(利用箇所)をリストアップすることが必要となる場合があります。
メソッドがすでに広く使われてしまっている場合、この解決策は現実的ではありません。

すべての呼び出し元をリストアップしての調査が現実的ではない場合、下記の手順で対応す

元記事を表示

macでflutter開発始めようとしたら思った以上にエラー出てきて時間かかった話。

## そもそもこの記事は何?
mac環境でflutterの開発を始めようとした際、手順を記した記事に従って実行していったのだが、つまづいた部分が多々あった。
都度調べながら実行するとそれなりに時間がかかってしまったので、解決方法の記事と一緒に、大まかな手順をまとめた。

## 方針
以下のページの手順に従って進めていく。

https://qiita.com/oekazuma/items/92e9bae4268fea107efa

https://zenn.dev/kboy/books/ca6a9c93fd23f3/viewer/5232dc

https://www.flutter-study.dev/getting-started/install

この記事では、具体的な手順や詳細の記述は省く。
詰まった部分とその解決方法を列挙的に記述していく。

##手順

### 1. まずflutterをインストール。
問題なくインストール完了。
### 2. flutter doctorを実行し、足りないものを確認。

“`
Running “flutter pub get” in f

元記事を表示

近年のソフトウエア技術のトレンドレポートまとめ(随時更新)

#概要
情報サイトInfoQでは、様々なトピックがテクノロジー採用ライフサイクルのどこにあるかをレポートしている。
近年の技術動向を知るきっかけになるので、記事にリンクをまとめる。

[Wiki:テクノロジー採用ライフサイクル](https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E6%8E%A1%E7%94%A8%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB)
[テクノロジー・ライフサイクルとは](https://www.nsspirt-cashf2.com/entry/2018/09/24/201/)

下記がトレンドレポートの一例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156594/7ee7f5c0-04c4-e1d3-1f99-83e85dfe517b.png)
「ソフトウェア

元記事を表示

ksnctf #15 Jewel

#Jewel
Jewel:宝
https://ksnctf.sweetduet.info/problem/15

問題にはapkファイルが置いてある.apkファイルはandroidアプリのパッケージでただのzipファイルらしい.解凍したら以下のよう構成になっていた.

“`
C:.
│ AndroidManifest.xml
│ classes.dex
│ resources.arsc

├─META-INF
│ CERT.RSA
│ CERT.SF
│ MANIFEST.MF

└─res
├─drawable-hdpi
│ ic_launcher.png

├─drawable-ldpi
│ ic_launcher.png

├─drawable-mdpi
│ ic_launcher.png

├─layout
│ main.xml

└─raw
jewel_c.pn

元記事を表示

Java入門[メソッド]

今回はメソッドについてまとめます。

以下のような計算プログラムを作ったとします。

“`csharp:Keisan.java
public class Keisan {
public static void main(String[] args){
int a = 4;
int b = 2;
int c = 6;
int d = 3;
System.out.println(a + b);
System.out.println(a – b);
System.out.println(a / b);
System.out.println(a * b);
System.out.println(c + d);
System.out.println(c – d);
System.out.println(c / d);
System.out.println(c * d);
}
}
“`

`System.out.println()`が乱立しています。
計算プログラムとしては成り立ちますが、冗

元記事を表示

Android Studioのチェック付きListViewでスクロールするとチェックの状態が変わってしまう(解決)

#チェックの状態が変わってしまう

まず、スクロールするほどのチェックを追加したとして、それでスクロールしたらなぜかチェックの状態が変わってしまうのです。

↑のように、アイテム1がチェックされていない状態でスタートして、

↑のように、アイテム1にチェックを入れます。
【解説付き】Java標準APIだけで画像処理(1) – チャネル入れ替え –

#はじめに
Javaの標準APIだけを使って基本的な画像処理を実装していきます。
簡単ではありますが、必要な用語などの解説もつけていく予定です。

進めていくにあたり「画像処理100本ノック!!」を参考にさせて頂きました。

https://github.com/yoyoyo-yo/Gasyori100knock

[←前記事 (0) 準備編](https://qiita.com/Sigmay/items/772570a9ab5dfc32f6c3)
次記事→ (2) 現在準備中

#チャネルとは?
一般的なデジタル画像はRGB(赤、青、緑)の3色から構成されています。
詳しく知りたい方は光の三原色で調べると良いかと思います。

要するに、ほとんどのカラー画像はRGBの3層から構成されているということです。
この各層のことを画像処理ではチャネルと呼びます。

なお、ここでは説明しませんが、アルファチャネルという透明度を表す層も使用することがあります。
その場合、チャネル数は4層となります。

#画素値とは?
デジタル画像は複数の点(画素)の集まりで構成されています。
デジカメやスマホのカ

元記事を表示

Javaのエラー「エラー: この文字(0x92)は、エンコーディングwindows-31jにマップできません」を直す

#JavaをVScodeで記述し,実行する際のエラーを解消した備忘録(CodeRunnerを利用している方向け)
###エラー: この文字(0x92)は、エンコーディングwindows-31jにマップできません
このような不快なエラーメッセージが出た.
これはどうやらfilename.javaの中に全角文字が記述されている場合発生するようだった.filename.javaはUTF-8で保存されていた.
####UFT-8ではなくShift-Jisで保存すると問題なく同じ動作で実行される(解決策の一つ)
個人的にUFT-8を使いたかったので,どうにかしてそのまま動くようにする.
このとき,使うコーディングに特にこだわりが無い方は,.javaの規定コーディングをShift-Jisに変更することで解決すると思います.
同様のエラーを起こしている人を見つけ対処法が解説されていたのでそのとおりにしてみても消えないが,ターミナルで「javac -encoding UFT-8 filename.java」とすると正常に動作する.
####CodeRunnerが元凶
これらから,コンパイルにエラーが発

元記事を表示

Rubyを用いた逆数和のコーディングテスト

#某プログラミングスクールに通っていた転職生の備忘録

どもお久しぶりです!最近転職活動に注力している転職生です。

今回は、僕が受けたコーディングテストで少し厄介だなと思ったコーディングテストの一部を

紹介していきたいと思います!

では早速いきましょう!!

##指定の値になるまで逆数を足していくプログラム

はてはて、どういったものか。ズバリ、1/1 + 1/2 + 1/3 ・・・

と繰り返していき、足した数がある数になるまで繰り返すというプログラムテストです!

んで、そのある数になったタイミングで、逆数、つまり分数の母数(下の数)がいくらになっているのか

答えを出すといったような問題です!個人的にめんどくさくて、Rubyでの答えがあんまり載ってなかったので

参考になればなと思います!

##プログラムコード(答え)

“`rb
total = 0
num = 0
while total < 15 num += 1 total += (1.0 / (num)) end puts total puts num ``` 以上が今回の逆数和を求めるコードになります

元記事を表示

Spring boot × postgres をHerokuへデプロイしてみる。(gradle編)

# はじめに
Herokuを使い始めて、色々とデプロイを試しているかなの忘却録です。
spring-boot(gradle) × postgresのでもアプリを作成し、Herokuへのデプロイ方法を記述しています。

基本的には色々な方が挙げているものと似通っていますが
postgresの設定ファイルをgitignoreするとherokuへpushされず少し困ったのでその解決策なども書いています。

※デモアプリのベースやHerokuの初期設定は、前の記事で上げたものを流用しています。
>[graldeのSpring BootアプリケーションをHerokuへdeployしてみる](https://qiita.com/Takeuchi713/items/01f022cc24db8150763d)

# 環境
– windows 10 Home
– java 11
– spring-boot 2.3.5
– gradle 7.1.1 (gradlew)
– heroku/7.56.1 win32-x64 node-v12.21.0
– spring jpa 2.5.3

# ソース
[

元記事を表示

【Java Silver】 関数型インターフェイス、ラムダ式対策

###目的
現在、Java Silverの取得に向けて勉強中です。関数型インターフェイス、ラムダ式関係の問題の理解に苦しんだので重要ポイントをまとめました。本記事が同じような目標を持った方に少しでも役にたったら幸いです。

###ラムダ式とは

関数型インターフェース:実装が必要なメソッドを一つだけもつインターフェースのこと。

“`java
public interface calcSum{
public abstract int sum(int num1, int num2);
}
“`

ラムダ式:関数型インターフェースを実装する際に使われる式のこと。

通常、上記のCalcSumインターフェイスを実装し、利用する場合、以下のようにインターフェイスを実装し、実装したクラスをインスタンス化して利用します。

“`java

//実行用クラス
public static void main(String []args){
        calcSumImpl sum = new calcSumImpl();
int answer = sum.calcSum(5

元記事を表示

【Java】二次元Map: キーと値のペアを全て取得する

#Mapとは
Mapとは、***キーと値のペアをリスト形式で保持するコレクションのこと***である。
取り出したい値のキーを指定することでその値を取得することができるが、Mapに格納されている全てのキーと値を取り出すにはどうしたらいいのだろうか

#一次元Map: キーと値のペアを全て取得する

“`java:MapSample1.java
package sample;

import java.util.HashMap;
import java.util.Map;

public class MapSample1 {
public static void main(String[] args) {

Map map = new HashMap<>();
map.put(1, “aaa”);
map.put(6, “bbb”);
map.put(3, “ccc”);

for (Map.Entry entry : map.entrySet()) {
System.out.println(

元記事を表示

なぜ拡張for文は普通のfor文より速いのか?

# はじめに
昔書いた記事を眺めていたら、「[JavaでよくつかうCollection実装クラスの仕組みと特性](https://qiita.com/frost_star/items/8a5d711f9090f0e24f51)」の記事が、「[collection型のクラスであるlinkedListに関するランダムアクセスの遅さという課題への取り組み](https://qiita.com/ninoko1995/items/c4e84194f0e48caa6d68)」という記事で参考にされていました。ありがとうございます!
こちらの記事では、LinkedListで作成した処理について、for文と拡張for文で実行時間を比較しており、拡張for文のほうが圧倒的に早いという結果が出ています。
今回は、この拡張for文についてなぜ普通のfor文よりも高速か、というところを解説していきたいと思います。

# 拡張for文とは何ぞや?
そもそも拡張for文とは何か?
コレクション(ListやSetなど)の要素を繰り返し取り出して、何かしらの処理を行うときなどに使用する構文です。
例えば、Listに格

元記事を表示

【Java】BufferedImageの簡単な使い方

#はじめに
Javaにおいて標準機能で画像処理をしようとする場合、BufferedImageを用いることになると思います。
Javaはそもそも画像処理向きの言語ではないですし、OpenCVなどのライブラリを用いた方が簡単に処理できます。
しかし、ここではあえてBufferedImageの基本的な使い方を記しておこうと思います。

#画像の生成
コンストラクタを呼び出すだけです。
実際に動かす際にはwidth(幅)やheight(高さ), type(タイプ)に任意の値を入れてください。
ただし、typeは若干曲者なので、公式ドキュメントに目を通すことをお勧めします。

“`Sample.java
var bi = new BufferedImage(width, height, type);
“`

#画像の読み込み
ImageIOクラスを用いることで簡単に実装できます。

“`ImageUtil.java
public static BufferedImage read(String filename) {
try {
re

元記事を表示

CodeSignal – sudoku2にチャレンジ

コーディングしなさすぎてコーディングを忘れたエンジニアがコーディングを思い出すためにコーティングします。
今回は、アメリカのコーデイング練習サイトCodeSignalの問題「sudoku2」を解いていきます。
サイトによると、この問題はApple、UBERの面接で出されたことがあるようです。

##問題
9×9マスの数独を表す、以下のような2次元配列が与えられます。

“`
grid = [[‘.’, ‘.’, ‘.’, ‘1’, ‘4’, ‘.’, ‘.’, ‘2’, ‘.’],
[‘.’, ‘.’, ‘6’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘.’, ‘1’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘6’, ‘7’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘9’],
[‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘

元記事を表示

eclipseでJDK Mission Control(jmcプラグインを導入)を利用してみる

#目的
Javaのパフォーマンスチューニングを目的とし、以下ツールを利用して計測したデータを元にボトルネックとなる箇所の分析を行えるようにするため、実施した手順を残しておきます。
今回はeclipseから実施できることを主目的としています。
(eclipse以外での実行、プロファイリングレポートの分析等についてはまた余力を見て記事にできたら、と思います)

– JMC(JDK Mission Control)
– JFR(JDK Flight Recorder)

#記載範囲
本記事ではeclipseで「Mission Control」の使ってみるため、プラグインとして導入してプロファイリングレポートを確認するところまでを記載します。

#前提条件
– エディション:Windows10 Pro
– eclipseバージョン:Version: 2021-06 (4.20.0)
– JDK Mission Control Plug-ins for Eclipse:バージョン8.0.1

#プロファイリングツール
JDK11より以前では、JDK Mission Control(以降JMC)は

元記事を表示

Javaで簡易Webブラウザを作る(JavaFX WebView)

# 簡易Webブラウザを作る
昔の記事だけど、Javaでかなり本格的なWebブラウザを作れる[らしい](https://nompor.com/2018/06/09/post-3893/)ので、私も作ってみる。

# ブラウザを表示させる
参考元のソースで、「[戻る、進むを実装してみる(前のページ、次のページ)](https://nompor.com/2018/06/09/post-3893/#p5)」をまずは写経する。
(その時に、ファイル名/パッケージ名は任意に変えている。)

この時に、Mavenを使ってJavaFXを読み込もうとして少し苦労した。(わかってしまえば難しいことではなかった。。。)

“`xml:pom.xml

元記事を表示

OTHERカテゴリの最新記事