Главная страница
Навигация по странице:

  • 1. Пайдаланудың қарапайымдылығы.

  • 4. Платформаның тәуелсіздігі.

  • 1. JDK ОРНАТЫҢЫЗ

  • 2. IDE ТАҢДАҢЫЗ

  • 3. АЛҒАШҚЫ ҚАДАМДАР

  • 4. БІРІНШІ JAVA ҚОСЫМШАҢЫЗДЫ ҚАЛАЙ ТАҢДАУҒА БОЛАДЫ

  • 5. ТАҒЫ БІР ӘДІС

  • Java тілі. Кіріспе.

  • Java бағдарламалау құралы ретінде

  • Java тілінің артықшылықтары

  • 1.4.3 C бағдарламалау тілі

  • 1. Пайдалануды_ _арапайымдылы_ы. 1. Пайдалануды арапайымдылыы


    Скачать 42.49 Kb.
    Название1. Пайдалануды арапайымдылыы
    Дата27.02.2022
    Размер42.49 Kb.
    Формат файлаdocx
    Имя файла1. Пайдалануды_ _арапайымдылы_ы.docx
    ТипДокументы
    #375326

    Java - бұл бағдарламалау тілі. Ол бағдарламашыларға сандық кодта жазудың орнына ағылшын тіліндегі нұсқауларды пайдаланып, компьютерге нұсқаулық жазуға мүмкіндік береді. Java - бұл жоғары деңгейлі бағдарламалау тілі, себебі оның коды жазуға және оқуға оңай. Кәдімгі тілдердегі сияқты, Java-да нұсқаулардың қалай жазылатындығын анықтайтын ережелер жиынтығы бар. Бұл ережелер «синтаксис» деп аталады. Аяқталған жоғары деңгейдегі Java коды компьютермен орындалатын машинада оқылатын сандық кодқа аударылады. ava 90-шы жылдардың басында Sun Microsystems үшін Джеймс Гослинг бастаған бағдарламашылар тобы құрды. Java бастапқыда мобильді дамыту үшін жасалған. 1996 жылы Java 1.0 шыққан кезде тілдің негізгі бағыты Интернетте қолдануға ауысты. Java жасаушыларға анимациялық беттер жасауға мүмкіндік бере отырып, пайдаланушылармен көбірек интерактивтілікке қол жеткізді. Уақыт өте келе Java интернетте де, басқа салаларда да сәтті бағдарламалау тіліне айналды.

    Жиырма жылдан кейін, Java әлі күнге дейін әлемде 6,5 миллионнан астам жасаушылармен таңғажайып танымал тіл болып табылады.

    НЕЛІКТЕН JAVA ТАҢДАУ КЕРЕК?

    Java бірнеше негізгі принциптерге негізделген:

    1. Пайдаланудың қарапайымдылығы.

    Java негіздері C ++ тілінен алынған. C ++ қуатына қарамастан, бұл тіл өте күрделі синтаксиске ие және барлық Java талаптарына сәйкес келмейді. Дамып келе жатқан кезде, Java C ++ идеяларын жетілдіріп, қуатты, әрі қарапайым бағдарламалау тілін берді.

    2. Сенімділік.

    Java бағдарламашы қателерінен туындайтын қателіктерді азайтады. Осылайша, объектіге бағытталған бағдарламалау енгізілді. Деректер мен онымен әрекеттерді бір жерге жинап алғаннан кейін, Java тілінің сенімділігі артты.

    3. Қауіпсіздік.

    Java бастапқыда тек желілер арқылы деректер алмасатын мобильді құрылғыларға арналғандықтан, қауіпсіздік басынан бастап ең жоғары деңгейде болды. Java - қазіргі кездегі ең қауіпсіз бағдарламалау тілі.

    4. Платформаның тәуелсіздігі.

    Java-да жазылған бағдарламалар қандай платформада жұмыс істесе де жұмыс істеуі керек еді. Java бастапқыда портативті тіл болды, ол үшін амалдық жүйе де, компьютердің аппараттық құралы да маңызды емес.

    Sun Microsystems командасы негізгі принциптерді сәтті біріктірді. Java өзінің танымалдылығына сенімділік, қауіпсіздік, пайдаланудың қарапайымдылығы және портативтілікке байланысты.

    JAVA-НЫ ҚАЙДАН БАСТАУҒА БОЛАДЫ?

    1. JDK ОРНАТЫҢЫЗ


    Java-да кодтауды бастау үшін Java әзірлеу жиынтығын (Java Development Kit, JDK) жүктеп, орнату керек. Компьютерге JDK орнатқаннан кейін бірден алғашқы бағдарламаңызды жазуға кірісуге болады.

    2. IDE ТАҢДАҢЫЗ


    IDE - интеграцияланған даму ортасы. Java қосымшаларын жасауға арналған бірнеше түрлі құралдар бар. Олардың мақсаты - Java қосымшасын жазуға көмектесу. Бірнеше Java IDE бар, бірақ біз NetBeans ұсынамыз - жаңадан бастаушылар үшін өте қолайлы. Сіз мақсатыңызға жету үшін NetBeans командаларының екеуіне ғана назар аудара аласыз.

    3. АЛҒАШҚЫ ҚАДАМДАР


    Кез-келген бастаушының алғашқы бағдарламасы сөзсіз атауды басып шығаратын қарапайым «Hello World» бағдарламасы болып табылады. Осындай қарапайым бағдарлама сізге NetBeans сияқты даму ортасында қосымшаны қалай құруға, іске қосуға және іске қосуға болатынын көрсетеді.

    Сіздің алғашқы бағдарламаңызды жасағаннан кейін, жаңадан бастаушыларға арналған сабақтарды қолдана отырып, тіл үйренуді бастаудың уақыты келді, мысалы, курстармен -. Олар сізге Java синтаксисін оқытудың әр түрлі кезеңдерінде бағыт береді.

    Немесе бассейнге бірден сүңгіуді ұнататындардың бірі болсаңыз, жаттығуды өршіл бастауға болады. Тілдің тереңіне қаншалықты сүңгісеңіз, соғұрлым көп білесіз. Сіз мұны Java қосымшасын жазуды бірден бастау арқылы жасай аласыз.

    4. БІРІНШІ JAVA ҚОСЫМШАҢЫЗДЫ ҚАЛАЙ ТАҢДАУҒА БОЛАДЫ


    Кез-келген бағдарламалау тілінің, оның ішінде Java-ның артында көптеген теориялар жатыр. Сізге тілдің синтаксисін және барлық қосымшаның қалай құрылатынын білуге \u200b\u200bтура келеді. Бізге Java тілін қолдану үшін оны қажет ететіндігін есте ұстаған маңызды сияқты. Онымен жасауға болатын көптеген қосымшалар бар. Егер сіз қандай бағдарламаны басынан бастап таңдағыңыз келсе, ол Java синтаксисін үйрену жолын белгілейді.

    Айталық, сіз Java бағдарламаларын қалай жазу туралы ештеңе білмейсіз, бірақ қарапайым калькулятордан бастауға бел будыңыз. Калькулятордың не екенін және оның қандай болатынын сіз онсыз да білесіз. Дизайн сұрақтары жоқ, іске асыру сұрақтары бар. Бағдарламаны құру барысында сіз өзіңізге үнемі «мұны қалай жасауға болады? ..» сияқты сұрақтар қоятындығын білесіз және олардың көпшілігі болады. Бірақ сізде сұрақтар көп болған сайын тіл туралы көбірек білесіз.

    Мысалы, сіз ең алдымен GUI (қолданушының графикалық интерфейсі) туралы ойланасыз, бұл жай қосымшаның жұмысы кезінде экранда бағдарлама қалай көрінеді. Интуитивті түрде сіз дайын қосымшалармен жұмыс тәжірибеңізге сүйене отырып, бағдарламаның қандай болатынын сезесіз. Біріншіден, калькулятордың барлық басқару элементтері орналасқан бағдарламаның негізгі терезесі. Сандарға, операцияларға арналған батырмалар (қосу, көбейту және т.б.). Есептеулердің нәтижесін көрсетуге арналған элемент. Тағыда басқа.

    Сіздің алғашқы сұрақтар жиынтығыңызды осылай сипаттадық. Қолданба терезесін қалай жасауға болады? Оған батырмаларды қалай қосуға болады? Нәтижелерді көрсету үшін қандай элементті қолдану керек? Осы жерден Java тілін үйрену басталады. Сіз жауап іздей бастайсыз, Java қосымшасын қалай құруға болады, қосымшалар терезесі үшін қандай элементтер, батырмалар үшін қандай элементтер қолданылады және т.б. Сіз Java сабақтары бар сайттардан, кітаптардан, бағдарламашылар форумынан әрқашан жауап таба аласыз.

    Ең бастысы - алғашқы жұмыс бағдарламасын жасау. Барлығын бірден оңтайлы түрде жасау туралы ойламаңыз. Бұл сізге Java тілінде бағдарламалауға деген сенімділік пайда болған кезде келеді. Әзірге жалғыз мақсат - Java кодын компиляциялау және орындау үшін алу. Бағдарлама ойдағыдай жұмыс істемесе де, ол оқуды бастайды.

    5. ТАҒЫ БІР ӘДІС


    Егер сіз тек бағдарламалау тілін, әсіресе Java сияқты салмақты және ауқымды зерттеуді жеңе алмайтындығыңызды сезсеңіз, онда сіз бағдарламалау негіздерін оқитын арнайы курстардан өтіп көріңіз. Мысалға,

    Java тілі. Кіріспе.

    Ұзақ уақыт бойы компьютерлік журналды Java тіліндегі мақаласыз елестету қиын болды. Ол туралы тіпті Нью-Йорк Таймс, Вашингтон Пост және Бизнес Апта сияқты танымал газет-журналдар жазды.

    Ұлттық қоғамдық радио он минуттық бағдарламаны бағдарламалау тіліне арнағанын еске түсіру мүмкін емес. Жақсы немесе жаман көзқарасқа байланысты. Ал нақты бағдарламалау тілін қолданып жасалған бағдарламалық жасақтама өндірісіне 100 миллион доллар инвестиция?! CNN, CNBC телекомпаниялары және басқа да бұқаралық ақпарат құралдары тек Java тілінің оны қалай істей алатындығы және істейтіні туралы сөйлесіп отырды.

    Алайда, бұл кітап байсалды бағдарламашыларға арналған, ал Java бағдарламалаудың маңызды тілі болғандықтан, бізде көп нәрсе қамтылады. Сонымен, біз жарнамалық уәделерді талдауға батпаймыз және ондағы шындық пен фантастиканың не екенін анықтауға тырысамыз. Керісінше, біз Java-ны бағдарламалау тілі ретінде жеткілікті егжей-тегжейлі сипаттаймыз (әрине, оны Интернетте жұмыс істеуге мүмкіндік беретін мүмкіндіктер де бар, бұл шын мәнінде соншалықты жарнамалық хайпты тудырды). Осыдан кейін біз Java тілінің шынымен не істей алатындығын және не істей алмайтынын түсіндіріп, шындықты қиялдан ажыратуға тырысамыз.

    Алдымен жарнамалық уәделер мен Java тілінің нақты мүмкіндіктері арасында алшақтық болды. Піскен сайын технология тұрақты әрі сенімді бола бастады, ал күткендер ақылға қонымды деңгейге түсті. Қазір Java клиенттер мен серверлік ресурстар (мысалы, мәліметтер базасы) арасындағы байланысты қамтамасыз ететін «орта бағдарламалық жасақтама» жасау үшін көбірек қолданылады.

    Бұл маңызды қосымшалар басым болмаса да, Java тілі өзінің машиналық тәуелсіздігі, көп жұмыс және желілік бағдарламалау мүмкіндіктерінің арқасында өзін өте пайдалы деп дәлелдеді. Сонымен қатар, Java ендірілген жүйелерде көшбасшылыққа ие болды, портативті құрылғылардың, виртуалды киоскілердің, борттық компьютерлердің және басқаларының іс жүзінде стандартына айналды. Алайда, дербес компьютерлерге арналған Java-да кеңінен қолданылатын бағдарламаларды қайта жазудың алғашқы әрекеттері сәтті аяқталған жоқ - нәтижесінде алынған қосымшалар аз қуатты және баяу болып шықты. Жаңа нұсқаның пайда болуымен осы мәселелердің кейбірі шешілді, дегенмен қолданушылар, жалпы, сатып алған бағдарламалардың қай тілде жазылғанына мүлдем бей-жай қарайтынын мойындау керек. Java тілінің негізгі артықшылықтары қолданыстағы бағдарламаларды қайта жазудан гөрі, құрылғылар мен қосымшалардың жаңа түрлерін құрудан болады деп ойлаймыз.

    Java бағдарламалау құралы ретінде

    Java бағдарламалау тілі өзінің жарнамалық уәдесінен қалай асып түсті. Бұл сөзсіз байыпты бағдарламашыларға қол жетімді ең жақсы тілдердің бірі. Java бағдарламалаудың керемет тілі бола алады, бірақ қазір кеш болса керек. Жаңа бағдарламалау тілі пайда болған кезде, бұрын жасалған бағдарламалық жасақтамамен үйлесімділіктің жағымсыз проблемасы бірден пайда болады. Оның үстіне, бұл бағдарламаларға өзгертулерді олардың мәтіндеріне кедергі келтірместен енгізуге болатын болса да, Java сияқты көпшілік жылы қабылдаған тілді жасаушыларға тікелей: «Иә, біз жасаған болармыз X нұсқасын жасау кезінде қате, бірақ Y нұсқасы жақсырақ болады ». Нәтижесінде, одан әрі жетілдірудің пайда болуын күте отырып, біз Java тілінің құрылымы жақын болашақта айтарлықтай өзгермейтінін айтуымыз керек.

    Айқын сұрақ: « Java тілін қалай жақсарттыңыз?«Бұл бағдарламалау тілінің өзін жетілдіру арқылы емес, Java тілінде жазылған бағдарламалар кітапханаларын түбегейлі өзгерту арқылы жүзеге асты. Sun Microsystems бәрін өзгертті: жеке кітапханалық функциялардың атауларынан бастап (оларды мағыналы ету) ) және графикалық модульдермен жұмыс істеу әдістері (оқиғаларды басқару тәсілін өзгерту және жұмыс бағдарламаларын ішінара қайта жазу) және Java 1.0-де болмаған баспа құралдары сияқты тілдің жаңа мүмкіндіктерін құрумен аяқталады, нәтижесінде а. Java тілінің барлық алдыңғы нұсқаларына қарағанда әлдеқайда пайдалы бағдарламалау платформасы.

    Microsoft өзінің J ++ деп аталатын, Java тіліне қатысты өнімді шығарды. J ++ Java виртуалды машинасында байт кодын орындау кезінде түсіндіріледі, бірақ тілдердің сыртқы кодтармен интерфейсі айтарлықтай ерекшеленеді. J ++ және Java тілдерінің синтаксисі бірдей. Алайда, Microsoft қосымша тілдік құрылымдар жасады. Олардың барлығы Windows API қоспағанда, күмәнді мәнге ие. Бұл тілдердің синтаксисі бірдей болғандықтан, олардың негізгі кітапханалары (жолдар, утилиталар, желілік бағдарламалау құралдары, көп жұмыс құралдары, математикалық кітапханалар және т.б.) бірдей.

    Алайда графикалық кітапханалар, қолданушы интерфейсі және объектілерге қашықтықтан қол жеткізу бұл тілдер арасында мүлдем өзгеше. Майкрософт қазіргі уақытта Java + -мен көп ұқсастықтары бар, бірақ басқа виртуалды машинаны қолданатын жаңа C # тілін дамыта отырып, J ++ қолдайды. Бұл кітапта J ++ немесе C # сипатталмаған.

    Java тілінің артықшылықтары

    1) Java тілінің басты артықшылықтарының бірі бағдарламалар іске қосылатын платформадан тәуелсіздік: Сол кодты Windows, Solaris, Linux, Machintosh және басқаларында басқаруға болады.
    Бұл әр түрлі операциялық жүйелерде кейінірек орындалуы үшін Интернеттен бағдарламалар жүктелген кезде өте қажет.

    ) Тағы бір артықшылығы мынада java тілінің синтаксисі C ++ тілінің синтаксисіне ұқсас, және C және C ++ тілдерін білетін бағдарламашыларға оны үйрену қиын емес... Рас, Visual Basic тілін білетін бағдарламашылар үшін бұл синтаксис ерекше болуы мүмкін.

    Егер сіз ешқашан C ++ тілінде бағдарламаламасаңыз, онда осы бөлімде қолданылатын кейбір терминдер сізге түсініксіз болуы мүмкін. Бұл жағдайда сіз оны өткізіп жібере аласыз. 6-тараудың соңына жеткенде, бұл терминдер сізге таныс болады.

    3) Сонымен қатар, Java - толығымен нысанға бағытталған тіл, тіпті одан да көп C ++... Java-дағы барлық нысандар - бұл сандар сияқты бірнеше қарабайыр типтерді қоспағанда. (Объектілі-бағдарлы бағдарламалаумен күрделі жобаларды жасау оңай болғандықтан, ол ескі құрылымдық бағдарламалаудың орнын басады. Егер сіз объектілі-бағдарлы бағдарламалаумен таныс болмасаңыз, 3-6 тараулар сізге бұл туралы білуге \u200b\u200bқажеттінің бәрін береді.)

    Алайда C ++ тілінің басқа, сәл жетілдірілген диалектісін дамыту жеткіліксіз. C ++ тіліне қарағанда Java-да қатесіз бағдарламалар жасау оңай екендігі өте маңызды. Неліктен? Java тілін дамытушылар ұзақ уақыт бойы C ++ тілінде жазылған бағдарламалар неге соншалықты қателікке ұрынбайтындығы туралы ойланған. Олар Java тілін ең көп кездесетін қателерді жасыратын бағдарламалар жасау мүмкіндігін болдырмайтын құралдармен қамтамасыз етті. Ол үшін Java тілі келесіні жасады.

    4) Жадты нақты бөлу және босату мүмкіндігі алынып тасталды.
    Java жады қоқыс жинау арқылы автоматты түрде қалпына келтіріледі. Бағдарламалаушыға жадыны дұрыс пайдаланбауға байланысты қателерден кепілдік беріледі.

    5) Нақты массивтер және рұқсат етілмеген көрсеткіш арифметикасы енгізілді.
    Енді бағдарламашылар, негізінен, көрсеткіштерді дұрыс қолданбағандықтан, жадтан деректерді өшіре алмайды.

    6) Тағайындау операторын теңдікті салыстыру операторымен шатастыру мүмкіндігі жойылды.
    Енді if (ntries \u003d 3) операторын да құрастыра алмайсыз. ... ... (Visual Basic бағдарламашылары бұл жерде ешқандай проблеманы байқамауы мүмкін, өйткені бұл қате C және C ++ тілдеріндегі түсінбестіктердің көпшілігінің көзі болып табылады).

    7) Бірнеше мұрагерлік алынып тасталды. Ол жаңа тұжырымдамамен ауыстырылды - Objective C тілінен алынған интерфейс.
    Интерфейс бағдарламалаушыға көптеген мұрагерліктен алатын барлық нәрсені береді, сонымен қатар класс иерархияларын басқарудың күрделілігінен аулақ болады.

    Біз осы тармақтың кейбірін соңғы бөлімде қозғадық. Бұл бөлімде біз: Java тілінің нұсқаулығынан тілдің ерекшеліктерін ашатын баға ұсыныстарын ұсынамыз; Тілдің белгілі бір қасиеттері туралы ойымызды, оның соңғы нұсқасын өз тәжірибемізге сүйене отырып, оқырмандармен бөлісейік.

    Java синтаксисі C ++ синтаксисінің тазартылған нұсқасы болып табылады. Бұл тілде тақырыптық файлдар, көрсеткіш арифметикасы (және көрсеткіштердің өзі), құрылымдар, кәсіподақтар, оператордың шамадан тыс жүктелуі, виртуалды базалық кластар және т.б. (Java мен C ++ арасындағы айырмашылықтар бүкіл кітапқа шашылған C ++ жазбаларында сипатталған.) Алайда, әзірлеушілер C ++ тілінің барлық кемшіліктерін түзетуге тырысқан жоқ.

    Мысалы, Java операторындағы switch операторының синтаксисі өзгеріссіз қалды. C ++ тілін біле отырып, Java синтаксисіне көшу оңай болады.
    Егер сіз әдетте визуалды бағдарламалау ортасын қолдансаңыз (мысалы, Visual Basic), сізге Java тілі күрделі болып көрінеді.
    Оның синтаксисі көбінесе біртүрлі болып көрінеді (бірақ өрнектің мағынасын түсіну қиын емес). Ең бастысы, Java тілі әлдеқайда көп бағдарламалауды қажет етеді. Visual Basic-тің әсемдігі - оның визуалды бағдарламалау ортасы қолданбалы инфрақұрылымды автоматты түрде құруға мүмкіндік береді. Java-мен бірдей нәтижеге қолмен бағдарламалау қажет, бірақ бағдарламалар әлдеқайда қысқа болады.

    Нысанға бағдарлану соңғы 30 жыл ішінде өзінің құндылығын дәлелдеді және онсыз қазіргі заманғы бағдарламалау тілін елестету мүмкін емес. Шынында да, Java тілінің объектіге бағытталған ерекшеліктері C ++ тілімен салыстырылады. Олардың негізгі айырмашылығы көп тілді мұрагерлеу механизмінде, ол үшін Java тілі ең жақсы шешім тапты, сонымен қатар Java тілінің метакласс моделінде.

    Рефлексия (5-тарау) және нысандарды серияландыру (12-тарау) тұрақты компоненттер мен сызбалық компоненттерден графикалық интерфейстер құруға арналған құралдарды қолдануға мүмкіндік береді.

    Java тілі қуатты және ыңғайлы веб-тәжірибені ұсынады. Интернетте басқа тілдерде жұмыс істеуге арналған бағдарламалар жазуға тырысқан кез-келген адам Java-да ең қиын тапсырмаларды, мысалы, желілік қосылыстарды (розеткаларды қосуды) ашу оңай шешілетініне таң қалады. Сервлеттер деп аталатын талғампаз механизм сервер жұмысын өте тиімді етеді.

    Сервлеттерді көптеген танымал веб-серверлер қолдайды. (Желілік байланыс II томда қарастырылады.) Java-да таратылған нысандар арасындағы байланыс қашықтан шақыру әдісі арқылы жүзеге асырылады (бұл тақырып 2-томда да қарастырылған).

    Бұл қасиет өте пайдалы. Java компиляторы басқа тілдердің жұмыс уақытында ғана табатын қателерін анықтайды. Сонымен қатар, жарамсыз көрсеткішке байланысты жадының бүлінуіне әкелетін қате іздеуге бірнеше сағат жұмсаған бағдарламашылар негізінен Java тілінде мұндай проблемалар туындамайтынына өте қуанышты болады.

    Егер сіз бұрын Visual Basic немесе COBOL тілінде бағдарламалаған болсаңыз, онда көрсеткіштер анық қолданылмаса, сіз мұның не үшін маңызды екенін түсінбеуіңіз мүмкін. C бағдарламашыларының жолы аз. Оларға жолдарға, массивтерге, объектілерге, тіпті файлдарға қол жеткізу үшін көрсеткіштер қажет. Visual Basic тілінде бағдарламалау кезінде бұлардың ешқайсысы талап етілмейді, ал программист бұл объектілер үшін жадыны бөлу туралы алаңдамайды. Екінші жағынан, сілтеме жасамайтын тілдегі көптеген деректер құрылымдарын жүзеге асыру өте қиын. Жолдар мен массивтер сияқты жалпы құрылымдар үшін көрсеткіштер қажет емес. Көрсеткіштердің күші сіз онсыз жасай алмайтын жерде ғана іске қосылады, мысалы, байланыстырылған тізімдер жасау кезінде. Java бағдарламашысы мәңгілікке жаман көрсеткіштерден, дұрыс емес бөлінулерден және жадтың ағып кетуінен босатылады.

    Бірінші басылымда біз: «Ешқашан ешқашан айтпаңыз» деп жаздық және біздікі дұрыс болды. Принстон университетінің қауіпсіздік саласындағы сарапшылар тобы Java 1.0-де алғашқы қауіпсіздік қателерін JDK-нің алғашқы нұсқасы шыққаннан кейін көп ұзамай тапты. Сонымен қатар, олар да, басқа мамандар да Java тілінің барлық кейінгі нұсқаларының қауіпсіздік тетіктерінде көбірек қателіктер тауып отырды.

    Осы жағдайдың жағымды жағында Java тілін дамыту тобы кез-келген қауіпсіздік қателеріне мүлдем төзбеушілігін жариялады және апплет қауіпсіздігі механизмінде кездескен кез-келген ақауларды дереу шеше бастады. Атап айтқанда, Java аудармашысының ішкі сипаттамаларын жариялау арқылы Sun жасырын қауіпсіздік қателерін табуды едәуір жеңілдетті және оларды табу үшін тәуелсіз сарапшыларды шақырды.

    Бұл жақын арада барлық қауіпсіздік қателіктерін табу ықтималдығын арттырды. Кез-келген жағдайда Java тілінің қауіпсіздік жүйесін алдау өте қиын. Осы уақытқа дейін табылған қателер өте нәзік және (салыстырмалы түрде) аз болды.

    Күннің веб-парағы келесі URL мекен-жайы бойынша орналасқан: http://java.sun.com/sfaq/.

    Мұнда Java қауіпсіздік жүйесі алдын алатын бірнеше жағдайлар келтірілген.

    Қауіпсіздік шараларының барлығы орынды және әдетте мінсіз жұмыс істейді, бірақ ерік-жігер ешқашан зиян тигізбейді. Осы уақытқа дейін табылған қателер ұсақ-түйектен алыс болғанымен, оларды іздеудің барлық бөлшектері көбіне құпия сақталғанымен, Java тілінің қауіпсіздігін дәлелдеу мүмкін емес екенін мойындау керек.

    Уақыт өте келе тілге жаңа қорғаныс қосылды. 1.1 нұсқасынан бастап Java тілінде цифрлық қолтаңбалы сыныптар ұғымы пайда болды. Электрондық цифрлық қолтаңбалы сыныпты пайдаланған кезде сіз авторға сенімді бола аласыз. Егер сіз оған сенімді болсаңыз, сіз бұл сыныпқа сіздің машинаңызда бар барлық артықшылықтарды бере аласыз.

    Бұл жаңа идея емес. 20 жылдан астам уақыт бұрын Никлаус Вирттің Паскальды енгізу жүйесі де, UCSD Pascal да бірдей технологияны қолданды. Байт кодтарын қолдану бағдарламаны орындауда үлкен пайда әкеледі (бірақ синхронды компиляция оны көптеген жағдайларда өтейді). Java жасаушылары заманауи компьютерлердің көпшілігінде жақсы жұмыс істейтін, нақты машиналық нұсқауларға оңай ауысатын байт-код нұсқауларының жиынтығын жасауда өте жақсы жұмыс жасады. Мысалы, Java-дағы int әрқашан 32 биттік бүтін санды білдіреді. C және C ++ тілдерінде int типі 16 немесе 32 биттік бүтін санды, сондай-ақ белгілі бір компиляторды құрастырушы таңдаған ерікті бүтін санды білдіруі мүмкін. Тек шектеу: int типінің мөлшері қысқа int өлшемінен және ұзын int өлшемінен кіші болмауы керек. Сандық типтердің бекітілген мөлшері әртүрлі компьютерлерде жұмыс істейтін бағдарламалармен байланысты көптеген қиындықтардан аулақ болады. Екілік деректер тұрақты форматта сақталады және тасымалданады, бұл сонымен қатар әр түрлі байттардың әр түрлі платформалармен реттелуіне байланысты түсінбеушіліктерді болдырмайды («үлкен endian / little endian» жанжалы). Жолдар стандартты Юникод форматында сақталады. Windows, Macintosh және Unix-тің он дәмінде бірдей жақсы жұмыс істейтін бағдарлама жазуға тырысқан кез-келген адам бұл өте қиын тапсырма екенін біледі. Java нұсқасы қарапайым пайдаланушы интерфейсінің элементтерін әртүрлі бағдарламалық жасақтама платформаларына бейімдейтін қарапайым инструментті ұсыну арқылы осы мәселені шешуге ерлік жасады. Өкінішке орай, көп жұмыс атқарған кітапхана әр түрлі платформаларда қолайлы нәтижелерге қол жеткізуге мүмкіндік бермеді. (Сонымен бірге әр түрлі платформалардағы графикалық бағдарламаларда әртүрлі қателіктер пайда болды.) Алайда, бұл тек бастамасы болды. Көптеген қосымшаларда машинаның тәуелсіздігі графикалық интерфейстің талғампаздығынан гөрі маңызды. Бұл Java 1.0-тен пайда тапқан қосымшалар. Алайда графикалық интерфейс инструменті енді толықтай өзгертілді және басты компьютердегі қолданушы интерфейсіне тәуелді болмай қалды. Жаңа нұсқа бұрынғыға қарағанда мағыналы және біздің ойымызша қолданушы үшін тартымды. Егер байт кодтарын орындау үшін аудармашы қолданылса, «жоғары өнімділік» сөз тіркесін қолдануға болмайды. Дегенмен, көптеген платформаларда компиляцияның басқа түрі мүмкін, оны дәл уақытында құрастырушылар-JIT ұсынады. Олар байт-кодты машиналарға тәуелді кодқа аударады, нәтижені жадта сақтайды, содан кейін қажет болған жағдайда шақырады. Түсіндіру бір рет қана орындалатындықтан, бұл тәсіл жұмыс жылдамдығын бірнеше есе арттырады.

    Синхронды компиляторлар машиналарға тәуелді компиляторларға қарағанда баяу жұмыс істейтініне қарамастан, олар кез-келген жағдайда аудармашыларға қарағанда әлдеқайда жылдам, кейбір бағдарламалар үшін 10, тіпті 20 есе жылдамдықты қамтамасыз етеді. Бұл технология үнемі жетілдіріліп отырады және соңында дәстүрлі компиляторлар ешқашан асып түспейтін жылдамдықтарға жетеді. Мысалы, синхронды компилятор кодтың қай бөлігі жиі орындалатындығын анықтай алады және оны орындау жылдамдығы үшін оңтайландырады.

    Егер сіз кез-келген басқа бағдарламалау тілінде бірнеше рет жұмыс істеуге тырысқан болсаңыз, Java-да оны жасаудың қаншалықты оңай екеніне таңданасыз. Егер операциялық жүйе рұқсат етсе, Java ағындары мультипроцессорлық жүйелердің артықшылығын қолдана алады. Өкінішке орай, көптеген платформалардағы ағындардың іске асырылуы бір-бірінен мүлдем өзгеше және Java тілін дамытушылар біртектілікке қол жеткізуге тырыспайды. Барлық машиналар үшін тек ағындарды шақыруға арналған код бірдей болып қалады; Java тілі көп ағынды іске асыруды негізгі амалдық жүйеге немесе ағындар кітапханасына ауыстырады. (Ағындар II томда қарастырылған.) Осыған қарамастан, Java-ны серверлік бағдарламалық жасақтаманы жасау үшін соншалықты тартымды ететін көптаңбалы жұмыс ыңғайлылығы. Бұл қазірдің өзінде іске қосылған бағдарламаға код қосу қажет болғанда өте маңызды. Бұның жарқын мысалы - браузер арқылы орындау үшін Интернеттен жүктелетін код. Java 1.0-де орындалатын бағдарламаның орындалу барысы туралы ақпарат алу оңай болған жоқ, бірақ Java тілінің қазіргі нұсқасы бағдарламалаушыға орындалатын бағдарлама объектілерінің құрылымын да, мінез-құлқын да ашып көрсетеді.
    Бұл бағдарламаны орындау кезінде объектілерді талдауды қажет ететін жүйелер үшін өте маңызды. Мұндай жүйелерге графикалық қолданушы интерфейсін құрушылар, ақылды дебагерлер, қосылатын модульдер және объект мәліметтер базасы жатады. Java және Интернет

    Идея қарапайым - пайдаланушылар Интернеттен Java байт кодтарын жүктеп, оларды өз машиналарында орындайды. Веб-браузерлерде жұмыс жасайтын Java бағдарламалары апплеттер деп аталады. Апплетті пайдалану үшін сізге байт кодтарын түсіндіре алатын Java-қосылған веб-шолғыш қажет. Java тілінің бастапқы коды Sun-ге лицензияланған, бұл тілдің өзі де, оның негізгі кітапханаларының құрылымы да өзгеріссіз қалуын талап етеді. Өкінішке орай, іс жүзінде бұлай емес. Netscape және Internet Explorer браузерлерінің әртүрлі нұсқалары Java тілінің әртүрлі нұсқаларын қолдайды, олардың кейбіреулері айтарлықтай ескірген. Бұл жағымсыз жағдай Java тілінің ең соңғы нұсқасын пайдаланатын апплеттердің дамуына көбірек кедергілер туғызады. Осы мәселені шешу үшін Sun Netscape және Internet Explorer браузерлері негізінде Java бағдарламаларын іске қосудың ең заманауи ортасын ұсынатын Java Plug-in құрды.

    Апплетті жүктеу - бұл суретті веб-параққа енгізуге ұқсас. Апплет парақтың бір бөлігіне айналады, ал мәтін ол алатын орынды айналдырады. Алайда, айырмашылық - сурет қазір тірі. Ол қолданушының командаларына жауап береді, сыртқы түрін өзгертеді және апплет қаралатын компьютер мен апплетті басқаратын компьютер арасында мәліметтер беруді қамтамасыз етеді.

    Апплетті жүктеу веб-параққа сурет салумен бірдей. Апплет парақтың бір бөлігіне айналады, ал мәтін ол алатын орынды айналдырады. Мұның мәні - кескін «тірі». Ол қолданушының енгізуіне жауап береді, сыртқы түрін өзгертеді және апплетті басқаратын компьютер мен апплетті басқаратын компьютер арасында деректерді тасымалдайды.

    Күріш. 1.1 күрделі есептеулер жүргізетін және молекулаларды бейнелеу үшін апплетті қолданатын динамикалық веб-парақтың жақсы үлгісін көрсетеді. Молекуланың құрылымын жақсы түсіну үшін оны бұруға немесе тінтуірдің көмегімен үлкейтуге болады. Мұндай манипуляцияларды статикалық веб-беттерде жүзеге асыру мүмкін емес, бірақ апплеттер мұны жасайды. (Бұл апплетті http: //jmol.sourceforge.net сайтынан табуға болады.)

    Апплеттердің көмегімен веб-параққа жаңа батырмалар мен мәтіндік өрістерді қосуға болады. Алайда, бұл апплеттер телефон желісіне баяу жүктеледі.

    Динамикалық HTML, гипермәтіндік белгілеу тілі (HTML) формаларын немесе JavaScript сияқты сценарий тілін қолдану арқылы да дәл осылай жасауға болады. Әрине, алғашқы апплеттер анимацияға арналған: айналатын глобустар, би билейтін мультфильм кейіпкерлері, қияли мәтіндер және т.б. Алайда, жоғарыда айтылғандардың көпшілігі анимациялық GIF суреттерін де орындай алады, ал Dynamic HTML сценариймен үйлескенде апплеттен гөрі көп нәрсе жасайды.

    Браузердің үйлесімсіздігі және желінің баяу қосылуларына сәйкессіз жүктеу нәтижесінде веб-парақтарды бағытталған апплеттер үлкен жетістік бола алмады. Жергілікті желілерде (ішкі желілерде) жағдай мүлдем басқаша. Әдетте олар өткізу қабілеттілігі проблемаларына ие емес, сондықтан апплеттерді жүктеу уақыты маңызды емес. Жергілікті желіде сіз қажетті шолушыны таңдай аласыз немесе Java Plug-In бағдарламасын қолдана аласыз. Қызметкерлер желі арқылы жеткізілген бағдарламалық жасақтаманы дұрыс емес орынға ауыстыра алмайды немесе оны дұрыс орната алмайды, ал жүйелік әкімшіге барлық клиенттік машиналарды айналып өтіп, олардағы бағдарламалық жасақтаманы жаңарту қажет емес. Тауарлық-материалдық қорларды есепке алуға, демалысты жоспарлауға, саяхаттардың орнын толтыруға және сол сияқтыларға арналған көптеген бағдарламаларды көптеген корпорациялар браузерге негізделген апплеттер ретінде жасады.

    Біз кітапты жазған кезде маятник клиенттік бағдарламалардан қайтадан серверлік бағдарламалауға ауысты. Нақтырақ айтсақ, қолданбалы серверлер Java виртуалды машинасының бақылау мүмкіндіктерін тепе-теңдікті автоматты түрде жүктеу, мәліметтер базасының қосылыстарын біріктіру, нысандарды синхрондау, қауіпсіз өшіру және қайта жүктеу және масштабталатын серверлік қосымшалар үшін қажетті басқа процестерді қолдана алады, бұл дұрыс жүзеге асырылуы мүмкін емес. Осылайша, қосымшалар жасайтын бағдарламашылар бұл күрделі механизмдерді өздері дамудың орнына сатып алуға мүмкіндік алады. Бұл бағдарламашылардың өнімділігін арттырды - олар сервер бөлшектеріне алаңдамай, өз бағдарламаларының логикасына назар аударды.

    «Біз бағдарламалау оңай, қосымша дайындықты қажет етпейтін және қалыптасқан тәжірибе мен бағдарламалау стандарттарын ескеретін жүйе құрғымыз келді. Сондықтан, біз C ++ тілін осы мақсаттарға жарамсыз деп санағанымызға қарамастан, жүйені қол жетімді ету үшін Java тілі оған барынша жақын дамыды. Java тілінде сирек қолданылатын, түсініксіз және түсініксіз C ++ көптеген мүмкіндіктері жоқ, олар біздің ойымызша, пайдадан гөрі көп зиян тигізеді. Java синтаксисі C ++ синтаксисінің тазартылған нұсқасы болып табылады. Бұл тілде тақырыптық файлдар, көрсеткіш арифметикасы (және сілтегіштердің өзі), құрылымдар, кәсіподақтар, оператордың шамадан тыс жүктелуі, виртуалды базалық кластар және т.б. жоқ ».

    Алайда, әзірлеушілер C ++ тілінің барлық кемшіліктерін түзетуге ұмтылған жоқ. Мысалы, Java операторындағы switch операторының синтаксисі өзгеріссіз қалды. C ++ тілін біле отырып, Java синтаксисіне көшу оңай болады. Java тілінің мақсаттарының бірі - шағын машиналарда толығымен дербес орындалатын бағдарламалар жасауға мүмкіндік беру. Негізгі аудармашы және сыныпты қолдау құралдары шамамен 40 КБ құрайды; стандартты кітапханалар және бұрау құралдары (әсіресе авто-

    өзін-өзі қамтамасыз ететін микро ядро \u200b\u200bтағы 175 КБ алады. Бұл үлкен жетістік. Алайда, GUI қолдау кітапханалары әлдеқайда үлкен екенін ескеріңіз.

    «Қарапайым тілмен айтқанда, объектіге бағытталған бағдарламалау - бұл мәліметтерге (яғни объектілерге) және оларға қол жеткізу құралдарына бағытталған бағдарламалау әдісі».

    Java және C ++ тілдерінің объектіге бағытталған қасиеттері іс жүзінде бірдей. Соңғы 30 жыл ішінде объектілік бағдар өз құндылығын дәлелдеді және онсыз заманауи бағдарламалау тілін елестету мүмкін емес. Шынында да, Java тілінің объектіге бағытталған ерекшеліктері C ++ тілімен салыстырылады. Олардың негізгі айырмашылығы көп тілді мұрагерлеу механизмінде, ол үшін Java тілі ең жақсы шешім тапты, сонымен қатар Java тілінің метакласс моделінде. Рефлексия және объектілерді сериялау механизмдері тұрақты объектілер мен қораптан тыс компоненттер негізінде графикалық қолданушы интерфейстерін құралын жүзеге асыруға мүмкіндік береді.

    «Java-да TCP / IP (Transmission Control Protocol / Internet Protocol), http (Hypertext TransjerProtocol) немесе FTP (File Transfer Protocol) негізінде деректерді беруге арналған бағдарламалардың үлкен кітапханасы бар. - файлдарды жіберу хаттамасы). Java-да жазылған қосымшалар жергілікті желідегі сияқты URLrodpecoe (бірыңғай ресурстардың орналасуы) көмегімен желі арқылы объектілерді аша алады және оларға қол жеткізе алады. «

    ava тілі қуатты және ыңғайлы веб-тәжірибені ұсынады. Интернетте басқа тілдерде жұмыс істеуге арналған бағдарламалар жазуға тырысқан кез-келген адам Java-да ең қиын тапсырмалардың, мысалы, желілік қосылыстарды (розеткалардың қосылымын) ашудың қаншалықты оңай шешілетіндігіне таң қалады. Сервлеттер деп аталатын талғампаз механизм сервер жұмысын өте тиімді етеді. Сервлеттерді көптеген танымал веб-серверлер қолдайды. Java-да бөлінген объектілер арасындағы байланыс қашықтан шақыру әдісі механизмімен қамтамасыз етілген (бұл тақырып екінші томда да қарастырылған).

    «Java тілі барлық жағдайда сенімді жұмыс істейтін бағдарламалар жасауға арналған. Java қателерді ертерек анықтауға, динамикалық тексеруге (бағдарламаның орындалуы кезінде) және қателіктерге әкелетін ерекше жағдайларға назар аударады ... Java мен C ++ арасындағы маңызды айырмашылық - бұл жад бөлігін қайта жазу мүмкіндігін жоққа шығаратын Java сілтеме моделі. деректердің бүлінуі ».

    Бұл қасиет өте пайдалы. Java компиляторы басқа тілдердің жұмыс уақытында ғана табатын қателерін анықтайды. Сонымен қатар, жарамсыз көрсеткішке байланысты жадының бүлінуіне әкелетін қате іздеуге бірнеше сағат жұмсаған бағдарламашылар негізінен Java тілінде мұндай проблемалар туындамайтынына өте қуанышты болады.

    Егер сіз бұрын Visual Basic немесе COBOL тілінде бағдарламалаған болсаңыз, онда анықтағыштарды қолданбайтын болсаңыз, мұның не үшін маңызды екенін түсінбеуіңіз мүмкін. C бағдарламашыларының жолы аз. Оларға жолдарға, массивтерге, объектілерге, тіпті файлдарға қол жеткізу үшін көрсеткіштер қажет. Visual Basic тілінде бағдарламалау кезінде бұлардың ешқайсысы талап етілмейді, ал программист бұл объектілер үшін жадыны бөлу туралы алаңдамайды. Екінші жағынан, сілтеме жасамайтын тілдегі көптеген деректер құрылымдарын жүзеге асыру өте қиын. Жолдар мен массивтер сияқты жалпы құрылымдар үшін көрсеткіштер қажет емес. Көрсеткіштердің күші сіз онсыз жасай алмайтын жерде ғана іске қосылады, мысалы, байланыстырылған тізімдер жасау кезінде. Java бағдарламашысы мәңгілікке жаман көрсеткіштерден, дұрыс емес бөлінулерден және жадтың ағып кетуінен босатылады.

    «Java тілі желілік, таралған ортада қолдануға арналған. Осы себепті қауіпсіздікке үлкен көңіл бөлінді. Java тілі вирустардан қорғалатын жүйелерді құруға мүмкіндік береді ».

    Java тілін дамыту тобы кез-келген қауіпсіздік қатесіне мүлдем төзбейтіндігін жариялады және апплеттерде кездесетін қауіпсіздік мәселелерін дереу шеше бастады. Атап айтқанда, Java интерпретаторының ішкі сипаттамаларын жариялау арқылы Sun жасырын қауіпсіздік қателерін табуды едәуір жеңілдетті және оларды табу үшін тәуелсіз сарапшыларды тартты. Бұл жақын арада барлық қауіпсіздік қателіктерін табу ықтималдығын арттырды. Кез-келген жағдайда Java тілінің қауіпсіздік жүйесін алдау өте қиын. Осы уақытқа дейін табылған қателер ұсақ және (салыстырмалы түрде) аз болды.

    Қауіпсіздік шараларының барлығы орынды және әдетте мінсіз жұмыс істейді, бірақ ерік-жігер ешқашан зиян тигізбейді. Осы уақытқа дейін табылған қателер ұсақ-түйектен алшақ болғанымен, оларды іздеудің егжей-тегжейлері көп жағдайда құпия сақталғанымен, Java тілінің қауіпсіздігін дәлелдеу мүмкін емес екенін мойындау керек. Уақыт өте келе тілге жаңа қорғаныс қосылды. 1.1 нұсқасынан бастап Java тілінде цифрлық қолтаңбалы сыныптар тұжырымдамасы пайда болды. Электрондық цифрлық қолтаңбалы сыныпты пайдаланған кезде сіз авторға сенімді бола аласыз. Егер сіз оған сенімді болсаңыз, сіз бұл сыныпқа сіздің машинаңызда бар барлық артықшылықтарды бере аласыз.

    «Компилятор объектілік файлды қалыптастырады, оның форматы компьютердің архитектурасына тәуелді емес - құрастырылған бағдарламаны Java бағдарламасын орындау жүйесінің басқаруымен кез-келген процессорда орындауға болады. Ол үшін Java компиляторы компьютердің нақты архитектурасына тәуелді емес байт-код командаларын жасайды. Байт коды кез-келген машинада оңай түсіндірілетін немесе жылдам машинада машиналарға тәуелді кодқа аударылатын етіп жасалған ».

    Бұл жаңа идея емес. 20 жылдан астам уақыт бұрын Никлаус Вирт жасаған Паскальды енгізу жүйесі де, UCSD Паскаль жүйесі де сол технологияны қолданды. Байт кодтарын қолдану бағдарламаның орындалуында үлкен пайда әкеледі (бірақ синхронды компиляция көп жағдайда оны өтейді). Java тілінің дизайнерлері көптеген заманауи компьютерлерде жақсы жұмыс істейтін байт-код бойынша нұсқаулар жиынтығын жасауда өте жақсы жұмыс жасады.

    «C және C ++ тілдерінен айырмашылығы, Java спецификациясының орындалу ерекшеліктері жоқ. Мәліметтердің негізгі типтерінің мөлшері де, олардағы арифметикалық амалдар да жақсы анықталған. Мысалы, Java-дағы int әрқашан 32 биттік бүтін санды білдіреді. C және C ++ тілдерінде int типі 16 немесе 32 биттік бүтін санды, сондай-ақ белгілі бір компиляторды құрастырушының таңдауы бойынша ерікті бүтін санды білдіруі мүмкін. Жалғыз шектеу - «int типінің мөлшері шортиннің өлшемінен және

    Сандық типтердің бекітілген мөлшері әртүрлі компьютерлерде жұмыс істейтін бағдарламалармен байланысты көптеген қиындықтардан аулақ болады. Екілік деректер тұрақты форматта сақталады және тасымалданады, бұл сонымен қатар әр түрлі байттардың әр түрлі платформалармен реттелуіне байланысты түсінбеушіліктерді болдырмайды («үлкен endian / little endian» жанжалы). Жолдар стандартты Юникод форматында сақталады.

    «Java интерпретаторы кез-келген машинаға жіберіліп, байт-кодты тікелей сол арқылы орындай алады. Сілтемені редакциялау оңай процесс болғандықтан, бағдарламалық жасақтаманы әзірлеу әлдеқайда тез және тиімді бола алады ».

    Бұл қосымшаларды әзірлеу кезінде артықшылығы болуы мүмкін, бірақ дәйексөз айқын асыра сілтеу болып табылады. Кез-келген жағдайда, Java бағдарламалық жасақтамасын әзірлеу жиынтығындағы (JSDK) Java компиляторы өте баяу жұмыс істейді. (Үшінші типтегі кейбір компиляторлар, мысалы IBM сияқты, әлдеқайда жылдам.) Компиляция жылдамдығы - бұл бағдарламалау ортасының тиімділігін сипаттайтын факторлардың бірі. Java мен Visual Basic бағдарламалау ортасының жылдамдығын салыстырған кезде көңіліңіз қалуы мүмкін.

    «Байт-кодтардың интерпретациясы, әдетте, өнімділікке қарағанда жеткіліксіз, бірақ одан да жоғары өнімділік қажет болатын жағдайлар бар. Байт кодтарын жылдам (жұмыс уақытында) қосымшасы жұмыс істейтін нақты процессордың машиналық кодтарына аударуға болады. «

    Егер байт кодтарын орындау үшін аудармашы қолданылса, «жоғары өнімділік» сөз тіркесін қолдануға болмайды. Дегенмен, көптеген платформаларда компиляцияның басқа түрі мүмкін, оны дәл уақытында құрастырушылар-JIT ұсынады. Олар байт-кодты машиналарға тәуелді кодқа аударады, нәтижені жадта сақтайды, содан кейін қажет болған жағдайда шақырады. Түсіндіру бір рет қана орындалатындықтан, бұл тәсіл жұмыс жылдамдығын бірнеше есе арттырады. Синхронды компиляторлар машиналарға тәуелді компиляторларға қарағанда баяу жұмыс істейтініне қарамастан, олар кез-келген жағдайда аудармашыларға қарағанда әлдеқайда жылдам, кейбір бағдарламалар үшін 10х, тіпті 20х жылдамдықты қамтамасыз етеді. Бұл технология үнемі жетілдіріліп отырады және соңында дәстүрлі компиляторлар ешқашан асып түспейтін жылдамдықтарға жетеді. Мысалы, синхронды компилятор кодтың қай бөлігі жиі орындалатындығын анықтай алады және оны орындау жылдамдығы үшін оңтайландырады.

    «Көпжоспарлау интерактивтілікті және бағдарламаның орындалуын жақсартады.» Егер сіз кез-келген басқа бағдарламалау тілінде бірнеше рет жұмыс істеуге тырысқан болсаңыз, Java-да оны жасаудың қаншалықты оңай екеніне таңданасыз. Егер операциялық жүйе рұқсат етсе, Java ағындары мультипроцессорлық жүйелердің артықшылығын қолдана алады. Өкінішке орай, көптеген платформалардағы ағындардың іске асырылуы бір-бірінен мүлдем өзгеше және Java тілін дамытушылар біртектілікке қол жеткізуге тырыспайды. Барлық машиналар үшін тек ағындарды шақыруға арналған код бірдей болып қалады; Java тілі негізгі операциялық жүйеге немесе ағындар кітапханасына көп ағынды енгізуді өтейді. (Ағындар II томда қарастырылған.) Осыған қарамастан, Java-ны серверлік бағдарламалық жасақтаманы жасау үшін соншалықты тартымды ететін көптаңбалы жұмыс ыңғайлылығы.

    «Java, C немесе C ++ тілдеріне қарағанда көп динамикалық. Ол үнемі өзгеріп отыратын ортаға оңай бейімделуге арналған. Жаңа әдістер мен нысандарды кітапханаларға ешбір зиян келтірместен еркін қосуға болады. Java тілі бағдарламаның барысы туралы ақпарат алуды жеңілдетеді ».

    Бұл қазірдің өзінде іске қосылған бағдарламаға код қосу қажет болғанда өте маңызды. Бұның жарқын мысалы - браузер орындау үшін Интернеттен жүктелген код. Java 1.0-де орындалатын бағдарламаның орындалу барысы туралы ақпарат алу оңай болған жоқ, бірақ Java тілінің қазіргі нұсқасы бағдарламалаушыға орындалатын бағдарлама объектілерінің құрылымын да, мінез-құлқын да ашып көрсетеді. Бұл бағдарламаны орындау кезінде объектілерді талдауды қажет ететін жүйелер үшін өте маңызды. Мұндай жүйелерге графикалық қолданушы интерфейсін құрушылар, ақылды дебагерлер, қосылатын модульдер және объект мәліметтер базасы жатады.

    Java - SunMicrosystems жасаған бағдарламалау тілі. Java қосымшалары әдетте арнайы байт-кодқа жинақталады, сондықтан олар кез-келген Java виртуалды машинасында (JVM) компьютер архитектурасына қарамастан жұмыс істей алады. Ресми шығу күні - 1995 жылғы 23 мамыр. Қазіргі кезде Java технологиясы статикалық веб-парақтарды интерактивті, динамикалық құжаттарға айналдыруға және платформадан тәуелсіз таратылған қосымшаларды құруға мүмкіндік береді.

    Java бағдарламалары байт кодына аударылады, оны Java виртуалды машинасы (JVM) орындайды, байт кодын өңдейтін және интерпретатор ретінде аппараттық құралға нұсқаулар береді.

    Бағдарламаларды орындаудың бұл әдісінің артықшылығы - байт-код амалдық жүйеден және аппараттық құралдардан мүлдем тәуелсіз, бұл сәйкесінше виртуалды машина бар кез-келген құрылғыда Java қосымшаларын іске қосуға мүмкіндік береді. Java технологиясының тағы бір маңызды ерекшелігі - бұл бағдарламаның орындалуы толығымен виртуалды машинамен басқарылатындығына байланысты икемді қауіпсіздік жүйесі. Белгіленген бағдарлама өкілеттілігінен асатын кез-келген операциялар (мысалы, деректерге рұқсатсыз кіру немесе басқа компьютерге қосылу әрекеті) бірден үзілісті тудырады.

    Көбіне виртуалды машина тұжырымдамасының кемшіліктеріне виртуалды машинаның байт кодын орындауы Java тілінде жүзеге асырылған алгоритмдер бағдарламасының өнімділігін төмендетуі мүмкін екендігі жатады. Жақында Java бағдарламаларының орындалу жылдамдығын сәл арттырған бірқатар жақсартулар жасалды:

    Бағдарламалық жасақтама кезінде тікелей кодты машиналық кодқа аудару технологиясын қолдану (JIT технологиясы), машиналық кодта класс нұсқаларын сақтау мүмкіндігі бар,

    Стандартты кітапханаларда платформалық-кодты (жергілікті кодты) кеңінен қолдану,

    Байт кодын жедел өңдеуді қамтамасыз ететін жабдық (мысалы, кейбір ARM процессорлары қолдайтын Jazelle технологиясы).


    Тілдің негізгі ерекшеліктері:

    Жадыны автоматты басқару;

    Ерекше жағдайлармен жұмыс істеудің кеңейтілген мүмкіндіктері;

    Енгізу-шығару сүзгі құралдарының бай жиынтығы;

    Массив, тізім, стек және т.б сияқты стандартты коллекциялар жиынтығы;

    Желілік қосымшаларды құрудың қарапайым құралдарының болуы (соның ішінде RMI протоколын қолдану);

    HTTP сұраныстарын жасауға және жауаптарды өңдеуге мүмкіндік беретін сыныптардың болуы;

    Тілге енгізілген көп ағынды қосымшаларды құруға арналған құралдар;

    Мәліметтер базасына бірыңғай қол жетімділік:

    JDBC, SQLJ негізіндегі жеке SQL сұраулары деңгейінде;

    Деректер базасында сақтау мүмкіндігі бар объектілер тұжырымдамасы деңгейінде - Java Data Objects және Java Persistence API негізінде;

    C # авторлары ресми түрде аталмаса да, тілдік сілтемелердің алдын ала басылымдарының бірінің титулдық парағында 1996 жылы Microsoft корпорациясына көшкен Turbo Pascal мен Delphi жасаушылары Андерс Хейлсберг және Скотт Вильтамут көрсетілген.

    Бағдарламаны орындаудың біртұтас ортасы Java виртуалды машинасының байт-кодымен бірдей рөл атқаратын IL (Intermediate Language) аралық тілін қолдануға негізделген. .NET технологиясының шеңберінде әртүрлі тілдерден алынған компиляторлар бағдарламаларды IL-кодқа аударады. Java байт коды сияқты, IL коды - гипотетикалық жинақталған компьютерге арналған нұсқаулық. Бірақ IL-ді жобалау мен қолдануда да айырмашылық бар.

    Біріншіден, JVM-ден айырмашылығы, IL бір бағдарламалау тілімен байланысты емес. Microsoft.NET-тің алдын-ала нұсқаларында C ++, C #, Visual Basic тілдерінің компиляторлары бар. Үшінші тарап әзірлеушілері IL кодына осы тілдерден компилятор құру арқылы басқа тілдерді қоса алады.

    Екіншіден, IL бағдарламаны түсіндіру үшін емес, кейіннен машиналық кодқа компиляциялау үшін арналған. Бұл бағдарламалардың айтарлықтай жоғары өнімділігіне қол жеткізуге мүмкіндік береді. IL-коды бар файлдарда оңтайландырушы компилятордың жұмыс істеуі үшін жеткілікті ақпарат бар.

    «C # - бұл қарапайым, заманауи, объектке бағытталған, қауіпсіз типтік жүйесі бар, C және C ++ тілдерінен алынған тіл. C # C және C ++ деңгейлерін білетін бағдарламашылар үшін ыңғайлы және түсінікті болады. C # Visual Basic өнімділігін C ++ қуатымен біріктіреді. « Бұл сөздер C # сипаттамасын бастайды.

    Тілдің техникалық ерекшеліктерін қарастырыңыз:

    Компиляция блогы болып табылады (C, C ++, Java сияқты). Файл типтердің бір немесе бірнеше сипаттамасын қамтуы мүмкін: кластар (класс), интерфейстер (интерфейс), құрылымдар (құрылым), санамақтар (санақ), типтер-делегаттар (делегат) олардың кеңістікте таралуын көрсетумен (немесе көрсетусіз);

    Атаулар кеңістігі бағдарлама объектілерінің көрінуін реттейді (C ++ тіліндегідей). Атаулар кеңістігі кірістірілуі мүмкін. Бағдарлама нысандарын пайдалануға осы объект тиесілі аттар кеңістігін анық көрсетусіз рұқсат етіледі. Осы атау кеңістігін пайдалану директивасында қолдану туралы жалпы мәлімет жеткілікті (Турбо Паскальда сияқты). Пайдалану директивасында атаулар кеңістігі аттарының бүркеншік аттары бар (Оберон тіліндегідей);

    Мәліметтердің қарапайым типтері: 8-биттік (байт, байт), 16-биттік (қысқа, ushort), 32-биттік (int, uint) және 64-биттік (ұзын, үлкен) бүтін сандар, нақты (флот)) және қос (екі) дәлдік, Unicode таңбалары (char), бульдік тип (bool, бүтін сандармен үйлеспейді), дәлдіктің (ондық) 28 маңызды цифрын қамтамасыз ететін ондық тип;

    Құрылымдық типтер: кластар мен интерфейстер (Java-дағыдай), бірөлшемді және көпөлшемді (Java-ға қарағанда) массивтер, жолдар (жолдар), құрылымдар (сыныптармен бірдей, бірақ үйіндіде және мұрагерлікте емес), санақ , бүтін сандармен үйлеспейтін (Паскальдағыдай);

    Делегаттар типтері немесе жай ғана «делегаттар» (Modula-2 және Oberon-дағы процедуралық типтерге ұқсас, C және C ++ тіліндегі функционерлер);

    Түрлер анықтамалық (класстар, интерфейстер, массивтер, делегаттар) және мәндер типтері (алғашқы типтер, санаулар, құрылымдар) болып бөлінеді. Эталондық типтегі объектілер динамикалық жадыда (үйіндіде) бөлінеді, ал анықтамалық типтердің айнымалылары, шын мәнінде, осы объектілерге бағыттаушылар болып табылады. Мән түрлері жағдайында айнымалылар көрсеткіштер емес, мәндердің өзі болып табылады. Жасырын түрлендіруге, егер олар типтің қауіпсіздігін бұзбайтын болса және ақпараттың жоғалуына әкеліп соқтырмаса ғана рұқсат етіледі. Барлық типтер, соның ішінде элементарлы, барлық басқа типтердің базалық класы болып табылатын объект типімен үйлеседі. Бокс деп аталатын мән түрлерін типтік түрге жасырын түрлендіру және ашық кері түрлендіру, қораптан шығару бар;

    Қоқыстарды автоматты түрде жинау (Oberon және Java сияқты);

    14 басым деңгейлі операциялардың кең жиынтығы. Бастапқы операциялар (Algol-68, Ada, C ++ сияқты). Белгіленген және тексерілмеген операторлар бүтін амалдарды орындау кезінде толып кетуді басқарады;

    Параметр мәндері, сілтеме параметрлері (ref) және шығу параметрлері (шығу) бар әдістер. Ref және out сөздері параметрдің алдында, тек әдіс сипаттамасында ғана емес, сонымен қатар қоңырау кезінде де жазылуы керек. Шығу параметрлерінің болуы анықтайтын тапсырмалардың орындалуын бақылауға мүмкіндік береді. Тіл ережелеріне сәйкес кез-келген айнымалыны оны қолдануға тырыспас бұрын мән алуға кепілдік беруі керек;

    Басқару операторлары: if, switch, while, do, for, break, continue (C, C ++ және Java сияқты). «Коллекциядағы» әр тармақты қарастыратын алдын-ала мәлімдеме; готоның бірнеше түрі;

    Ерекше жағдайларды өңдеу (Java сияқты);

    Қасиеттер - өрістер сияқты қол жеткізілетін кластардың (объектілердің) элементтері (мәнді тағайындауға немесе алуға болады), бірақ жасырын түрде алу және орнату процедуралары арқылы жүзеге асырылады (Object Pascal-да - Delphi-дің енгізу тілі) жүйе);

    Үлгіні қолдау (1.5 нұсқасынан бастап);

    Бағдарламалардың параллель орындалуы.

    1.4.3 C # бағдарламалау тілі

    2000 жылы маусымда Microsoft бағдарламасында пайда болған жаңа бағдарламалау тілі туралы белгілі болды. Бұл Microsoft корпорациясының .NET деп аталатын жаңа технологиясының бөлігі болды («Dot Net» оқыңыз). Бұл технология әр түрлі бағдарламалау тілдерінде жазылған бағдарламалардың бірыңғай жұмыс ортасын (Common Language Runtime, CLR) қамтамасыз етеді. Осы тілдердің бірі, осы ортада бастысы - C # (C #, «C өткір», «C өткір» деп оқылады). Тілдің атымен, әрине, олар оның С ++ -ке жақындығын баса айтқысы келді, өйткені # - бұл екі айқасқан плюс. Бірақ бәрінен бұрын жаңа тіл Java-ға ұқсас. Оның пайда болу себептерінің бірі Майкрософттың Күннің қиындықтарын жеңуге деген ұмтылысы екендігі даусыз.

    Индекстер - бұл объектілерге массивтер сияқты қол жеткізуге мүмкіндік беретін кластардың (объектілердің) элементтері (квадрат жақшаға индексті көрсету арқылы). Get және set routines деп аталатын жүзеге асырылады. Мысалы, жолдың символдарына қатынау (оқу үшін) массив элементтері сияқты орындалуы мүмкін, өйткені индексатор стандартты жол класы үшін іске асырылады;

    Оқиғалар - процедуралық типтегі класстардың (өрістердің немесе қасиеттердің) элементтері, олар сыныптан тыс, олар анықталған жерде, тек + \u003d және - \u003d операциялары қолданылады, бұл объектілер үшін оқиғаларды өңдеу әдістерін қосуға немесе жоюға мүмкіндік береді. осы сыныптың;

    Көрсеткіштер мен мекен-жай арифметикасын қолданатын қауіпті (қауіпті) код бағдарламаның қауіпті модификатормен белгіленген бөліктерінде локализацияланған;

    С және С ++ тілдерінен айырмашылығы тек шартты компиляция құралдарын ұсынатын алдын ала процессор.

    Әрине, C # -ның талқыланған кемшіліктері тілді перспективадан айырмайды. С ++ -тан гөрі көптеген жолдармен жақсырақ. Жаңа тілдің пайда болуымен танылатын C ++ тіліне деген жалпы наразылық C # тілінің жетістігінің негізгі алғышарттарының бірі болып табылады.

    C # мен Java-ны салыстыру арқылы көптеген ұқсастықтарды көруге болады. Рас, егер Java жүйелері көп платформалы болса, онда C # енгізу Windows амалдық жүйесінде ғана бар және біреуінде ғана бар. Бірақ қолайсыздыққа қарамастан, тіл басқа жүйелер үшін де жүзеге асырылады деп күтуге болады. Сонымен қатар, Microsoft .NET платформасының өзі бірыңғай бағдарламаны орындау ортасымен баламалы архитектураларға, ең алдымен UNIX жүйелеріне көтерілуі мүмкін.

    C # Java-ға қарағанда шынайы тіл сияқты. Java-дан айырмашылығы, ол өзін-өзі қамтамасыз етеді. Яғни кез-келген бағдарламаны басқа тілдерге жүгінбей-ақ C # тілінде жаза аласыз. Бұл аппараттық құралға тікелей қол жеткізуді ашатын «қауіпті» код блоктарының болуына байланысты мүмкін болады. Java-да төменгі деңгейлі құралдарға қол жеткізу үшін жергілікті әдістер қолданылуы керек және басқа тілдерде бағдарламалануы керек.

    Әрине, C # бағдарламасының болашағы, ең алдымен, Microsoft оны алға жылжытуға күш салумен байланысты.

    Java - Sun микрожүйелерінен алынған Java бағдарламалық жасақтамасы. Ол бастапқыда электронды құрылғыларды бағдарламалау тілі ретінде дамыған, бірақ кейінірек серверлік бағдарламалық жасақтаманы жазу үшін қолданыла бастады. Java бағдарламалары - бұл кросс-платформа, яғни кез-келген операциялық жүйеде жұмыс істей алады.

    JAVA БАҒДАРЛАМАЛАУ НЕГІЗДЕРІ


    Java объектілік тіл ретінде OOP негізгі принциптеріне сәйкес келеді:

    • мұра;

    • полиморфизм;

    • инкапсуляция.

    «Java» орталығында, басқа OOL-дар сияқты, конструкторлары мен қасиеттері бар объект және класс орналасқан. Java бағдарламалау тілін ресми ресурстардан емес, жаңадан бастаушыларға арналған оқулықтардан бастаған жөн. Мұндай нұсқаулықтарда мүмкіндіктер егжей-тегжейлі сипатталған, код мысалдары келтірілген. «Жаңадан бастаушыларға арналған Java бағдарламалау тілі» сияқты кітаптар аталған тілдің негізгі принциптері мен ерекшеліктерін егжей-тегжейлі түсіндіреді.

    МҮМКІНДІКТЕР:


    Java коды байт-кодқа аударылады, содан кейін JVM виртуалды машинасында орындалады. Байт кодына түрлендіру Javac, Jikes, Espresso, GCJ-де жасалады. С-ны Java байт-кодына аударатын компиляторлар бар. Осылайша, С қосымшасы кез-келген платформада жұмыс істей алады.

    Java синтаксисі келесідей сипатталады:

    1. Сынып атаулары бас әріптен басталуы керек. Егер атау бірнеше сөзден тұрса, онда екіншісі бас әріптен басталуы керек.

    2. Егер әдісті қалыптастыру үшін бірнеше сөздер қолданылса, онда олардың екіншісі бас әріптен басталуы керек.

    3. Өңдеу main () әдісінен басталады - бұл әр бағдарламаның бөлігі.

    ТҮРЛЕРІ


    Java бағдарламалау тілі 8 қарабайыр типке ие. Олар төменде көрсетілген.



    • Логикалық - бұл логикалық тип, тек екі мәнді қабылдайды, ақиқат және жалған.

    • Байт - ең кіші 1 байтты бүтін тип. Ол шикі екілік деректермен немесе файлдармен жұмыс істеу кезінде қолданылады. -128-ден 127-ге дейінгі диапазонда.

    • Қысқа - -32768-ден 32767-ге дейінгі диапазонға ие және сандарды бейнелеу үшін қолданылады. Осы типтегі айнымалылардың мөлшері - 2 байт.

    • Int сонымен қатар сандарды білдіреді, бірақ оның мөлшері 4 байтты құрайды. Бұл көбінесе бүтін деректермен жұмыс істеу үшін қолданылады, ал байт пен қысқасы кейде int-ге дейін көтеріледі.

    • Ұзын үлкен сандар үшін қолданылады. Мүмкін мәндер -9223372036854775808 - 9223372036854775807 аралығында.

    • Float және double бөлшек мәндерді көрсету үшін қолданылады. Айырмашылығы, флот санның бөлшек бөлігінде жоғары дәлдікті қажет етпеген кезде ыңғайлы.

    • Екі «.» Айырғыштан кейін барлық таңбаларды көрсетеді, ал қалқымалы - тек бірінші.

    • Жол - бұл жолдарды көрсету үшін ең жиі қолданылатын қарабайыр тип.


    написать администратору сайта