Kiedy zainicjować tablicę w Javie lubię:Czy bufory bezpośrednie w języku Java zostały zainicjowane na wartość domyślną, na przykład tablice?
float[] array = new float[1000];
wszystkie elementy są inicjowane do 0. Czy to także przypadku, gdy przeznaczyć bezpośredni bufor tak:
FloatBuffer buffer = ByteBuffer.allocateDirect(4*1000).asFloatBuffer();
? Zawsze wydaje mi się, że dostaję tylko zera, ale być może zależy to od implementacji ...
Interesujące pytanie. [ByteBuffer javadoc] (http://download.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html) najwyraźniej nic nie mówi w tej sprawie. Zauważ jednak, że przypadki są nieco inne. W pierwszym przypadku każdy element jest inicjalizowany do '0.0f', podczas gdy każdy z odczytów zmiennoprzecinkowych o wartości' 0.0f' będzie spowodowany faktem, że [* wzorzec bitowy * dla '0.0f' to" wszystkie zera "] (http://steve.hollasch.net/cgindex/coding/ieeefloat.html) w IEEE-754 –
Zobacz moją odpowiedź poniżej: javadoc ByteBuffer nic nie mówi, ale rodzicielska klasa Buffer ma. –