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

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

【Java】メソッド

# メソッドの呼び出しと定義
:sunny: 複数の文をまとめ、それをひとつに処理として名前をつけたもの。

“`例.java
public class Main {
public static void main(String[] args) {
System.out.println(“先生:みなさ〜ん、おはようございま〜す♪”);
student();
System.out.println(“先生:今日も1日お勉強がんばりましょう♪”);
}

public static void student() {
System.out.println(“生徒:おはようございます”);
}
}
“`

public static〜始まる
public static void main(String[] args) { 〜 }

public static void student() { 〜 }
の 2 件あります。
これがいわゆるメソッドです。
順を追って説明しますね:smile:

3 行目
System.out.print

元記事を表示

【struts】 jsp間の値受け渡し方法

strutsフレームワークによるjspの値受け渡しのやり方2パターン書き残しておきます。

# ① <>で取得する方法

“`java:addition.jsp
<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>



足し算



元記事を表示

Cloud Endpoints Frameworkで任意のステータスコードを返す

## 概要

GAEで使用できるCloud Endpoints Frameworkは、デフォルトだとなぜか500系をすべて503で返すような仕様になっており、500と503を分けたいときなどに迷惑な動きをします。
コードを読んだ結果、この挙動を変更出来そうだったので備忘録的として残しておく。

## サーブレットの設定を追加する

結論から言うと`web.xml`に`enableExceptionCompatibility `というパラメータを設定すると、設定したステータスコードでレスポンスを返す事ができるようになる。

“`xml

EndpointsServlet
com.google.api.server.spi.EndpointsServlet

enableExceptionCompatibility<

元記事を表示

初心者から始めるJava、論理演算子・条件演算子

追記 2020/3/6 @shiracamusさんより大幅な編集リクエストをいただきましたので、そちらに差し替えさせていただきます。
(旧記事は本当に自分用の備忘録として、限定投稿の方に残しました)
追記 2020/3/6
条件演算子の末尾にセミコロンが必須と書いた内容について、ご指摘いただいたので訂正。いつもありがとうございます。

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

#環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#論理演算子
**論理演算子(Logical Operator)**とは、前回挙げた条件や関係演算子を使いつつ、より複雑な条件の記述を行う場合に用いられる演算子。今回は「オペランド(項)をいくつとる演算子なのか」を書く。オペランドを2つとる演算

元記事を表示

JavaとC# とJavascriptのクラスの書き方の違い

#今回はJavaとJavascript(ES6)とC#のクラスの書き方の違いについてあげてみようと思います。
##実際は複雑かもしれませんがクラスでぐらつく人って結構多いと思います。
昔の自分がそうだったんですが、いきなりJavaのプログラムを書こうとしたものでクラスがわからず困ったことがありました。
クラスという概念はメソッドの上のプログラムを拡張していると思っていただければ簡単にプログラミングができると思います。
実際いうとJavascriptのクラスはJavaやC#に比べて拡張がまだ粗いと思います。

“`javascript
//Javascript(ES6)

import {hogehoge} from ‘./hogehoge’;

class hogehoge{
static hogehoge(height, width){
this.height = height;
this.width = width;
}
}
“`

“`javascript

//Javascript

import ‘hogehoge’ fr

元記事を表示

Jackson で Java Enum 列挙型と JSON をシリアライズ・デシリアライズするサンプルコード

## 概要
– Java Enum 列挙型と JSON 内の値を相互変換する
– Jackson の提供する抽象クラス JsonSerializer と JsonDeserializer を使う

## 動作確認環境

– Java 11 (AdoptOpenJDK 11.0.6+10)
– Jackson Databind 2.10.3
– Gradle 6.2.1
– macOS Catalina

## サンプルコード

“`java
package com.example.humansex;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.dat

元記事を表示

【Spring】BeanUtils.copyPropertiesの落とし穴

# BeanUtils.copyProperties
Springには[BeanUtils.copyProperties](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/BeanUtils.html#copyProperties-java.lang.Object-java.lang.Object-)という便利なメソッドが用意されている。
一方のBeanからもう一方のBeanへ、同じ名前のフィールドの中身をコピーしてくれるメソッドだ。第一引数がコピー元、第二引数がコピー先になる。
クラスが別々だったとしても、同じフィールド名があればコピーは可能である。

**`Book` クラス**

“`java
public class Book {

String code;

String name;

int price;
}
“`

**使用例**

“`java

Book book1 = new Book();

book1

元記事を表示

初心者レベルでも気づく、JavaとGoのswitch文の記述の違い

# 基本的な`switch`文の記法

“`java:Java
switch rank {
case 1:
System.out.println(“金メダル!”);
break;
case 2:
System.out.println(“銀メダル!”);
break;
case 3:
System.out.println(“銅メダル!”);
break;
default:
System.out.println(“メダルを獲得できませんでした”);
break;
}
“`

“`go:Go
switch rank {
case 1:
println(“金メダル!”)
case 2:
println(“銀メダル!”)
case 3:
println(“銅メダル!”)
default:
println(“メダルを獲得できませんでした”)
}
“`

Javaの`switch`文の場合、暗黙的にfall-throughであ

元記事を表示

未経験エンジニアが覚えておきたい用語

概要

IT業界に飛び込んで約半年、いろいろな技術を勉強してきました。
ただ、これやったけどなんだっけという事が多くなったので、備忘録として基本的なことを書いていきます。

JAVA
——–
・オーバーライド
 →スーパークラスで定義されているメソッドをサブクラスで上書きする
・オーバーロード
 →引数や戻り値が異なるが名称が同一のメソッドを定義する
・ポリモフィズム
 →同じ操作でも扱う対象によって振る舞いが異なる仕組み
・継承
 →あるクラスを基に新しいクラスを定義する
・オブジェクト
 →クラスを複数定義しクラスから生成したオブジェクトを利用。
 【特徴】 再利用性が高い、仕様変更に強い
・抽象クラス
 →抽象メソッド1つ以上定義したクラス 
 【特徴】 abstractを指定、メソッドを定義できる、インスタンス化出来ない、実装は持たない
・カプセル化
 →publicやprivateなどのアクセス修飾子を適切に設定し、クラスに対するアクセス制限を行う
 【特徴】 クラスのアクセスが統一されるため、独立性が高まる、バグを未然に防げる、クラスの変更が簡単
・Array

元記事を表示

@Builder(Lombok)の使い方

#Lombokの@Builderアノテーションとは?
– JavaのClassに@Builderを付与することで、Builderメソッドを生成してくれる。
– 引数のながーいコンストラクターを用意しなくてすむ。

“`Java
import lombok.Builder;

//呼び出される側のJavaClass
@Builder
public class Employee {
private String name;
private int syainId;
private int age;
private String position;
private String status;
}
“`

“`Java
//Builderを呼び出す側
Employee employee = Employee.builder()
.name(“Kohei Sato”)
.syainId(101)
.age(32)
.position(“developper”)
.build();
“`

#初期値

元記事を表示

Android studio でのメモ

#Android studio
・テキストの編集
編集したいテキストをクリックし、画面右側のattributes内の項目から編集する。

##java
・値等を扱う場合、値の種類を明確にする必要があり、型に入れる必要がある。

| 型の名前 | サイズ | 値の範囲 |
|:–|:–|:–|
| byte | 1 バイト | -128 ~ 127 |
| short | 2 バイト | -32768 ~ 32767 |
| int | 4 バイト | -2147483648 ~ 2147483647 |
| long | 8 バイト | -9223372036854775808 ~ 9223372036854775807 |

入れる値が小さいからといって、積極的に byte や short を使う必要はない。
普通の整数には int、非常に大きな数になることがある場合には long、という程度の使い分けでいい。
更に、小数を扱う場合には、浮動小数点数を表す型を使う必要がある。

| 型の名前 | サイズ |
|:–|:–|
| float | 4 バイト |
| doubl

元記事を表示

SSHJ使用時のSLF4Jに関する警告メッセージを抑止する

## やりたいこと
SSHJを使用した時に出力される警告メッセージを抑止することです。

## 問題概要
SSHJのSSHClientクラスをnewした時に警告メッセージが出力されます。

## 問題詳細
SSHJのSSHClientクラスをnewした時に以下の警告メッセージが出力されます。

“`
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
“`

警告が出力されても、SSHJは問題なく使用できます。
たぶん、ログ出力ができないだけなのではないかと思います。

## 解決策
まずは素直に、警告メッセージに示されているサイトを参照します。
すると、

– “org.slf4j.impl.StaticLoggerB

元記事を表示

Gsonを使ってみた

#Gsonとは
そのまま[引用](https://github.com/google/gson)します。
>Gson
>Gson is a Java library that can be used to convert Java Objects into their JSON >representation. It can also be used to convert a JSON string to an equivalent Java object. >Gson can work with arbitrary Java objects including pre-existing objects that you do not have >source-code of.

>There are a few open-source projects that can convert Java objects to JSON. However, most of >them require that you place Java annotations in your classes

元記事を表示

初心者から始めるJava、if文・switch文

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

#環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#条件判断文
状況に応じた処理を行う場合、Javaでは**「条件(Condition)」**という考え方で処理の前提をとらえることになる。日常生活で使う条件と同じと考えていいが、Javaにおける「条件」は、**TrueかFalse**どちらかの値を持つものを指す。
条件判断文は、**「条件」の値に応じて処理を行う文**であり、条件の値を境に処理の内容を分けて用意することができる機能である。

  • if文
  • もし~であるならば(でないのなら)、〇〇する。
    そうでないならば(else)、△△する。

  • switch文
  • もし、〇〇の値が●●ならば、◎

元記事を表示

React Native vs. Ionic – A head-to-head Comparison in 2020

In this article, we are going to look at an intense comparison between Ionic and React Native development frameworks. At the end of this article, you will be all clear about what framework you should use for your development projects.

click here to read morehttps://www.positronx.io/react-native-vs-ionic-head-to-head-comparison/

元記事を表示

Javaのコレクション入門

[こちら](https://yk0807.com/techblog/2020/03/05/java%e3%81%ae%e3%82%b3%e3%83%ac%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e5%85%a5%e9%96%80%ef%bc%8b%ce%b1/)のブログ記事をQiitaに投稿したものです。

# 0.前置き
Javaに限らず、プログラミングではデータをまとめておくのに配列だけではどうにもうまくいかないことが多々あります。そこでデータ構造が重要になってくるのですが、そのあたりの表現方法は言語によって様々です。

C++ならvectorとかlistとか標準ライブラリのコンテナが用意されていて、(あまり経験ないけど)C#だとLINQというものを使うようです。PHPだと配列でかなりのことが出来たりします(その分使い方には慎重さを要する)。
Pythonだとリスト型やタプル、辞書などを用途に応じて使い分ける感じですね。

# 1.コレクションフレームワークとは
さて、Java。Javaでは、コレクションフレームワークというものを使います。コレクショ

元記事を表示

[Java8]streamを使ってint型の配列を降順ソートする

# 概要
– 勉強中にひっかかったところのメモ
– Integer型だと使えたけど、int型の降順だと、Comparatorが使えなかった。
– 結論は、boxedを使えばできるようだった。

# サンプルプログラム
– 「int型配列を使って、次の数字を降順に並び替えて出力しなさい」みたいな問題

“`java
import java.util.Arrays;
import java.util.Comparator;

public class Main {
public static void main(String[] args) throws Exception {

// 入力
int[] numArray = {4, 3, 2, 5, 6, 7, 3, 2, 1, 9, 7, 8, 10, 6, 4, 3, 5, 8, 9};

Arrays.stream(numArray)
.boxed()
.sorted(Comparator.rev

元記事を表示

Java6アプリからSSHJを使用してSSH接続する

## やりたいこと
Java6でコンパイルした自作アプリから別マシンに、[SSHJ](https://github.com/hierynomus/sshj)ライブラリを使用して、SSH接続することです。
以前は[JSch](http://www.jcraft.com/jsch/)ライブラリを使用して実現しようとしたのですが、[こちらの記事](https://qiita.com/sanoa/items/86c9e9efb5358601b25b)に書いたように上手くいかなかないので、JSchライブラリからSSHJライブラリに変更して実現しようとしています。

## 環境
### 接続先
– Ubuntu 16.04 LTS
– OpenSSH 7.2p2

### クライアント
– Windows 8.1
– 自作アプリ(Java6で開発)
– [SSHJ](https://github.com/hierynomus/sshj)

## サンプルコード
SSH接続時にパスワード認証を行うサンプルはたくさん見つかると思いますが、鍵認証(パスフレーズあり)を行うサンプルが少なかったように思えた

元記事を表示

【Java】配列

#配列
:sunny: 複数のデータをひとまとめにする。変数のセットのようなもの。

“`例.java
public class Main {
public static void main(String[] args) {
String fruit1 = “りんご”;
String fruit2 = “みかん”;
String fruit3 = “いちご”;
String fruit4 = “メロン”;
String fruit5 = “バナナ”;

System.out.println(fruit1);
System.out.println(fruit2);
System.out.println(fruit3);
System.out.println(fruit4);
System.out.println(fruit5);
}
}
“`

上記は果物の種類を表示していくプログラミングです。
これも間違いではないのですが、フルーツの種類を追加していくたびに
変数 fruit の数字が増えていき、

元記事を表示

ブラウザからの先読みリクエスト(Prefetch)はどうやって判定すべきか

# TL;DR
先読みリクエスト(プリフェッチ, Prefetch)はcssだけじゃなくて他のURLにも飛ぶケースがある。
特定のエンドポイントに対して、

– ユーザーのアクションに起因するGETリクエストの件数をより正確に知りたい
– 割と重い処理なので余計なリクエストはなるべく処理したくない

上記ニーズがある場合プリフェッチ対策をした方が良い。

# 経緯
あるWebシステムを開発中、テストサーバーに対してどう考えても意図しないGETリクエストがログに入ってきたため、原因について考えた。
調べたところ、ブラウザバーに何かを入力したりした時にブラウザが先読み(プリフェッチ)処理としてGETリクエストを飛ばすことがあるらしく、そのリクエストに関してはヘッダーに固有の値が設定されるため、それぞれのブラウザの仕様に対して検知処理を実装して対応した。

# 各ブラウザごとのプリフェッチを示すヘッダー

## Chrome(Chromium)
`Purpose: prefetch`
https://www.chromestatus.com/feature/624795967710822

元記事を表示

OTHERカテゴリの最新記事