エンジニアのひよこ_level10

【毎日更新!】新卒4年目エンジニアブログです!

Java

【Java?】Minecraftのサーバーを建てると、実務に使えること色々学べる?【993日目】

サーバーを建てよう Minecraftというゲームがあります。 これは、PC版(厳密にはもう一つバージョンがありますが)は、中身がJavaで出来ています。 そして、そのサーバーを建てる過程で学べることが多いといいますか、 今の私の知識の一部を支えていることに気…

【Gradle/SpringBoot】jarファイルを作成する方法【990日目】

サーバーで開けれるjarが作りたい SpringBootを使って、Webアプリを作りました。 手元のデバッグ機能でページを開くとかは出来ている。 では、実際にファイルを配置するために、jarファイルにしたいがどうすればいいか。 今回は、Gradleを使っている場合を想…

【Tomcat】ディレクトリの構造についてのめも【985日目】

Tomcatのディレクトリ構造を理解する SpringBootとかでも使われているWebコンテナ、Tomcat。 ディレクトリ構造を理解すると、何かあった時にさっと対応出来ます。 主要なディレクトリについて記述していきます。 webapps これわかってたらなんとかなる。 こ…

【Springboot】ControllerでModelAndViewを戻り値であえて使う理由【983日目】

Modelでもいいが、あえてModelAndViewを使う public String index(Model model) { return "/index.html"; } public ModelAndView index(ModelAndView mav) { mav.setViewName("/index.html"); return mav; } このように2つの書き方があるが、あえて後者を選…

【Java】フィールド値、コンストラクタで値を入れるべき?【956日目】

コンストラクタで値を入れる? class Apple { private string color = "red"; } class Apple { private string color; Apple() { this.color = "red"; } } どちらがいいだろう。 この例はどちらでもいい 上の例はどちらでもいいです。 強いて言うなら、上の…

【VSCode・Java】デバッグ時にVM変数を追加する方法【955日目】

VM変数を追加したい デバッグ時に、プログラムに引数を渡すことが出来る。 launch.jsonに"args"の項目を書くと、引数を渡すことが出来る。 しかし、EclipseでいうVM変数、intelliJにおけるVM optionの項目が見当たらない。 どうやって書くか。 vmArgs vmArgs…

【Java】GradleでBash経由でプロジェクトをリフレッシュしたい【952日目】

Gradleをリフレッシュしたい build.gradleのdependenciesを更新とかして、リフレッシュをさせたい。 VSCodeとか使ってるのでbash経由で更新したい。 build --refresh-dependencies gradle build --refresh-dependencies 上記コマンドを打つ。 が、gradleがな…

【SpringBoot】th:replaceでHTMLパーツ化したら、JSも一緒にパーツ化する【930日目】

th:replaceでパーツ化したい HTMLをパーツ化したい。 partsA.html <div id="parts" th:fragment="parts-fragment"> パーツ </div> このパーツを読み出す BaseB <div th:replace="partsA::parts-fragment"> このとき、 id="parts" を使ったJavaScriptがあった。 JavaScriptもパーツ化する partsA.html <div id="parts" th:fragment="parts-fragment"> パーツ </div> </div>

【Java】フィールド値を少し変えて取り出したいのでgetter生やす【908日目】

値を少し変えて取り出したいと言われた 相談されたのが、少し値を変えて表示をしたいという話。 時間を表示したいが、秒がいらないということでした。 Entityを作ったが、それのsetを書き換えるのは違うよな……formatterを作る?とか聞かれました。 表示に関…

【SpringBoot】setViewNameを省略した場合の挙動【881日目】

RequestMappingでコードを書く @RequestMapping(value = "/login", method = RequestMethod.GET) public ModelAndView index(ModelAndView mav) throws IOException { mav.setViewName("login"); return mav; } こんな感じになる。 これで、 /login にアクセ…

【Java】通常のクラスではなく、意味のあるクラスに書き換える【862日目】

今回の差分のコミット github.com 通常のクラスを使っていた // tableを作成 List<List<String>> table = new ArrayList<List<String>>(); List<String> th_row = new ArrayList<String>(); このように、Listなどの標準のクラスを使っていました。 変数の名前だけに意味を持っていたので、各クラスを新</string></string></list<string></list<string>…

【Java】jdk1.13でビルドしても、jre1.8で動かすことができるよって話【861日目】

Javaのバージョン違い 開発をするときに、Javaのバージョンが新しいと、利用する側も新しいバージョンしか動かないと思ってました。 なので、Java1.13で開発をすると、他の人使えないのでは? 専用の仕様で変える 新しいjdkで開発しても、過去のバージョンで…

【Java】.classファイルを読める形式にする【853日目】

.jarを解凍したら…… 前回の記事で.jarファイルから、コンパイル後の.classファイルを取り出すことができた。 ただ、このままだとコードが読めない。 どうするのか。 JAD等でデコンパイル コンパイルしたものを元に戻すツールを使ってみよう https://varaneck…

【Java】.jarファイルを解凍して中身を見る【852日目】

.jarファイルを見たい 諸事情で、.jarファイルの中身を見たい。 (classファイルとかコンパイル後だから、このままだとあまり意味は無いが) .zipと同じ 拡張子を.zipにする いつもどおり解凍をする すると、中身が見れますφ(・・ 中の.classファイルはコンパイ…

【Java】char(文字)とString(文字列)の違い【848日目】

charとString 文字列の扱いがJavaではいろいろあります。 その時のcharとStringに注目して比較してみましょう。 char 文字。 aとかbとか一文字のもの 'a'とかシングルクォーテーションでくくる クラスではなくプリミティブ型 Charクラスは別に存在する。こち…

【Java】packageとimportの役割。PHPと比較【847日目】

packageとimport package item; import htmlitem.Td; public class Table { Td td = new Td(); } こんな感じに、packageとimportがある。なにするか。 importは使用するクラスの指定 ■PHPだと、 useの機能に近いもの。 import java.util.Map; import java.ut…

【Java】インスタンスを初期化してから変更するなら再生成しよう【846日目】

初期化を繰り返した 自分が書いたプログラムに、以下のようなコードがありました。 for (int i = 0; i < max_row; i++) { for (int j = 0; j < max_column; j++) { row.add("{r:" + i + " c:" + j + "}"); } table.add((ArrayList<String>) row.clone()); row.clear(</string>…

【Java】ArrayListのclone()の戻り値がObjectの理由(リリース時期)【845日目】

ArrayListのcloneの実装に疑問を持った Javaは、基本のライブラリはソースコードが見れますので、コードを追ってました。 ArrayList.class /** * Returns a shallow copy of this {@code ArrayList} instance. (The * elements themselves are not copied.) …

【Java】CollectionとListとArrayListの違い【844日目】

ListとArrayList? Javaで複数データを扱うときに、ListとかArrayListとか出るけど、何が違うのか。 全部ArrayListでいいのでは?なんでそうしているのか interfaceと実際のクラス public interface Collection<E> extends Iterable<E> { public interface List<E> ex</e></e></e>…

【SpringBoot⇔Laravel】環境構築。SpringBootを学んで、Laravelと比べてみる【837日目】

SpringBoot始めました ちょっと気になってたSpringBoot。 最近Javaが出来る人が近くに増えたので、教えてもらうことにしました! ということで、まずは環境構築をしてみました。 環境構築 やったことは、こちらの記事を参考にして始めました。 qiita.com 私…

【Java】オーバーロードって『なんのために』あるもの?【665日目】

注意。 自分なりの理解ですφ(・・ オーバーロードって? 処理を場合によって変えるとかって話ではなく、 同じ概念だけど、挙動が違うのを実装する。多態性を実現するためのものって話なのかなって一つ自分の中で結論φ(・・ 『同じ概念』であるのは一番重要かな?…

【Java】型をあとで指定する。<T>ジェネリクス【280日目】

注意 メモ書きです。 どんなやつ? new ArrayList<String>() こんな感じに、あとで型指定できるように書いたことあるよね。 実装こうする class ClassName<T> { private T val; } これで<>の中に書かれた型がvalの型になる 何が嬉しい? イテレーターパターンとか、イン</t></string>…

Docker使って、Javaをbashで動かす【169日目】

事前準備 dev.classmethod.jp こちらを参考に、公式イメージを使えるようにする Dockerfile javaのエンコードを打ち込むの面倒だったので.bash_profileに無理やりalias。 あとでヒアドキュメント構文とかで書き直したい。 FROM store/oracle/serverjre:8 RUN…