- 1. Javaの変数宣言・初期化
- 2. Java入門シリーズ(変数と型)
- 3. Javaの特徴
- 4. Javaの開発環境
- 5. Javaの機能について
- 6. Javaとは何か と 開発環境
- 7. いい感じのbuild.gradleが書きたい
- 8. java(メソッド)
- 9. 0埋めの(0以外でもできる)方法
- 10. 【MVEL入門】世界一のMVELerを目指して
- 11. LINEBOTで会話のステータス(文脈)管理(セッション管理?)
- 12. JAX-RS/SSE と Redis Pub/Sub でリアクティブなチャットアプリを作る
- 13. 【オブジェクト指向】ゼロをイチにする備忘録【概念の理解に役立ったサイトまとめ】
- 14. 40言語で「Hello World」をやってみよう!!
- 15. javaのinterfaceを自分なりに理解する
- 16. Androidアプリ:画面遷移の仕組みをシンプルコードで解説してみる
- 17. Javaの勉強備忘録
- 18. Java#1:覚えた技術を日々書き留める
- 19. Javaの開発環境(Mac, Eclipse)
- 20. Spring Boot + Spring Data JPA でエンティティ更新の挙動を見る
Javaの変数宣言・初期化
###対象読者
Java勉強し始めの人。###変数定義
Javaで変数を定義するには、以下の2ステップが必要になります。
1.変数に入れる値のデータ型を指定する
2.変数名を決める例:
1. int(数値)型
`int number;`
intが数値を表すデータ型で、numberが変数名です。
上記の例ではint型の変数numberが定義されています。
2. string(文字)型
`String text;`
Stringが文字列を表すデータ型で、頭文字を大文字にします。textが変数名です。
上記の例ではString型の変数textが定義されています。1、2同様に、文末にはセミコロンをつけます。
###変数の初期化
下記の例のように、変数定義と同時に値を代入することを変数の初期化と呼びます。
例:
1. int(数値)型
`int number = 3;`
上記の例ではint型の変数numberが定義され、数値の3が代入されています。
2. string(文字)
Java入門シリーズ(変数と型)
## はじめに
こんにちは。
この記事は「これからJavaを始める方」や「久々にJavaにやる方」向けに変数と方についてのまとめ記事です。変数とは何かといったプログラミング自体についての説明は行わないので、プログラミング初心者の方には向いてない記事かもしれません。
Java入門シリーズとして下記の記事を準備中です。
– 変数と型 ←いまここ
– 変数のスコープ(準備中)
– 文字列の操作(準備中)
– 配列の操作(準備中)
– 演算子(準備中)
– 条件分岐(準備中)
– 繰り返し処理(準備中)
– クラスについて(準備中)
– 抽象クラス(準備中)
– インターフェース(準備中)
– カプセル化(準備中)
– モジュールについて(準備中)# 型について
JDK10から型推論の概念が導入されてますが
Javaの基本は静的型付言語だと思いますので
型について説明します。型は大きく分けて、
基本型(プリミティブ型)と参照型(クラス型)の2種類あります。## 基本型(プリミティブ型)
整数、少数点数、boolean、文字の4種類あります。
c言語と違ってunsigne
Javaの特徴
#注意事項
この記事は私がJavaの勉強のために、wikiの内容を噛み砕いて投稿したものです。
wikiのリンク
https://ja.wikipedia.org/wiki/Java## Javaの特徴
現在Java開発を行っているOlacleによると、Javaには6つの特徴があります。### 1.オブジェクト指向
Javaの構文はC言語に近く、手続き型プログラミングのスタイルでもプログラミングできます。しかし、主要プログラミングパラダイム(プログラマにプログラムの見方を与えるもの)は、クラスベースのオブジェクト指向であるとされています。
※手続き型プログラミングとは、〜するといった動作単位でプログラムを分割する考え方です。
※オブジェクト指向とは、作業単位でプログラムを分割することで、修正などを簡単にするという考え方です。### 2.プラットフォーム非依存
プラットフォームとは、
>ソフトウェアを動作させるのに必要な、基盤となる装置やソフトウェア、サービス、あるいはそれらの組み合わせ(動作環境)のことを指します。(http://e-words.jp/w/プラットフォ
Javaの開発環境
#はじめに
この記事は、Javaを始めてみようと思っているけど、何からすればいいのかがわからない人のために、自分の理解を記載した備忘録です。#開発環境構築
https://www.oracle.com/java/technologies/javase-downloads.html#JDK14上記はオラクルのページです。まずはこちらからダウンロードして見ましょう。今回は新しいJavaSE14を入れていきます。
画像のJDKDownloadと記載されている箇所をクリックすると、下記の画面が出てきます。
##はじめに
この記事はJavaについて勉強し始めた方、言語の選択をしている方に向けた私自身の理解している内容の記録です。
Javaの機能について、特に重要だと思っている箇所を他言語と比較しながら記載していきます。昔自分がRubyを使っていたので、その比較が多いと思います。##コンパイラ方式
コンパイラ(コンパイル)とは、シンプルにいうとコードをコンピュータが読める形に全て変更してから実行します。Javaではこちらが採用されています。あとはC++もコンパイラ方式です。
Rubyやpythonはインタプリタ方式です。インタプリタでは一行ずつ翻訳して実行していく形です。
どのような違いがあるのか見ていきましょう。インタプリタ
“`$ ruby hello.rb “`
インタプリタではこれで実行すると、コード内の処理が表示されます。コンパイラ
“`$ javac hello.java “`
この例はJavaなのでJavacのコマンドで解説していきます。コンパイラではコンパイルするコマンドを入力し、コンピュータがわかるclassファイルを生成します。hello.javaファ
Javaとは何か と 開発環境
# 注意事項
この記事は私がJavaの勉強のために、wikiの内容を噛み砕いて投稿したものです。wikiのリンク
https://ja.wikipedia.org/wiki/Java## Javaとは
Javaとは、プログラミング言語の一種です。
時には実行環境や開発環境も含めていうこともあります。
1995年からあるプログラミング言語であり、多くの人が資料を残しています。また、大体のPCにはJavaが入っていることもあり、初心者が触れやすい言語であるとも言えるでしょう。## 開発環境
Javaは上に書いた通り大体のPCに入っていますが、バージョンが古かったりすることもあると思います。そういう時は、下のリンク先でJavaのダウンロードができます。
Java ダウンロードサイト:
https://java.com/ja/download/開発環境は様々ありますが、私はVisual Studio Code(以下VSCode)を使用します。
VSCode ダウンロードサイト:
https://azure.microsoft.com/ja-jp/products/visual-
いい感じのbuild.gradleが書きたい
build.gradleについて調べた時に引っかかったこととか見つからなかったこととか
# 環境
– Gradle6.4 (2020/5/6リリース)
# 始めに
とりあえず[Gradleのドキュメント](https://docs.gradle.org/6.4/userguide/userguide.html)見てみると良いかもしれない
# 便利なプラグイン
名前のリンクはドキュメントへ
– [java](https://docs.gradle.org/6.4/userguide/java_plugin.html)プラグイン。これがないとJavaのソースがコンパイルできない
– [checkstyle](https://docs.gradle.org/6.4/userguide/checkstyle_plugin.html)プラグイン。スタイルを揃える時にあると便利([説明セクションへ](#checkstyleを導入する))
– [shadow](https://imperceptiblethoughts.com/shadow/)プラグイン。Fat-Jar(Uber-Ja
java(メソッド)
##メソッドの定義
“`java
public static void hello() { //①
System.out.println(“こんにちは”) //②
“`
①重要事項の表明(メソッド名は`hello`)
②処理内容##引数の利用
“`java
public static void main(String[] args) {
System.out.println(“メソッドを呼び出します”);
hello(“A”);
hello(“B”);
hello(“C”);
System.out.println(“メソッドを呼び出しが終わりました”);
}
public static void hello(String name) {
System.out.println(name + “くん、こんにちは”);
}
“`
①A、B、Cを渡してhelloメソッドを呼び出す
②文字列変数:nameを宣言
③実引数:A.B.C 仮引数:name
**実際の表示**
Aくん、こんに
0埋めの(0以外でもできる)方法
#背景
社員番号等を扱う際にどんな桁の数字でも最終的な桁数を合わせる方法を調べていた時に少し穴があったのでメモしておきます。
※どちらも5桁にする場合
12→00012
2389→02389#使用したクラス
String.format(“%xyz” , n);
% = 正規表現
x = 埋めたい数字
y = 埋めたい桁数(nも含む)
z = 10進数やほかの進数の頭文字(今回はd)文字列.replace(何を,何に変換);
#やってみた
“`
public class strPractice02 {public static void main(String[] args) {
//9の前に4桁分のゼロを付け足す
String str = String.format(“%05d”, 9);
System.out.println(str);//0以外の文字に置き換える
String str2 = String.format(“%15
【MVEL入門】世界一のMVELerを目指して
注意:内容の正確性については保証できません。日本語の情報が無さすぎて孤独を感じている、MVEL初心者の心理的不安を少しでも和らげたいと思って書いているものなので、ご了承ください。
# MVELってどんな言語?
簡潔に表現すると、Javaをスクリプト言語にしたもの。
JavaScriptではなく、ScriptなJavaです。大事なことなのであえて言いました。かなりマイナーな言語だとは思いますが、実はオープンソースです。
一応、定期的にissueとかもあがっていて、メンテもされているみたいですね。– [GitHub](https://github.com/mvel/mvel)
– [公式ドキュメント](http://mvel.documentnode.com/)
– [Wikipedia](https://en.wikipedia.org/wiki/MVEL)## 基本構文
“`java
greet = “Hello “; // String型
name = “MVEL”; // String型
return greet + name; // 結果:”Hello MVEL”
LINEBOTで会話のステータス(文脈)管理(セッション管理?)
##やりたいこと
会話のステータス(文脈)のようなものをサーバー側に持たせておいて(Webアプリのセッションみたいな感じ?)、それによって応答が変わるようなLINEBOTを作りたい。イメージとしてはこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566051/7aa13981-bd3c-532f-b175-8decc8b9d44b.png)自然言語解析とか、DeepLearningとか、RNNとか、雑談BOTとか、そういった高度な話ではありません。
##実現方法
ユーザーIDをkey、保存すべき値を集めたクラスをvalueにしたmapを作成することにしました。
その他、メッセージに応答する箇所の実装は[sample-spring-boot-kitchensink](https://github.com/line/line-bot-sdk-java/tree/master/sample-spring-boot-kitchensink)を参考にしました(reply
JAX-RS/SSE と Redis Pub/Sub でリアクティブなチャットアプリを作る
## はじめに
リアクティブプログラミングとメッセージングのお勉強で,JAX-RS の SSE (Server-Sent Events) API と Redis の Pub/Sub を使って簡単なチャットアプリを作ったのでメモ.
![chat-screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81643/9aba9929-1cfb-00f7-36b3-3649ea319842.png)
## アーキテクチャ
![chat-architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81643/7bc99c41-560e-c484-7049-8018c5f43232.png)
フロントエンドには React,バックエンドには Jersey (JAX-RS) などの Java EE 系フレームワークを使用しています.
また,メッセージブローカとして Redis の Pub/Sub 機能
【オブジェクト指向】ゼロをイチにする備忘録【概念の理解に役立ったサイトまとめ】
##はじめに
文系・未経験の人間がゼロをイチにするために学んだことをまとめています。
特にここではJavaを勉強し始めて1週間の赤ちゃん状態の人間が読んでも理解できた、すっごいサイトばかりをまとめました。おそらくここにたどり着くような方にはわかってもらえると思うんですが、初心者用のサイトを見てもまずワードがわからん。カタカナを直訳しても概念が理解できん。
逆にすっごくかみ砕いた表現だと、話の内容とプログラミングが結びつかずに結局何にもなってない。詰む。
という地獄を体験するんですよね。
ここに集めたものはその地獄から救ってくれたメシアサイトばかりなのでめちゃくちゃお役立ちだと思っています。随時追加予定。
一応四則演算やループ処理、while文といった内容は理解した状態だと思ってください。##オブジェクト指向プログラミングとはなんぞや
+ [OOPと非OOPの違い|オブジェクト指向プログラミングをおさらいしよう(1)](https://www.gixo.jp/blog/4735/)
+ [継承によってコードを再利用する|オブジェクト指向プログラミングをおさらいしよう(2)
40言語で「Hello World」をやってみよう!!
プログラミング言語を言えば、世の中高級言語が2500種類が存在するそうです。プログラミング言語はそれぞれの特徴を持っていますが、基本的なロジックはほぼ変わらないです。
TIOBEはプログラミング言語の人気度を表す指標としてよく知られています。毎月ランキングを更新します。下図は2020年4月最新のデータです。全体的に見ますと、やはりJavaとC言語は十何年間経っても人気が変わらないですね。
![April4](https://www.microstone.info/ms/wp-content/uploads/2020/05/tiobe.png)
プログラマーにとって、開発言語を勉強しはじめて、大体Hello Worldからです。本稿は40のプログラミング言語でHello Worldを実装してみました。各言語の間にどんな差異があるのか見てみましょう。
### 1. C
“`c
#include
int main(void){
printf(“Hello, World!\n”);
return 0;
}
“`### 2. C++
javaのinterfaceを自分なりに理解する
##はじめに
現場でjavaのinterfaceが度々出てくるけど、曖昧の中で作業をしていたので
ここで自分なりに調べてまとめる。##interfaceとは??
言葉の意味をwikipediaで調べると
「ソフトウェア間の通信を行う際の情報の渡し方などを決めたもの。」javaではクラスの具体的な処理内容は記述せず
定数とメソッドのみを記述したもの。自分なりに噛み砕くとクラスの仕様を記述したもの。
##【使い方1】インターフェイスの作成
書き方は以下の通り
“`
アクセス修飾子 interface インターフェース名{}
“`##【使い方2】インターフェイスの実装クラス
書き方は以下の通り
“`
class クラス名 implements インターフェイス名 {
処理内容
}
“`## 実際に書いてみる
“`java:Main.java
//インターフェイス
interface Cat{
String NAME = “tama”;void helloName();
}//インターフェイスの実装クラス
class Sample im
Androidアプリ:画面遷移の仕組みをシンプルコードで解説してみる
前回
[Androidアプリ:イベントとリスナをまとめてみる](https://qiita.com/kkhouse/items/2980cf748c415bb36f48)の続き。。。
##はじめに
入社三か月のペーペーです。androidアプリ開発勉強中です。お勉強がてらまとめてます。
入門書レベルの知識を自分なりにかみ砕いています。端折っている部分も多々あるのでご注意を。
##今回まとめる範囲
今回は画面遷移についてシンプルコードでまとめます。
・画面遷移の基礎の基礎を知りたい。
・インテントをシンプルに理解したい。
という方向けです。作成するのはテキストを入力して送信ボタンを押すと、画面遷移後に、入力されたテキストを表示してくれるアプリです。
####今回出てくる言葉たち
– インテント
簡単にいうとアクティビティから別アクティビティに情報を運ぶための入れ物のようなもの。
今回のように画面1のアクティビティにある文字列をインテントという箱に入れておくと、画面2でその箱を呼び出せば画面2でもその文字列を使用できる。####前回以前の言葉たち
– イ
Javaの勉強備忘録
# Javaの勉強始めたので備忘録
Rubyと違って変数使うときには型を宣言してあげないといけないとか
修飾子とか覚えることが沢山あったので自身で見返せるようにしよう、
と思い至った。
のと、マークダウン記法の学習も兼ねて…
※箇条書きスタイルに近い# 型の種類
**プリミティブ型**か**参照型**に分かれる。
その中でもプリミティブ型は整数型や浮動少数型等々に分類される。
参照型はラッパークラスや文字列クラスに分けられる。## プリミティブ型
| 型名 | 型分類 | サイズ(bit) | 初期値 | 値 |
|:-:|:-:|:-:|:-:|:-:|
| long | 整数 | 64 | 0L | -9223372036854775808 ~ 9223372036854775807 |
| int | 整数 | 32 | 0 | -2147483648 ~ 2147483647 |
| short | 整数 | 16 | 0 | -32768 ~ 32767 |
| byte | 整数 | 8 | 0 | -128 ~ 1
Java#1:覚えた技術を日々書き留める
# 久しぶりのJavaでした恥ずかしい失敗
数年ぶりに、業務でJavaをやっているので
家でも勉強しています。
つまらないミスをして詰まってしまったので、内容と原因をメモします。## HashMapがImportできない。。
やろうとしたのはこれだけ。
“`
public class HashMap {
public static void main(String[] args) {
//Mapの宣言
HashMaphashmap = new HashMap<>();
}
}
“`
クラス名をHashMapにしてはいけなかったようで、クラス名を変更すると直りました。
予約語とかいうものですね。
Javaの開発環境(Mac, Eclipse)
## はじめに
Macにて、Eclipseで
Javaの開発を行いたいという方に向けての記事となります。EclipseではなくVsCode(Visual Studio Code)で開発したい方は
Qiitaに「[Javaの開発環境(Mac, Vs Code)](https://qiita.com/aoyaman/items/cd3ed987b8b704778144)」をあげてますので、そちらを参照ください。Eclipseとは統合開発環境といって
プログラムの開発環境をこれ1つで揃えてくれるツールです。Javaの開発環境として、このEclipseを使われている方も多いのではないでしょうか。
Javaのインストールがまだの方は
「[Javaのインストール(Mac, Homebrew, 複数バージョン管理)](https://qiita.com/aoyaman/items/fdbc1b35ce841f730afc)」
を参考にインストールを先にすませておいてください。動作確認した私の環境は以下の通りです。
“`
OS: macOS Catalina(バージョン 10.
Spring Boot + Spring Data JPA でエンティティ更新の挙動を見る
## 概要
– Spring Boot + Spring Data JPA でエンティティを更新する際にどのように SQL 文を発行しているかログ出力して挙動を見る
## 環境
– macOS Catalina
– Java 11 (AdoptOpenJDK build 11.0.7+10)
– Gradle 6.4
– Spring Boot 2.2.6
– H2 Database 1.4.200## サンプルコード
### ファイル一覧
“`
├── build.gradle
├── settings.gradle
└── src
└── main
├── java
│ └── com
│ └── example
│ ├── Counter.java
│ ├── CounterController.java
│ ├── CounterRepository.java
│