- 1. 【10分で分かる】Java8からJava15まで
- 2. 新卒1年生のJavaGold合格体験記
- 3. 原子の特徴を計算するプログラムを作成してみた
- 4. 【Java】正規表現 matchesメソッド使い方
- 5. [Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる
- 6. Javaで学ぶアルゴリズム 第1弾:漸化式
- 7. Scannerクラスnext(),nextLine()使い分け
- 8. jCenterで公開していたKotlinライブラリをMaven Centralで公開する
- 9. 【Java】Comparatorを使ってListをソートする方法
- 10. 【Java】AtcorderのABC-191に参加しました。
- 11. MacBook Pro ARM版のHomeBrew関連インストール
- 12. jCenterが閉鎖されるらしいので一旦Github Pagesを野良mavenリポジトリにして待避した話
- 13. テストデータ作成用javaテンプレート
- 14. Selenium 要素を取得できない場合②
- 15. 【Java】日本語が文字化けして???になる
- 16. Eclipse上でのパスと実行した後のパスが異なる理由
- 17. SimpleDateFormatで日付が変な時
- 18. 【Java】 JavaBeans(Form、Entity、Dto)とは
- 19. 「http://java.sun.com/jsp/jstl/core」のタグライブラリ記述子が見つかりません の解決方法
- 20. java oreore[メモ書き]
【10分で分かる】Java8からJava15まで
本記事は、[Philipp Gysel](https://philipp-gysel.medium.com/)氏による「[From Java 8 to Java 15 in Ten Minutes](https://medium.com/swlh/from-java-8-to-java-15-in-ten-minutes-f42d422a581e)」(2021年1月18日公開)の和訳を、著者の許可を得て掲載しているものです。
#【10分で分かる】Java8からJava15まで
![Image for post](https://miro.medium.com/max/700/1*DVBOCJfWxma4DL7HHvTV3w.png)
>Java 8からJava 15までの道のりには、朗報がたくさんだ。
##はじめに
この記事ではJava 7以降に追加された素晴らしい新機能を紹介します。2020年秋にリリースされたJava 15まで、Javaのバージョン毎に大きな改善点を見ていきます。Javaは今や、**ラムダ式**、**関数型プログラミング**、`var`による型推論、単純な
新卒1年生のJavaGold合格体験記
#はじめに
2021年1月、*Oracle Certified Java Programmer, Gold SE 8*(通称 **JavaGold**)に合格したので体験記を書きました。![キャプチャ – コピー.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488859/e98b4027-90d8-9f58-9457-b9754f687ef2.png)
###なぜこの記事を書いたか
理由は簡単です、ミルクボーイです。「いま、合格体験をいただきましたけども。」
「**こんなん、なんぼあってもいいですからね。**」はい。
情報の新規性には欠けますが、あればあるだけいいだろうということで書きます。
あとは、私自身が受験時に他の方の体験記を読んで合格イメージを掴んでいたので、そんな記事の一つになればよいかなと。###この記事の読み方
ファクトベースで [勉強開始時のスペック](#勉強開始時のスペック) と [勉強時間と方法](#勉強時間と方法) を書いたうえで、主観となる [合格の秘訣]
原子の特徴を計算するプログラムを作成してみた
#はじめに
分子の記述子計算ソフトウェアについては様々な情報があるが、原子の記述子計算についてはあまりないため自力で実装し、githubに登録してみた。#環境
– JDK 11
– CDK 2.2#対象記述子
## CDKに搭載されている以下のもの
– EffectiveAtomPolarizability
– StabilizationPlusCharge
– SigmaElectronegativity
– PiElectronegativity
– PartialSigmaCharge
– PartialTChargeMMFF94
– AtomDegree
– AtomValance
– AtomHybridizationVSEPR
– AtomHybridization## その他
論文等から独自に実装してみたもの– longestMaxTopInMolecule
– 分子内の2つの原子間の結合の最大数(分子全体で同じ値)
– highestMaxTopInMolecule
– その原子から見て分子内の他の原子との結合の最大数
– diffSPAN
【Java】正規表現 matchesメソッド使い方
Javaを勉強していく中のでメモ代わりです。
matchesメソッドの使い方についてメモします。
文字列のチェックなどに使えるメソッドとのこと。“`Main.java
public class Main {
public static void main(String[] args){
String name = “Abcd1234”;
CheckrName checkName = new CheckrName ();if(checkName.isValidName(name)){
System.out.println(“Success”);
}else{
System.out.println(“Failed”);
}
}
}
“`
“`CheckName.java
public class CheckrName {
public boolean isValidName(String name){
//1
[Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる
#Realmってかっこ良さそう!なんそれ?編
普通、クラスで宣言された文字や数値はアプリ(画面)を開く度に初期化されます。
なので、アプリで特定のデータを保存しようと思ったら、データベースを使う必要があります。
データベースは、アプリを利用している時だけでなく、消した後も保存されるのです。そのデータベースの一種が、Realmというわけです。
ちなみに、今回使うRealmはローカルデータといってアプリ内でデータを保存することができるのですが、アプリ自体をアンインストールしてしまったら、保存されたデータを使うことはできないのでそこだけは注意です。
#Realm使っちゃう編
早速使ってみます。今回は、本当にシンプルに文字を保存して、それを取り出すだけのシンプルな実装でいきます。データベースと言っても、箱みたいなもんですね。それと、正確さに欠けている部分アリの自信があるので、優しく指摘してくれると幸いです。それと、Fragmentでの実装すまぬ。######使うための準備
“`gradle
//appの方ね
plugins {
id “kotlin-android”
Javaで学ぶアルゴリズム 第1弾:漸化式
# #Javaで学ぶアルゴリズム < 漸化式 >
##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第1弾として漸化式を扱う.##漸化式
漸化式は高校数学で習ったとおり,$n$番目を$(n-1)$番目を表すものである.これは,繰り返し数が大きくなったときのオーバーフローを防ぐ.漸化式においては,**0次は既知でなければならない**.####例1: nCr
“`math
\left\{
\begin{array}{ll}
\ _nC_r= \frac{n-r+1}{r}\ _nC_{r-1}& ( \geq 0) \\
\ _nC_0= 1& (x \lt 0)
\end{array}
\right.
“`イメージ図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/4cc96e00-eb1e-fe9d-92b0-
Scannerクラスnext(),nextLine()使い分け
**パターン①**
【input】
first
second
【output】
first“`java
Scanner scan = new Scanner(System.in);
String firstWord = scan.next();
//next()は文字のみをスキャンする。改行を無視
System.out.println(firstWord);
//output:firstString secondWord = scan.nextLine();
//改行もスキャンする
System.out.println(secondWord);
//output:ないも起こらないように見える
//input時、Enterを押すため、その「\n」が入って何も出力されない
“`**パターン②**
【input】
first
second
【output】
first
second“`java
Scanner scan = new Scanner(System.in);
String firstWord = scan.next();
//next()は文字のみをスキ
jCenterで公開していたKotlinライブラリをMaven Centralで公開する
**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**
jCenterが閉鎖するってことなので、jCenterで公開していたKotlinのライブラリをMaven Centralに登録することにしました。やり方はわかりやすく解説している記事がたくさんありますが、Kotlin特有のところで詰まったりしたので自分なりにまとめてみようかと思います。
やり方はいくつかあるらしいのですが、Sonatype経由で登録するのが簡単らしいです。
作業に当たり以下の記事を参考にさせていただきました。 :pray:
– [Maven Central Repository への公開手順(Gradle版)](https://blog1.mammb.com/entry/2020/02/19/090000)
ほとんど同じ内容なのとこっちの方が丁寧
【Java】Comparatorを使ってListをソートする方法
#はじめに
本記事ではJava 8 以降可能となった、Comparatorを使ってListをソートする方法を備忘のためにアウトプットします。#単項目でソートする
“`java:文字列長でソート
ListplayerList = Arrays.asList(“Keisuke Honda”, “Shinji Kagawa”, “Marcus Tulio Lyuji Murzani Tanaka”);
playerList.sort(Comparator.comparingInt(String::length)
.collect(Collectors.toList());
“`#複数条件でソートする
“thenComparing()“を利用することで、複数条件でソートすることが可能です。
“`java:文字列長でソート後、アルファベット順でソート
ListplayerList = Arrays.asList(“Keisuke Honda”, “Shinji Kagawa”, “Marcus Tulio
【Java】AtcorderのABC-191に参加しました。
こんばんは。
2021/2/6に、AtcorderのABC-191に参加しました。
レートは以下の通りとなっています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402487/b6a44fa5-d03e-736b-30fd-879d838ad4f3.png)
https://atcoder.jp/users/ishikawaryou
残り10分でC問題を突破しました。
嬉しいのですが、安定して結果が出ないうちはぬか喜びは禁物ですね・・。
レートは71→173に更新!おお、結構上がったな。A問題・B問題は合計10分ということで、スピードは上がっています。ただ、てことは、C問題は80分かかったのか・・。
###A問題
高橋くんが投げるボールの速度がV(m/s)。
T秒からS秒の間は消えている。
高橋くんからバッターまでの距離はD。この間バッターはボールを打てない。
さてボールは打てるかどうか?
T秒からS秒の間に、バッターまでの距離に到達しないかを調べる処理で、非常にシ
MacBook Pro ARM版のHomeBrew関連インストール
# この記事について
この記事は、主に開発を行う上で毎回調べてしまっている初回セットアップ(主にHomeBrewとか)の整理をするために作成しています。
実施端末がタイトル通りARM版となっております。その為、時が経てば手法が大きく変わる可能性があります。この記事通りに実施できない手順に関しては、その都度調べていただけると幸いです。# 実施端末
“`shell
uname -v # Darwin Kernel Version 20.2.0: Wed Dec 2 20:40:21 PST 2020; root:xnu-7195.60.75~1/RELEASE_ARM64_T8101
“`
# 手順
## 1.Command line Tool for Xcode“`shell
xcode-select –install
“`## 2.Homebrew
ARM版Homebrewのインストール“`shell
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install
jCenterが閉鎖されるらしいので一旦Github Pagesを野良mavenリポジトリにして待避した話
**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**
jCenterが閉鎖するってことでもう大変ですね。自分が使っているOSSの作者さんは期日までに移行してくれるのかとか戦々恐々としているところでしょう。
一方、ライブラリを公開している人間としては、早く移行先探さなきゃ!そもそも今まで公開してたのどうするよ!という状態じゃないでしょうか。というか私だ。旧バージョンは移行できない可能性があるし、そもそも新バージョンも期日までに全部対応しきれるのか?状態なので、一旦bintrayに全くアクセスできなくなっても大丈夫なようにお手軽にできるバックアッププランを実行しておくことにしました。
# 今までアップロードしたファイル群を全部落とす
bitrayにアップロードした過去のファイル群を一旦手元に落とします。
といっても一括
テストデータ作成用javaテンプレート
(コピペしていつでも使えるよう、ソースを載せておく)
■実行して作成されるファイル例■
1ファイルあたりの行数:10
作成ファイル数:3“`txt:testdata_1.csv
00000001,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000002,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000003,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000004,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000005,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000006,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000007,カラム1,カラム2,カラム3,カラム4,カラム5,カラム6,カラム7,カラム8,カラム9
00000008,カラム1,カラム2,カラム3,カラム4,
Selenium 要素を取得できない場合②
## Google Chromeの開発ツールでは表示されているDOM要素がSeleniumで取得できない場合
前回の記事に追加で対処法をまとめます。
<1つの可能性>
取得したいDOM要素の上位階層に`iframe`タグがないか確認してみてください。“`
ここへアクセスしたい
“`
この状態で
その`iframe`タグの要素へアクセスポイントを1度移す必要があります。“`
WebElement iframe_elem = driver.findElement(By.tagName(“iframe”));
driver.switchTo().frame(iframe_elem );
“`これで `iframe`タグ要素以下の階層へアクセスできます。
1度`iframe`タグの要素へアクセスした後は、`iframe`タグの要素より下位階層を自動的に参照するようになります。参照範囲をもとに戻したい場合は以下のコードでできるようです。
“`
dri
【Java】日本語が文字化けして???になる
JSPをブラウザで表示したところ、日本語が?????になってしまっていた。
原因はEclipseでサーブレットを生成したときに、doGet()の中にデフォルトで書いてあるこれ。
response.getWriter().append(“Served at: “).append(request.getContextPath());
#解説
**原因はgetWriter()です。**
getWriter()は簡単に言うと、文字をエンコードして、出力するための入れ物を取得するメソッド。
何も設定していないと、「ISO-8859-1」を使ってエンコードする。(**だから文字化けする**)
#対策
1つ目は、原因となるコードの前にエンコーディング方式を指定する。(以下のコードを記述。)
“`
response.setCharacterEncoding(“UTF-8”);
“`
2つ目は、このコードを削除する。
この場合、JSPのpageディレクティブでエンコード方式が指定されていることが前提です。
Eclipse上でのパスと実行した後のパスが異なる理由
#プロジェクトエクスプローラーと同じパスが通らない
Eclipseでプロジェクトを開発していて、CSSをJSPに適用させたい時など、パスを設定する必要があることがあります。
その時、Eclipseのプロジェクトエクスプローラー上でのパスの通りに設定してしまうと適用されません。例:Eclipse上では、「/example/WebContent/sample1.jsp」なのに、実際には「/example/sample1.jsp」にパスを通す。
(WebContentが消えている)その理由について調べました。
#動的Webプロジェクト≠Webアプリケーション
Eclipseで動的Webプロジェクトを編集しているので、その中でパスを通せば通るはずだと思っていましたが、実際には**動的Webプロジェクト≠Webアプリケーション**です。サーバーで実行してブラウザを表示するとき、**動的Webプロジェクトをデプロイして、アプリケーションサーバ上で動く**ようにしています。
この時、**ディレクトリ構成が自動的に再配備**されます。これは、Java EEのルールで決まっています。
*
SimpleDateFormatで日付が変な時
日付を出力するためにSimpleDateFormat()を使ったときに日付が38日とかあり得ない数字になってしまう原因と対策です。
#大文字と小文字で出力が違う
日付の場合、**「dd」と「DD」で出力が異なります。**
**月の中での日付を使いたい場合、「dd」です。**
●月●日という風に使う時がほとんどだと思うので、基本的には「dd」で。
一方「DD」は、年で見た時の日付になります。
今日が1月1日から数えて何日目かを出力してくれます。
実行日が2月1日なら「32」になります。
【Java】 JavaBeans(Form、Entity、Dto)とは
# 概要
Webアプリケーションにおいて、画面のフォームから入力された値や、
DBから取得した値を、どのように保持をし、使用されるかを理解する事で、
Webアプリケーション全体、システム全体についての理解を深める事ができる。JavaのWebアプリケーションにおいては、**JavaBeans**といったものが上記の役割を担っている。
# JavaBeansとは
データを保存しておくための倉庫のようなもの。下記のようにプロパティを設定し、プロパティに対するsetter/getterメソッドを持っている。
“`Java:PersonBean.java
public class MemberBean {
private String name;
private int age;public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}public
「http://java.sun.com/jsp/jstl/core」のタグライブラリ記述子が見つかりません の解決方法
タイトルの通り、「http://java.sun.com/jsp/jstl/core」のタグライブラリ記述子が見つかりませんというエラーの解決方法を書いておきます。
Eclipseでの方法になります。#①JSTLをダウンロード
以下のURLにアクセスし、Filesのjarを選択します。
https://mvnrepository.com/artifact/org.glassfish.web/javax.servlet.jsp.jstl/1.2.1
どこかにダウンロードします。(場所を覚えておく)
「javax.servlet.jsp.jstl-1.2.1.jar」という名前のファイルがダウンロードされたことを確認する。
※もし違うバージョンのJSTLや、タグライブラリを使う場合はそれを使ってください。
#②Eclipseでの設定
「javax.servlet.jsp.jstl-1.2.1.jar」をコピーする。
「プロジェクト名」/WebContent/WEB-INF/libに右クリック貼り付け。
#何がダメだったのか
タグライブラリをプロジェクト内に配置していなかったこと。
プロ
java oreore[メモ書き]
ふむ、同じになる。
“`java:Deom22.java
/**
* Demo22
*/class Man {
public String name = “hoge”;public String outputname() {
return this.name;
}
}public class Demo22 {
public static void main(String[] args) {
Man man1 = new Man();
System.out.println(man1.name);
Man man2 = man1;
man2.name = “oreore”;
System.out.println(man1.name);
System.out.println(man2.name);
}
}
“`“`:run
java Demo22
“`“`:output
hoge
oreore
oreore
“`