1. Tipe data dasar
Operasi plastik:
byte 1 byte
pendek 2 byte
int 4 byte
panjang 8 byte
karakter:
karakter 2 byte
Nomor titik mengambang:
mengapung 4 byte
gandakan 8 byte
Boolean:
boolean 1 byte
2.java 7 menambahkan bilangan bulat biner baru
Mulailah dengan 0b atau 0B
3.Karakter di java adalah pengkodean Unicode 16-bit, formatnya adalah '/uXXXX', di mana xxxx mewakili bilangan bulat heksadesimal
4. Java menetapkan tak terhingga positif, tak terhingga negatif, dan nol.
Tak terhingga positif = bilangan positif dibagi 0
Tak terhingga negatif = bilangan negatif dibagi nol
Bagilah 0,0 dengan 0,0 atau ambil akar kuadrat dari bilangan negatif untuk mendapatkan bilangan bukan
5. Tipe Boolean di Java hanya bisa benar dan salah
6. Tidak ada array multidimensi di java
Tampaknya array multidimensi dalam bahasa C bukanlah array nyata. Misalnya, a[3][4], a[0] a[1] a[2] adalah nyata, dan diisi dengan alamat, dan bersifat dinamis dalam bahasa C. Sama dengan array yang dialokasikan
ke dalam [] [] b = ke dalam baru [3] [4]
7. Metode kompilasi dengan paket di Java
javac -d Hello.java akan menghasilkan pohon direktori di direktori saat ini
Jalankan nama paket java.nama kelas
8. Bidang objek dalam polimorfisme Java tidak memiliki polimorfisme, misalnya kelas induk objek = subkelas baru (), objek.bidang disebut kelas induk, meskipun bidang tersebut tercakup dalam subkelas.
9. operator contoh
Format: Nama variabel referensi contoh nama kelas (atau antarmuka) Digunakan untuk menentukan apakah objek sebelumnya merupakan turunan dari kelas, subkelas, atau kelas implementasi dari objek berikut.
10. Konversi antara tipe data dasar dan kelas enkapsulasi terkait di Java
ke dalam a = 1;
Bilangan Bulat A = Bilangan Bulat baru(a);
a = A.intValue();
Hal yang sama berlaku untuk tipe lainnya.
11. Contoh kelas Singleton
public static void main(String[] args)
{
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
Sistem.keluar.println(s1 == s2);
}
}
Bidang Kelas: Nilai awal harus ditentukan dalam blok inisialisasi statis atau saat mendeklarasikan Bidang
Bidang Instance: harus dideklarasikan dalam blok inisialisasi non-statis atau dengan menentukan nilai awal atau konstruktor saat mendeklarasikan FIeld.
13. Variabel akhir harus diinisialisasi secara eksplisit. Sistem tidak akan menginisialisasi variabel akhir secara implisit.
14.java akan menggunakan konstanta pool untuk mengelola konstanta string langsung yang telah digunakan sebelumnya, contoh: String a = "java";, sistem akan menyimpan konstanta string "java" pada konstanta pool, dan ketika String b = "java"; dijalankan lagi, a == b benar
15.Metode final tidak dapat ditimpa, dan kelas final tidak dapat diwarisi.
Jika menggunakan metode privat sama saja dengan metode privat final.
Jika metode yang dimodifikasi dengan final muncul di subkelas, metode tersebut baru didefinisikan oleh subkelas dan tidak ada hubungannya dengan kelas induk.
16. Kelas yang tidak dapat diubah: Bidang kelas ini tidak dapat diubah setelah dibuat. Java menyediakan delapan kelas pembungkus variabel dasar dan kelas string keduanya tidak dapat diubah.
17. Kelas yang tidak dapat diubah yang menyimpan instance dalam cache
boolean publik sama dengan(Obj objek)
{
jika(ini == keberatan)
kembali benar;
if(obj != null && obj.getClass() == CacheImmutale.class)
{
CacheImmutale ci = (CacheImmutale)obj;
return name.equals(ci.getName());
}
kembali salah;
}
Kode hash int publik()
{
kembalikan nama.hashCode();
}
}
kelas publik CacheImmuteTest
{
public static void main(String[] args)
{
CacheImmutale c1 = CacheImmutale.valueOf("Halo");
CacheImmutale c2 = CacheImmutale.valueOf("Halo");
Sistem.keluar.println(c1 == c2);
}
}
Ada juga java.lang.Integer yang disediakan oleh java, yang menggunakan mekanisme caching untuk membuat angka antara -128-127.
Integer in2 = Integer.valueOf(6);
Integer dalam3= Integer.valueOf(6);
in2 == in3 benar;
18. Statis dan abstrak tidak dapat mengubah metode secara bersamaan. Tidak ada metode abstrak kelas.
19. Sebuah kelas dapat memiliki kelas induk dan mengimplementasikan banyak antarmuka. Dalam antarmuka, Filed bersifat publik, statis, dan final, dan metodenya bersifat abstrak publik.
20. Ketika metode kelas dalam non-statis mengakses suatu variabel, urutan pencariannya adalah: pertama dalam metode di kelas dalam -> kelas dalam -> jika tidak ditemukan di kelas luar, akan terjadi kesalahan kompilasi.
Variabel Pembeda kelas publik
{
private String prop = "Variabel instance kelas eksternal";
kelas privat InClass
{
private String prop = "Variabel instan kelas dalam";
info kekosongan publik()
{
String prop = "variabel lokal";
System.out.println("Nilai bidang kelas eksternal: " + DiscernVariable.this.prop);
System.out.println("Nilai bidang kelas dalam: " + this.prop);
System.out.println("Nilai variabel lokal: " + prop);
}
}
tes kekosongan publik()
{
InClass di = new InClass();
di.info();
}
public static void main(String[] args)
{
New DiscernVariable().test();
}
}
22. Akses kelas dalam di luar kelas luar
Akses kelas dalam non-statis: outclass.Inclass varname = new outclass().new InClass();
Akses kelas dalam statis: outclass.Inclass varname = new outclass.Inclass();
kelas Keluar
{
kelasDalam
{
publikDalam()
{
System.out.println("Konstruktor kelas dalam non-statis");
}
}
}
kelas publikCreatInnerInstance
{
public static void main(String[] args)
{
Keluar.Masuk = Keluar baru().Masuk baru();
/*
Kode di atas dapat ditulis secara terpisah sebagai:
Keluar. Masuk;
Keluar keluar = Keluar baru();
masuk = keluar. Masuk baru();
*/
}
}
kelas SubKelas meluas Keluar.Masuk
{
//Menampilkan konstruktor yang mendefinisikan SubClass
SubKelas publik(Keluar)
{
//Menampilkan konstruktor yang memanggil In melalui objek Out yang ditransfer
keluar.super();
}
}
kelas StaticOut
{
kelas statis StaticIn
{
StaticIn publik()
{
System.out.println("konstruktor kelas dalam statis");
}
}
}
kelas publik CreatStaticInnerInstance
{
public static void main(String[] args)
{
StaticOut.StaticIn di = new StaticOut.StaticIn();
/*
Kode di atas dapat ditulis secara terpisah sebagai:
StaticOut.StaticIn di;
di = new StaticOut.StaticIn();
*/
}
}
kelas SubClass memperluas StaticOut.StaticIn
{
//Tidak perlu membuat instance kelas dalam
}