- 1. Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
- 2. コンパイル時に文字化けを防ぐ方法(Java)
- 3. helloworld.javaの奮闘
- 4. 配列のcloneメソッドについて
- 5. SuperCSV便利機能二選(変換処理編)
- 6. Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
- 7. eclipse4.8 で maven で wabapp の雛形作成
- 8. 【Java】Json文字列をオブジェクトに変換
- 9. javacをtomcatで使う
- 10. メモ: Java 11でのHTTP(GET)リクエスト
- 11. 【Java基礎】オブジェクト指向とクラス
- 12. Java: Excelセルのマージとマージ解除の方法
- 13. 【Spring Boot】DbSetupを使ったRepositoryの単体テスト
- 14. カリー化とは
- 15. Python,Ruby,PHP,Java,JavaScript,Perlの標準関数の比較
- 16. めちゃくちゃ簡易のビンゴゲームを作る #2
- 17. 【Java基礎】変数&演算
- 18. 未経験エンジニアの就職活動①
- 19. Spring Boot + RemoteContainer
- 20. Utilにシンプルな名前をつけると発見があると思った話
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
# Python
https://qiita.com/ryuichi1208/items/cb5f850a9811d2a4bc3a
# Ruby
https://qiita.com/sugamaan/items/d7871da28c0160b69609
# PHP
https://qiita.com/mikakane/items/2719df714df5b3fc6adf
# Java
https://qiita.com/haruto167/items/162551100449ea5c7e6d
# JavaScript
https://qiita.com/Nako4/items/1d8eaf731bf4370b84a7
# Perl
https://perlzemi.com/b
コンパイル時に文字化けを防ぐ方法(Java)
# 結論
“`
javac -encoding UTF-8 ファイル名.java
“`
とする。
# 参考文献
https://yama-shu99.hatenablog.com/entry/2020/01/19/194028
helloworld.javaの奮闘
https://atmarkit.itmedia.co.jp/ait/articles/0710/11/news121_2.html
↑これでトムキャットのサンプルファイル使ったウェブページ表示に苦戦## 壁1:サンプルファイルのコンパイルに失敗
“`HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request
,HttpServletResponse response)
throws IOException, ServletException{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
配列のcloneメソッドについて
Java silverの学習において、
何度か配列のcloneメソッドで間違えたので、忘備録を残す。## 配列のcloneメソッド
名の通り、配列のコピーを行うもので、同じ値を持った配列インスタンスが複製される。“`java:
int[] arrayA = {1,2,3};
int[] arrayB = arrayA.clone();
System.out.print(arrayA == arrayB); //false
“`上記だと、arrayAとarrayBには同じ{1,2,3}の値が入っていることになるが、
配列のインスタンスを複製しているので同一ではない。### 注意したい点
配列をcloneすると同じ値を持った配列インスタンスが複製されますが、
参照先は同じなので、以下はtrueになる。“`java:
int[][] arrayA = {{1,2,3},{4,5,6}};
int[][] arrayB = arrayA.clone();
System.out.print(arrayA[0] == arrayB[0]); //true
“`
SuperCSV便利機能二選(変換処理編)
# null消去
CSV取り込み時にNULLがある場合、CSV取り込み時に別の値へ置き換えることができる。
## 基本的な使い方
– value()で、変換する値を指定します。
– 読み込むときには、それぞれのタイプの書式に沿った形式を指定する必要があります。もし、間違った書式で定義した場合は、CSVファイルの値が不正なときと同様にエラーとなります。
– アノテーションCsvNullConvertと併用する際には、処理結果が互いに変換対象となるため、 属性cases()やgroups()で適用するケースを分けるようにしてください。“`java
@CsvBean
public class SampleCsv {// クラスタイプに沿った値を指定します。
@CsvColumn(number=1)
@CsvDefalutValue(“0”)
private Integer id;// 書式が指定されている場合は、書式に沿った値を指定します。
@CsvColumn(number=2)
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
# Python
https://qiita.com/Fendo181/items/a934e4f94021115efb2e
# Ruby
https://qiita.com/Fendo181/items/eb2cb17f32d99aa01f59
# PHP
https://qiita.com/7968/items/d739e926189e219273bd
# Java
https://qiita.com/tomonori_hioki/items/cec47a366208d43d7339
# JavaScript
https://qiita.com/Fendo181/items/cca476da99e8f09b6b97
# Perl
https://perlzemi.com/blog/2
eclipse4.8 で maven で wabapp の雛形作成
eclipse4.8 で maven の webapp の雛形を作るとエラーがいくつかあったりしたので備忘録でメモ
使った eclipse は `pleiades-4.8.0-java-win-64bit-jre_20180923`
プロジェクト作成時に標準のディレクトリ構成がいくつかなかった…## maven プロジェクト作成
1. 右クリック – [新規] – [プロジェクト]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/2f412f23-aaf3-acb1-e70b-9d758a93a05a.png)
1. [Maven] – [Maven プロジェクト] – [次へ]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/09ee2f44-577d-8c85-f9b4-c2faece50e2b.png)
1. デフォルトのまま [次へ]
![image.p
【Java】Json文字列をオブジェクトに変換
# はじめに
jsonをjavaクラスに変換する方法をまとめました。
以下のエラーに悩んだので原因と解決方法も書いています。
“`com.fasterxml.jackson.databind.exc.InvalidDefinitionException“`## Json⇒javaクラス変換
mainクラス
“`java
String sjson = “{\”id\”: 1, \”name\”: \”Tanaka Taro\”, \”gender\”: \”Man\”, \”age\”: 23}”;ObjectMapper mapper = new ObjectMapper();
BaseballPlayer player = mapper.readValue(sjson, BaseballPlayer.class);
System.err.println(player.getName());
“`
BaseballPlayerクラス
“`java
public class BaseballPlayer {
private
javacをtomcatで使う
https://atmarkit.itmedia.co.jp/ait/articles/0710/11/news121_3.html
tomcatコンテナ内に上のリンクを参考にhelloworldのサンプルファイル作ろうとしたときにjavacというコンパイルに必要なコマンド必要だとわかったのでメモ
結論:
JDK(Javaの開発キット)にそのコマンドが含まれている&tomcatにapt系コマンドがもともと入っていたので以下のコマンドでインストール
“`
apt-get install default-jdk
“`
aptでインストール:https://www.linuxmania.jp/apt-install-java.html
JDKは開発キット:https://techacademy.jp/magazine/22220
メモ: Java 11でのHTTP(GET)リクエスト
超簡易にHTTPGETリクエストを投げるコードを書き、動作確認したのでメモ。
“`
import java.net.http.*;
import java.net.URI;
import java.io.IOException;class Main {
public static void main(String[] args) {
// HttpClient生成
HttpClient cli = HttpClient.newHttpClient();
// HttpRequest生成
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create(“http://www.google.com”))
.GET()
.build();
// リクエスト送信
try {
HttpResponseress = cli.send(req, HttpResponse.BodyHand
【Java基礎】オブジェクト指向とクラス
# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**オブジェクト指向**と**クラス**です。# オブジェクト指向
Javaはオブジェクト指向言語と呼ばれるプログラミング言語の1つです。## オブジェクト指向とは
オブジェクト指向は、「**物(オブジェクト)**」と「**動作(メソッド)**」で表現する手法です。オブジェクト指向で「車を運転する」ということを表現することを考えてみましょう。
オブジェクトとメソッドは以下のように分けることができます。
| オブフェクト | メソッド |
|:-:|:-:|
| 車、人(運転手) | 前進、後退、ブレーキをかける、クラクションを鳴らす、… |人オブジェクトが車オブジェクトのメソッドを実行することで車を運転することができます。
このとき、**人オブジェクトは車オブジェクトの中の仕組みを知っている必要はありません。**
Java: Excelセルのマージとマージ解除の方法
Excelドキュメントでテーブルの内容を設計する際に、セル範囲をマージするか、セルのマージを解除する必要がある場合があります。[Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html)はこの機能を簡単に実現することができます。以下に詳細なチュートリアルを示します。
– Excelセルをマージする
– Excelセルのマージを解除する## Spire.XLS.Jarのインストール
方法1:
mavenを使用している場合は、次のコードをプロジェクトのpom.xmlファイルに追加することで、JARファイルをアプリケーションにインポートできます。
“`
com.e-iceblue
https://repo.e-iceblue.com/nexus/content/groups/public/
【Spring Boot】DbSetupを使ったRepositoryの単体テスト
DbSetupを使ったRepositoryの単体テストの書き方を学んだので、備忘のために執筆します。
# はじめに
## DbSetupとは
データベースの単体テストを行うために用意されたライブラリ。
テストデータ投入手段として使用でき、少量のテストデータ投入に向いている。[DbSetup 公式](http://dbsetup.ninja-squad.com/)
## DbUnitとは
DbSetupと同じく、データベースの単体テストを行うために用意されたライブラリで、テストデータ投入手段として使用できる。
DbSetupとの違いとしては、DbSetupはテストデータをJavaで記載していくのに対して、
DbUnitはXMLやExcelでテストデータを準備するようになっている。## DbSetup 選択理由
DbUnitではなくDbSetupを選ぶ理由
– 単体テストで必要になるデータは少量のテストデータが多く、DbUnitだとその都度XMLやExcelでファイルを作成する必要があり手間であるが、DbSetupならJavaで投入データを作成していくので、手間が軽減する。
–
カリー化とは
# 意味
– 関数を返す関数を作り、プログラムの共通化を図る。
– 言語に関係なく共通する概念であるが、ここではtypescriptで説明します。# 例文
“`typescript:typescript
const add = (x:number) => (y:number) => x + y
const add1 = add(1)
const result = add1(2) // 3
“`# 説明
関数addは引数xを受け取ると、`(y:number) => x + y`を返す関数。
add関数の引数として1を入れると、`(y:number) => 1 + y`の返すようになる。
返された関数の引数yに対して2を入れると、`(2) => 1 + 2`が成立され、3を返す。# メリット
– 共通化によってバグを防ぐことができる。
– まとまった処理を分割することによって、複雑度を下げつことができる。# 例文
“`typescript:typescript
const add = (x:number, y: number) => x + y
add(1, 2)
Python,Ruby,PHP,Java,JavaScript,Perlの標準関数の比較
Python,Ruby,PHP,Java,JavaScript,Perlの標準関数の比較
# Python
https://qiita.com/hiroyuki_mrp/items/8bbd9ab6c16601e87a9c
# Ruby
https://qiita.com/sugamaan/items/d7871da28c0160b69609
# PHP
https://qiita.com/SRAUFactory/items/96ecd6d677c26a20b77a
# Java
https://qiita.com/p_shiki37/items/3902f4e3adc3aeb382f1
# JavaScript
https://qiita.com/uhyo/items/acd645744fa61c805097
# Perl
https://perlzemi.com/blog/
めちゃくちゃ簡易のビンゴゲームを作る #2
# 初めに
まず[前回やったこと](https://qiita.com/snow_saboten/items/1a3a8c77e22b75c9173b)の確認。
+ ランダムな数字を並べてビンゴカードを作る機能を作成。
+ 「ゲーム開始」ボタンでゲーム画面に移動するようにした。の2つ。
前回の記事のコメントでビンゴカードはただランダムな数字を並べているのではなく、列ごとに並ぶ数字の範囲が決まっている、ということを教えていただいたので、この機能を追加する。
よって、今回作った機能は以下の2つ。
+ ビンゴカード作成機能の改良版(列ごとに範囲限定)
+ 抽選ボタンで出た数字がカード上にあれば、そのマスの背景色を変える。ひとつずつ紹介する。
# ビンゴカード作成機能改良版
## コード(レイアウト)
“`Java
JPanel BingoCardPanel;
JPanel p1;
JPanel p2;
JPanel p3;
JPanel p4;
JPanel p5;
JLabel bingoNumLabel1[] = new JLabel[5];
JLabel
【Java基礎】変数&演算
# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**変数**と**演算**です。# 変数
変数とは、**データを入れる箱**のようなものです。## 変数の宣言と代入
`int point;`のように`型名 変数名`と宣言します。
代入するには、`point = 1;`のように`変数名 = 代入する値;`と記述します。
宣言時に`int point = 1;`というように値を代入して宣言することも可能です。また、型名の前に`final`と付けると定数になります。
“`java:定数の例
int point = 1;
final int finalPoint = 1; // 定数に初期値を与えるpoint = 10; // 正しく代入できる。
finalPoint = 10; // 定数に値を代入しようとしているため、コンパイルエラー
“`## 変数の型
Java
未経験エンジニアの就職活動①
本日面接を受けました。
職業訓練でJavaを学んだ事をアピールしたが基礎的な知識を答えられなかった。
ポートフォリオがあった方がいいと分かっていても何を作ればいいか分からず未だに疲れていない。
対策が未だに分からないが無能未経験エンジニアとして就活を頑張ります。
受けた会社→9社
面接まで行った会社→2社落ちた会社→9社
Spring Boot + RemoteContainer
## はじめに
こんにちは、まだしばらくは新人エンジニアだと思っている者です。
java触ってみたいなぁと思ったので(javaの資格が欲しくてw)ついでにフレームワークもやろう!
くらいのノリでとりあえず環境構築していきます。Spring Frameworkよりはシンプルと見たのでそれを信じております。
勉強するならフレームワーク触る前にやった方がいいやろ!というご意見は確実にあるかと思いますが(僕はそう思った。。)フレームワークいじる方が楽しそうなので流されてきました。## containerで構築
javaコンテナの作成をこちらの記事を参考に進めてみる。
[Docker × Spring Boot環境構築](https://qiita.com/A-Kira/items/beaf79a0d39d9839e61e)上記の記事に沿って進めるとGradleのビルドが上手く行きませんでした。
“`
# javaコンテナにインスペクション
$ docker-compose exec java bash# gradleビルド
$ sh gradlew build
xargs
Utilにシンプルな名前をつけると発見があると思った話
日時書式の変換にSimpleDateFormatをnewするのはもうやめよう・・・
parseするたびにtry~chatchは面倒だし。
DRYの観点から、いままで以上に、積極的に、Utilsクラスを作る。「SimpleDateFormat」・・・抽象化すれば「DateFormat」。
ならば、シンプルに、「DateFormatUtils」とするべきだろう。早速、空のクラスを作成する。
テストファースト。
具体的な実装は後回し。まずは、呼出し側から実装。するとどうだろう。コードアシストで、既存のクラスがヒットするではないか。
「org.apache.commons.lang3.time.DateFormatUtils」
ちょっと中を覗いてみる。
・・・まさにやろうとしていたことが実装済みではないか。
しかも、構想の何千倍も気が利いた配慮が実装済み。そんなわけで、オレオレDateFormatUtilsを実装することは中断し、
「org.apache.commons.lang3.time.DateFormatUtils」
を使うことになりました。
費用対効果