JJUG CCC 2023 Spring
GMOインターネットグループ ブース企画
「Java Quiz Challenge -GMOペイメントゲートウェイ監修-」
■クイズで知る!GMO ペイメントゲートウェイ
Q1. 当社は創業以来、20年以上増収増益を続ける成長企業です(上場以来17期連続)。では、20年以上連続増収増益している日本の上場企業は何社あるでしょうか。
1.1~5 社
2.6~15 社
3.16~30 社
4.31~50 社
----------------------------
正解:1(4 社 ※2023/6/5 現在)
解説:ニトリ 36 年/パン・パシフィック・インターナショナルホールディングス 31 年/
GMOペイメントゲートウェイ 22 年/イー・ギャランティ 21 年
参考:https://diamond.jp/zai/articles/-/249245
【連続「増収増益」期間ランキング】(2023 年最新版)
Q2. 当社は、「パートナー(社員)の成長こそが企業の成長の源泉」であると考え、「企業は〇なり」という価値観を大切にしています。〇に入る言葉はなんでしょうか。
1.仁
2.愛
3.人
4.心
----------------------------
正解:3(企業は人なり)
解説:当社の持続的な成長の背景にはビジネスモデルの強みだけでなく、「企業は人なり」の
企業文化が根底にあります。数十年の長期にわたり成長を続けていくには、しっかりとした企
業風土と、それを背景にパートナー(社員)個々がビジネスパーソンとしてレベルアップするこ
とがとても重要であると考えています。
■Java Trivia Challenge
Q3. Java のマスコットキャラクターの名前は次のうちどれでしょう?
1.Monalisa
2.Tux
3.Duke
4.Kodee
----------------------------
正解:3
ソース | ||
Monalisa | GitHub の公式マスコットキャラクターの名前 | GitHubのキャラクターの足がタコなのは「サンゴ」を食べたからだった! 正式名称は「Octocat」ではなく「Monalisa」 - ねとらぼ (itmedia.co.jp) |
Tux | Linux オペレーティングシステムの公式マスコット | タックス - Wikipedia |
Duke | Java の公式マスコット | OpenJDK: Duke |
Kodee | Kotlin の公式マスコット | The Kotlin Mascot Returns – Say Hello to Kodee! | The Kotlin Blog (jetbrains.com) |
Q4. Sun Microsystems によって発表された Java 言語ですが、当時の Java のスローガンは次のうちどれでしょう?
1.Internet for Everyone
2.enjoy programming
3.Write once, run anywhere
4.Java is Still Free
----------------------------
正解:3
ソース | ||
Internet for Everyone | GMOインターネットグループのコーポレートスローガン | ブランド | GMOインターネットグループ株式会社 |
enjoy programming | Ruby の設計思想 | Ruby - Wikipedia I hope to see Ruby help every programmer in the world to be productive, enjoy programming, and be happy. That is the primary purpose of Ruby language. Matz on Ruby 1.9, Google TechTalks 2008 |
Write once, run anywhere | ||
Java is Still Free | Oracle JDKの配布とサポートの変更の混乱期にJavaチャンピオンメーリングリスト数十名が執筆したドキュメントのタイトル |
■Java Code Challenge
Q5. Java 言語における予約語は次のうちどれでしょう?(※複数選択可)
1.array
2.goto
3.null
4.int
5.function
6._ (アンダースコア)
----------------------------
正解:2、4、6
関連情報:Chapter 3. Lexical Structure (oracle.com)
予約語に関する問題。すべての予約語は、Java SE Specification をご覧ください。
null は予約語ではなく、null リテラルとなります。
Q6. 次のコードの結果は次のうちどれでしょう?
"a:::".split(":")
1.String[1] { "a" }
2.String[2] { "a", "::" }
3.String[4] { "a", "", "", "" }
4.例外がスローされる
----------------------------
正解:1
jshell> "a:::".split(":")
$1 ==> String[1] { "a" }
静的コード解析ツールである ErrorProne のバグパターン「StringSplitter」より出題
StringSplitter (errorprone.info)
Q7. 次の Java クラスを実行した場合、どういう結果になるでしょう?(記述式)
public class Quiz5 {
static {
System.out.print("G");
}
public Quiz5() {
System.out.print("M");
}
public void run() {
System.out.print("O");
}
public static void main(String[] args) {
System.out.print("-");
var app = new Quiz5();
app.run();
app.run();
System.out.print("P");
}
static {
System.out.print("G");
}
}
----------------------------
正解:GG-MOOP
コードの実行順序を問う問題。
出題者からのコメント:
Java 8 (JEP 269: Convenience Factory Methods for Collections) 以降、static イニシャライザーを使用する機会はなくなったため、世代別でジェネレーションギャップを実感しました…。
Q8. 次の Java クラスを実行した場合、どういう結果になるでしょう?(記述式)
public class Quiz6 {
public static void main (String[] args) {
switch1(1);
switch2(2);
}
static void switch1(int input) {
switch (input) {
case 1, 2 -> System.out.print("G");
case 3 -> System.out.print("M");
default -> System.out.print("O");
}
}
static void switch2(int input) {
switch (input) {
case 1:
case 2:
System.out.print("-");
case 3:
System.out.print("P");
break;
default:
System.out.print("G");
}
}
}
----------------------------
正解:G-P
出題者からのコメント:
静的コード解析ツールである ErrorProne のバグパターン「FallThrough」と、Java 14 で追加された Switch 式を組み合わせた問題。旧 switch では、break の記述漏れが多い一方、switch 式では break が不要となりました。
関連情報:
JEP 361: Switch Expressions (openjdk.org)