jar(ジャー、Java Archive)ファイルとは

  • コンパイル済みJavaバイトコード、画像などのリソースファイルなどが.zip形式で圧縮されたファイル
  • 圧縮により、アプリケーションやライブラリの配布・利用が容易になる
  • 実行するにはJava実行環境が必要(JDKがインストールされている必要がある)
  • 拡張子に「.jar」が使用される

参考:

Java SEとJDK、JRE、JVMの違いに関する解説

可変長引数とは

  • 関数宣言にて引数の個数を指定せず、呼び出す側が任意の数の引数を渡すことができる
  • 配列を引数にとることで同じ事ができるが、一度配列に格納する手間を省くことができる

例 (Kotlin):

fun sum(vararg values: Int): Int{...}
println(sum(1,2,3,4)) // Output: 10

参考:

可変長引数

Java Variable Length Parameter vs. Array, Simply Syntactic Sugar?

セーフコール演算子とは

  • Nullable型のメンバーにアクセスする際に用いられる演算子「?.」
  • オブジェクトが非nullの場合にのみにメンバーにアクセスし、nullの場合はそのままnullを返す

例 (Kotlin):

var str: String? = "Hello"
println(str?.length) // 結果は5
var str: String? = null
println(str?.length) // 結果はnull

参考:

速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ

ヒアドキュメントとは

  • 文字リテラルをソースコードに埋め込む記法の一つ
  • 複数行にわたる文字列を\nなどのエスケープシーケンスを用いずに表現することができる

例 (Kotlin):

var str = """
  A pessimist sees the difficulty in every opportunity.
  An optimist sees the opportunity in every difficulty.
  - Winston S. Churchill
"""

参考:

速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ

イミュータブル (immutable)とは

  • 生成後に状態を変更できないオブジェクト
  • 逆に変更可能なオブジェクトをミュータブル(mutable)という
  • オブジェクトの予期しない変更を気にする必要がなくなる。関数に渡したり、メソッド呼び出しによってオブジェクトの状態が変更がされない(例えば、値が変わらない)。
  • 変更不可とは値を再代入できないという意味では無く、変更できないのは参照先の値である。値を再代入する際には、内部的には新たに値を格納する領域を確保して、その領域を参照先に変更している。

参考:

Pythonの組み込みデータ型の分類表(ミュータブル等)

[Python]イミュータブルなオブジェクトは何がどう変更不可なのか

Immutableとはなんぞや?なにが嬉しいの?