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

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

【Java】気付きにくいけど恐ろしく遅くなるコード

## 目的
レビューをしていてIntegerだったりintだったりが混ざったコードに出会いました。
オートボクシングで変換掛かるから問題ないかなと一瞬思ったけど、性能面はどうなんだろうと気になってしまったので検証してみたいと思います。

## 検証環境
– Eclipse Oxygen.3a Release (4.7.3a)
– Java8

## 検証用ソースコード
**1.参照型とプリミティブ型が混ざったパターン**

“`java:qiita.java
long begin = 0L;
long end = 0L;

begin = System.currentTimeMillis();

Integer sum = 0;

for(int i = 0; i < 1000000; i++) { sum += i; } end = System.currentTimeMillis(); System.out.println(end - begin + "ミリ秒"); ``` **2.プリミティブ型のみのパターン** ```java:qiita.java long be

元記事を表示

項目57 ローカル変数のスコープを最小限にする

### 前提
java開発歴1ヶ月程度の新人が、Effective Javaを読んで学習した内容をアウトプットするために書いています。自分の解釈を噛み砕いて解説し、初心者が読んでもできるだけ理解しやすい記事を目指しています。

###【ざっくり】
ローカル変数のスコープを最小限にすることで、コードの可読性と保守性が向上し、ミスが生まれる可能性を減らすことができる。

####【悪い例1】
“`java:badPractice1
String hoge = “hoge”;
int fuga;
double piyo = 0.1;

doSomething(hoge);

… //何らかの処理

doSomething(fuga); // fugaの型なんだっけ? 初期値なんだっけ?

… //何らかの処理

{
doSomething(piyo) // piyoの型なんだっけ? 初期値なんだっけ?
}

“`

– 読み手の注意を逸らしてしまう。
-> どのような処理を行っているかを理解しようとしているのに、変数の記憶に脳のリソースを使ってしまう。
– 読

元記事を表示

ゼロから始めるScala (環境構築 mac)

# Scala をはじめよう

## Scala とは?

プログラミング言語の1つ。

「オブジェクト指向」と「関数型プログラミング」の両方の性質を併せ持つ (両方できる二刀流)。

## Scala の「良さ」
* オブジェクト指向と関数型プログラミングの両方を表現できる。
* オブジェクトの「不変性」が意識された設計
* 高いモジュール性
* Java と互換性がある (Java のライブラリを使うことができる)
* 非同期の計算ができる `Future` ライブラリを標準装備
* 並列・分散プログラミングのためのライブラリ `Akka` がある

## インストール on Mac

`Homebrew` を使うのが簡単だと思う。

環境構築は全部こいつでなんとかなる(気がする)。

### 探す

“`console
# scala (本体, しかし前提として Java が動く環境が必要 – 後述)
$ brew search scala
==> Formulae
scala scala@2.11 scala@2.12 scalaenv sca

元記事を表示

ChromeDriver 通知バー消す方法 (Java)

# Selenium (ChromeDriver) での「自動テストソフトウェアによって制御されています]という通知バーを削除する方法

|![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531595/0f385dee-a0d5-dd2b-7480-ca7250710894.png)|
|:–|
この表示邪魔ですよねー。

通知バーを消すと、デベロッパーモードを無効にしますか?とポップアップが出てしまい、
なかなか方法が見つかりませんでしたが、合わせ技で通知バーを消すことができたので記事に起こしておきます。

“`
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption(“excludeSwitches”

元記事を表示

[Java]メソッド

#メソッド定義
`public static void メソッド名(){処理;}`

“`java
public static void hello() {
System.out.println(“hello world”);
}
“`

#オーバーロード
`引数の型、個数を変えることで可能`
同じメソッド名で引数が違う

“`java
public static void hello() {
System.out.println(“hello world”);
}

public static void hello(String name) {
System.out.println(“こんにちは” + name + “さん”);
}
“`

元記事を表示

R50のリープフロッグ ~ 西暦2020年の今、偏差値50のプログラマを目指すお前が学ぶべきこと

#タイムスタンプ
初回投稿日:2020年6月26日
最終更新日:2020年6月27日

#対象読者

この投稿は、ちょうど20年ほど前にソフトウェアエンジニアとしてのピークを迎えていた当時30歳くらいの自分自身に宛てて書いた手紙です。

したがって、この内容は個人的なものであり、くたびれた老兵の戯言であり、ピントがずれ時代を捉えきれておらず、網羅的でもなければ他者には通じないアナロジーに溢れていて、多くの方にとって役に立たないばかりか、酷い勘違いや致命的な間違いを含んでいるかもしれません。

とは言うものの、現在の私のように、今もなお 20 年前の知見や思考パターンが生活のベースになっている方、新しい知識や用語は押さえているもののそれが今一つ自身の血肉になっていないと感じている方、最近の技術トレンドを押さえたいけれど情報の洪水に溺れそうになり何から手を付ければいいかわからないという方にとっては、あるいはこの記事が役に立つようなことがあるかもしれません。

[](////////////////////////////////////////////////////////////

元記事を表示

JConsoleでJMXに接続してもすぐ切断される(泣)

JMXにjconsoleを使って接続しても一瞬繋がるけどすぐ切れる現象に遭遇

openjdk14.0.1 のjconsoleから接続していたけれど
openjdk12.0.2 にしたら切れなくなりました。

ちなみに環境は
サーバー(JMX) CentOS7 + JDK1.8.0_211
クライアント(jconsole) ubuntu20.04

元記事を表示

【Android9.0 Pie Java】チャットアプリで横スワイプ→ダイアログ表示→削除を実装する

## 環境
Android9.0 Pie Java

## はじめに
最近Android Javaでチャットアプリを作成していまして、LINE風のチャット一覧削除を実装しました。
RecyclerViewのリスト表示と削除機能の記事は結構ありますが、

`横スワイプ→ダイアログ表示→削除
MainActivity + 複数のFragment構成`

の実装例は日本語の記事では見つからなかったので共有させて頂きます。
(ベストプラクティスかは怪しいので参考程度にお願いします。。ご指摘大歓迎です!)

こんな実装ができます
![243e5a5ccb079ad0d385004d69a930ba.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/3f39bf3a-7993-5e79-1c9c-6af03bf1d8f4.gif)

## 完成品URL
非常にコンテンツが長いので、完成品を取り合えず手に入れたい方はこちらからどうぞ。
https://github.com/yuta-matsumoto/

元記事を表示

Rubyを学習後にJavaを勉強した人が感じた主な二つの言語の違い Part1

Javaの文法を勉強し始めRubyと比べてややこしいルールが多いのでメモしておく。

###出力

“`
System.out.println “Java”; //これでRubyのPutsと同じ役割 コードの終わりに;を打つ
“`

###変数とデータ型
Javaで変数を定義するためには、
①変数にいれる値のデータ型を指定する、②変数の名前を決める、
という2つが必要。

“`
int number = 7;

String name = “佐藤”; //String(文字列)型はのsは大文字

double syosu = 3.14;
“`

###キャスト(強制的に型変換)

“`
int number1 = 7;
int number2 = 2;

System.out.println(number1 / number2); //結果は3
System.out.println((double)number1 / number2); //結果は3.5
“`

###真偽値 boolean型

“`
System.out.print

元記事を表示

日本語を表示する Servlet の簡単な例

次の表示を出すサーブレットです。
![servelet_jun25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/d7f4fab1-e73f-2e94-72da-015fa1dae0f3.png)

フォルダー構造
/var/lib/tomcat9/webapps 以下に次のフォルダーを置きます。

“`text
$ tree /var/lib/tomcat9/webapps/hello
/var/lib/tomcat9/webapps/hello
└── WEB-INF
├── classes
│   ├── HelloWorld.class
│   ├── HelloWorld.java
│   └── Makefile
├── lib
└── web.xml

“`

“`jave:HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.serv

元記事を表示

Javafxで簡単なゲームを作ってみた① ”幸せを探そうゲーム”(未完成版②)

#Javafxで簡単なゲームを作ってみた①
##”幸せを探そうゲーム”(未完成)②
![happy_unhappy_game2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527593/ece74ea6-1523-e130-043f-2d04d5765320.gif)

“`
import javafx.ui.*;
import javafx.ui.canvas.*;
import java.util.Date;
import java.lang.Math;
import java.lang.System;
import timer.Sound;

public class Timer {
private attribute elapsed: Number;
public attribute seconds: Number;
public attribute minutes: Integer;
public attribute hours: Integer;
public attribute cou

元記事を表示

Java(Spring)でMapperを使う

#やったこと

Java(Spring)でMapperを使ってデータベースを扱ってみました。

#準備

jarファイルをダウンロードするなりしてMapperが使えるようにする。
Spring Tool Suiteを使っている場合、プロジェクト作成時にMyBatisを選択しましょう!

#フォルダ階層

![スクリーンショット 2020-06-25 18.59.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/e21ab019-92be-bb3a-d68e-648438dc63a7.png)

なんだか恥ずかしいのでプロジェクト名は隠しております。

#コード
##mapperクラスにはこんな感じで書きます。

“`java

@Mapper
public interface UserMapper {
@Insert(“INSERT INTO users (userId, username, password) VALUES (#{userId}, #{username}, #{pa

元記事を表示

MyBatisで動的SQL文を作る【複数のワードで検索できるようにする】

#やりたいこと
キーワードを

+ 全角スペース→半角スペースに変換(編集①)
+ 2個以上の半角スペース→1個の半角スペースに変換(編集②)
+ 先頭と末尾のスペースを削除(編集③)

したうえで、カテゴリーと併せてキーワードをOR検索(スペースで区切った**いずれかのキーワードが含まれているものを検索**)したい。

#環境
使用OS-Windows10
使用ツール-Spring Tool Suite 4 4.6.2
テンプレートエンジン-Thymeleaf
フレームワーク-mybatis

#結果(xmlファイルの記述)
“`xml

OTHERカテゴリの最新記事