Пацей 4 сем / Лекции / СТПI_1_введение
.pdfспециальные нечисловые значения (для плав. точки)
► Inf (Infinity — бесконечность) + -
POSITIVE_INFINITY NEGATIVE_INFINITY
if (Double.isNaN(z)) ;
►NaN (Not a Number — не число);
►Ind (Indeterminate — неопределенность).
double qqq= 1.0/0.0; //Infinity double aaa= 0.0/0.0; //NaN double somen = log(-345); //NaN
floatas=Float.intBitsToFloat(0x7F800000); //Infinity as = Float.intBitsToFloat(0xFF800000);//-Infinity
Название значения |
s (знак) |
p (порядок) |
m (мантисса) |
–NaN (отрицательное не число) |
1 |
11..11 |
11..11 |
|
|
|
10..01 |
Indeterminate (неопределенность) 1 |
11..11 |
10..00 |
|
Signaling –NaN |
1 |
11..11 |
01..11 |
–Infinity |
1 |
11..11 |
00..00 |
Приоритет
►Операции одного приоритета вычисляются слева направо. Исключение: операции присваивания вычисляются справа налево: x = y = z вычисляется как x = (y = z).
►Левый операнд вычисляется раньше правого.
►Операнды полностью вычисляются перед выполнением операции.
►Перед выполнением составной операции присваивания значение левой части
сохраняется для использования в правой части.
int z = 3, xb = 5;
int rez= xb + (xb = 3); // 8; int rez2= (xb = 3) + xb; //6. int rez3= xb += (xb = 3);//6
z += z += xb += 7; //19
Строки
значение не может быть изменено после создания |
|
|
Конкатенация строки с объектом |
||
объекта при помощи какого-либо метода класса, так как |
||
|
любое изменение строки приводит к созданию нового
объекта
String name = "Это строка\nс переносом"; String soname = name+"2016";
System.out.println("\u0439\u04ae\u0541\u0441\u04328\u0438"); //йҮ св8и
1)Строки – неизменяемы – для совместного доступа
2)Изменять содержимое строковой переменной – можно ( ссылка)
3)Неэффективно - редактирование
StringBuffer betterStraing = new StringBuffer("dqwdnkad"); StringBuilder
Проверка строк на равенство
String forEqual ="Hello"; String forA ="Hello";
System.out.println("Hello".equals("Ytllo")); //false System.out.println( "Hello".equals(forEqual));//true System.out.println(forEqual.compareTo("Hello")); //0 - st if( forEqual==forA);
Пустыеи нулевые строки
String nullStr = null; String nullenStr = "";
if (nullenStr.length() == 0); if(nullStr == null);
быстрее
►Сравнение строк |
|
|
Оператор == сравнивает ссылки. |
||
|
||
|
Метод equals сравнивает значени |
String twoStr = null;
if (twoStr.equals("Java")); //java.lang.NullPointerExce
if ("".equals("Java")); //false
if ("Java"=="Java"); //true
if (twoStr=="Java"); //false
if (new String("Java")==new String("Java"));//false
Массивы
Массивы в языке Java являются
динамическими
Объявление
double[] arra, массив; //ссылка на массив int i = 0, ar[], k = -1;
Определение
arra = new double[5]; //0 – иниц.
массив= new double[100];//индекс с 0 ar = new int[50];
Инициализация
arra[0] = 0.01; arra[1] = -3.4; arra[2] = 2.89; arra[3] = 4.5; arra[4] = -6.7;
for (int ii = 0; ii < 100; ii++) массив[ii] = 1.0 / i; for (int ii = 0; ii < 50; ii++) ar[ii] = 2 * i + 1;
double[] aq = {0.01, -3.4, 2.89, 4.5, -6.7}; double []aw;
aw=new double[] {0.1, 0.2, -0.3, 0.45, -0.02};
Безымянный массив
System.out.println(new char[] {'P', 'O', 'I', 'T', '2'});
Ссылки можно присваивать
aw = aq; aw=null;
Сравнения (по ссылкам)
double[] aq = {0.01, 0.2, -0.3, 4.5, -6.7}; double []aw;
aw =new double[] {0.1, 0.2, -0.3, 4.5, -6.7};
boolean comRez = aq==aw; //false
aw = aq;
comRez = aw==aw; //true
Размер int arrSize =aw.length;