スッキリわかるJava入門3①
変数宣言が必要
int test; test = aaa;
public class Main { public static void main(String[] args) { int age; age = 30; System.out.println(age); } }
金額計算に関して
float やdouble を使用してはいけない。 厳密な計算ができずチリツモで大きな誤差になる。
文字(列)の引用符について
文字の場合はシングル 文字列の場合は二重引用符
初期化
int age = 20;
定数化する場合
finalを使う
public class Main { public static void main(String[] args) { final double PI = 3.14; 😘定数には大文字を使用する int pie = 5; System.out.println("半径" + pie + "cmのパイの面積は、"); System.out.println(pie * pie * PI); System.out.println("パイの半径を倍にします"); PI = 10; System.out.println("半径" + pie + "cmのパイの面積は、"); System.out.println(pie * pie * PI); } }
エスケープシーケンス
¥
これを使う
評価の順番
=演算子は右から +演算子は左から
前置か後置インクリメントで気をつけないといけないこと
Javaプログラミング ~陥りやすいミス①~ | エンジニア入門・未経験者のLAブログ
型変換について
小→大への変換は自動的に行なってくれる。
文字列の比較
文字列型の変数.equals(比較相手の文字列) ==ではないことに注意すること
九九の計算
public class Main { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1;j < 10;j++) { System.out.print(i * j); // 掛け算の結果を出力 System.out.print(" "); // 空白を出力 } System.out.println(""); // 改行を出力 } } }
jのループが終わったらiのループが進む。
配列等の違い
rbenvを用いて最新バージョンにアップする
本日の時点でrubyの最新版は2.6.5
前提
Homebrewとrbenvはすでにinstall済み
手順
~ $ rbenv versions system 2.3.7 * 2.6.4 (set by /Users/mackxxx/.ruby-version) ~ $ brew update Updated 1 tap (homebrew/core). ==> New Formulae detekt dune gnirehtet krew skymaker texlab diesel fastlane imgproxy powerline-go terrahelp ==> Updated Formulae ==> Deleted Formulae aap bubbros curlish docker-cloud muttils shocco archivemail bzr-fastimport cvs2svn euca2ools nicotine-plus tnote borg closure-linter ddar ino php@7.1 ~ $ brew upgrade ruby-build ==> Upgrading 1 outdated package: ruby-build 20190828 -> 20191205 ==> Upgrading ruby-build ==> Downloading https://github.com/rbenv/ruby-build/archive/v20191205.tar.gz ==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v20191205 ######################################################################## 100.0% ==> ./install.sh 🍺 /usr/local/Cellar/ruby-build/20191205: 464 files, 231KB, built in 6 seconds Removing: /usr/local/Cellar/ruby-build/20190828... (454 files, 227.4KB) ==> Checking for dependents of upgraded formulae... ==> No outdated dependents to upgrade! ==> Checking for dependents' broken linkage from upgraded formulae... ==> No broken dependents found! ~ $ rbenv install --list ... Available versions: 2.6.4 2.7.0-dev 2.7.0-preview1 ...
問題発生
$ rbenv install --list
に2.6.5が存在しない...
rbenv pluginを利用していたようなので下記コマンドが必要でした。 pluginバージョンが優先されるようです。
$ cd ~/.rbenv/plugins/ruby-build $ git pull origin master
参考
最新版をインストール
~ $ rbenv install 2.6.5
インストールされているか確認
~ $ rbenv versions system 2.3.7 * 2.6.4 (set by /Users/mackxxx/.ruby-version) 2.6.5
Git復習
ローカルブランチを削除する
$ git branch -d
ローカルブランチ名を変更
$ git branch -m 変更前 変更後
git fetch とは
- リモートのコピーをローカルにダウンロードするものでリモートに影響を与えない。
git merge とは
- 今いるブランチに別のブランチの内容を結合し履歴を残す。
git rebaseとは
- rebase前とrebase後では内容は一緒でも、1個前の親コミットとコミットIDが変更される。
- 取り込みたいブランチに今のブランチの内容を上乗せするイメージ。
git pull --rebaseとは
- git pull は fetch + merge
- git pull -rebase はfetch + rebase
- --rebaseある無しに関わらず作業ブランチに最新の master を取り込むことができる。
実践したもの
ためになったサイト
感想
git merge
とgit pull --rebase
はどちらも一長一短であり
プロジェクトごとに変わるのかなと思いました。
nginx で SSL 対応サイトを作る
Let’s EncryptでSSL証明書取得
SSL証明書は有料で数千のものから数十万のものまであるみたいです。「Let's Encrypt」ですと無料で取得できる そうなのでこれを使っていきます。
- certbotをインストールする
$ sudo apt-get install certbot
- SSL証明書を発行
オプションの意味について
sudo certbot certonly --webroot -w demo/public_html/www.mackxxx.site/public/ -d www.mackxxx.site ... IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/www.mackxxx.site/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/www.mackxxx.site/privkey.pem ...
/etc/letsencrypt/live/www.mackxxx.site/
に以下のファイルが作成されたのを確認します。
$ sudo ls /etc/letsencrypt/live/www.mackxxx.site cert.pem chain.pem fullchain.pem privkey.pem README
2つ目のserver{ 以下を追加します
$ sudo cat www.mackxxx.site server { listen 80; server_name www.mackxxx.site; access_log /home/mackxxx/demo/public_html/www.mackxxx.site/log/access.log; error_log /home/mackxxx/demo/public_html/www.mackxxx.site/log/error.log; location / { root /home/mackxxx/demo/public_html/www.mackxxx.site/public/; index index.html index.php; } } server { listen 443 ssl; server_name www.mackxxx.site; ssl on; ssl_certificate /etc/letsencrypt/live/www.mackxxx.site/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.mackxxx.site/privkey.pem; location / { root /home/mackxxx/demo/public_html/www.mackxxx.site/public/; index ssl-index.html index.php; } }
今回はhttpとhttpsで別のページを表示するので
/home/mackxxx/demo/public_html/www.mackxxx.site/public/;
以下に表示させるssl-index.html
を追加します。最後に再起動して正しくページが表示するか確認します
$ sudo /etc/init.d/nginx stop $ sudo /etc/init.d/nginx start
Virtual Hostで複数ドメインを設定する
お名前.comにてドメインを取得する
以下は下記を参考に進める。
今回はmack.site
とwww.mack.site
をアクセスした際に別のindex.html
を表示させるのがゴール
注意事項
- 下記箇所の書き方の意味を理解できず同じように記述してしまい、
mack.site
とwww.mack.site
で別のページを表示することができず。 この記述はwww.nikukyu.club
とnikukyu.club
で同一のページを表示させるときの設定であることに気づきました。
server { listen 80; server_name www.nikukyu.club; access_log /home/demo/public_html/nikukyu.club/log/access.log; error_log /home/demo/public_html/nikukyu.club/log/error.log; location / { root /home/demo/public_html/nikukyu.club/public/; index index.html index.php; } } server { listen 80; server_name nikukyu.club; access_log /home/demo/public_html/nikukyu.club/log/access.log; error_log /home/demo/public_html/nikukyu.club/log/error.log; location / { root /home/demo/public_html/nikukyu.club/public/; index index.html index.php; } }
access_log /home/demo/public_html/nikukyu.club/log/access.log;
これらのディレクトリの設定はきちんと自分の環境で試さないと
エラーが必ず出ます。その際はnginx -t
コマンドで確認すると分かりやすいです。
私の実行環境では
access_log /home/mackxxx/demo/public_html/mackxxx.site/log/access.log;
でした。ハマりました。
- 今回はシンボリックリンクを2つ作成する必要があります。
$ sudo ln -s /etc/nginx/sites-available/mackxxx.site /etc/nginx/sites-enabled/mackxxx.site
$ sudo ln -s /etc/nginx/sites-available/www.mackxxx.site /etc/nginx/sites-enabled/www.mackxxx.site
- シンボリックリンクの削除の仕方
$ sudo ls -l
$ sudo unlink
コマンド例
mackxxx@xxxxxxxx:/etc/nginx/sites-enabled$ ls -l total 4 lrwxrwxrwx 1 root root 34 Dec 4 01:27 default -> /etc/nginx/sites-available/default lrwxrwxrwx 1 root root 39 Dec 6 16:21 mackxxx.site -> /etc/nginx/sites-available/mackxxx.site -rw-r--r-- 1 root root 305 Dec 6 23:58 www.mackxxx.site mackxxx@xxxxxxxxx:/etc/nginx/sites-enabled$ sudo unlink www.mackxxx.site
sites-enabled
のところでls-la
コマンドでシンボリックリンクが作成されているかどうか確認できます。
mackxxx@xxxxxxx:/etc/nginx/sites-enabled$ ls -la total 8 drwxr-xr-x 2 root root 4096 Dec 7 00:13 . drwxr-xr-x 8 root root 4096 Dec 4 01:27 .. lrwxrwxrwx 1 root root 34 Dec 4 01:27 default -> /etc/nginx/sites-available/default lrwxrwxrwx 1 root root 39 Dec 6 16:21 mackxxx.site -> /etc/nginx/sites-available/mackxxx.site lrwxrwxrwx 1 root root 43 Dec 7 00:13 www.mackxxx.site -> /etc/nginx/sites-available/www.mackxxx.site
よく使うコマンド
設定ファイルをいじった後はこれをしないと設定が反映されません。
$ sudo /etc/init.d/nginx stop # nginxをストップ $ sudo /etc/init.d/nginx start # nginxを起動