- 1. Java 多次元の配列
- 2. 【Java】例外処理
- 3. Java 拡張for文
- 4. java 配列
- 5. 【Java】インスタンス・コンストラクタ
- 6. Webアプリ脆弱性対応の記録
- 7. Java 配列
- 8. [Google Tasks API(V1)] Javaでタスクリストを取得する
- 9. JVM – Adaptive Sizing
- 10. [Google Tasks API(V1)] JavaでTasks APIを使う
- 11. CとC++とJavaの違い
- 12. for文 繰り返し中断 無限ループ
- 13. whileとdo-while条件式の違い
- 14. Java switch文
- 15. java 複雑な条件式 while分
- 16. java 条件式とif文
- 17. [Google Calendar API(V3)] Javaでカレンダーのイベントを別のカレンダーに移動する
- 18. # Doma2を使ってみる(その3)
- 19. [Google Drive API v3] Googleドメインが変更になるので自分がオーナーのファイルをすべて移動させてみた
- 20. Java 命令実行の文
Java 多次元の配列
多次元とは、1つ以上の次元をもつ配列
## 一次元配列と多次元配列の違い
一元配列
・要素は線形に並んでる。
・要素へアクセスは1つの添え字で行う。多次元配列
・一つ以上の次元を持つ配列。
・要素をを表形式やより複雑なデータ構造で表現できる
・要素へのアクセスは二次元配列場合は2つ、三次元以上の場合はそれ以上の添え字が必要になる
“`
例)
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
matrix[0][0]
matrix[1][2]
“`#### 二次元配列の例
“`
public class MainExample {
public static void main(String[] args) {
// 学生のテストの点数を表す二次元配列
int[][] scores = {
{80, 75, 90},
{85, 70, 85},
{90, 80, 95}
};
【Java】例外処理
# 0.はじめに
Javaを大学で学んでおります。
概念や特徴を以下の文類に分けてまとめました。##### 関連学習
[【Java】用語](https://qiita.com/AkihideKato/items/13ba72a0c61eabc540c3)
[【Java】メソッド・型](https://qiita.com/AkihideKato/items/753ad55b10b29f184b0f)
[【Java】オブジェクト指向](https://qiita.com/AkihideKato/items/3eb988a962774a409f52)
[【Java】インスタンス・コンストラクタ](https://qiita.com/AkihideKato/items/78fc47812f4eccad03cf)
[【Java】例外処理](https://qiita.com/AkihideKato/items/b0840610fc553c57cf1d)
[【Java】注意点・ルール](https://qiita.com/AkihideKato/items/63402744493932e9f
Java 拡張for文
## 拡張for文
ループ変数や添え字を書かなくスッキリしたコードが書ける。##### 拡張for文を使用
“`
public class MainExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};System.out.println(“配列の全要素を出力します:”);
for (int number : numbers) {
System.out.println(number);
}// 各要素に2をかけて出力します
System.out.println(“\n各要素に2をかけて出力します:”);
for (int number : numbers) {
int doubled = number * 2;
System.out.println(doubled);
java 配列
## 配列の活用 3つ!
① ループによる全要素の活用
② ループによる集計
③ 添え字に対応した情報の利用for文で配列を回す(順に利用)
“`
for (int = 1; i < 配列変数名.length; i++) 配列変数名[i]を使った処理 } ``` ## ①ループによる全要素の活用 ``` public class MainExample { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; System.out.println("配列の全要素を出力します:"); for (int i = 0; i < numbers.length; i++) { System.out.println("要素 " + i + ": " + numbers[i]); } System.out.println("\n全要素を2倍にして出力します
【Java】インスタンス・コンストラクタ
# 0.はじめに
Javaを大学で学んでおります。
概念や特徴を以下の文類に分けてまとめました。##### 関連学習
[【Java】用語](https://qiita.com/AkihideKato/items/13ba72a0c61eabc540c3)
[【Java】メソッド・型](https://qiita.com/AkihideKato/items/753ad55b10b29f184b0f)
[【Java】オブジェクト指向](https://qiita.com/AkihideKato/items/3eb988a962774a409f52)
[【Java】インスタンス・コンストラクタ](https://qiita.com/AkihideKato/items/78fc47812f4eccad03cf)
[【Java】例外処理](https://qiita.com/AkihideKato/items/b0840610fc553c57cf1d)
[【Java】注意点・ルール](https://qiita.com/AkihideKato/items/63402744493932e9f
Webアプリ脆弱性対応の記録
担当しているプロジェクトの脆弱性診断報告書に従てセキュリティ強化対応を行いました。本記事はその代表的な箇所と対策を記録します。お客さまのシステムからエビデンスを取っていけないので、うち会社のパッケージからエビデンスをとって説明します。
## 1、SQLインジェクションの影響を受ける可能性がある
### 深刻度
緊急
### 現象
画面から送信情報に「’」を入力して送信してみるとシステムエラーは発生することがあります。### 説明
この指摘内容は結構古典的で絶対考慮すべきです。実はプロジェクトのEfwフレームワークのDB処理にすでにPreparedStatementを用いて対応しました。通常のDB処理ならSQLインジェクションの心配はありません。だが、脆弱性審査されるプロジェクトのDB処理は特別で、CData RestAPIサービスを利用しています。そのプログラムは以下のようです。
“`js
…
var email=params[“#email”];
var objData =new Record(
rest.get(
“https://myserver
Java 配列
配列とは
複数データが入った箱のようなもの
要素
1つのデータのこと
添え字
要素の番号のこと
☆要素が複数入ったものを配列という
☆添え字は0から始まるので、最後の添え字は要素数より1つ小さい◎配列の作成
① 配列変数の宣言
要素の型[] 配列変数名
例)
int[] count② 要素の作成と代入
例)
count = new int[10];①と②をまとめると
int[] count = new int[10];◎配列の要素数の取得
配列変数名.length
例)
count.length変数の値を取り出すには、必ず値を初期化するが配列の要素は自動的に初期化される。
要素の型によって決められている
![00b278f89c96b257eefa08f0ff675ca8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620446/c4682b79-dae9-02d4-db73-90d3ac93e18a.png)◎配列作成と初
[Google Tasks API(V1)] Javaでタスクリストを取得する
Google Tasks API V1(Java)を使用して、
タスクリストを取得する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスクリスト一覧を取得](#1-タスクリスト一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[タスクリストを取得](#2-タスクリストを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. タスクリスト一覧を取得
タスクリストの一覧を取得します。### 1.1. スコープ
このAP
JVM – Adaptive Sizing
Java仮想マシン(JVM)は、Javaアプリケーションが実行される環境を提供し、メモリ管理に関して高度な機能を数多く備えています。その中でも「Adaptive Sizing」という機能は、JVMがアプリケーションの実行状況に応じてヒープメモリのサイズを動的に調整することで、性能の最適化とリソースの効率的な利用を図るものです。
Adaptive Sizingのメカニズムと、それがHeap Committedとどのように関係するかを説明します。
## Adaptive Sizingとは
Adaptive Sizingは、Javaのガーベージコレクション(GC)フレームワークの一部であり、JVMが実行時にヒープメモリのサイズやGCのパラメーターを自動調整する機能です。Adaptive Sizingの目的は、アプリケーションの性能を最適化しながら、メモリ使用量を効率的に管理することにあります。
JVMはアプリケーションが起動する際、ヒープメモリの初期サイズ(-Xms)と最大サイズ(-Xmx)を設定します。Adaptive Sizingはこのヒープメモリの範囲内で、実行中のアプリケーショ
[Google Tasks API(V1)] JavaでTasks APIを使う
Googleが提供しているGoogle Tasks APIをJavaで使ってみました。
***Google Tasks APIとは***
Googleが提供しているAPIで、Google ToDoリストに関する操作ができます。Googleカレンダーからは、右上にあるを選択することで呼び出すことができます。
その他のGoogleサービス(Googleスプレットシート等)でもCとC++とJavaの違い
ごくごく簡単なまとめですが、CとC++とJava比較してみました。
|項目|C|C++|Java|
|:———–|:———– |:———– |:———– |
| 誕生年 | 1972 | 1983 | 1995 |
| 分類 | 手続き型言語 | オブジェクト指向型言語 | オブジェクト指向型言語 |
| 変数宣言時の型指定 | 必要(静的型付け) | 必要(静的型付け) | 必要(静的型付け)|
| クラスの概念 | なし | あり | あり |
| ファイル名とクラス名 | クラスの概念なし | 一致させる必要なし | 一致していなければならない |
| 変数宣言時の初期値設定 | 必要 | (※3) | (※3) |
| 複数戻り値 | 不可 | 不可 | 不可 |
| アクセス修飾子 | なし | あり(※1) | あり(※1) |
| 文字列型 | なし | あり
for文 繰り返し中断 無限ループ
○回繰り返したい時などに使用
☆基本的なfor文☆
for ( int i= 0; i < 10; i++) { ① ② ③ ①初期化処理 i = 0; 最初に1回だけ実行される ②繰り返し条件 i < 10 <= ではない!繰り返す回数を記述。100回の場合は i < 100 とする ③繰り返し時処理 i++ ++ は 1だけ増やす ループ変数を1から10まで増やす for (int i = 1; i < 10; i++) ループ変数を2ずつ増やす for (int i = 0; i < 10; i += 2) ループ変数を10から1ずつ1まで減らしていく for (int 1 = 10; i > 0; i–)
ループ変数を初期化しない
for(; i < 10; i++) 繰り返し時の処理を行わない for(int i = 0; i <10;) ☆繰り返し中断☆ ◎break文 ループを抜けて中断したいときに使用 for (条件式) { if (条件式){ break; } } 例) 1から
whileとdo-while条件式の違い
while文
ブロックを実行する前に条件式を評価する
ブロックが実行されないことがあるdo-whilse文
ループの最低回数
ブロックを実行した後に条件式を評価する
ブロックが最低1回は実行されるdo {
繰り返す処理
} while (条件式);
Java switch文
if-else if-else が何重にもなる場合switch文ですっきりさせることができる!
☆switch文に書き換えルことができる条件☆
①すべての条件が == で左辺と右辺が一致するかを比較する式(それ以外の >, <, =! でない) ②比較する対象が整数(byte型,short型,int型)、文字列(String型)または文字(char型)の時(小数や真偽値ではない) ☆基本構文☆ switch (条件値) { case 値① -> {
処理①
}
case 値② -> {
処理②
}
・
・
・
default -> {
処理X
}☆ default -> {処理内容}は条件に合致したいときの処理のため不要な場合は省略できる
☆caseの値が複数の場合 ,を使用
例) case 1,2 -> (1または2)
java 複雑な条件式 while分
while文
条件式の評価結果がtrueならブロックを繰り返し実行する![62a388464d56e891b3ebdf44bc9924d7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620446/85201fbd-b667-c754-c3ec-660e27912337.png)
&&の例
numが10より大きいかつ100より小さいとき
if ( num > 10 && num < 100) ||の例) numが10より大きいまたは100より小さいとき if ( num > 10 || num < 100) ☆if文やwhile文で使用する条件は、評価結果がtrueまたはfalseになる式でないとだめ! 算術演算子や代入式などを条件式に利用することはできない
java 条件式とif文
☆条件式の書き方☆
![8a2c9b27375f4a946a97269c974a624b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620446/8a513889-d56e-1183-e7f4-64b31fc6805f.png)
☆if文☆
条件式の結果がtrueなら第一ブロック、falseなら第2ブロックを返す
if(分岐条件) {
条件成立のときに実行する処理
} else {
条件不成立のときに実行する処理
}falseのとき、別の条件で分岐したいときは else if 使用
例)
System.out.println(“年齢を入力してください”);
int age = new java.util.Scanner(System.in).nextInt();
if (age <= 3) { System.out.println("300円"); } else if ( age <= 12 ) { System.out.println("500円"); } e
[Google Calendar API(V3)] Javaでカレンダーのイベントを別のカレンダーに移動する
Gmail API v1(Java)を使用して、
Googleカレンダーのイベントを別のカレンダーに移動する方法
についてご紹介します。カレンダーの主催者(作成者)のみが変わります。
イベントIDなどは変わりません。
移動できるイベントはeventTypeが「default」(定期的なイベント)のイベントのみです。
イベントのタイプは下記のタイプが存在します。
|eventType|説明|
|—|—|
|default|通常のイベント、または指定されていないイベント|
|outOfOffice|不在の予定|
|focusTime|サイレント モードの予定|
|workingLocation|勤務場所の予定|:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Go
# Doma2を使ってみる(その3)
# Doma2を使ってみる(その3)
## 主要なクラス
![名称未設定ファイル-ページ2.drawio (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/289963/e2514c3c-1b43-1e79-2b46-8ca024ac6103.png)### [基本クラス](https://doma.readthedocs.io/ja/2.58.0/basic/)
“`
Doma では、データベースのカラム型にマッピング可能なJava型を 基本クラス と呼びます。
“`
エンティティクラスやドメインクラス、DAOインターフェースで使用する### [ドメインクラス](https://doma.readthedocs.io/ja/2.58.0/domain/)
“`
ドメインクラスは、カラムにマップできるユーザー定義のクラスです。ドメインクラスの使用はオプションです。
“`
エンティティクラスやDAOインターフェースで使用する
#### 内部ドメインクラス
“`
クラスに @Do
[Google Drive API v3] Googleドメインが変更になるので自分がオーナーのファイルをすべて移動させてみた
使用しているGoogleのドメインを変更することになったので、
自分がオーナーのファイルのオーナー権限を移設先のドメインに
譲渡しようと試みました。しかし。。。共有はできるけどオーナー権限を移すことができない!
なんでも、
「オーナー権限は同じドメイン内のユーザーのみに譲渡できる」
らしいです。
仕方がないので、よく使うファイルは手動で移して、残りの古いファイルは
Google Drive APIを使って移すことにしました。
隙間時間の30分ほどでさくっと作りましたので細かい部分は目をつむってください。## 1. やっていること
1- 移設元のオーナーファイルを検索2- 対象ファイルに移設先アカウントの編集権限をつける
3- 対象ファイルを移設先の指定フォルダにコピー(指定がなければマイドライブ)
## 2. プログラム
### 2.1. main
1- 以下を引数で受け取ります
|引数|内容|
|—|—|
|第1引数|移設元のメールアドレス(Googleアカウント)|
|第2引数|移設元のOAuthクライアントキ
Java 命令実行の文
命令文の実行
呼び出す命令の名(引数);☆画面に文字を表示☆
System.out.println(引数);
改行しない場合は
System.out.print(引数);☆2つの値を比較して大きいほうの数値を比較☆
int m = Math.max(数値①,数値②);
例)
int a = 10;
int b = 5;
int num = Math(a,b);
System.out.println(” a + “と” + b + “大きい方は” + num);☆文字列を整数に変更☆
int a = Integer.praseInt(数値);☆乱数を発生☆
int a = new java.util.Random().nextInt(数値);
数値には発生させたい上限の数値を入力
例)
int num = new java.util.Random().nextInt(100);
num には 0~100までランダムな数字が代入される☆キーボードから1行の文字列の入力を受け付ける☆
String a = new java.util.Scanner(