JAVA関連のことを調べてみた2021年01月27日

JAVA関連のことを調べてみた2021年01月27日

Scala + Playで超簡易API作成(環境構築編)

## シリーズ
– 環境構築 <- イマココ - マイグレーション - クエリ(crudのread) - コマンド(crudのcreate,update,delete) ## 前提条件 - dockerがインストールされている - docker-composeコマンドが使用できる ## 開発環境 dockerで以下2つのコンテナをたてて作業していきます。 - workspace(作業用コンテナ) - postgres(DB) ### 1. コンテナを用意 今回は私が用意した開発環境を使います ``` git clone https://github.com/poposuke1995x/dev-envs.git ``` プロジェクト名のディレクトリを作成 ``` mkdir scala-sample-api ``` scalaディレクトリ配下をプロジェクト配下にコピー ``` cp -r dev-envs/scala/* ./scala-sample-api/ ``` 起動 ``` cd scala-sample-api docker-compose up -d `

元記事を表示

java staticイニシャライザとは

#staticイニシャライザとは

クラスのロード時に一度だけ実行されるコードブロックのこと。

例)

“`java:staticSample.java

class Sample{
public static void main( String args[] ){
System.out.println( “今年で” + Nenrei.age + “歳になる。”);
}
}

class Nenrei{
static int age = 25;

static{
age ++;
}
}
“`

上記の実行結果

“`
今年で26歳になる。
“`

Nenreiクラスのstaticフィールドであるageが呼び出された際に、
staticイニシャライザに定義されている

“`
age ++
“`

が実行され、ageが+1される。

**また、staticイニシャライザは1つのみではなく、複数定義する事も可能**

元記事を表示

javaのデータ型について 

JavaSilverの勉強していく中で知ったことをかなり簡潔になるとは思いますが備忘録としてまとめていこうと思います。
間違いなどがありましたら申し訳ございません。

##基本データ型
int,doubleなどの基本データ型は格納できるサイズが決まっていてintなら32bit,doubleなら64bitまでのデータを格納できる
箱を用意してそこにデータを入れているようです。
##String型
自分のイメージとしてintなどの基本データ型はデータそのものを見て
Stringのような参照型はデータが存在する場所を見ている。
>“`Java
String str = “hello”;
///この時、helloとokでは別の場所を見ている
str = “ok”;
>“`

String型の変数に一文字を表すchar型の値を入れようとするとエラーが発生します。
Stringとcharは同じ文字ではあるが別物であるということになります。

>“`java
String str;
char data = ‘あ’;
str = data;
//Exception in thread “mai

元記事を表示

WebLogic CVE-2020-14756 T3/IIOP 反序列化RCE

# 复现
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/0a190c57-1208-6f7e-7e89-6049cb59eea1.png)

# 分析
在coherence包中 `com.tangosol.io.ExternalizableLite` 存在反序列化接口

其借助`com.tangosol.io.ExternalizableLite`实现序列化反序列化逻辑
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/6a4fe436-c41c-e8e2-ef25-3c35769a4849.png)

在ExternalizableLite中有readObjcet()

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/d50b0196-52cb-a83a

元記事を表示

【Android】Intentリンクを作成する

## はじめに
前回はターミナルからadbコマンドでアプリを開いてみた。[前回記事](https://qiita.com/kilalabu/items/7b84694d542250259e78)
今回はリンクをタップするとアプリが開く実装をする。
![book.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/fed0f58f-6ca0-5492-6c79-49cf6b79aef5.gif)

## インテントリンクについて
Androidではインテントリンクを使うとWebページから直接アプリを起動できる。
また、タップした時点でアプリがインストールされてなければPlayStoreに遷移することも可能。

### 構文
インテントリンクを作成するには以下の構文に沿って作成する必要がある。
※ 全て設定する必要はない。

“`
intent:
HOST/URI-path
#Intent;
package=\[string\];
action=\

元記事を表示

java IntegerList String変換

private String toString( integers) {
List list = new ArrayList<>();
for (Integer integer: integers) {
list.add(String.valueOf(integer));
}
return String.join(“,”, list);
}

元記事を表示

AndroidStudio[Material Design]を導入

<記録用>
AndroidStudioへMaterialDesignを入れてみる。

参考サイト
https://material.io/develop/android/docs/getting-started

元記事を表示

Apache MINA SSHD を使って Java で SFTP サーバをつくる

https://github.com/apache/mina-sshd
MINA SSHD を使えば Java のプロセスを立ち上げるだけで SFTP サーバが用意できます。
急に SFTP サーバが必要になった時に便利。

Spring Boot で Bean としておけば、 HTTP を提供しながら SFTP を提供とかできます。
試した系の記事はもうありますが、細かいところを色々調べる必要があったのでメモ。

—-

全体はこんな感じ。結構公開用に書き直したりメソッドを開いたりしているので参考程度です。

“`java
@Bean
public SshServer sftpServer(
String serverKeyPath
) throws IOException {

// 1
SshServer server = SshServer.setUpDefaultServer();
server.setPort(8021);

元記事を表示

MPAndroidChartのメモ

MPAndroidChartの使い方メモ
折れ線グラフをScroll(横方向)させる。

//グラフをスクロール可能にする
mChart.setVisibleXRangeMaximum(7f);

元記事を表示

Metabaseでドリルダウン・ドリルスルーのような機能を実装する

#課題
Metabaseの公式ドキュメントを見てみたが、ドリルダウン・ドリルスルーが実現できるのか不明・・・

ディスカッションを検索しても良く分からず。

https://discourse.metabase.com/search?q=drill

#解決策

集計用のダッシュボードと、ドリルダウン先のダッシュボードを作成して、疑似ドリルダウンを実装する。
このやり方でも、意外と色々実現できると思われる。

##①フィルタを実現する

* ドリルダウン先のデータを作成する。

* SQLのwhereに変数を使用する。

* ここでは、 {{ID}}で、ID変数を使用している。
* where以降を [[ where ~ ]] と囲むと、条件指定が抜けていても動作するようになる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389658/8f407bd9-f074-e28b-e9f1-4522c7573b99.png)

* ダッシュボード側で、IDと変数のIDを紐づける。

元記事を表示

WebLogic CVE-2021-2109 JNDI RCE

console的JNDI注入,需要登录。

# 复现
1. weblogic 14.1.1
2. jdk8u112
3. [JNDI-Injection-Exploit](https://github.com/welk1n/JNDI-Injection-Exploit)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/88a5af7b-2cc7-055e-66a5-1e1727b0cc40.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/969d2268-9373-15f0-25ed-2a62093bf742.png)

# 分析
consolejndi.portal中存在`JNDIBindingPageGeneral` jndi绑定的东西

![image.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

【Java】StringBuilderの使い方 

#はじめに
本記事では2つ以上の文字列を連結させる際に使用するStringBuilderの使い方についてアウトプットします。

#+演算子で文字列結合する問題点
文字列結合で最も簡単な方法は+演算子を使うことですが、以下のような問題点があります。
・Stringインスタンスは不変 (値の変更ができない)
・+によって連結が行われる場合、古いインスタンスは捨てられ、newによって新たなインスタンスが生成される
・大量の文字列を連結させる場合、JVMへの負担が大きくなる

この問題を解決するのがStringBuilderです。

#書き方
StringBuilderは可変なクラスとして設計されているため、newをしなくても文字列の連結が可能です。
そのためJVMへの負担が軽減され、処理が高速化します。

toStringメソッドで文字列ビルダーから文字列を取得する方法が一般的に推奨されています。

“`java
StringBuilder sb = new StringBuilder();

sb.append(“Hello “);
sb.append(“Qiita!”);

Syst

元記事を表示

【Java】java.lang.NullPointerExceptionを避ける方法

#プログラミング勉強日記
2021年1月23日
Javaでコードを書いているときに、よく出てくるNullPointerExcptionの意味と、NullPointerExcptionにならないようにする方法をまとめる。

“`:java.lang.NullPointerException
Request processing failed; nested exception is java.lang.NullPointerException
“`

#NullPointerExceptionとは
 参照型の変数の値にnullが格納されているとき、それを参照しようとしたときには発生する例外である。

> NullPointerException(ナル・ポインタ・エクセプション、ヌル-)は、プログラミング言語Javaにおける例外の一つである。
null値(定義されていない値)の参照型変数を参照しようとした時に発生する。NullPointerExceptionは実行時例外と呼ばれるjava.lang.RuntimeException クラスのサブクラスであるため、try-catch節に

元記事を表示

【JavaScript, Java】数値の桁数を取得する方法

#プログラミング勉強日記
2021年1月25日
数値の桁数の取得方法に困ったので、備忘録として書く。

#JavaScriptで数値の桁数を取得する

“`js
let number = 12345;
let numberDigit = String(nuber).length;
console.log(numberDigit); // 5
“`

#Javaで数値の桁数を取得する

“`java
int number = 12345;
int numberDigit = String.valueOf(number).length();
System.out.println(numberDigit); // 5
“`

#入力した整数値の桁数を出力するプログラム

“`html




sample