Kezdeni programozás Java program első hello world

Próbáld megérteni, hogy miért Java van kiválasztva modern design, mint a mag programozási nyelv.

C-szerű szintaxis *

Abban az időben, amikor megteremtette a Java nyelvet, a legnépszerűbb programozási nyelv a C ++. Annak érdekében, hogy „megnyerni” új Java programozók, úgy döntöttek, hogy azt olyan hasonlít a C ++, figyelembe talán a legjobbat.







Java és C ++ nem az egyetlenek, akik hasonló szintaxis. C ++ volt az őse a nyelv a C (C), mert minden nyelvet használnak, mint a szintaxis nevű B-szerű, és annyi (Wikipedia: C-család).

Tehát, ha már ismeri legalább az egyik következő nyelveken, akkor rengeteg pontot, merevítések és zárójelben Java úgy tűnik, hogy valamit sokáig ismerős és megszokott. Másrészt tanulmányozza a Java szintaxist sokkal könnyebb lesz megérteni és más nyelveken a család.

* Szintaxis - egy sor szabályt, amelynek meg kell felelnie a szöveget a program. Egy egyszerű módja: ahogy a program úgy néz ki. Nehezebb - a wiki.

Egy általános célú nyelv

Célja szerint programozási nyelvek:

  • Speciális (a probléma megoldásának egy adott ágazatban, például a Fortran matematikai SQL adatbázisok.);
  • Általános célú (megoldásához széles körű feladatokat minden iparágban. Például a C ++, Java, C #).

Java utal a második típusú, egy általános célú nyelv, amely felírható szinte bármilyen programot. A mai napig a Java program létrehozott bármilyen szintű összetettség a programozás az otthoni készülékek és a mobil eszközök (Java ME), az összetett nehéz szolgálat (Java EE).

  • Sokoldalú, megoldja minden probléma
  • rosszabb külön ága (a sebesség és a könnyű használat) a szaknyelv

Az objektum-orientált

Minden számítógépes programok próbálják leírni a folyamatokat világunk a processzor parancsokat. Mivel a számítógép nem tud semmit a tárgyak világunk, a programozó mindig „lefordítani” mind a számok nyelvén és utasításokat. Nem volt egészen a 70-es, míg a megjelenése az objektum-orientált programozási paradigma. Segítségével lehetővé vált a programozási szintjét tárgyak a világban, és nem a számok szintjén a számítógépek világában.

Például itt van, hogy a leírás a két táblázat formájában nem tárgy:

  • a hossza az első táblázat: 1200mm
  • szélessége az első táblázat: 500mm
  • magassága az első táblázat: 1000mm
  • második táblázat hossza: 1300mm
  • szélessége a második szakasz: 600 mm
  • a magassága a második táblázat: 1100mm

nincs kapcsolat a paraméterek, kivéve a nevüket. Ez könnyen hibázik megpróbálja kiszámítani a területet a táblázat: szaporodnak a hossza az első táblázat a szélessége a második.

Egy példa objektum-orientált leírása:

Ebben az esetben már nem működnek eltérő paraméterek és az egész tárgy: az első és a második asztal asztal.

Programok írt objektum-orientált nyelvek lassabb, és ez volt a fő oka annak, hogy ezt a paradigmát vált népszerűvé csak a '90 -es években, amikor a »vas« kész volt erre.

Java, mint szinte az összes modern nyelvek, egy objektum-orientált nyelv, amely elég egyszerű, hogy szimulálja a valós folyamatokat, és élvezze minden előnyét az objektum-orientált megközelítés.

  • OOP használják számos más programozási nyelvek
  • széles körben alkalmazza a kivételi
  • könnyen modellezni a valós világ objektumai
  • Ez további vizsgálatot igényel, és a fejlesztés az elvont gondolkodás

funkcionális

Amikor szükség van, hogy csökkentse az átfutási idő a program, van két nyilvánvaló módon:

  1. Optimalizálja a programban;
  2. Nagyítás processzor frekvencia.

Az optimalizálás, már a következő problémák:

  • optimalizálja számlák valamennyi program;
  • van egy logikai határ, amelyen túl lehetetlen optimalizálni.

processzor gyorsulás megoldja ezeket a problémákat, és felgyorsítja a végrehajtás valamennyi program egyszerre.

Hála Moore-törvény, a világ kifejlesztett egy második út - gyorsított processzorok. A törvény kimondja, hogy minden második évben a processzor frekvencia szükséges megduplázását. De egy nap, Moore-törvény leállt és megállt a növekedése frekvencia. És többé nem kapja meg a szükséges gyorsulást a programokat. Egész azonnal vádlott Moore azt mondta, hogy még mindig nem érti, és a törvényt módosították nem frekvencia megduplázódik, és a tranzisztorok száma!

Így az elmúlt években, a gyakorisága feldolgozók nem növeli, és a tranzisztorok száma növekszik. Tranzisztorok költenek CPU maghoz. De ha megnézi a fent említett két módon, hogy gyorsítsák fel a program - nincs értelme, hozzátéve magot. Ahhoz, hogy a program lehet gyorsítani a további magok - képesnek kell lennie arra, hogy végre önálló részből áll.







De ez nem olyan egyszerű: minden darab a programok függnek egymástól függenek, megosztott adatok (különösen, ha beszélünk objektumorientált programozás).

És itt jön a támogatás a funkcionális programozás, amely minimálisra csökkenti (és ideális esetben megszünteti) használata közös adatokat, ami megkönnyíti futtatni a különböző magokat.

Az objektum-orientált paradigma, azt 20 éve, hogy menjen az elmélettől a tömeges használata. Ismerve, hogy milyen gyorsan a világ változik most, azt gondolhatja, hogy ez egy kivétel a szabály alól, és ezért minden új gyorsabban és készségesen.

Azonban a funkcionális programozási paradigma sokkal tovább tartott, mint az objektum-orientált. Ez az első alkalom ebben a paradigmában ben vezették be a 30-as években, de a széles tömegek funkcionális programozás kezd belépni csak napjainkban.

Van egy teljesen működőképes nyelvek (Haskel, Erlang) és hibrid - kombinálásával objektum-orientált és funkcionális megközelítések (Scala, C ++).

Kezdve a kibocsátás Java 8 szerez mechanizmusai funkcionális programozás (például hivatkozásokat függvények és a lambda kifejezéseket), amely megkönnyíti, hogy hozzon létre programokat lehet futtatni több magot egyszerre.

  • elérhető új programozási technikák
  • könnyű létrehozni képes programok használata több processzormag
  • Ez további vizsgálatot igényel, és fejlődése a funkcionális (matematikai) gondolkodás

Gépelés: szigorú, statikus, tiszta

erős gépelés

Ítélve a neve, ha szigorú gépelés -, hogy van néhány szabály, amit nem sértheti.

Példa (meg kell érteni, hogy a sorok számát és - a két különböző típusú adatok):

Két további, két sorban a számok, függetlenül a gépelési minta mindenütt egyformán jelentkezik:

A különbség az lesz, amikor (talán tévesen) megpróbálja felvenni a számot, és a sort:

5 + "5" =. (10 vagy "55")

Erősen típusos nyelv fogja mondani, hogy ott lapul egy hiba, és arra kényszeríti, hogy mindannyian jól vezet egyetlen típus.

Nem erősen típusos kezd csalni: ő üdülőhelyek további szabályokat abban az esetben nem egyezik típusokat. Attól függően, hogy ezeket a szabályokat az alábbi lehetőségek közül kerül kiválasztásra:

  1. Egy sor az „5” lenne a számot, és az lesz az eredmény 10 (add egész szám)
  2. Az „5” lesz egy string, és az eredmény lesz „55” (string összefűzés)

Kiderült, hogy míg nem erős gépelési tévedésből próbáljuk végrehajtani egy műveletet inkompatibilis adattípusok és attól függően, hogy a „kiegészítő szabályok”, hogy a különböző eredményeket :. 10 vagy „55”

A Java segítségével szigorúan lehetőség, amely előnyben részesíti, hogy jelentse a hibát, és kap a programozó explicit leadott valamilyen, elkerülve ezzel egy sor „kiegészítő szabályok”. abban az esetben, ha a típus nem egyezik.

  • Nincs további szabályok automatikus típusátalakítások: nem kell tudni, és nincs hiba megfelelő konverziós
  • megértése gépelés gyorsan jön
  • minden szükséges változtatásokat kell végrehajtania világosan

statikus gépelési

Mivel a változók típusát Java határozzuk statikusan fordítási időben, akkor lehet ellenőrizni, ha ezeket a típusokat használnak. Például, ha megpróbáljuk elküldeni az autó, hogy az állatorvos - Java megmondja, mi az állatorvos nem fogadja az ilyen típusú objektumokra. Ezért tapasztaljuk, hogy a hibát, amikor megpróbálja lefordítani a kódot, ahelyett, ha az alkalmazás futtatásához a szerveren.

Így elkerülhető Java osztály hibák (inkompatibilitás típusú hibákat), mint azokat felismerik fordításkor a statikus gépelni.

Persze, hogy manapság senki sem ír kódot Notepad, és nem fordul a parancssorból - mindez képes modern IDE fejlesztőeszközök (IDEA, Eclipse, NetBeans). És mindezen IDE aktívan használja azt a tényt, hogy a statikus gépelést, és nézze meg a hiba, még mielőtt megpróbáljuk lefordítani a kódot.

Másik előnye a statikus gépelési hogy az IDE képes arra utalnak, milyen módszereket és tulajdonságok az objektumot. Ez nagyban megkönnyíti a fejlesztés és a képzés.

  • Hiba összeegyeztethetetlen típusú rájövünk fordításkor (az IDE írásakor kód), de nem a program során
  • IDE ismerete típusú adatok azt sugallják, hogy milyen műveleteket végezhet vele (nagyon hasznos, különösen a korai szakaszában feltárása a nyelv)
  • annak szükségességét, hogy meghatározzák a fajta self

explicit gépelés

Ahhoz, hogy egy változót a Java kifejezetten meg kell adnia annak típusát. Például, a i változó értéke egész szám típusú deklarált a következőképpen:

Ebben az esetben ugyanis, Java képes következtetni a változó típusát i, anélkül, mi int. Nem lenne elég írni:

  • annak szükségességét, hogy egyértelműen jelzi, hogy milyen típusú (mikro-probléma)

Cross-platform

Ahhoz, hogy az írásbeli kérelmet futtatni a különböző platformok (Linux, Windows, Android), akkor át kell alakítani (lefordított) kompatibilis ezzel a platform a processzor utasításokat.

Java kijelenti, hogy nincs szükség annak programokat. Mivel a mi érjük el?

Kód Java nyelven írt, összeállított nem a processzor utasítások (mint a legtöbb összeállított nyelven), és egy speciális bájtkódot. Ez a bájt kód fut a Java-gép - egy speciális program, amely képes átalakítani bájtkódot utasításokat a processzor.

Így a platform nem függ a kódot, és a Java-gép. Telepítse a megfelelő Java-gép minden platformra, a kód működni fog egyformán mindegyik.

  • programot futtatni a különböző rendszerek
  • teljesítmény szenved (enyhén)

A szemétgyűjtő

Memória. Ez nem gumi. A folyamat során a program létrehoz objektumokat túlzsúfoltság memóriát. A programozó válláról a terhet, hogy figyelemmel kíséri ezeket a tárgyakat, és amikor szükség van rájuk -, hogy távolítsa el őket. Nem könnyű feladat. Ha valami rosszul - által alkotott memóriavesztés, és az alkalmazás elkerülhetetlen (ez idő kérdése) leáll egy hibaüzenettel a kimerültség az összes rendelkezésre álló memóriát.

Az út mentén, a kollektor megoldja még egy probléma - memória töredezettség. Dióhéjban a probléma lényege a következő: van egy darab memória sejtek 10, 5 foglalkoztatják őket, és az 5 ingyenes. Azt akarod, hogy írjon egy teljes objektum 5 sejtek a memória - de nem tehetem. mert immunsejtek nem elrendezve egy sorban, és az első három, és két végén.

  • Nem kell, hogy nyomon követhesse a tárgyak és dönt a memória tisztító
  • nincs probléma a memória töredezettség

hello world




Kapcsolódó cikkek