JavaRush /Java Blog /Random-IT /Pausa caffè #118. Qual è la differenza tra i linguaggi C+...

Pausa caffè #118. Qual è la differenza tra i linguaggi C++ e Java. Costruttori privati in Java

Pubblicato nel gruppo Random-IT

Qual è la differenza tra C++ e Java

Fonte: Hackernoon I linguaggi di programmazione C++ e Java sono oggi tra i più popolari. Parliamo delle principali differenze tra C++ e Java. Pausa caffè #118.  Qual è la differenza tra i linguaggi C++ e Java.  Costruttori privati ​​in Java - 1Java è un linguaggio di programmazione di uso generale. Appartiene ai linguaggi orientati agli oggetti. I creatori di Java volevano implementare il principio WORA: "Write Once, Run Anywhere". Ciò significa che quando si sviluppa un'applicazione scritta in Java, questa può essere eseguita su qualsiasi piattaforma purché su di essa sia installato Java Runtime Environment (JRE). Il programma viene eseguito compilando il codice scritto in Java in bytecode. Questo formato viene eseguito utilizzando la JVM, ovvero la Java Virtual Machine. Di conseguenza, la JVM fa parte del Java Runtime Environment (JRE). La macchina virtuale è indipendente dalla piattaforma. Java dispone anche di un meccanismo di gestione della memoria chiamato Garbage Collector (GC). Lo sviluppatore crea oggetti e JRE utilizza il Garbage Collector per pulire la memoria quando gli oggetti si fermano. La sintassi del linguaggio Java è simile a quella di altri linguaggi simili al C. Ecco alcune delle sue caratteristiche:
  • Distinzione tra maiuscole e minuscole: l'utente e l'ID utente in Java sono entità diverse.

  • Nome del metodo . Se il nome del metodo è composto da una parola, deve iniziare con una lettera minuscola. Esempio: primoNomeMetodo() .

  • UpperCamelCase viene utilizzato per denominare le classi. Se il nome è composto da una sola parola, deve iniziare con la lettera maiuscola. Esempio: NomeClasse .

  • Il nome dei file di programma deve corrispondere esattamente al nome della classe, tenendo conto della distinzione tra maiuscole e minuscole. Ad esempio, se la classe si chiama FirstClassName , il file dovrebbe chiamarsi FirstClassName.java .

  • Gli identificatori iniziano sempre con una lettera (AZ, az), $ o un carattere di sottolineatura _.

Cos'è il linguaggio C++?

C++ è un linguaggio di programmazione compilato, fortemente tipizzato e di uso generale. Supporta diversi paradigmi di programmazione: procedurale, generico, funzionale; La maggior parte dell'attenzione è rivolta al supporto della programmazione orientata agli oggetti. Essenzialmente, il C++ è un insieme di comandi che dicono al computer cosa fare. Questo insieme di istruzioni è solitamente chiamato codice sorgente o semplicemente codice. I comandi sono “funzioni” o “parole chiave”. Le parole chiave (parole riservate C/C++) sono gli elementi costitutivi di base del linguaggio. Le funzioni sono elementi costitutivi complessi perché sono scritte in termini di funzioni più semplici. La struttura delle funzioni C++ e Java ricorda il contenuto del libro. Il sommario può visualizzare i capitoli di un libro; ogni capitolo di un libro può avere il proprio sommario, composto da paragrafi; Ogni paragrafo può avere i propri sottoparagrafi. Sebbene C++ fornisca molte funzioni comuni e parole riservate che è possibile utilizzare, il linguaggio richiede comunque la scrittura di funzioni personalizzate.

Differenze chiave tra C++ e Java

Sia Java che C++ sono linguaggi di programmazione orientati agli oggetti, ma le loro somiglianze finiscono qui. Ci sono più differenze tra loro. Naturalmente esiste una differenza fondamentale tra C++ e Java quando si tratta di scegliere uno dei linguaggi per lo sviluppo di un progetto o qualsiasi altro caso specifico. Ecco i criteri a cui prestare attenzione.

Biblioteche

Java o C++? Quale libreria è più grande o migliore? Java ha molte più librerie. Ma come fai a sapere quali usare e quali no? Ecco una breve descrizione di alcuni di essi:
  • lang, util, nio, io, net.
  • Java dispone anche di librerie per lavorare con i framework GUI: javax.swing (un'estensione piuttosto obsoleta dell'ancora più vecchio java.awt).
  • Puoi anche riprodurre musica e creare file MIDI utilizzando java.sound ecc.
Il linguaggio C++ ha la libreria standard C e la libreria standard C++. Gli sviluppatori dovrebbero prima assicurarsi di comprendere la differenza tra C e C++. Inoltre, devono studiare le librerie che utilizzeranno in un particolare progetto. Java dispone del supporto integrato per i commenti sulla documentazione. C++ non supporta i commenti sulla documentazione. Puoi anche utilizzare un comodo compilatore Java online.

Meccanismo di input

Java viene principalmente interpretato, quindi è indipendente dalla piattaforma. C++ genera codice oggetto; lo stesso codice non può essere eseguito su piattaforme diverse.

Supporto del filo

Java ha il supporto integrato per i thread. Java dispone di classi thread ereditate per creare un nuovo thread e sovrascrivere il metodo start. Tieni presente che C++ non dispone del supporto del threading nativo. Per questi scopi vengono utilizzate librerie di terze parti non standardizzate.

Metodo di supporto

Java ha l'overload del metodo, ma non ha l'overload degli operatori. La classe String non utilizza gli operatori + e += per concatenare le stringhe e le espressioni String utilizzano tipi di conversione automatici, ma questo è un caso integrato speciale. C++ supporta sia l'overload del metodo che quello dell'operatore.

Gestione della memoria

Java supporta il controllo automatico della deallocazione dell'heap, ma non supporta i distruttori. In C++, il supporto per i distruttori viene abilitato automaticamente quando un oggetto viene distrutto.

Eredità multipla

Java non fornisce l'ereditarietà multipla, almeno non allo stesso modo del C++. L'ereditarietà multipla è una funzionalità del C++ in cui una classe può ereditare da più di una classe.

Conclusione

Questa è l'intera differenza tra Java e C++. Il linguaggio Java è ideale per progetti commerciali. È molto richiesto nelle grandi aziende, poiché il mantenimento e il refactoring dei progetti esistenti rimarranno sempre rilevanti, almeno nelle banche e in altri istituti finanziari. Puoi gestire abbastanza bene lo sviluppo multipiattaforma e utilizzarlo per creare un sistema per qualsiasi piattaforma. C++ presenta tuttavia altri vantaggi rispetto a Java, come il supporto sia per l'overloading dei metodi che per quello degli operatori, il supporto per i distruttori, ecc.

Costruttori privati ​​in Java

Fonte: Dev.to Un costruttore in Java è un tipo speciale di metodo che ha lo stesso nome del nome della classe o del nome del file. Quando chiamiamo un oggetto, viene sempre chiamato il costruttore interno. Viene utilizzato principalmente per inizializzare lo stato di un oggetto o i valori delle variabili in una classe. Pausa caffè #118.  Qual è la differenza tra i linguaggi C++ e Java.  Costruttori privati ​​in Java - 2Vediamo ora cosa sono i costruttori privati. Java ci consente di modificare i metodi a seconda del nostro utilizzo. Quindi, possiamo rendere privato il costruttore come gli altri metodi? E se sì, allora a che serve un costruttore privato? Risposta: Sì, possiamo dichiarare un costruttore in Java come costruttore privato utilizzando lo specificatore di accesso privato. Ma ricorda che se dichiariamo privato il costruttore, non potremo creare un oggetto della classe. Possiamo invece utilizzare questo costruttore privato nel modello di progettazione Singleton. Regole per i costruttori privati:
  • Non consente a una classe di essere una sottoclasse.
  • Non consente di creare un oggetto al di fuori della classe.
  • Se una classe ha un costruttore privato, quando proviamo ad estendere la classe, si verifica un errore in fase di compilazione.
  • Non possiamo accedere a un costruttore privato da qualsiasi altra classe.
  • Se la nostra classe ha tutti metodi costanti, possiamo utilizzare un costruttore privato.
  • Se tutti i metodi sono statici, possiamo utilizzare un costruttore privato.
  • Possiamo usare una funzione pubblica per chiamare un costruttore privato se l'oggetto non è inizializzato.
  • Possiamo restituire un'istanza di questo oggetto solo se l'oggetto è già inizializzato.
public class PrivateConstructorDemo
{
     //creating an instance variable of the class Tester
     private static PrivateConstructorDemo pcd;
     //creating a private constructor
     private PrivateConstructorDemo()
     {
     }
    //creating a static method named getInstance()
    public static PrivateConstructorDemo getInstance()
    {
       if(pcd == null)
       {
        //creating a constructor of the class
        pcd = new PrivateConstructorDemo();
       }
     return pcd;
    }
    //main() method
    public static void main(String args[])
    {
     PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
    PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
    //invokes the getInstance() method and prints the corresponding result
    System.out.println(pcd.equals(pcd1));
   }
}
Conclusione:
VERO
Ora diamo un'occhiata ai casi d'uso per i costruttori privati. Lo scopo principale dell'utilizzo di un costruttore privato è limitare la creazione di oggetti. I costruttori privati ​​vengono utilizzati anche per implementare il modello di progettazione Singleton. Le opzioni per l'utilizzo di un costruttore privato sono le seguenti:
  • Può essere utilizzato con classi statiche riservate ai soli membri.
  • Può essere utilizzato con utilità statica o classi costanti.
  • Può anche essere utilizzato per creare classi singleton.
  • Può essere utilizzato per la denominazione, ad esempio per la creazione utilizzando metodi factory.
  • Viene utilizzato anche per evitare sottoclassi.
  • Include metodi di fabbrica.
Spero che tu abbia imparato di più sui costruttori Java attraverso questo post.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION