eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAndroid › Re: Android
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Jacek Radzikowski <j...@s...die.die.die.piranet.org>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Android
    Date: Thu, 10 Feb 2011 02:45:08 -0500
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 69
    Message-ID: <ij0524$lia$1@inews.gazeta.pl>
    References: <iio2dt$58r$1@opal.futuro.pl> <iipqur$fq$2@news.onet.pl>
    <iipufp$bf3$1@opal.futuro.pl> <iisd8q$6td$1@news.onet.pl>
    <iish8c$8um$1@opal.futuro.pl>
    <o...@4...com>
    <s...@b...pl>
    <1...@v...googlegroups.com>
    <iiuo70$cpv$1@opal.futuro.pl> <iivdpv$o2u$1@inews.gazeta.pl>
    <iivhjf$6l0$1@opal.futuro.pl> <iivmnj$f55$1@inews.gazeta.pl>
    <ij02dc$crn$1@opal.futuro.pl>
    NNTP-Posting-Host: pool-71-241-238-52.washdc.fios.verizon.net
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1297323908 22090 71.241.238.52 (10 Feb 2011 07:45:08 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Thu, 10 Feb 2011 07:45:08 +0000 (UTC)
    X-User: piranha32
    In-Reply-To: <ij02dc$crn$1@opal.futuro.pl>
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027
    Fedora/3.0.10-1.fc12 Thunderbird/3.0.10
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:604574
    [ ukryj nagłówki ]

    On 02/10/2011 01:59 AM, Lelek@ wrote:
    >
    > "Jacek Radzikowski" <j...@s...die.die.die.piranet.org> wrote in
    > message news:iivmnj$f55$1@inews.gazeta.pl...
    >>> To nie jest aż tak bez sensu, bo casting signed byte to sign integer
    >>> kopiuje 8-my bit do 31-go a właściwie rozszerza np (int)0x80 -> FFFFFF80
    >>> bo signed a nie 0x80 :-)
    >> A fakt. Zasugerowałem się typem buf i przyjąłem że bfx też jest typu
    >> byte :)
    >
    > Ta Java to jeden wielki shit :-) Jak się operuje na strumieniach danych

    Shit bo nie umiesz się nią posłużyć. Napisałem w javie dobrych
    kilkadziesiąt tysięcy linii i uważam że jest to całkiem przyjemny język.
    Inne języki też znam, więc mam porównanie.

    > binarnych to w kółko trzeba konwerować to co zwracają funkcje w byte
    > signed do signed int ale wymaskowywać je. Idiotyzm.

    Nie bardzo wiem o co chodzi, ale mam wrażenie że usiłujesz zrobić coś na
    około.

    > Nie wiem, na razie działa z tym testem czy len jest 0 czy nie, twoich
    > rad nie umiem zastosować. Nie rozumiem jak mam deklarować ten sam bufor
    > wiele razy :-) Przeglądam od 10 dni już to co ludzie piszący w javie
    Jak powiesz czego nie rozumiesz, to może będę mógł Ci pomóc. Na razie
    widzę że walczysz z samą ideą obiektów.
    Bufora nie deklarujesz kilka razy. Samą zmienna buf deklarujesz raz, w
    takim miejscu żeby była widoczna ze wszystkich miejsc w których musisz
    się do niej odwoływać (ale bez przesady. Najprawdopodobniej wystarczy ze
    zadeklarujesz ją lokalnie w funkcji).
    Buf w twoim przypadku przechowuje nie sam obiekt, a referencję do niego
    (referencja działa troszkę podobnie jak wskaźniki w C, choć to nie do
    końca jest to samo). Funkcja FromEditText.getBytes() sama alokuje pamięć
    na tablicę zawierającą wynik i zwraca Ci wskazanie na nią. Ta referencja
    jest wpisywane do zmiennej buf. Jeśli przed wywołaniem funkcji było w
    niej coś innego, poprzednia wartość jest tracona, a w jej miejsce jest
    wpisywana wartość zwracana przez przez getBytes. Nie następuje tam żadne
    przepisywanie tablic (dlatego nie trzeba wcześniej alokować pamięci).

    Wszelkie operacje jakie wykonasz na zmiennej buf po wpisaniu do niej
    wartości zwróconej przez getBytes będą wykonywane nie na twojej tablicy,
    a na tablicy zaalokowanej wewnątrz funkcji.
    Sprawdzanie warunku buf.length jest potrzebne po to, żeby nie tworzyć
    tablicy o zerowej długości (przypisanej do bfx).

    > wyprawiają. Dokładnie robia to jakby zaczynali progframować w bascomie i
    > nie rozumieją co czynią :-)
    Może to ci, którzy przesiadają się na jave z bascoma :) Ja też widziałem
    dużo śmieci, ale też bardzo dużo kodu bardzo dobrej jakości.

    > Z tego co się dowiedziałem to Java powstała bo ludzie nie rozumieli
    > wskaźników i zapominali o zwalnianiu zaalokowanych zasobów :-)
    Nie tyle zapominali, co woleli się skupić na rozwiązaniu problemu
    zamiast babrać się z gospodarką pamięcią. Operując na wskaźnikach bardzo
    łatwo z prostego programu stworzyć koszmarek - java stara się do tego
    nie dopuścić (a przynajmniej nie przez jeżdżenie po pamięci). Mając do
    dyspozycji dużo wolnego ramu, nie trzeba się martwić żeby jak
    najszybciej zwolnić przydzielony a nieużywany obszar. Ręczna gospodarka
    przydzielaną pamięcią w bardziej skomplikowanych projektach może
    przypominać chodzenie po polu minowym. Nic dziwnego że nawet najlepszym
    i najbardziej uważnym programistom zdarza się popełnić głupie błędy,
    typu nie zwalnianie czegoś czy wielokrotne zwalnianie.
    Mechanizm odzyskiwania nieużywaniej pamięci jest implementowany w wielu
    językach wysokiego poziomu. Java jest tylko jednym z nich.

    pzdr.
    j.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: