Java

Wikipedia — ирекле энциклопедия проектыннан
Моңа күчү: навигация, эзләү

Java - Sun Microsystems (соңрак Oracle тарафыннан сатып алына) компаниясендә эшләп чыгалыган, объектка юнәлгән программалау теле. Java телендә язылган программалар гадәттә махсус байт-кодка әйләндереләләр, шунлыктан, санак артхитектурасына бәсез рәвештә, теләсә кайтсы виртуаль Java-машинада башкарыла алалар. Рәсми дөнья күрү көне - 23 май 1995 ел.

Исеме[үзгәртү | вики-текстны үзгәртү]

Башта телгә Oak ("Имән") исеме бирелгән була. Аны Джеймс Гослинг көнкүреш электрон җайланмаларын программалау өчен ясый. Нәтиҗәдә телнең исемен Javaга алыштыралар һәм клиент һәм сервер программалыры ясау өчен куллана башлыйлар. Java исеме каһвә маркасы хөрмәтенә бирелә, ә каһвә исә, үз чиратында, Һинд океанындагы утрау исемен йөртә. Шунлыктан теленең эмблемасы - парланып торган каһвә. Башта программалау максаты булган көнкүреш техникасы үрнәге буларак каһвә-машина аллюзиясенә бәйле, исем килеп чыгышының башка юрамалры да бар.

Төп үзенчәлекләре[үзгәртү | вики-текстны үзгәртү]

Java телендә язылган программалар виртуаль Java-машина (JVM) башкара торган байт-кодка "тәрҗемә" ителәләр. Java-машина - интерпретатор кебе, байт-кодны эшкәртеп, инструкцияләрне санакка тапшыра.

Программадарның мондый юл белән эшләве байт-кодның санак архитектурасыннан һәм операцион системадан бәйсезлегенә китерә. Шунлыктан Java-программа Java-машина булган барлык җиһазларда да башкарыла ала. Java технологиясенең тагын бер мөһим үзенчәлеге - сыгылмалы иминлек системасы. Бу система кысаларында, JVM программаның башкарылуын тулысынча контрольдә тота. Программага бирелгән вәкилиятләрдән тыш барлык гамәлләр дә (мәсәлән, рөхсәт ителмәгән мәгълүматка керү яки башка санаклар белән элемтәгә керү) Java-машина тарафыннан өзелә.

Еш кына, виртуаль машина концепциясенең кимчелегенә җитештерүчәнлекнең түбәнәюен кертәләр. Кайбер камилләштерүләр Java-програмаларның башкарылу тизлеген арттырырга ярдәм итәләр:

  • Байт-кодны машина кодына әйләндерүне турыдан-туры программа эшләгән вакытта башкару (JIT-технолгия - очыш вакытанда компиляция). Кайбер очракларда тәрҗемә ителгән машина коды санак хәтерендә киләчәктә куллану өчен саклана ала.
  • Стандарт китапханәләрдә, платформаның туган (инг. native) кодын куллану
  • Байт-кодның эшләвен тизләтүче аппарат чараларын куллану (мәсәлән, кайбер ARM-процессорлар Jazelle технологиясен куллана ала). Хәттә бүгенге көндә, байт-кодны турдан-туры аңлаучы процессорларны җитештерүгә, матди чикләмәләрдән кала, бен нинди техник кирәләр юк.

shootout.alioth.debian.org сайты мәгълүматлары буенча, җиде төрле мәсәләләрдә Java-ның эшләү вакыты, C/C++ белән чагыштырганда, берярым-ике тапкыр зуррак, кайбер очракларда Java тизрәк, ә кабер аерым очракларда 7 тапкыр акрынрак[1]. Икенче яктан караганда, Java-машина санакның хәтерен, C/C++ та язылган прогограммаларга караганда, 10—30 тапкыр күбрәк сарыф итә. Шулай ук, Google компаниясе үткәргән тикшерү игътибарга лаек. Бу тәҗрибә дә Java-дагы үрнәкләр, C/C++ та язылган программаларга караганда түбәнрәк җитештерүчәнлек һәм зуррак хәтер ресурсларына мохтаҗлык күрсәтәләр[2][3][4].

  1. Java 6 -server speed ÷ C++ GNU g++ speed | Computer Language Benchmarks Game
  2. Metz, Cade. Google pits C++ against Java, Scala, and Go(ингл.). The Register (Калып:TranslateDate/en). 5 июнь 2011 көнне тикшерелгән. 22 август 2011 көнне төп чыганагыннан архивланган.
  3. Loop Recognition in C++/Java/Go/ScalaКалып:Ref-pdf
  4. В Google провели сравнение производительности C++, Java, Go и Scala