Рассмотрим вопросы об основах программирования на Java.
К списку вопросов
Вопросы
- Сколько ключевых слов зарезервировано языком, что это за слова, какие из них не используются?
- Из каких символов может состоять имя переменной (корректный идентификатор)?
- Что значит слово “инициализация”?
- На какие основные группы можно поделить типы данных?
- Какие примитивные типы вы знаете?
- Что вы знаете о преобразовании примитивных типов данных, есть ли потеря данных, можно ли преобразовать логический тип?
- Какими значениями инициализируются переменные по умолчанию?
- Как передается значение переменной (по ссылке/значению)?
- Что вы знаете о функции main, какие обязательные условия ее определения?
- Какие логические операции и операторы вы знаете?
- В чем разница краткой и полной схемы записи логических операторов?
- Что такое таблица истинности?
- Что такое тернарный оператор выбора?
- Какие унарные и бинарные арифметические операции вы знаете?
- Какие побитовые операции вы знаете?
- Какова роль и правила написания оператора выбора (switch)?
- Какие циклы вы знаете, в чем их отличия?
- Что такое “итерация цикла”?
- Какие параметры имеет цикл for, можно ли их не задать?
- Какой оператор используется для немедленной остановки цикла?
- Какой оператор используется для перехода к следующей итерации цикла?
- Что такое массив?
- Какие виды массивов вы знаете?
- Что вы знаете о классах оболочках?
- Что такое автоупаковка (boxing/unboxing)?
Ответы
1. Сколько ключевых слов зарезервировано языком, что это за слова, какие из них не используются?
50, два из них не используются: const, goto;
4 минуты и ты знаешь как устроен компьютер
Для запоминания это:
* not used; **added in 1.2, *** added in 1.4, **** added in 5.0.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
2. Из каких символов может состоять имя переменной (корректный идентификатор)?
Имя или идентификатор переменной — это последовательность из строчных и заглавных латинских букв, цифр, а также символов «$» и «_». Имя переменной может начинаться с любого из перечисленных символов, кроме цифры.
Технически возможно начать имя переменной также с «$» или «_», однако это запрещено соглашением по оформлению кода в Java (Java Code Conventions). Кроме того, символ доллара «$», по соглашению, никогда не используется вообще. В соответствии с соглашением имя переменной должно начинаться именно с маленькой буквы (с заглавной буквы начинаются имена классов). Пробелы при именовании переменных не допускаются.
3. Что значит слово “инициализация”?
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию. С точки зрения Java — выделение памяти под объект, например при создании MyClass myClass = new MyClass(). Таким образом будет выделена память под объект myClass (он будет инициализирован).
ИНФОРМАТИКА 8 класс: Общая структура программы в языке Паскаль
Без инициализации (new MyClass()) запись MyClass myClass; просто резервирует имя (объявляется переменная myClass типа MyClass).
4. На какие основные группы можно поделить типы данных?
5. Какие примитивные типы вы знаете?
Примитивные
- byte (целые числа, 1 байт, [-128, 127])
- short (целые числа, 2 байта, [-32768, 32767])
- int (целые числа, 4 байта, [-2147483648, 2147483647])
- long (целые числа, 8 байт, [-9223372036854775808,9223372036854775807])
- float (вещественные числа, 4 байта)
- double (вещественные числа, 8 байт)
- char (символ Unicode, 2 байта, [0, 65536])
- boolean (значение истина/ложь, используется int, зависит от JVM)
Ссылочные. В ссылочные типы входят все классы, интерфейсы, массивы.
http://stackoverflow.com/questions/383551/what-is-the-size-of-a-boolean-variable-in-java
boolean type: http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.3.4
boolean — боремся за Java память… https://habrahabr.ru/post/76481/
6. Что вы знаете о преобразовании примитивных типов данных, есть ли потеря данных, можно ли преобразовать логический тип?
Преобразование может быть неявным и явным (приведение типов). Неявное преобразование может выполняться если:
- типы совместимы (например — оба целочисленные)
- размер «принимающего» типа больше чем у того, который преобразуется (так называемое «преобразование с расширением»)
int a = 123454 ;
double b = a ; //неявное преобразование — преобразование с расширением
Явное преобразование имеет вид переменная _ нового _ типа = ( новый _ тип ) имя переменной ;
byte b = ( byte ) a ; //b будет остатком от деления a на диапазон byte, может быть потеря данных
public static void typeConverterExample ( ) <
long a = 100L ;
double b = 300.0 ;
Object ab = a + b ;
System . out . println ( ab . getClass ( ) . getName ( ) + » value: » + ab ) ; //java.lang.Double value: 400.0
double c = 1000.05 ;
long d = 1000 ;
Object cd = c + d ;
System . out . println ( cd . getClass ( ) . getName ( ) + » value: » + cd ) ; //java.lang.Double value: 2000.05
public static void typeNarrowing ( ) <
int a0 = 64 ;
int a = 257 ;
int a2 = 126 ;
int a3 = 129 ;
byte b0 = ( byte ) a0 ;
byte b = ( byte ) a ;
byte b2 = ( byte ) a2 ;
byte b3 = ( byte ) a3 ;
System . out . println ( b0 + » » + b + » » + b2 + » » + b3 ) ; //64 1 126 -127
double c = 56.9876 ;
int d = ( int ) c ;
System . out . println ( d ) ; //56
long e = 1000L ;
float f = ( float ) e ;
System . out . println ( f ) ; //1000.0
При повышении типа byte>short; short>int; int>long; float>double; char>int информация не потеряется. При сужении возможна потеря информации (см. пример выше byte = (byte) int).
При различных операциях может происходить повышение типов в порядке «усиления» к более информативному типу. Например складывая int и double получим тип double. Но есть и особенность, например сложив double (4 байта) и long (8 байт) Java оставит знаки после запятой (float), а не более «длинный» тип. Аналогичный пример с вещественной частью:
long a = 100L ;
double b = a ;
Object ab = a + b ;
System . out . println ( ab . getClass ( ) . getName ( ) + » value: » + ab ) ; //java.lang.Double value: 200.0
float c = 100 ;
long d = 1000 ;
Object cd = c — d ;
System . out . println ( cd . getClass ( ) . getName ( ) + » value: » + cd ) ; //java.lang.Float value: -900.0
Кратко можно записать такие правила:
- byte, short, char в выражениях всегда повышаются до int
- если в выражении участвует тип long — то именно к этому типу будет приведён результат
- если в выражении участвует float — то результат приводится к float
- если один из операндов имеет тип double — то к этому типу будет приведён весь результат
- При выборе между длиной и возможностью сохранить дробную часть — будет выбрана дробная часть
7. Какими значениями инициализируются переменные по умолчанию?
Числа инициализируются 0 или 0.0 . Объекты (в том числе String) — null , char — u0000 ; boolean — false ;
Но это еще не физический объект, а только указатель на тип Dog. Теперь создадим (инициализируем) этот объект.
Dog myDog = new Dog ( «Rover» ) ;
foo ( myDog ) ;
public void foo ( Dog someDog ) <
someDog . setName ( «Max» ) ; // AAA
someDog = new Dog ( «Fifi» ) ; // BBB
someDog . setName ( «Rowlf» ) ; // CCC
Теперь другая засада — примитивы и строки.
- Когда передается примитив в метод, то передается также его копия (копия значения).
int y = changeX ( x )
private int changeX ( int value ) <
value = value * 5 ;
return value ;
Создали примитив x = 5 . Передали в метод копию значения (т.е. 5 ). В методе умножили на число и вернули его. Значение примитива y будет равно 25 , а значение примитива x = 5 (т.е. не изменится). Всё дело в том, что мы передали значение (5), а не указатель на область памяти. Соответственно значение x и не должно было поменяться, т.к. мы его не меняли (в методе использовалась копия значения).
- Строки immutable, т.е. неизменяемые. Когда мы присваиваем строке новое значение, то всегда будет создан новый объект в памяти.
Еще один пример, что происходит при передаче параметра в метод:
class TestClass <
public ArrayList changeObjectValue ( ArrayList objectValue )
objectValue . clear ( ) ;
objectValue . add ( 999 ) ;
return objectValue ;
public String changeStr ( String str ) <
str = «NewString» ;
return str ;
public int changeX ( int x ) <
TestClass testClass = new TestClass ( ) ;
ArrayList value = new ArrayList ( ) ;
value . add ( 23 ) ;
String str = «FirstString» ;
System . out . println ( value + » » + str + » » + x ) ; //[23] FirstString 2
ArrayList value2 = new ArrayList ( ) ;
value2 = value ;
value2 = testClass . changeObjectValue ( value2 ) ;
String str2 = str ;
str2 = testClass . changeStr ( str2 ) ;
int x2 = testClass . changeX ( x ) ;
System . out . println ( value + » » + str + » » + x ) ; //[999] FirstString 2
System . out . println ( value2 + » » + str2 + » » + x2 ) ; //[999] NewString 10
System . out . println ( value . equals ( value2 ) + » » + str . equals ( str2 ) + » » + ( x2 == x ) ) ; //true false false
- Создаем ссылочный объект value и добавляем в него объект (Integer=23). Так же создаем строку str = «FirstString» и примитивное число x= 2 .
- Отдельно создаем объект value2 и выделяем под него память; Сейчас это выглядит что-то вроде value =, value2 =, т.е. видно, что это разные ссылки на объекты (разные области памяти).
- value2 =, value = после присвоения оба объекта ссылаются на одну область памяти. Теперь попытаемся изменить их с помощью методов в тестовом классе
- Объекты передаются по копии указателя на область памяти. Т.к. value и value2 указывают на один объект в памяти, то после изменения в методе changeObjectValue одного объекта, поменяется и второй.
- Строка (String) всегда создается новая. Хоть str2 = str и указывали на одну область вначале, но после изменения str2 на новое значение NewString , значение первой строки осталось прежним.
- Т.к. примитивные типы передаются по копии значения (в данном случае 2 ), то изменение в методе примитивного типа никак не отразилось на значении исходной переменной x (значение в области памяти для x осталось прежним) .
Если всё же остались вопросы, то гуглите по Java pass-by-value.
9. Что вы знаете о функции main, какие обязательные условия ее определения?
Обязательная запись public static void main ( String [ ] args ) < /*тело метода*/ >
Метод main() — точка входа в программу. Может быть несколько методов main. Входные параметры — только массив строк. Если этого метода не будет, то компиляция возможна, но при запуске будет Error: Main method not found.
10. Какие логические операции и операторы вы знаете?
11. В чем разница краткой и полной схемы записи логических операторов?
= | AND с присваиванием |
|= | OR с присваиванием |
^= | XOR с присваиванием |
== | Равно |
!= | Не равно |
?: | Тернарный (троичный) условный оператор |
Если оба операнда имеют значение true, тогда операторы и | всегда проверяют значение обоих операндов. и || носят название операторов короткой схемы, так как если результат булевого выражения может быть определён из левого операнда, правый операнд не вычисляется.
Примечание: || и могут быть использованы только в логических выражениях.
12. Что такое таблица истинности?
Таблица истинности — это таблица, описывающая логическую функцию.
~ | Побитовый унарный оператор NOT |
= | Побитовый AND с присваиванием |
| | Побитовый OR |
|= | Побитовый OR с присваиванием |
^ | Побитовый исключающее XOR |
^= | Побитовый исключающее XOR с присваиванием |
>> | Сдвиг вправо (деление на 2 в степени сдвига) |
>>= | Сдвиг вправо с присваиванием |
>>> | Сдвиг вправо с заполнением нулями |
Сдвиг влево (умножение на 2 в степени сдвига) | |
Сдвиг влево с присваиванием | |
>>>= | Сдвиг вправо с заполнением нулями с присваиванием |
Подробнее http://developer.alexanderklimov.ru/android/java/bitwise.php
16. Какова роль и правила написания оператора выбора (switch)?
Оператор switch сравнивает аргумент на равенство с предложенным значением.
Источник: javastudy.ru
Из чего может состоять имя программы
October 2021 1 82 Report
имя программы может состоять из английских букв,цифр,нижнего подчёркивания . Например, zadacha_1 .Имя программы не может начинаться с цифры . Выбери правильные имена
а) polnaja summa
б) zadacha
в) s24
г) Ж
д) a1b6qq
е)winter Comments
Ответ:
Подходящие имена это б), в), д), ж).
Объяснение:
Они состоят только из английских букв и цифр. И не начинаются на цифру.
Источник: scholar.tips
Имя программы может состоять из английских букв, цифр, нижнего подчёркивания . Например, zadacha_1 .Имя программы не может начинаться с цифры . Выбери правильные имена а) polnaja summa
б) zadacha
в) s24
г) Ж
д) a1b6qq
е)winter ! y) = x -> ! y -> импоикация y это 0 1 ! y это 1 0
Информатика, 23.04.2019 11:52
Используя метод нисходящего проектирования составить программу вычисления функции при заданных значениях аргументов.
Информатика, 05.05.2019 10:45
1. постройте в электронных таблицах двумерную модель «жизнь». проведите вычислительный эксперимент с разными вариантами первоначального расселения организмов. попробуйте найти такие первоначальные расселения, которые: обречены на гибель; не меняются со сменой поколений; ведут к периодической смене поколений; ведут к периодической смене повторяющихся конфигураций расселения.
Информатика, 13.05.2019 12:35
Подготовить презентацию на тему «форматы звука». позжалуйста!
Информатика, 13.05.2019 18:12
Проект по информатике : 1. введение ; 2.мой взгляд ; 3. интересные факты
Информатика, 15.05.2019 07:16
Решить эти от седьмого до одиннадцатого 7.исполнитель черепашка перемещается на экране компьютера, оставляя след в виде линии. в каждый конкретный момент известно положение исполнителя и направление его движения. у в прик. файле)
Информатика, 16.05.2019 18:48
Какое из этих устройсв является энергетическим центром копьютеоа
Информатика, 20.05.2019 00:34
Нужно написать программу на pascale
Информатика, 21.05.2019 12:49
Сделать административную работу по иныорматике, нужно сделать все.
Информатика, 21.05.2019 15:48
Объясните как решать,. в программе «: =» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. правила выполнения операций и порядок действий соответствует правилам арифметики. определите значение переменной a после выполнения алгоритма: a : = 30 b : = 2 a : = 2- 24/b b : = a-b/3 в ответе укажите одно целое число – значение переменной a.
У тебя есть свой ответ?
Имя программы может состоять из английских букв, цифр, нижнего подчёркивания . Например, zadacha_1 .
Отправлено
Вопросы по другим предметам:
Английский язык, 02.12.2020 09:57
Увидеть вопрос и ответы
Қазақ тiлi, 02.12.2020 09:57
Увидеть вопрос и ответы
Қазақ тiлi, 02.12.2020 09:57
Увидеть вопрос и ответы
История, 02.12.2020 09:57
Актамберды Татикара
Бухар жырау
1 1 1
2 2 2
Увидеть вопрос и ответы
Источник: otvetovik.com