Пятница, 26.04.2024, 17:33
Приветствую Вас Гость | RSS

Программирование на ЯВУ

Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Лекция 3.

Кодировка

Технология Java, как платформа, изначально спроектированная для Глобальной сети Internet, должна быть многоязыковой, а значит, обычный набор символов @7;…{2h& h& }z(t˜kk[(ÁAg؈ÏPk{_4þ}€: ] ‹ <] k{_4‹ þ}€: 76`@79Y<q>WA.¦ %pyDxyZô  ó æ † : f  E TxbôyDyZE óæ†: f  UFA`„:gB`dw:C8N>/(âÇhhV;š#2~º º~ 84® †¥8hi|-Ü… @ *haiaÜa@ a|-…7 ``98` 5`(’gMcc6- g$lla `Ó·ë\ÊPl»P •: - <l»P-  •: 2TXJQŒ(… ootN ÍE~˜x~x˜620( UffG‡ªp~0x’ã2¾ ¾ $x’ã¾ 2¾ ƒaUƒ^l­HO¤@k•|º7" ‰ 8 0k•|º8 7" ‰ (KOkGIFN4w_ ((Î 0a¼ºX fÿËú fÿú Ëqd‰E@ 7qó óaqZ` (| wwo(dziiN-»M$}}a ` N3éHwbEè* * A'éHø…º8xxy­Š¢Kg U { y  ž É % ( Zxyž ­Š¢K( gU{y  É % Zj†SxGJGBDd>EBfHl] hŒ € Ç haŒ Ç €  `3>+‡óØ ~0qrsë³_ $qrs_ ë³4>N;65kKéI¬9ªb gÉ$  É g$ aÄYX |"ÍZ|"ÍZ…‰Lƒ(ˆuu-X§)O~==~:@\@\ö{-íÀGHIÛ‘vw ø   Y*`Œ. ; œ ê  b ¥ YwGHIÛ‘vø*`Œ. ; œ ê  b ¥ ‘20+-3#1!#21$]u’«3”($03T.5%*‡§Î~0|·+Ñ ¯ ‚ $|·+‚ Ñ ¯ {pO}H”A’F8xdS5œ½i © ü  Œ * * \ t ZSa* * d5œ½i © ü   Œ \ t ZN` ««kãxUAÔkf]‡„‚(ä]Ojj"an»X {{ìà {{à ì10 )N#¹E|-|-XO•(òòtt@tÈpk(x“6 à … x“… 6 à H`Y|S(sIgg_šÁ6‘8c G±™{  *c G™±{  #D‡DQPN.²ºç©@ Æ A M z 0 z Æ A M -/$$.-5>*9f7Õ] xy{Û{xyÛB9<c'(PžiiL({H||FðÜú`jl“œÞ,o 4 î ð , Hœaî ajl“4 Þ,oð , F,$1`'F)$6`36šð‘8ghi¶t_¿*ghi¿¶t_#%324-(©tnn4Ù }ÐHq5!t. _  + ’ 6t+ . q’ 5!_  F>:'~›¾%C*-'?r0NÓEgû,g,û=5<(±o(ff®k—>b ezòi eazaòi ``23šä‘8g;ms»? B *g;mB ? s»#,#8,178(f_oo@Fpk§ìÝÜ$Ò¬  Ç ä ä . Tk§ìÝÜ$Ò. ¬Ç ä ä FC“|WenY;Ãoem¥æaX ÝXghi^œ+>À… D [ Bghi^œ[ +>À… D 7-9:))&"-.-.(™mm'‡ܧ~0yÇ— u – $yÇ– — u P`>ig(… oov(&Cjjƒpë)g hi»[ hi[ »#?@@A1,-($ff'‡kéVŽI~0|½Ë–  ' $|½Ë' –  ®;&2o o qj(lø ccE(å]O}}6a¢`X k|" 8 k|8 " KkF4‡Zã~0fX&/ˆ¦ $fX&¦ /ˆÍdSgtŒ(zöJcc:;ÒÚ22zü zü 14ÀâηHghiRVd¿ k 6ghiRk Vd¿ -)76¾))0?*@— 7p\ pa\`2(û¢vv8(P {{KtäÎk(xyz{qxy{zq %%50³“æ50Óª8iùƒ1u” ê *iaƒauaê a”aù1< `è` 0(hMff[(æ]Ojj";øà2l« l« haNùiErµjrjµG¨nŸA–8qrs}À¸[ *sqrÀ}¸[ (€…bq~fyFavX hè_# hè# _rpgktWë,üéºk(y2í© ! y2! í© SjJi* p i* p ]g//(“/ ssP-ò>$mma `{Kæ@<Ӂrˆgi.>@u M ` k w“»? r s ê ( f>r @Ms gi.( u`kw“»? ê x0Z9!Ug%+7&.;03+(u ff·(c·ww.;1æ2eÉ  eÉ  ''t¶™k(~÷ ÷ ~XXa[Pt)ìk(|€Ê |€ ÊWÌVdy·Ûy®°pßÍQÚšŸ | U † ° ¶ ®åæ, b « Ÿ „pßÍQÚšŸ|UŸ †°¶ ®åæ, b « n-$+$(#%;10?@)1,/,,#3*)-oU$ss fzŸmë–8{€¼ë V S *S {€V ¼ë (Ysdo@^]_NåEdþ 9 d9 þ -8.ùËæD|è·ð`nŠxíäà3 [ š É é HnŠxíäà 3 [ š É é <DL@;ÿ2r± r± ‰J(LC}}I2R)ttb` N>E~¤ ¤ ~W\•šOr‘8l™R÷øúû*l™Rû÷øú#,5%)&05(%oo>;¥Â2~ ~ AWauzX |‡ú „ |‡„ ú 5-0Nº'EjŽùjùŽaW…NҙEg|ý gý |1F/(‡×||7(»›jj€(øyrrG(w½Hww*NÐIE|-Š |Š -1.4;Ï2tg  tg  ?VNóºEgn. g. nIft;%2j j 8)SXðJeÙfÙefJ]oHY‹„(dGQ ô  daGa aQ aô a2``` ` `(èXoo.Eoò<h… ha…a ``XÛÀOˆj¨y¨„‰jŽ ó ^ l p  \ å  fj¨y¨„‰j Žó^ l p  \ å U/9:@(;-)/79.+)"5;G2wu wu MšaåOX i-W i- Wl~Fƒ® z(h„Œ ™ Ç „a™ hÇ Œ (D`%DZr1( æhhˆØ7ÏPqèµ… Q ©  2 | <qèµ… | Q ©  2 7k‘asR[I¯‘RB;²= 2eÆ eÆ 7oN¦žEz+= z= +*6(f¶l] hŒ € Ç haŒ Ç €  `3>+æÙIÝX}–u°.Œk  < B}–u<  °.Œk7MHO`FCYKDVPN=›Eq…ÌqÌ…wkZ;ž*2pú pú =@(Ç59(çñ}}qŒI‰ƒ0uJJ;± Q $JauJQ ;± #+`m0Qc(ç]Oxx1k{Þb qt X tbqX  x` Bf;ªW12j®  j®  '0(+8{{I2‹)b` Aš…Ê‘8xyz{ À *xyzÀ { #"! %;f)2~Û ~Û 9,(œA{{X(}+ ~~D$èö  |pnÌd¸ô,QU Ù ë Z ˜ z  T¸nÌdô,Q UÙëZ ˜ z K65&*Q&=J7Y]MÖTqrsqasara` ` `(vv4s_ a·ˆX h3o` h3` o>E-=;è]O2}µ }µ %3š}£‘8pJ :U $  *pJ  :U $ #(.//.09(_hh‡­“ë? É0¤@{…™ŽFs á  0{…™Ž Fs á (+2+;KÏ2{ä  {ä  Oh(~£vv;(£÷F{{,aëvX nð] a nða ] E><EbaìY|Ä“Ä|“#06%K`x?;Ùh2{Ù {Ù *"(:Z)½½:;•G2w´ w´ sR(åÙhhS-Ú$dda `aHUX ¶7•¶•7UMSl(ÑÂ{{CN•¶Eh < h<  `YpN3ëI8w !Enø% n% (Mff[(f¬jjH(§èhhWt/ìk(qÎ)­’qÎ’)­:*1>+;îc2t° t° B4­. ¤@|-L‡¥éú ‚ 0|-L‡‚ ¥éú (4;?,C:>(NÂii`Ó·ëL<j ÊPl”=ó2 ´ Û Õ 3 <l”=ó3 2 ´ Û Õ 2<7B&$-n€$rr ]gt ¶k(hk < ö hkö  < `AYpg(é]Off@(‚ff9tËk(kz6 ¿ Y kzY 6 ¿ eXLgqNøUEx9 x 9`KK(E||~( žC­©c¤@må456¨©ª0må45ª6¨©(11$)*:8;uÅ l}›ß“àQYsØ & ¶ Ò È ~ ¡ å ÿ ‚ l& È }›ß“àQY‚ sض Ò ~ ¡ å ÿ d:A…ob<NuRZn:¾-V-fwcZ(i‚ttB®†¥8hi|-Ü… @ *haiaÜa@ a|-…7 ``98` 5`NwäEo.ÐoÐ.sŸC(M”ee8(8MCcct(ý_4ssTt`®k(s¨ â % s¨%  â 9BK53(ÀÈ5%NÓ®E|2O|O2`fFš‘8jž½ Z ‡ u *jž½u  Z ‡ #I\=\b;¤2jg jg XM;á2l« l« ha;®œ2}û }û ]‰(Ï qqfõr] gRkSSgRk/¼/:U­Ú¤@yz A    Ì 0yz A Ì    (30%4/(,,t*÷k(hÐdK R hÐR dK X+u8E;µ·2|¥ |¥ 7~(ìJ||Ø-ç}$a ` ( xxH;ɼ2k½ k½ EG;¯‹2jX jX !A­™¤@~Iêr¹Vº 0~Iêr ¹Vº(Vfs^“qX(?vv.(Íê ffd;«¢B2qX qX 7.t.ìk(qÎ)­’qÎ’)­:*1>+(zÒqq¢kՀ b a- - a82Dk„3;?P2iÖ iÖ NgŒ ߃0w(h£Ö þ $(whþ £Ö #,1-708N vEf9ªfª9„¦ŒÓsÊPxú¯Ù> ƒ ß <xú¯ß Ù> ƒ 2,'Q0//3+"9­ ­¤@u‹¹úŽ¨å 0u‹¹ú Ž¨å(%Œ7“W@,d(Å·Knn9((ÈhhVùÄð`·J¢Ï7‘ ° Ä ø Å À H·J¢Ï7À ‘ ° Ä ø Å <Bthc_U*ÅVaf:Ÿ ë–8{€¼ë V S *S {€V ¼ë (Ysdo@^]_(әmm&(«*dd$(yo||d;Z’2}­ }­ 3<‡kèÜôdt~0{w ä   ${w  ä  C ïçq¼_JhnÅÑG‚D0‹ , å  ó Nó nÅÑG‚D0‹ , å  AoFDcQ˜8I(´ccX;•y2o–  o–  ^X;!A2|3 |3 drÏî?Ƹo©Â"(c¤§ ¿ [  à Ȑ ö  Å Ö ' O V  ŠÅ ao©Â"(c¤§¿ö [ÃȐ  Ö ' O V  xz9Hq6se0cDI]_PC0.` i2KVs;÷l2mN mN !&(ˆöJcc:(¬» dd/;ê2}V }V =Ra©X yÜ/ F yÜF / .=Ó·ë_Lˆ ÊPl”=ó2 ´ Û Õ 3 <l”=ó3 2 ´ Û Õ 2<7B&$NÃæEf6cfc6WBm  I —0}—¾ ¿ ç è $¿ c¾ b}è ç —74` H`Ud/.(=}}YEe¢<so  sbo `o.N$FEf Ñ fÑ  {C]tû6k(c—®Ã c— ®Ã4,4=@-M($}}a ` E <|i  i |Wc¶(ã·Knn5NµMEg˜xgx˜Rmk¥ßÓœ0ghiÿ 9 $gahaia9aÿaa<``` ``` t указывает на класс String (java.lang – название библиотеки, в которой находится этот класс), вторая – на поле PI класса Math (символ # разделяет название класса и его полей или методов), третья ссылается на официальный сайт Java.

Комментарии разработчика могут быть записаны перед объявлением классов, интерфейсов, полей, методов и конструкторов. Если записать комментарий /** … */ в другой части кода, то ошибки не будет, но он не попадет в документацию, генерируемую javadoc. Кроме того, можно описать пакет (так называются библиотеки, или модули, в Java). Для этого необходимо создать специальный файл package.html, сохранить в нем комментарий и поместить его в каталог пакета. HTML-текст, содержащийся между тегами <body> и </body>, будет помещен в документацию, а первое предложение будет использоваться для краткой характеристики этого пакета.

Лексемы

Итак, мы рассмотрели пробелы (в широком смысле этого слова, т.е. все символы, отвечающие за форматирование текста программы) и комментарии, применяемые для ввода пояснений к коду. С точки зрения программиста они применяются для того, чтобы сделать программу более читаемой и понятной для дальнейшего развития.

С точки зрения компилятора, а точнее его части, отвечающей за лексический разбор, основная роль пробелов и комментариев – служить разделителями между лексемами, причем сами разделители далее отбрасываются и на компилированный код не влияют. Например, все следующие примеры объявления переменной эквивалентны:

// Используем пробел в качестве разделителя.
int x = 3 ;

// здесь разделителем является перевод строки
int
x
=
3
;

// здесь разделяем знаком табуляции
int x = 3 ;

/* 
 * Единственный принципиально необходимый
 * разделитель между названием типа данных
 * int и именем переменной x здесь описан
 * комментарием блочного типа.
 */
int/**/x=3;

Конечно, лексемы очень разнообразны, и именно они определяют многие свойства языка. Рассмотрим все их виды более подробно.

Виды лексем

Ниже перечислены все виды лексем в Java:

  • идентификаторы (identifiers);
  • ключевые слова (key words);
  • литералы (literals);
  • разделители (separators);
  • операторы (operators).

Рассмотрим их по отдельности.

Идентификаторы

Идентификаторы – это имена, которые даются различным элементам языка для упрощения доступа к ним. Имена имеют пакеты, классы, интерфейсы, поля, методы, аргументы и локальные переменные (все эти понятия подробно рассматриваются в следующих лекциях). Идентификаторы можно записывать символами Unicode, то есть на любом удобном языке. Длина имени не ограничена.

Идентификатор состоит из букв и цифр. Имя не может начинаться с цифры. Java-буквы, используемые в идентификаторах, включают в себя ASCII-символы A-Z (\u0041-\u005a), a-z (\u0061-\u007a), а также знаки подчеркивания _ (ASCII underscore, \u005f) и доллара $ (\u0024). Знак доллара используется только при автоматической генерации кода (чтобы исключить случайное совпадение имен), либо при использовании каких-либо старых библиотек, в которых допускались имена с этим символом. Java-цифры включают в себя обычные ASCII-цифры 0-9 (\u0030-\u0039).

Для идентификаторов не допускаются совпадения с зарезервированными словами (это ключевые слова, булевские литералы true и false и null-литерал null). Конечно, если 2 идентификатора включают в себя разные буквы, которые одинаково выглядят (например, латинская и русская буквы A), то они считаются различными.

В этой лекции уже применялись следующие идентификаторы:

Character, a, b, c, D, x1, x2, Math, sqrt, x,
y, i, s, PI, getRadius, circle, getAbs, 
calculate, condition, getWidth, getHeight,
java, lang, String

Также допустимыми являются идентификаторы:

Computer, COLOR_RED, _, aVeryLongNameOfTheMethod

Ключевые слова

Ключевые слова – это зарезервированные слова, состоящие из ASCII-символов и выполняющие различные задачи языка. Вот их полный список (48 слов):

abstract double int strictfp
boolean else interface super
break extends long switch
byte final native synchronized
case finally new this
catch float package throw
char for private throws
class goto protected transient
const if public try
continue implements return void
default import short volatile
do instanceof static while

Ключевые слова goto и const зарезервированы, но не используются. Это сделано для того, чтобы компилятор мог правильно отреагировать на их использование в других языках. Напротив, оба булевских литерала true, false и null-литерал null часто считают ключевыми словами (возможно, потому, что многие средства разработки подсвечивают их таким же образом), однако это именно литералы.

Значение всех ключевых слов будет рассматриваться в следующих лекциях.

Литералы

Литералы позволяют задать в программе значения для числовых, символьных и строковых выражений, а также null-литералов. Всего в Java определено 6 видов литералов:

  • целочисленный (integer);
  • дробный (floating-point);
  • булевский (boolean);
  • символьный (character);
  • строковый (string);
  • null-литерал (null-literal).

Рассмотрим их по отдельности.

Целочисленные литералы

Целочисленные литералы позволяют задавать целочисленные значения в десятеричном, восьмеричном и шестнадцатеричном виде. Десятеричный формат традиционен и ничем не отличается от правил, принятых в других языках. Значения в восьмеричном виде начинаются с нуля, и, конечно, использование цифр 8 и 9 запрещено. Запись шестнадцатеричных чисел начинается с 0x или 0X (цифра 0 и латинская ASCII-буква X в произвольном регистре). Таким образом, ноль можно записать тремя различными способами:

0
00
0x0

Как обычно, для записи цифр 10-15 в шестнадцатеричном формате используются буквы A, B, C, D, E, F, прописные или строчные. Примеры таких литералов:

0xaBcDeF, 0xCafe, 0xDEC

Типы данных рассматриваются ниже, однако здесь необходимо упомянуть два целочисленных типа int и long длиной 4 и 8 байт, соответственно (или 32 и 64 бита, соответственно). Оба эти типа знаковые, т.е. тип int хранит значения от -231 до 231-1, или от -2.147.483.648 до 2.147.483.647. По умолчанию целочисленный литерал имеет тип int, а значит, в программе допустимо использовать литералы только от 0 до 2147483648, иначе возникнет ошибка компиляции. При этом литерал 2147483648 можно использовать только как аргумент унарного оператора - :

int x = -2147483648; \\ верно
int y = 5-2147483648; \\ здесь возникнет 
 \\ ошибка компиляции

Соответственно, допустимые литералы в восьмеричной записи должны быть от 00 до 017777777777 (=231-1), с унарным оператором - допустимо также -020000000000 (= -231). Аналогично для шестнадцатеричного формата – от 0x0 до 0x7fffffff (=231-1), а также -0x80000000 (= -231).

Тип long имеет длину 64 бита, а значит, позволяет хранить значения от -263 до 263-1. Чтобы ввести такой литерал, необходимо в конце поставить латинскую букву L или l, тогда все значение будет трактоваться как long. Аналогично можно выписать максимальные допустимые значения для них:

9223372036854775807L
0777777777777777777777L 
0x7fffffffffffffffL
// наибольшие отрицательные значения:
-9223372036854775808L
-01000000000000000000000L
-0x8000000000000000L

Другие примеры целочисленных литералов типа long:

0L, 123l, 0xC0B0L
Дробные литералы

Дробные литералы представляют собой числа с плавающей десятичной точкой. Правила записи таких чисел такие же, как и в большинстве современных языков программирования.

Примеры:

3.14
2.
.5
7e10
3.1E-20

Таким образом, дробный литерал состоит из следующих составных частей:

  • целая часть;
  • десятичная точка (используется ASCII-символ точка);
  • дробная часть;
  • порядок (состоит из латинской ASCII-буквы E в произвольном регистре и целого числа с опциональным знаком + или -);
  • окончание-указатель типа.

Целая и дробная части записываются десятичными цифрами, а указатель типа (аналог указателя L или l для целочисленных литералов типа long) имеет два возможных значения – латинская ASCII-буква D (для типа double) или F (для типа float) в произвольном регистре. Они будут подробно рассмотрены ниже.

Необходимыми частями являются:

  • хотя бы одна цифра в целой или дробной части;
  • десятичная точка или показатель степени, или указатель типа.

Все остальные части необязательные. Таким образом, "минимальные" дробные литералы могут быть записаны, например, так:

1.
.1
1e1
1f

В Java есть два дробных типа, упомянутые выше, – float и double. Их длина – 4 и 8 байт или 32 и 64 бита, соответственно. Дробный литерал имеет тип float, если он заканчивается на латинскую букву F в произвольном регистре. В противном случае он рассматривается как значение типа double и может включать в себя окончание D или d, как признак типа double (используется только для наглядности).

// float-литералы:
1f, 3.14F, 0f, 1e+5F
// double-литералы:
0., 3.14d, 1e-4, 31.34E45D

В Java дробные числа 32-битного типа float и 64-битного типа double хранятся в памяти в бинарном виде в формате, стандартизированном спецификацией IEEE 754 (полное название – IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985 (IEEE, New York)). В этой спецификации описаны не только конечные дробные величины, но и еще несколько особых значений, а именно:

  • положительная и отрицательная бесконечности (positive/negative infinity);
  • значение "не число", Not-a-Number, сокращенно NaN;
  • положительный и отрицательный нули.

Для этих значений нет специальных обозначений. Чтобы получить такие величины, необходимо либо произвести арифметическую операцию (например, результатом деления ноль на ноль 0.0/0.0 является NaN), либо обратиться к константам в классах Float и Double, а именно POSITIVE_INFINITY, NEGATIVE_INFINITY и NaN. Более подробно работа с этими особенными значениями рассматривается в следующей лекции.

Типы данных накладывают ограничения на возможные значения литералов, как и для целочисленных типов. Максимальное положительное конечное значение дробного литерала:

  • для float: 3.40282347e+38f
  • для double: 1.79769313486231570e+308

Кроме того, для дробных величин становится важным еще одно предельное значение – минимальное положительное ненулевое значение:

  • для float: 1.40239846e-45f
  • для double: 4.94065645841246544e-324

Попытка указать литерал со слишком большим абсолютным значением (например, 1e40F) приведет к ошибке компиляции. Такая величина должна представляться бесконечностью. Аналогично, указание литерала со слишком малым ненулевым значением (например, 1e-350) также приводит к ошибке. Это значение должно быть округлено до нуля. Однако если округление приводит не к нулю, то компилятор произведет его сам:

// ошибка, выражение должно быть округлено до 0
0.00000000000000000000000000000000000000000001f
// ошибки нет, компилятор сам округляет до 1
1.00000000000000000000000000000000000000000001f

Стандартных возможностей вводить дробные значения не в десятичной системе в Java нет, однако классы Float и Double предоставляют много вспомогательных методов, в том числе и для такой задачи.

Логические литералы

Логические литералы имеют два возможных значения – true и false. Эти два зарезервированных слова не являются ключевыми, но также не могут использоваться в качестве идентификатора.

Символьные литералы

Символьные литералы описывают один символ из набора Unicode, заключенный в одиночные кавычки, или апострофы (ASCII-символ single quote, \u0027). Например:

'a' // латинская буква а
' ' // пробел
'K' // греческая буква каппа

Также допускается специальная запись для описания символа через его код (см. тему "Кодировка"). Примеры:

'\u0041' // латинская буква A
'\u0410' // русская буква А
'\u0391' // греческая буква A

Символьный литерал должен содержать строго один символ, или специальную последовательность, начинающуюся с \. Для записи специальных символов (неотображаемых и служебных, таких как ", ', \) используются следующие обозначения:

\b \u0008 backspace BS – забой
\t \u0009 horizontal tab HT – табуляция
\n \u000a linefeed LF – конец строки
\f \u000c form feed FF – конец страницы
\r \u000d carriage return CR – 
 возврат каретки
\" \u0022 double quote " – двойная кавычка
\' \u0027 single quote ' – одинарная кавычка
\\ \u005c backslash \ – обратная косая черта
\шестнадцатеричный код от \u0000 до \u00ff символа 
 в шестнадцатеричном формате. 

Первая колонка описывает стандартные обозначения специальных символов, используемые в Java-программах. Вторая колонка представляет их в стандартном виде Unicode-символов. Третья колонка содержит английские и русские описания. Использование \ в комбинации с другими символами приведет к ошибке компиляции.

Поддержка ввода символов через восьмеричный код обеспечивается для совместимости с С. Например:

'\101' // Эквивалентно '\u0041'

Однако таким образом можно задать лишь символы от \u0000 до \u00ff (т.е. с кодом от 0 до 255), поэтому Unicode-последовательности предпочтительней.

Поскольку обработка Unicode-последовательностей (\uhhhh) производится раньше лексического анализа, то следующий пример является ошибкой:

'\u000a' // символ конца строки

Компилятор сначала преобразует \u000a в символ конца строки и кавычки окажутся на разных строках кода, что является ошибкой. Необходимо использовать специальную последовательность:

'\n' // правильное обозначение конца строки

Аналогично и для символа \u000d (возврат каретки) необходимо использовать обозначение \r.

Специальные символы можно использовать в составе как символьных, так и строковых литералов.

Строковые литералы

Строковые литералы состоят из набора символов и записываются в двойных кавычках. Длина может быть нулевой или сколь угодно большой. Любой символ может быть представлен специальной последовательностью, начинающейся с \ (см. "Символьные литералы").

"" // литерал нулевой длины
"\"" //литерал, состоящий из одного символа "
"Простой текст" //литерал длины 13

Строковый литерал нельзя разбивать на несколько строк в коде программы. Если требуется текстовое значение, состоящее из нескольких строк, то необходимо воспользоваться специальными символами \n и/или \r. Если же текст просто слишком длинный, чтобы уместиться на одной строке кода, можно использовать оператор конкатенации строк +. Примеры строковых литералов:

// выражение-константа, составленное из двух 
// литералов
"Длинный текст " + 
"с переносом"
/*
 * Строковый литерал, содержащий текст 
 * из двух строк:
 * Hello, world!
 * Hello!
 */
"Hello, world!\r\nHello!"

На строковые литералы распространяются те же правила, что и на символьные в отношении использования символов новой строки \u000a и \u000d.

Каждый строковый литерал является экземпляром класса String. Это определяет некоторые необычные свойства строковых литералов, которые будут рассмотрены в следующей лекции.

Null-литерал

Null-литерал может принимать всего одно значение: null. Это литерал ссылочного типа, причем эта ссылка никуда не ссылается, объект отсутствует. Разумеется, его можно применять к ссылкам любого объектного типа данных. Типы данных подробно рассматриваются в следующей лекции.

Поиск

Яндекс.Метрика