Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
Vediamo come si comporta il Ryzen 5 7500X3D, nuovo processore di casa AMD che fonde 6 core Zen 4 con la tecnologia 3D V-Cache, particolarmente utile in scenari come il gaming. Annunciato a un prezzo di listino di 279€, il nuovo arrivato sarà in grado di diventare un riferimento per i sistemi budget? Ecco cosa ne pensiamo.
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto
Bravia 8 II rinnova l’eredità dell’A95L con maggiore luminosità e colori più precisi. Il taglio da 55” offre un’esperienza cinematografica immersiva anche in spazi ridotti, amplificata dalla soundbar Sony Theatre System 6
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC lancia il nuovo monitor gaming H27E6, un modello da 27 pollici che promette prestazioni estreme grazie al pannello Fast IPS con risoluzione 2K QHD (2560x1440). Il monitor si posiziona come una scelta cruciale per gli appassionati di eSport e i professionisti creativi, combinando una frequenza di aggiornamento di 300Hz e un tempo di risposta di 1ms con un'eccezionale fedeltà cromatica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2002, 17:20   #1
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
array in java

ciao a tutti,

sapete se è possibile inizializzare solo parte di un array in java? cioé: dichiaro un array con di 1000 interi ed inizializzo esplicitamente solo i primi 100, un pò come si fa in C con l'istruzione: int array[1000] = {1,2,3,4,...,100}

grazie

ciao
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 17:46   #2
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
No...il numero di elementi si può mettere solo creando una nuova istanza.

int[] array = new int[1000];

int[1000] array non è accettato dal compilatore...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 17:52   #3
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
tnx ma, a parte la sintassi, probabilmente mi sono espresso male.

la domanda è: una volta creato un array di 1000 elementi, posso con la sintassi {elem0, elem1,....elem99} (o in qualsiasi altro modo che non sia un ciclo o un assegnamento diretto - tipo a[0] = elem0; ecc) settare solo i primi 100?
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 18:12   #4
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
No...e se hai voglia di leggere questo ti spiega il perchè...

Arrays in Java
Virtually all programming languages support arrays. Using arrays
in C and C++ is perilous because those arrays are only blocks of
memory. If a program accesses the array outside of its memory
block or uses the memory before initialization (common
programming errors) there will be unpredictable results.2
One of the primary goals of Java is safety, so many of the problems
that plague programmers in C and C++ are not repeated in Java. A
Java array is guaranteed to be initialized and cannot be accessed
outside of its range. The range checking comes at the price of having
a small amount of memory overhead on each array as well as
verifying the index at run time, but the assumption is that the safety
and increased productivity is worth the expense.
When you create an array of objects, you are really creating an array
of handles, and each of those handles is automatically initialized to
a special value with its own keyword: null. When Java sees null, it
recognizes that the handle in question isn’t pointing to an object.
You must assign an object to each handle before you use it, and if
you try to use a handle that’s still null, the problem will be reported
at run-time. Thus, typical array errors are prevented in Java.
You can also create an array of primitives. Again, the compiler
guarantees initialization because it zeroes the memory for that
array.
Arrays will be covered in detail in later chapters.
2 In C++ you should often use the safer containers in the Standard Template Library as an
alternative to arrays.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 18:20   #5
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
E comunque lecita una dichiarazione del tipo_

int[] array ={1,2,3,4}...in memoria viene creato un array di 4 celle...


Per creare array dinamici devi usare la classe Array

public final class Array
extends Object
The Array class provides static methods to dynamically create and access Java arrays.

Array permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 22:23   #6
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
Quote:
Originariamente inviato da cn73
[b]E comunque lecita una dichiarazione del tipo_

int[] array ={1,2,3,4}...in memoria viene creato un array di 4 celle...


Per creare array dinamici devi usare la classe Array

public final class Array
extends Object
The Array class provides static methods to dynamically create and access Java arrays.

Array permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
potrebbe usare i Vector che sono ancora meglio.
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2002, 23:55   #7
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Se è per questo potrebbe anche crearsi una classe apposita...parlavamo di array...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 10:19   #8
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
Quote:
Originariamente inviato da cn73
[b]Se è per questo potrebbe anche crearsi una classe apposita...parlavamo di array...
si ho capito pero' se c'e' qualcosa di meglio..
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 11:21   #9
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originariamente inviato da Mazza2
[b]

si ho capito pero' se c'e' qualcosa di meglio..
C'è sempre qualcosa di meglio... A ciascuno il suo...non ci sono + le mezze stagioni
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 13:30   #10
octopus_71
Member
 
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
grazie amici

mi sono intestardito ad utilizzare gli array perchè volevo fare un confronto fra un programma che ho scritto in C ed uno scritto in java in termini di velocità di esecuzione. lo so che non c'è storia, però volevo sperimentarlo, utilizzando le stesse strutture dati in entrambi i linguaggi. Conosco bene la classe Vector ma l'utilizzo è mooolto + pesante per la VM ed il confronto sarebbe non sarebbe stato ad armi pari.

grazie a tutti
octopus_71 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2002, 21:17   #11
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
Quote:
Originariamente inviato da cn73
[b]C'è sempre qualcosa di meglio... A ciascuno il suo...non ci sono + le mezze stagioni

si stava meglio quando si stava peggio
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 09:39   #12
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Il C è meglio del Java
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 12:07   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da octopus_71
[b]mi sono intestardito ad utilizzare gli array perchè volevo fare un confronto fra un programma che ho scritto in C ed uno scritto in java in termini di velocità di esecuzione. lo so che non c'è storia, però volevo sperimentarlo, utilizzando le stesse strutture dati in entrambi i linguaggi. Conosco bene la classe Vector ma l'utilizzo è mooolto + pesante per la VM ed il confronto sarebbe non sarebbe stato ad armi pari.
Con il C non credo ci sia storia... Magari sarebe interessante fare un confronto con il C++ usando la classe Vector anche in C++
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2002, 12:09   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prova a fare un semplice algoritmo per la moltiplicazione riga-colonna di due matrici di float 1000 per 1000 (inizializzate casualmente)...poi a tradurlo in C++ ci penso io
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-12-2002, 11:27   #15
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Pronto per provare!

Codice:
import java.util.Random;
import java.util.Date;

class TryThis {
  public static void main(String[] arg)	{
    Date start,end;
    int elements=1000;
    Random random=new Random(new Date().getTime());
    float[][] f1=new float[elements][elements];
    float[][] f2=new float[elements][elements];
    float[][] ff=new float[elements][elements];
    //inizializza le matrici
    for(int i=0;i<elements;i++)	{
      for(int j=0;j<elements;j++)	{
        f1[i][j]=random.nextFloat();
        f2[i][j]=random.nextFloat();
      }
    }
    //matrici inizializzate
    //inizio del calcolo del prodotto di matrici
    System.out.println((start=new Date()));
    for(int i=0;i<elements;i++) {
      for(int j=0;j<elements;j++)	{
        float sum=0f;
        for(int z=0;z<elements;z++)	{
          sum+=f1[i][z]*f2[z][j];
        }
        ff[i][j]=sum;
      }
    }
    System.out.println((end=new Date())+"\nEnd of process\n");
    //fine 
    long millisecs=end.getTime()-start.getTime();
    int seconds=(int)(millisecs/1000);
    int minutes=seconds/60;
    seconds=seconds-minutes*60;
    int msec=(int)millisecs-(seconds+minutes*60)*1000;
    System.out.println(
        "Time elapsed: "+minutes+" min "+seconds+" sec "+msec+" ms");
    System.exit(0);
  }
}
1 minuto 7 secondi circa, con un Athlon 1200 (per il solo calcolo del prodotto tra matrici)
So che Java è più lento di C/C++, ma sono curioso di sapere di quanto!

[x Cionci]

Potresti fare una traduzione pari pari in C++ e vedere cosa salta fuori?

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Steam Controller: un ritorno in grande s...
Steam Frame, il visore SteamOS che porta...
Steam Machine, Valve ci riprova con le c...
Super Mario Galaxy - Il Film: disponibil...
In Giappone una donna sposa un personagg...
Le batterie allo stato semi-solido arriv...
Una sola iniezione per curare Alzheimer ...
European Democracy Shield: l'Europa arru...
Peugeot Polygon Concept: la guida del fu...
MSI aggiorna la gamma handheld: arrivano...
Mova 1000 in prova, il robot tagliaerba ...
Addio ai plugin Mi Piace e Commenta: il ...
Google e Qualcomm pronte a lanciare i PC...
Italia, nuove regole sul porno da oggi: ...
WhatsApp introduce nuovi strumenti per l...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v