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

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

51歳からのプログラミング 備忘 Android非同期通信のコールバック AsyncTask終了後の処理

# 非同期通信のコールバック

AsyncTaskの処理が終了した後で、何かしたいときに使います。

“`java:MainActivity
public class MainActivity extends AppCompatActivity{

TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);

AsyncCallBack asyncCallBack = new AsyncCallBack();
MyAsyncTask myAsyncTask = new MyAsyncTask(asyncCallBack);
myAsyncTask.execute();

元記事を表示

【メモ】JSUG勉強会 2020その1 Spring x Kotlin

[JSUG勉強会 2020その1 Spring x Kotlin](https://jsug.doorkeeper.jp/events/102390
)に出席した際に取ったメモを共有します。

非常に簡易的ですが、少しでも参考になれば幸いです。

# [KotlinでSpring 完全理解ガイド](https://speakerdeck.com/ntaro/kotlindespring-wan-quan-li-jie-gaido-number-jsug) (@ngsw_taro さん)

## XXを使えばKotlinで簡単にSpring開発を始められる
Spring Initializr
Intellij IDEA(有償版)

## Kotlinでもアノテーションを使ってbean登録やハンドラ定義

Kotlinはデフォルトで継承しないため、serviceクラスにopen修飾子をつける必要がある。
がKotlinのallopenプラグインやkotlin-springプラグインを用いれば、自動でopen扱いしてくれる。

ちなみにSpring Initializrで生成したプロジェクト

元記事を表示

ListとArrayListの違い

#List
こんな感じで作成

“`
List list = Arrays.asList(array);
“`
**※:addメソッド等を使うと、実行時エラーとなる**
arrayを参照しているだけなので、arrayを変更すると、反映される。

#ArrayList
こんな感じで作成

“`
ArrayList arrayList = new ArrayList(Arrays.asList(array));
“`
addメソッドが使える
arrayの値を元に新しいインスタンスを作成しているため。独立したオブジェクトとなる。

元記事を表示

HashTree使えますか?

#導入
こんにちは。けちょんです。
**HashTree使ってますか?**
私は今日初めて見ました。
類似のHashSetやTreeMapは使ったことがあるんでないでしょうか。

#HashTreeとは
重複を許さず、addするときにソートして保持してくれるクラスです。
競技プログラミングで役立ちそうな気がするクラスですね。

#使ってみる
##まず、HashTreeにaddするオブジェクトを作成

“`
class Product {
private int id;
private String name;

public Product() {
}

public Product(int id, String name) {
this.id = id;
this.name = name;
}

public int getId() {
return this.id;
}

public String getName() {
return this.name;
}

}
“`
idとnameのフィールドと、コンストラクターと、アクセッサーを作成

元記事を表示

OpenShift(okd 3.11)のDevOps環境でのJava/Mavenのビルド時間をNexus3で短縮する

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/a2ebc74f-28ed-ac86-8154-42b0ac3f7c5a.png)

# 要は(TL;DR;)

– OpenShift環境下のDevOpsパイプランで、Maven/Javaのビルドが毎回遅いなあ、と思ってる方
– OpenShift上にOSSのリポジトリー・マネージャー **Nexus3**をデプロイすれば、Mavenプロキシーとなってキャッシュが効くのでビルドが速くなりますよ!

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/d384fa0b-0eee-5b40-0054-7628ebb25797.png)

# 困ったこと
こんにちわ!石田です。今OpenShiftのDevOpsのデモ環境を作ってるんですが、Java/Mavenのビルドが遅いです。。具体的にはソースの変更をトリガーにJavaアプリケーションをO

元記事を表示

SpringBootでapplication.propertiesを扱うクラスのテストをする方法(求:ご指摘)

# application.propertiesの設定値の確認テストをしたかった
application.properties内の設定値がバインドされているかを確認するだけのテストだがテストクラスの作成に頭を悩ませてしまった。

参照用のメモ書きとして文字に起こしておく。

#### 対象としたapplication.properties内の設定値

“`application.properties

api.mealinfo.mealNameLength=40
api.mealinfo.calorieLength=5
“`
####上記設定値を扱うクラス

“`java:APIMealInfoProperties.java
@Component
@ConfigurationProperties(prefix = “api.mealinfo”)
public class APIMealInfoProperties {

private int mealNameLength;
private int calorieLength;

public int getMealNa

元記事を表示

まったくの未経験からJava Silverを2か月で取得した話。

#まえがき
プログラミング初心者どころかパソコンにほぼ触った経験すらなかった僕が、2か月でJavaの基礎からJava Silverの資格を取るまでのお話をしようと思います。
もし、これから同じ資格を取ろうと思ってる方に参考にしていただけたらな、という想いで書きました。
ただ、本当に記事を書くのも、プログラミングも、パソコンも、なにもかも初心者で、稚拙な文章ですが、広い心で読んでいただければ幸いです。

#自己紹介
始めに、自分がどんな人間かを簡単にご説明すると、2020年現在、23歳の男です。高卒で、半年前までは、フリーターでして、ずーと飲食店でアルバイトしていました。パソコンはたまにネットを見るのに使ってました。それも、スマホがあればパソコンなんていらなくね?とかマジで思ってたりもして、Excelとかも最近ようやく使えるようになった超パソコン素人人間です。

そんな僕が、プログラミングを始めたいと思ったきっかけは、単純にカッコイイ!と思ったからです。「プログラマー」とか「SE」って肩書きめっちゃカッコイイなとか思ってたり、たまにカフェとかでパソコン開いてカタカタやってる人見て、俺もカ

元記事を表示

IntelliJ IDEA のAndroid プロジェクトの設定でハマったので備忘録

## 環境
Mac OSX 10.14.6 Mojave
IntelliJ IDEA ULTIMATE 201903
マルチモジュールでのプロジェクト

### 問題1 Network ErrorでActivateされない
IntelliJをUpdateしようが、Activateさせようがいきなりネットワークエラーでつながらなくなる現象が起きた

### 対応
Macを再起動する
私はなぜか2回再起動することでこの現象を解決することができました。
なので一発で解決できるかは不明です。

### 問題2 `ClassNotFoundException: JAXBException` でcompileエラー

java9以降をsdkとして設定しているとJava9からJAXBExceptionが消えているので
compileエラーが発生する.

### 対応

1.ProjectTabに切り替え → Project rootを右クリック → Open Module Setting → Project Structure → dependenciesタブに切り替え → Module SDKをJ

元記事を表示

メモリ使用が激しすぎる言語はゲームに向かない

ゲームによく使われる言語としてC,C++,C#,lua,Python,(JavaScript,Java,アセンブリ)等がありますが、メモリ使用量の多い言語とゲームに使われていない言語が物凄い強い相関関係があります。
一番メモリを使うであろうScalaはJavaの2~3倍(※要出典),F#はC#の1.5倍(※要出典),JavaはC#の2倍程(※要出典)メモリを食うと風の噂で聞いたことがあります(VMはメモリ消費が激しい傾向にある)。Pythonやluaはメモリ消費量比較的多いと言われるスクリプト言語の中ではメモリを殆ど消費しないC/C++より数倍程度で、ゲームのスクリプトや簡易処理に多用されます。C#はUnityで使われている。JavaやF#は2Dとかなら普通に使われている。他の言語は(特にメモリ使用量が多ければ多いほど)マイナー。

– 大体のメモリ使用量目安(比較/ネット記事より参照)
– Scala **459,000** ≪=ヤバスギィ
– Java 170,000
– F# 127,500
– C# 80,000
– PHP 60,000
– JavaScript

元記事を表示

通常のクラスからラムダ式に変形していく

#導入
こんにちは。けちょんです。
**皆さん、ラムダ式使ってますか?**
私はこれから初めて使います。ガチ素人です。

#以降、変形させていく

##クラス度100%
まず、Ruunableインターフェースを実装したクラスは以下ですね。

“`
class lambda implements Runnable {
@Override
public void run() {
System.out.print(“OK”);
}
}
“`
インターフェース通りに、runメソッドを実装して終了です。

##クラス度60%,ラムダ度40%
“`
Runnable runner = new Runnable() {
@Override
public void run() {
System.out.print(“OKっぽい”);
}
}; // OKっぽい
“`
ここでクラスが匿名化され、インスタンス化と同じ場所で定義されています。
最後の”;”は省略するとコンパイルエラーになります。誰か教えてください。

##クラス度40%,ラムダ度60%
型推論等により、冗長な部分

元記事を表示

javaでAtCoder Beginner Contest 153を解く

AtCoder Beginner Contest 153お疲れ様でした!
[公式ページ](https://atcoder.jp/contests/abc153)

今回の自分の書いたコードは[こちら](https://github.com/ko-flavor/atcoder-java/tree/master/atcoder/src/abc/abc153)
結果はA-DまでAC、FがTLEでした。

以下簡単に解説します。

##[問題A](https://atcoder.jp/contests/abc153/tasks/abc153_a)

HPがHのモンスターを攻撃力Aで攻撃して、何回で倒せるかを求める問題。
H/Aがちょうど割り切れるときの処理に注意すれば大丈夫なはずです。

##[問題B](https://atcoder.jp/contests/abc153/tasks/abc153_b)

数字(必殺技の攻撃力)を足し合わせて、相手のHPに届くかどうかを求める問題。
シンプルな足し算でいけるはずです。

##[問題C](https://atcoder.jp/contests/a

元記事を表示

Java11でJakarta EE 8でダークウェブのSNSを作りたい

こんにちは。

今は私は暗号通貨をやり取りするダークウェブ系のSNS作りに挑戦しています。
https://github.com/nandaka-furari/DarkwebSNS
仕様等はREADMEに書いているので具体的にはここを参照してもらうとして、概要の設計としてはJava 11とJakarta EE 8を使います。
でもさっぱり開発の仕方が分からないのでJakarta EE のアプリを作る方法のサンプルとしてこの記事を発展させていきたいので編集リクエストをどんどん送ってください。

## Eclipse
今ではJakarta EEはEclipse Foundation(EF)傘下になっているのでEclipseで開発する前提の記事にしたいです。Payara Toolsの使い方などがあればいいかな。

## 終わりに
GitHubの方にもイシューやREADMEへのコミットやらガンガン送ってください。(基本READMEを発展させていけば何とかなりそうな気がする)
そして既存のJava EEやJakarta EEのQiita記事をここに集約できればと思います。

元記事を表示

各言語で、継承の挙動はかなり違うという話

## はじめに

この記事は、私が色んな言語でひたすら似たようにクラス継承を書いてみて、実際にどんな値が出力されるのかを調査した結果をまとめたものです。時には既知の言語でも「こんな文法あったんだ」と思いながら、時にはHello Worldから頑張りました。

まとめるのが大変だった割に誰得?という内容ですが、同じことが気になった人のために置いておきます。
いやでも新しい発見があるかもしれないのでとりあえず読んでみてください。
意外と面白い結果になったかもしれません。

## 調べた言語

– 静的型付け
– Java (Corretto 1.8.0_232)
– C# (3.4.0)
– C++ (11.0.0)
– Scala (2.13.1)
– Kotlin (1.3.61)
– Swift (5.1.3)

– 動的型付け
– Python (3.7.1)
– Ruby (2.6.5)
– PHP (7.1.32)
– JavaScript (node v12.14.1)

– オプショナルな静的型付け
– TypeScript (3

元記事を表示

UTF-8のBOMを削除するには?(BOMの説明もします)

業務でファイル操作に関連する処理を実装した際に、BOM付きのUTF-8で書かれたファイルから
BOMだけを削除する方法を色々と調べているうちに実装できたのでまとめてみます。
(対象となるプログラミング言語はJavaなので他の言語では書き方や仕様が異なる可能性があります)

## そもそもBOMとは?
BOMを削除する方法を説明する前に、BOMとは何なのか説明します。

BOMとはざっくりいってしまえば**Unicode系の文字コードで書かれたファイルの先頭に追加される目印となるバイト文字列**です。
UTF-8では**0xEF 0xBB 0xBF**の3バイトで表現されます。
BOM付きのファイルをメモ帳などでは視認できませんが、コンピュータ内部ではファイルの先頭にBOMと呼ばれるバイト文字列が追加されたものとして読み込みます。
では、目印とは何の目印なのかということですが、

1. Unicode系の文字コードで記述されていることを示すためのもの
2. UTF-16、UTF-32においてエンディアンと呼ばれるビットの並び順を指定するためのもの。並べる順序によってビッグエンディアン(上

元記事を表示

Javaで文字列を整数・小数に変換(データのキャスト)するメソッドについて

##データ型の変換(データのキャスト)

####文字列等→整数・小数への変換

・整数へ変換するメソッド
Integer.parseInt(変数名);

・小数へ変換するメソッド
Double.parseDouble(変数名);

“`
String text = “123”

System.out.println(text); // 123 (文字列としてのそのまま出力)
System.out.println(Integer.parseInt(text)); // 123 (整数に変換)
System.out.println(Double.parseDouble(text)); // 123.0 (小数に変換)
“`

元記事を表示

型の違う値を型変換して別の変数に代入する方法

##文法

####データ型 変数名 = (データ型) 代入される側の変数名

※型指定/型キャストをする場合、右辺のデータ型を括弧で括る必要があります。忘れがちなので注意(戒め)。

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

double rand = Math.random(); * 100;

//変数に変数を代入
int number = (int)rand;

System.out.println(number);
}
}

“`

##おまけ

###変数定義と同時にMath関数を代入することも可能
その場合は、()でくくる。

“`
int game_num = (int)(Math.random() * 10 + 1);
System.out.println(“ゲームの本数は” + game_num + “個”);
“`

元記事を表示

Javaと第一級関数 -関数型インタフェースをこえて-

# 概要
Java8で関数型プログラミングまわりの機能が強化された。

– 関数型インタフェース
– メソッド参照
– ラムダ式
– ストリームAPI

関数型インタフェースやメソッド参照が、どのような機能なのかについてまとめる

# Goal
こんなソースコードが読めて使えるようになる。

“`java
public static void main(String[] args) {
List strings = Arrays.asList(“bravo”, “”, “charlie”, “alpha”);
strings.stream()
.filter(s -> !s.isEmpty())
.map(s -> s.substring(0, 1).toUpperCase() + s.substring(1))
.forEach(System.out::println);
// Bravo
// Charlie

元記事を表示

Toast 文字大きく表示させたい Android Studio  メモ

ボタン押すと3枚の画像が順に切り替わり
それぞれ違うToastテキストが出るアプリを作った。

package com.example.rswitch;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//boolean ブーリアン  trueかfalseが入る型
//isShowing 画面に表示されているか判定

//画像re1,re2 は画面に表示されているとコンピューターに判定させる
boolean re1IsShowing = true;
boolean re2IsShowing = true;

public void fade (

元記事を表示

VSCodeにThymeleaf用のスニペットを作ろう

#はじめに
VSCodeでのユーザースニペットの記事は調べればあるが、Thymeleaf用のものがなく、VSCodeのプラグインでもいい感じのものがなかったため備忘録的に書いておこうと思う。
※検証環境はmacOS Mojave 10.14.16
## スニペットとは
直訳すると「切れ端」や「断片」となるが、要は呼び出したいものに名前を付けて簡単に呼び出せるようにしたものということ。
#早速試してみる
「Shift+Command+p」を押すと、画面上部に検索画面が出てくるので`user`などと打つと「Preferences: Configure User Snippets」が出てくるからこれを選択。
スクリーンショット 2020-01-17 6.17.10.png
次に、言語選択画面が出てくるので今回は`html

元記事を表示

Spring Boot/SecurityでOAuthクライアントを実装してみた(LINE連携)

####1. 認可サーバ設定(LINE)
LINE Developers:
https://developers.line.biz/ja

・Channel Type: LINE Login
・App Types: Web app
・Callback URL: http\://localhost:8080/redirect (認証後のリダイレクト先URL)

####2. クライアント実装(Spring Boot/Security)
2-1. 依存ライブラリの追加

“`xml:pom.xml

org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-sta

元記事を表示

OTHERカテゴリの最新記事