リュックに何いれる?

一人暮らし・itエンジニア・読書

「シンプルに生きる」って言うけどさ

シンプルに生きたいと思うことがあります。
(誰でも思うものなのかな?)

 

仕事や生活の中で他人を見ていて
あーこの人の考え方はシンプルでいいなーとか。
この人の行動はシンプルでかっこいいなーとか。

 

なんか漠然とそう感じる時があって

 

じゃあシンプルに生きるってそもそもなんだって話です。

 

自分の心に正直であること?
なにごとも楽しむ?
深く考えすぎない?
人に期待しない?

 

こーいうのって、頑張って言葉で定義しても
どうもしっくりこないんですよね

 

なのでいつも考えているのは、
「小学生の頃の自分だったらどう判断するか」です

小学生の頃の自分は超シンプルに生きていた
気がするんですよね~


それか、自分が過去出会ってきたシンプルな人達を
思い浮かべて、あの人ならどう判断するか、考えます。

 

シンプルに生きるというのは、「無駄ことをしない」
とは違うと思っています。

この辺りを考えていくと、自分について考える深い迷路
に迷い込むので、この辺りでやめておきます。

 

 

何の為の誰向けの記事かわからないけど、これで終わります。

 

以上!

ボーっと考える時間

ボーっと考える時間が減っている気がする


「何かに集中している時間」と「そうでない時間」は
バランスよく必要で、子供の頃は、それがなぜか無意識に
出来たような気がする

 

動画、SNS、ゲーム、どれも面白いけど「そうでない時間」
を一気に消費するんですよね。

 

辞めれば良いというのは現代では難しいと思うし
これらとの、付き合い方が大事なのかなーとかなんとか

 

そんなことを、寝起きのからっぽの頭でボーっと
考えていたりします。

 


こんなブログです。以上

暗記の仕方を変えてみる

覚えることを書き出すのではなく、覚えることを思い出すキーワードを書き出す

 

お久しぶりです。
1年ぶりになっていますが、気を取り直して更新してみます。
仕事は変わっていませんが、生活環境は全然変わりました。

 

昔から、夏になると、何かに思いきり取り組みたくなります。
今年はどうやらPythonになりました。今の業務には全然関係ありません。
それでも、いつかこの勉強が活きると信じて、進めようと思います

 

みたいなことを、スティージョブズも言ってたよね(たしか)

 

最近見た動画で、暗記には「思い出す」行為が重要だとかなんとか


というわけで、しばらく暗記の仕方を変えます。

キーワードを書き、そのキーワードから思い出すようにします。

 

 

以下、昨日、読んだ内容

if文
for文
while
list
zip()
enumerate
unpack
comprehension
tuple
dictionary
in演算子
set
def
デフォルト引数
引数のキーワード指定
関数を変数・リストに代入する
ラムダ演算子
デコレータ
ジェネレータ
クラス
self
データ属性
コンストラク
クラス変数・クラスメソッド
アクセス制御
継承
オーバーライド
module
import
packge

 

 

以上

 

(寝起きなので、文章が適当だが、これで更新!)

【Java SE 11 Silver対策】黒本5章(配列の操作)チェックリスト

今回は調べたわけではなく、「5章 配列の操作」をまとめた内容になります。


・配列型変数の宣言
以下、全部OK
int a;
int b
;
int c;
int d ;
int e;
int f;

 

・宣言時に要素の指定をしてはいけない。
int[3] a; はNG
配列型変数にはインスタンスの参照が入るだけ。要素がいくつかどうかは無関係

 

・配列インスタンスの作成時は、必ず要素数を指定する
int a = new int; はNG

int a = new int[2]; はOK

 

・要素数は必ずint型の整数値
int a = new int[1L]; はNG
int
a = new int[1.2]; はNG

 

・変数とインスタンスの次元数は必ず一致
int a = new int[2][3]; はNG

int a = new int[2][3]; はOK

 

・1次元目の要素の省略はできない。2次元目はできる。

以下、NG
int a = new int[4];

以下、OK
int a = new int[3];
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[4];

 

・配列のインスタンスを作成しても要素自体は作成されない。
int a = new int[2]
上記の記述をしても、a[0]にはまだ何も入っていない。
デフォルト値は以下になる。
整数値:0
浮動小数点数:0.0
真偽値:false
文字列型:\u0000
オブジェクト型:null

Item items = new Item[2];
item[0].price; ← item[0]がnullなので、実行時にNullPointerException発生

 

・配列のインスタンスの生成と要素の初期化を同時に行うには
int a = {1,2,3};
int
b = {{1,2},{3,4,5},{6}};

 

・配列のインスタンスの生成と要素の初期化の方法は二つ

以下はOK
①int a = {1,2,3};
②int a = new int{1,2,3};

以下はNG

int a = new int[3]{1,2,3};

 

・要素0のインスタンスの作成(コンパイルエラーは出ない)
int array1 = {};
int array2 = new int[0];
int
array3 = new int{};
int
array4 = {};
int
array5 = new int[0][0];
int
array6 = new int{};

 

・初期化子を使う際の注意。初期化子を記述する行に次元数が記入されていればOK
以下はOK
int b = {1,2,3};
int c;
c = new int
{1,2,3};
int d;
d = new int{};
以下はNG
int e;
e = {1,2,3};

 

・cloneメソッドについて
public class Main {
    public static void main(String args) throws Exception {
        int arrayA = {1,2,3};
        //cloneメソッドで同じ値を持った配列インスタンスを複製
        int
arrayB = arrayA.clone();
        //複製したので、もちろんインスタンス(参照先)は異なる
        System.out.println(arrayA == arrayB);
        for (int i : arrayB){
            System.out.println(i);
        }
        
        int arrayC = {{1},{2,3},{4,5,6}};
        int arrayD = arrayC.clone();
        //2次元配列の場合、1次元目のインスタンスは別のインスタンス
        System.out.println(arrayC == arrayD);
        //ただし、2次元目のインスタンスは同じインスタンス(同じ参照を持っている)
        System.out.println(arrayC[0] == arrayD[0]);
    }
}

◆出力
false
1
2
3
false
true

 


以上、おわり!

 

Silverの勉強も大詰め!

 

【Java SE 11 Silver対策】JVM、JDK、JREについて

今回は用語の復習

 

何度も聞いたことあるけど、違いがよく分からんシリーズです。(いま作りました。)

 

調べてみました。いつものことですが、ざっくり書いてます。

 

 

JVMJava Virtual Machine

Javaプログラムの実行に必要なソフトウェア


JREJava Runtime Environment)

Javaプログラムの実行に必要なソフトウェア一式
Java実行環境やJavaランタイムと呼ばれる。JVMを含んでいる。


JDKJava Development Kit

Javaプログラムの実行や開発に必要なソフトウェア一式
Java 開発環境と呼ばれる。JREを含んでいる。

 



文章より図の方が分かりやすいですね。

 

JDKは各OS用のものが用意されている。

JREJDKに含まれているため、個別にセットアップする必要はない。

Eclipseなどの統合開発環境IDE)にはJDKは含まれていないので、別途インストールする必要がある。

 


サクレのレモンを食べながら、今日はこの辺で

【Java SE 11 Silver対策】ソースファイルモードについて

今回の内容は黒本に記載されているので、特別調べた内容はありません。


記憶に定着させたかったので、書いています。

 

ソースファイルモードについては、もちろん知りませんでした。

 

簡単に説明すると、今まではソースファイルの実行をする場合、「javacコマンドでコンパイル」→「javaコマンドで実行」の2回の操作が必要でした。
だがしかし、ソースファイルモードだと、これを1回でやってくれます。なんと言うか・・・どんどん楽になっていきますね。

※ソースファイルモードはJava SE 11から使えます

 

メリットしては初学者がストレスフリーに学べる点ぐらいでしょうか。

コンパイルして~実行して~って面倒ですからね。

(っていうのを最初は黙々とやってました・・・はい)

 

まぁでも、ちょっと動作確認したい時はオンライン実行環境の「paiza」、がっつり開発するときは「eclipse」を使っているので、今後使う見込みは・・・今のところはなさそうです。

 

ちなみにコンパイル自体はもちろん行われていて、クラスファイルに相当するバイトコードをメモリ上に出力しているそうです。
(そんなことできるんや・・・)

 

また、javaコマンドの引数のファイル名の拡張子が「.java」の場合は自動的にソースファイルモードになるそうですが、なんと、「.java」じゃないファイルも「--source」オプションをつけることで、ソースファイルモードで実行できるようです。

 

この辺りも、必要になることもないんじゃないかなーと思います。

 

あと、覚える必要があるかは謎ですが、ソースファイルモードですと、クラス名とファイル名を一致させる必要もないそうです。
(ほえー)


一応、黒本に記載されているので、覚えようと思いますが、そこまで重要ではないのかなーと思っています。

 

 

 

連日暑い日が続きますが、自身の目的の為に勉強中の方のツイートやブログを見て、モチベを維持しております。

 

一緒に頑張りましょう!