2020 |
07,16 |
public class MyApp {
public static void main(String[] args) {
String s = "abcdef";
System.out.println(s.length()); // 6
System.out.println(s.substring(2, 5)); // cde
System.out.println(s.replaceAll("ab", "AB"));
String s1 = "ab";
String s2 = "ab";
if (s1.equals(s2)) {
System.out.println("same!");
}
if (s1 == s2) {
System.out.println("same!same!");
}
//文字列ごとにきっちり新しい領域を使わせたい場合にはnew してあげて
//明示的にメモリ領域をとってあげるといい
String ss1 = new String("ab");
String ss2 = new String("ab");
if (ss1 == ss2) {
System.out.println("same!same!same!");
}
}
}
PR
2020 |
07,15 |
«ラムダ式_1»
ラムダ式の特徴はメソッドを変数のように扱える点にある。
基本書式は~~
(メソッドの引数例) -> (処理内容)
2つの整数値を引数にとりその和をメソッドに渡すースはラムダ式で以下のようにかくことができます。
ラムダ式はなにができる???
ラムダ式のメリットは匿名っクラス(1ドだけしか使わないようなクラス)を
用いる場合よりも関数型interface(抽象メソッドを1つだけもつinterfaceの記述)が簡潔になることにある!
ラムダ式で記述することによって、プログラムが冗長になることを防ぎより本質的な部分の記述に集中することができうるようになるのです!
基本書式は~~
(メソッドの引数例) -> (処理内容)
2つの整数値を引数にとりその和をメソッドに渡すースはラムダ式で以下のようにかくことができます。
ラムダ式はなにができる???
ラムダ式のメリットは匿名っクラス(1ドだけしか使わないようなクラス)を
用いる場合よりも関数型interface(抽象メソッドを1つだけもつinterfaceの記述)が簡潔になることにある!
ラムダ式で記述することによって、プログラムが冗長になることを防ぎより本質的な部分の記述に集中することができうるようになるのです!
2020 |
07,15 |
/*
スレッド処理を実装してみよう!
threadはcomputerの処理単位のことでこれを複数立ち上げれば複数の処理を
同時に実行させることができる。
実は今まで見てきたmain()の処理もthread上で実行されているので今回はもう一つ
threadを立ち上げて同時に実行されるかを確かめてみましょう
*/
//interfaceを実装するのでimplements を使用します
class MyRunnable implements Runnable{
@Override
public void run(){
for(int i = 0; i<500; i++){
System.out.print('*');
}
}
}
public class MyApp {
public static void main(String[] args) {
MyRunnable r = new MyRunnable ();
//threadクラスのインスタンス
Thread t = new Thread(r);
//startというメソッドを呼び出す
t.start();
for(int i = 0; i<500; i++){
System.out.print('.');
}
}
}
2020 |
07,15 |
«ジェネリクス_1»
// generics
//ジェネリクスを使うと汎用化されたデータ型でクラスやinterfaceを作ることができます
// class MyInteger {
// public void getThree(int x) {
// System.out.println(x);
// System.out.println(x);
// System.out.println(x);
// }
// }
//よくTypeという意味で大文字のTが使われる
class MyData<T> {
public void getThree(T x) {
System.out.println(x);
System.out.println(x);
System.out.println(x);
}
}
public class MyApp {
public static void main(String[] args) {
// MyInteger mi = new MyInteger();
// mi.getThree(55);
//参照型しかかけない!たとえばデータ型であるintなどはダメ!
MyData<Integer> i = new MyData<>();
i.getThree(32);
MyData<String> s = new MyData<>();
s.getThree("hello");
}
}
2020 |
07,15 |
★オートボクシング
プリミティブ方からラッパークラスへの自動変換をautoboxingといいます。
int型でせんげんされたnumlntをInteger型へ明示的に変換する必要がありません。
★アンボクシング
ラッパークラスからプリミティブ型への返還をアンボクシングといいます。
こちらもInteger型で宣言されたnumInteger を明示的にint 型へ変換する必要がありません。
プリミティブ方からラッパークラスへの自動変換をautoboxingといいます。
int型でせんげんされたnumlntをInteger型へ明示的に変換する必要がありません。
★アンボクシング
ラッパークラスからプリミティブ型への返還をアンボクシングといいます。
こちらもInteger型で宣言されたnumInteger を明示的にint 型へ変換する必要がありません。