Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
La Radeon RX 9060 XT si propone come una nuova sfidante nella fascia media, puntando tutto su prestazioni solide in QHD e un prezzo aggressivo. La nuova proposta basata su architettura RDNA 4 rappresenta un'interessante soluzione per la massa in mercato dove i prezzi spesso scoraggiano dall'acquisto.
LG gram Pro 16Z90TP: il notebook grande ma sottile
LG gram Pro 16Z90TP: il notebook grande ma sottile
Schermo OLED da 16 pollici e piattaforma Intel Core Ultra della serie 200: questi gli ingredienti di LG gram Pro 16Z90TP, un notebook leggero e facilmente trasportabile che strizza l'occhio a chi vuole essere sempre produttivo anche lontano dalla scrivania, coniugando prestazioni e autonomia con batteria.
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti
MSI GeForce RTX 5060 Gaming OC e AORUS GeForce RTX 5060 ELITE ci permettono di vedere da vicino l'ultima arrivata di casa NVIDIA, la GPU Blackwell attualmente meno costosa ad arrivare sul mercato con un prezzo a partire da 329 euro. Con 8 GB di VRAM è adeguata per il contesto attuale? La risposta è che dipende molto dalle necessità e aspettative di chi la compra.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2002, 16: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, 16: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, 16: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, 17: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, 17: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, 21: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, 22: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, 09: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, 10: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, 12: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, 20: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, 08: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, 11: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, 11: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, 10: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


Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD Radeon RX 9060 XT, assalto a NVIDIA? Ecco come v...
LG gram Pro 16Z90TP: il notebook grande ma sottile LG gram Pro 16Z90TP: il notebook grande ma sotti...
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti GeForce RTX 5060, due schede alla prova per capi...
Samsung Galaxy Tab S10 FE+: un tablet enorme a un prezzo super, ma con qualche limite Samsung Galaxy Tab S10 FE+: un tablet enorme a u...
Motorola razr 60 Ultra: il migliore! Peccato per l’AI un po’ ''zoppa''. Recensione Motorola razr 60 Ultra: il migliore! Peccato per...
Gli astronauti cinesi di Shenzhou-20 han...
Il telescopio spaziale James Webb ha cat...
ASI: l'Italia proverà a creare os...
L'IA piace agli italiani: la usano due p...
Noctua ha aggiornato la sua iconica vent...
Le ventole Corsair RS-R ARGB pensano all...
È affondata la nave andata a fuoc...
Oblivion, Fallout, Doom e altri titoli l...
8 GB di memoria sono pochi? AMD mostra u...
Galaxy S25 Ultra 1 TB ai minimi storici:...
Fake news e caos digitale: gli italiani ...
I robot umanoidi nei magazzini? Utili co...
Non è fantascienza: ecco il drone...
Gli esperti usano l'IA per individuare l...
Windows 11 è fino a 2,3 volte pi&...
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: 00:57.


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