新米フリーランスSEのブログ

2017年1月よりフリーランスに転向したシステムエンジニアのブログ。プログラミングスクールではRubyの勉強をしていたが、現在はJavaによる開発がメイン。

2018/01/16 【Scala】学習メモ

Scala】出力

f:id:yuki-kato:20180116052912p:plain

定数

f:id:yuki-kato:20180116053643p:plain

 

上記のように型推論されるが、型を明記することもできる。

f:id:yuki-kato:20180116053937p:plain

2018/01/14 【Scala】学習メモ3

Scalaの変数/定数

var

ー変数

ーvar 変数名:型 = 初期値

ーvar 変数名 = 初期値

ー複数の変数定義

 ーvar 変数名1, 変数名2 = 初期値

f:id:yuki-kato:20180114205009p:plain

val

ー定数

ー再代入できない

f:id:yuki-kato:20180114205202p:plain

2018/01/14 【Scala】学習メモ2

Eclipse環境、ScalaHello Worldを実行

1srcフォルダにてNew > Scala Objetを選択

f:id:yuki-kato:20180114151550p:plain

2任意の名前をNameに入れる。Finishを押下

f:id:yuki-kato:20180114152221p:plain

 

3Hello.scalaにコードを記載。実行する。

f:id:yuki-kato:20180114152348p:plain

 

2018/01/14 【Java】学習メモ

eclipseのバージョンをOxgenにアップデートする方法

 

  1. Eclipse > 環境設定 > Install/Update > Available Software Sitesへ移動
  2. 「Add」ボタンを押下
  3. Name:Oxgen(任意の名前)

    Location:http://download.eclipse.org/releases/oxygen

  4. Help > Check for Updatesを選択
  5. eclipseを再起動

f:id:yuki-kato:20180114144954p:plain

 

f:id:yuki-kato:20180114145059p:plain

2018/01/14 【Scala】学習メモ

Scalaの環境構築

OS: macOS

Scalaのインストール

ターミナルにて

brew install scala

 を実行

 

scala -versionを実行し、インストールできた確認

 

2sbtのインストール

sbtとは

scalaのビルドツール。

ーバージョン管理などもするらしい。

brew install sbt

 

REPL(リプル)

ーRead-eval-print-loop

scalaの実行環境

 

REPLから抜け出す方法

exitで抜け出せると思ったからできなかったため、やり方を調べる

 

:q

で抜けられるらしい。

f:id:yuki-kato:20180114153150p:plain

 

PlayFrameworkのインストール

brew install typesafe-activator

ーactivator new [プロジェクト名]

ーactivator run

 ー作成したプロジェクト配下に移動し実行

 ー初回は時間がかかる模様

 

2018/01/13 【IT総合】学習メモ

GPL

GNU General Public License

 ーグニュージーピーエル

ーソフトウェアの自由な実行、改変、再配布等を認める利用許諾(ライセンス)

 ー上記を認めるが、損害の保証はしない。

ーバイナリ形式のみでの配布は認めず、ソースコードを明示する必要がある

2018/01/13 【Java】学習メモ

JVM(Java Virtual Machine)

Javaの仮想環境

 ー

ーOSに依存せずにJavaプログラムを実行することを可能にする機能。

 ーOSごとに違うJVMを持つが、仮にWindowsコンパイルして作成したクラスファイル(バイトコード)でも、Linuxで実行することが可能。

  ーJavaはOSに依存せず実行可能な言語。

 ーOSごとのネイティブコードに変換する。

Permanent領域

ー非ヒープ領域

 ーヒープとはシステムが利用するメモリ領域

ークラスやメソッドなどの情報が格納される領域

New領域

ーヒープ領域

ーEden領域

 ーオブジェクトがインスタンス化された時に利用する領域

ーFrom領域、To領域

 ーEden領域のメモリが満たされた際、オブジェクトの退避に利用する領域

Old領域

ーヒープ領域

ーNew領域に格納されているオブジェクトで使用期間が長いものが格納される領域

ーOld領域がいっぱいになるとFull GCが起こる

 

ガーベジコレクション

ープログラムが確保したメモリ領域のうち、不要になった箇所を解放する機能

ガーベジコレクションにシステムの動作が停止することがある

 ーFull GC

 

メモリリーク

ー使用可能なメモリが不足し、プログラムが動作しなくなる状態

 

Scavenge GC

ーNew領域のみに対し働くガーベジコレクション

 

Full GC

ーOld領域を含む全領域で働くガーベジコレクション

ー処理に時間がかかる

ーOld領域が多く使用されるほど、Full GCが起こる可能性が上がる。

 ーオブジェクトの使い回しを増やさないようにすると回避できる?

 ー新しいオブジェクトを大量に使う場合は、New領域を大きくする?

  ーOld領域の使用を減らす狙い