Operator bertitik dua (::) dalam Java
Di Jawa, pentadbir dua kali ganda (::), atau dipanggil pentadbir rujukan strategi, ialah elemen kuat yang dibentangkan dalam Java 8. Ia memberikan kaedah yang ringkas dan kaya untuk merujuk kepada teknik atau pembina tanpa menimbulkannya pentadbir menambah baik pada kod dan meningkatkan koheren kod, menjadikannya instrumen penting untuk pereka bentuk Dalam artikel ini, kami akan menyiasat struktur bahasa pentadbir dua kali ganda, bercakap tentang aplikasinya dan memberikan panduan kod untuk pemahaman yang lebih baik.
.Sintaks
Pengendali titik dua bertindih terdiri daripada dua titik bertindih (::) diapit antara nama kelas atau rujukan objek dan nama kaedah. Ia digunakan sebagai notasi ringkas untuk kaedah rujukan atau pembina di Jawa.
// A functional interface with a single abstract method interface Printer { void print(String message); } // A class that implements the Printer interface class ConsolePrinter { public static void printMessage(String message) { System.out.println(message); } } public class Main { public static void main(String[] args) { Printer printer = ConsolePrinter::printMessage; printer.print("Hello, World!"); } }
Penjelasan tatabahasa
Dalam kod di atas, kami menggunakan titik gabungan utiliti yang dipanggil Pencetak untuk menentukan kelas dengan satu kaedah dinamik print(). Kelas ConsolePrinter melaksanakan titik sambungan ini dan menyediakan pelaksanaan untuk kaedah printMessage(). Dalam kelas Principal, kami mencipta contoh Printer menggunakan pengendali bertitik dua untuk merujuk kaedah printMessage() kelas ConsolePrinter. Akhir sekali, kami memanggil kaedah print() contoh pencetak, yang seterusnya memanggil kaedah printMessage().
Algoritma
Untuk menggunakan pengendali bertitik dua di Jawa, ikut langkah ini -
Tentukan antara muka berfungsi dengan kaedah abstrak tunggal.
Laksanakan antara muka dalam kelas dan sediakan pelaksanaan kaedah.
Gunakan operator bertitik dua untuk merujuk kepada kaedah atau pembina
Gunakan pengendali bertindih dua untuk mencipta contoh antara muka berfungsi.
Memanggil kaedah ini pada contoh akan memanggil kaedah atau pembina yang dirujuk.
Kaedah 1: Rujukan kaedah menggunakan operator dua kolon
Pendekatan 1 melibatkan penggunaan operator bertitik dua untuk merujuk kaedah statik kelas. Pendekatan ini berguna apabila kita ingin menghantar rujukan kaedah yang tidak bergantung pada mana-mana pembolehubah contoh.
Contoh
// A functional interface with a single abstract method
interface Calculator {
int calculate(int a, int b);
}
class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = MathUtils::add;
int result = calculator.calculate(5, 3);
System.out.println("Result: " + result);
}
}
Output
Result: 8
PenjelasanKalkulator ialah antara muka berfungsi dengan kaedah abstrak kira(). Fungsi MathUtils statik add() digunakan untuk menambah dua nombor. Pengendali bertindih berganda mencipta contoh Kalkulator yang merujuk kaedah MathUtils add(). Kami memanggil kaedah pengiraan () kalkulator dengan dua nombor. Hasil keluaran konsol.
Kaedah 2: Gunakan pembolehubah contoh untuk menggunakan pengendali bertitik dua untuk rujukan kaedah
Pendekatan 2 melibatkan penggunaan pengendali bertitik dua untuk merujuk kaedah contoh objek tertentu.
Contoh
import java.util.ArrayList;
import java.util.List;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public void printName() {
System.out.println(name);
}
}
public class Main {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice"));
persons.add(new Person("Bob"));
persons.forEach(Person::printName);
}
}
Output
Alice
Bob
PenjelasanDalam contoh ini, kami mempunyai kelas Individu dengan strategi printName() untuk mencetak nama individu. Kami mencipta senarai projek Individu dan menambah dua contoh. Menggunakan pengendali bertitik dua, kami merujuk strategi printName() kelas Individu dalam kaedah forEach() antara muka Senarai. Ini menyebabkan kaedah printName() dipanggil, mencetak nama setiap elemen dalam senarai ke konsol.
Kaedah 3: Gunakan pengendali bertitik dua untuk merujuk kepada kaedah contoh bagi mana-mana objek.
Pendekatan 3 melibatkan merujuk kaedah contoh bagi mana-mana objek sewenang-wenangnya daripada jenis tertentu menggunakan pengendali bertitik dua.
Contoh
import java.util.Arrays;
import java.util.List;
class StringUtil {
public boolean isPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
}
public class Main {
public static void main(String[] args) {
List<String> words = Arrays.asList("level", "hello", "radar", "world");
StringUtil stringUtil = new StringUtil();
long count = words.stream().filter(stringUtil::isPalindrome).count();
System.out.println("Number of palindromic words: " + count);
}
}
Output
Number of palindromic words: 2
PenjelasanDalam sekerap kod ini, kelas StringUtil menguji palindrom dengan isPalindrome(). .
Pendekatan 4: Rujukan pembina menggunakan operator dua kolon.
Kaedah 4 melibatkan rujukan pembina menggunakan pengendali dua kolon.
Contoh
import java.util.function.Supplier;
class Employee {
public String name;
public int age;
public Employee() {
// Default constructor
}
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "Employee [name=" + name + ", age=" + age + "]";
}
}
public class Main {
public static void main(String[] args) {
Supplier<employee> employeeSupplier = Employee::new;
Employee employee = employeeSupplier.get();
employee.name = "John Doe";
employee.age = 30;
System.out.println(employee);
}
}
</employee>
Output
Employee [name=John Doe, age=30]
PenjelasanDalam model ini, kami mempunyai kelas Perwakilan dengan pembina yang ditentukan. Menggunakan pengendali kolon berganda, kami mencipta contoh titik interaksi fungsi Pembekal yang merujuk kepada pembina Perwakilan. Kemudian, kami memanggil kaedah get() pada contoh employeeSupplier untuk mendapatkan objek Perwakilan yang lain. Kami menetapkan nama dan umur pekerja dan mencetaknya ke konsol menggunakan kaedah toString().
Kesimpulan
Pengendali bertitik dua (::) di Java ialah elemen berkuasa yang diperkenalkan di Java 8. Ia menyediakan cara yang ringkas dan kaya untuk merujuk kaedah atau pembina tanpa memanggilnya secara langsung. Dengan menggunakan pengendali bertitik dua, kami boleh menambah baik kod, meningkatkan kebolehbacaan dan memanfaatkan faedah pengaturcaraan berfungsi dalam Java. Memahami sintaks dan kaedah penggunaan berbeza pengendali bertitik dua adalah perlu untuk setiap pembangun Java. Oleh itu, pastikan anda meneroka dan menggunakan ciri ini dalam projek Java masa hadapan anda untuk meningkatkan pengalaman pengekodan anda.
Atas ialah kandungan terperinci Operator bertitik dua (::) dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JVM Mengendalikan Perbezaan API Sistem Operasi melalui JavanativeInterface (JNI) dan Perpustakaan Standard Java: 1. JNI membenarkan kod Java untuk memanggil kod tempatan dan terus berinteraksi dengan API Sistem Operasi. 2. Perpustakaan Standard Java menyediakan API bersatu, yang dipetakan secara dalaman kepada API sistem operasi yang berbeza untuk memastikan kod tersebut berjalan di seluruh platform.

modularitydoesnotdirectlyaffectjava'splatformindected.java'splatformindectenceismaintybythejvm, butmodularityinfluencesapplicationstructureandManagement, indirectlyimpactingplatformindect.1) DeploymentandmentandmentweMbecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecom

BytecodeinjavaistheintermediaterepresentationThateNableSplatformindant.1) javacodeiscompiledintobytecodestoredin.classfiles.2)

JavaachievesplatformindependencethroughavavaVirtualMachine (JVM), yang mana -yexeCuteSbytecodeonanydeviceWIjvm.1)

Kemerdekaan platform dalam pembangunan Javagui menghadapi cabaran, tetapi boleh ditangani dengan menggunakan swing, javafx, penampilan penyatuan, pengoptimuman prestasi, perpustakaan pihak ketiga dan ujian silang platform. Pembangunan Javagui bergantung pada AWT dan Swing, yang bertujuan untuk menyediakan konsistensi rentas platform, tetapi kesan sebenar berbeza dari sistem operasi ke sistem operasi. Penyelesaian termasuk: 1) Menggunakan Swing dan Javafx sebagai Toolkit GUI; 2) menyatukan penampilan melalui uimanager.setlookandfeel (); 3) mengoptimumkan prestasi untuk memenuhi platform yang berbeza; 4) menggunakan perpustakaan pihak ketiga seperti Apachepivot atau SWT; 5) Melaksanakan ujian silang platform untuk memastikan konsistensi.

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1) jvmvariationsaffecperformanceandbehavioracrossdifferentos.2) nativelibrariesviajniintroduceplatform-specificiSsues.3)

Kod Java akan mempunyai perbezaan prestasi apabila berjalan pada platform yang berbeza. 1) Strategi pelaksanaan dan pengoptimuman JVM adalah berbeza, seperti OracleJDK dan OpenJDK. 2) Ciri -ciri sistem operasi, seperti pengurusan memori dan penjadualan thread, juga akan menjejaskan prestasi. 3) Prestasi boleh ditingkatkan dengan memilih JVM yang sesuai, menyesuaikan parameter JVM dan pengoptimuman kod.

Java'splatformindecthaslimitationscludingperformanceOverhead, VersionCompateIssues, cabaranwithnativelibraryintegration, platform-specificfeatures, danjvminstallation/penyelenggaraan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver Mac版
Alat pembangunan web visual

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
