Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final. Использование «окончательной» модификатор, когда это применимо в Java
Сводка:
- Используйте модификатор
finalдля обеспечения хорошей инициализации. - Избегайте возврата null в методы, например, при возврате пустых коллекций.
- Использовать аннотации
@NotNullи@Nullable - Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
- Сначала используйте значения с известным объектом:
if("knownObject".equals(unknownObject) - Предпочитают
valueOf()поверх toString (). - Используйте null safe
StringUtilsStringUtils.isEmpty(null).
задан user2864740 26 July 2014 в 04:05
поделиться
10 ответов
Если вы поместите оператор return в оператор if, while или for, то он может или не может возвращать значение. Если он не войдет внутрь этого утверждения, тогда также этот метод должен вернуть некоторое значение (которое может быть нулевым). Чтобы убедиться, что компилятор заставит вас написать этот оператор return, который после if, while или for.
Но если вы пишете блок if / else и каждый из них возвращается в нем, тогда компилятор знает, что либо if, либо else получат выполнение, и метод вернет значение. Поэтому этот компилятор времени не заставит вас.
if(condition)
{
return;
}
else
{
return;
}
ответ дан Community 19 August 2018 в 03:50
поделиться
Попробуйте, как если бы if condition возвращает false, поэтому он будет возвращать пустой, иначе ничего не вернуться.
public String myMethod()
{
if(condition)
{
return x;
}
return ""
}
Поскольку компилятор не знает, будет ли какой-либо из этих блоков if , поэтому он дает вам ошибку.
ответ дан bNd 19 August 2018 в 03:50
поделиться
Это потому, что если вы не пойдете в if, нет ничего, чтобы вернуться, поэтому он пропустит возвращение. 🙂
должно быть:
public String myMethod()
{
if(condition)
{
return x;
}
return y;
}
ответ дан Clad Clad 19 August 2018 в 03:50
поделиться
Это незаконный синтаксис. Для вас необязательно возвращать переменную. Вы ДОЛЖНЫ возвращать переменную типа, указанного в вашем методе.
public String myMethod()
{
if(condition)
{
return x;
}
}
Вы эффективно говорите: Я обещаю , любой класс может использовать этот метод (общедоступный), и я обещаю он всегда будет возвращать String (String).
Тогда вы говорите, что мое условие истинно, я верну x. Ну, это слишком плохо, в вашем обещании нет IF. Вы обещали, что myMethod ВСЕГДА вернет String. Даже если ваше условие ВСЕГДА истинно, компилятор должен предположить, что существует вероятность того, что он является ложным. Поэтому вам всегда нужно поместить возврат в конце вашего не-void-метода вне любых условий. JUST IN CASE все ваши условия терпят неудачу.
public String myMethod()
{
if(condition)
{
return x;
}
return ""; //or whatever the default behavior will be if all of your conditions fail to return.
}
ответ дан CodeCamper 19 August 2018 в 03:50
поделиться
Вы должны добавить оператор return, если condition является ложным.
public String myMethod() {
if(condition) {
return x;
}
// if condition is false you HAVE TO return a string
// you could return a string, a empty string or null
return otherCondition;
}
FYI:
Oracle docs for return statement
ответ дан d3vnico 19 August 2018 в 03:50
поделиться
Это вернет строку , только если условие истинно.
public String myMethod()
{
if(condition)
{
return x;
}
else
return "";
}
ответ дан Deepak Tiwari 19 August 2018 в 03:50
поделиться
Это потому, что функция должна вернуть значение. Представьте, что произойдет, если вы выполните myMethod(), и он не войдет в if(condition), что бы ваша функция вернулась? Компилятор должен знать, что нужно возвращать при каждом возможном выполнении вашей функции
Проверка документации по Java:
Определение: если декларация метода имеет тип возврата, тогда должно быть оператор возврата в конце метода. Если в операторе return нет ошибки, возвращаемой командой return.
Эта ошибка также возникает, если метод не имеет типа возврата и не был объявлен с использованием void (т. Е. Он был ошибочно опущен ).
Вы можете решить вашу проблему:
public String myMethod() { String result = null; if(condition) { result = x; } return result; }
ответ дан Guillermo Merino 19 August 2018 в 03:50
поделиться
Любой метод myMethod () должен возвращать значение String. Что, если ваше условие ложно, myMethod возвращает что-нибудь? ans нет, поэтому вам нужно определить return null или некоторое строковое значение в ложном состоянии
public String myMethod() {
boolean c=true;
if (conditions) {
return "d";
}
return null;//or some other string value
}
ответ дан loknath 19 August 2018 в 03:50
поделиться
попробуйте следующее:
public String myMethod()
{
if(condition)
{
return x;
}
return ""; //returns empty string
}
ответ дан Plengo 19 August 2018 в 03:50
поделиться
public String myMethod() // it ALWAYS expects a String to be returned
{
if(condition) // will not execute always. Will execute only when condition is true
{
return x; // will not be returned always.
}
//return empty string here
}
ответ дан TheLostMind 19 August 2018 в 03:50
поделиться
Другие вопросы по тегам:
Похожие вопросы:
In this code:
public static void main(String []args){
int [] a = {10, 20, 30};
if(m1(a))
m2(a, 0);
else
m2(a, 1);
for(int i = 0; i < a.length; i++)
System.out.println(a[i] + " ");
}
public static boolean m1(int [] a){
return a[0] == a[1] / 2;
}
public static void m2(int [] a, int b){
a[b] = 1;
}
}
in m2, what does the line comes after return , which is a[0] == a[1] / 2 do?
is it a chick statement ? because it is bet confusing when it comes after return
asked Jan 10, 2012 at 20:43
1
return a[0] == a[1] / 2
returns true if the expression is actually true, ie. a[0] is equal to a[1] divided by 2, and false otherwise.
answered Jan 10, 2012 at 20:46
![]()
Joachim IsakssonJoachim Isaksson
175k25 gold badges275 silver badges288 bronze badges
I think you mean m1.
Anyway, it helps if you read the code like this:
public static boolean m1(int [] a){
return (a[0] == (a[1] / 2));
}
Take note of operator precedence: parenthesis are evaluated before equality. That is, return the equality between a[0] and the result of the expression (a[1] / 2).
If you don’t know your precedence rules, you could alternatively read the code as:
public static boolean m1(int [] a){
int i = a[1] / 2;
boolean foo = (a[0] == i);
return foo;
}
answered Jan 10, 2012 at 20:45
chrisdotcodechrisdotcode
1,5632 gold badges17 silver badges22 bronze badges
Think of it in terms of an if statement — what does the following do?
if (a[0] == (a[1] / 2)) {
...
It’s a boolean result of an evaluation — true or false. If it’s true, do something.
Using it with return returns that boolean result to the caller.
answered Jan 10, 2012 at 20:47
Brian RoachBrian Roach
75.6k12 gold badges135 silver badges161 bronze badges
2
That’s a boolean expression stating the value that the method will return.
It’s no different from a method that returns an int.
answered Jan 10, 2012 at 20:44
SLaksSLaks
856k175 gold badges1885 silver badges1953 bronze badges
0
There is a certain kind of programmers who would rather code this as follows:
if( a[0] == a[1] / 2 )
return true;
else
return false;
We scorn at this kind of programmers, and during lunch break we do not sit anywhere near them.
So, to answer your question, return a[0] == a[1] / 2; is a perfectly valid statement, and any experienced programmer would rather see it like this rather than in any other way. The ‘==’ inside the expression tells us that this expression is evaluating to a boolean value, and then this boolean value is returned by the function. That’s absolutely fine.
If it would help you to better understand it, you could express it as return a[0] == (a[1] / 2); but if you know your operator precedence it is unnecessary, and in any case the alternative (return (a[0] == a[1]) / 2;) could not possibly work because the division operator is not applicable to boolean values.
answered Jan 10, 2012 at 20:56
![]()
Mike NakisMike Nakis
53.3k10 gold badges102 silver badges136 bronze badges
In a method that returns a value, the return statement indicates what value to return. For example, this method:
public static int timesTwo(int i)
{
return 2 * i;
}
returns two times its argument; so this method:
public static void main(String... args)
{
System.out.println(timesTwo(7)); // prints 14.
}
prints 14.
Your example:
public static boolean m1(int [] a)
{
return a[0] == a[1] / 2;
}
returns true if a[0] == a[1] / 2; otherwise, it returns false.
answered Jan 10, 2012 at 20:47
ruakhruakh
172k26 gold badges266 silver badges302 bronze badges
1
I am starting with java and while I was writing a way to identify whether a number was prime I wrote a method like this
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !Prime;
}
else if(((n % x) == 0) && (n > x)){
return Prime;
}
else {
return Prime;
}
}
What I couldn’t figure out was the necessity of the last else statement. If I do not put it, I get an error message. However I don’t think it is necessary since all possibilities are covered by the previous loops, with their respecting return statements. Or am I missing something?
asked Jun 8, 2013 at 2:28
FSBFSB
491 silver badge10 bronze badges
7
You don’t need the else. What you are being told by the compiler is the method must return SOMETHING. Your last else block could replaced by this:
return PrimeOrNot;
In fact, your method could look like this:
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
return (PrimeOrNot);
}
In any case your very last statement block cannot be an else if.
answered Jun 8, 2013 at 2:31
xagygxagyg
9,4622 gold badges31 silver badges29 bronze badges
The method has a return type of boolean.
The compiler is scared by the possibility in which none of the ‘if’ cases are met. In this situation, the method know what to return. This method needs to return something, so just give it a ‘return true’ before the method ends. It won’t ever be read, but it will make the compiler happy.
answered Jun 8, 2013 at 2:34
IanIan
5614 gold badges8 silver badges15 bronze badges
The conditional expressions within the if/else-if are only evaluated at runtime. Normally, the compiler wouldn’t know what the result would be, because they are not evaluated at compile-time. Only, situation when the compiler can figure what the result of the expression would be is when it’s some compile-time constant (like if(true) {).
answered Jun 8, 2013 at 2:38
Bhesh GurungBhesh Gurung
50.1k21 gold badges90 silver badges141 bronze badges
public static boolean checkPrime(int n){
boolean PrimeOrNot = false;
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
else if(((n % x) == 0) && (n > x)){
return (PrimeOrNot);
}
return PrimeOrNot;
}
answered Jun 8, 2013 at 2:34
mconlinmconlin
7,8095 gold badges30 silver badges37 bronze badges
A method which returns a value will be compilable if it returns a value in all its possible code paths.
Imagine for a moment that you’re the compiler. You see this code:
int myMethod()
{
if (cond)
return anInt;
}
While you may know that cond is in fact always true, the compiler will not know that. It can only be sure about the result of a boolean expression if it is an expression which can be evaluated at compile time only.
Note that the vast majority of «code optimization» in Java is in fact done at run time (JIT: Just In Time).
answered Jun 8, 2013 at 2:47
![]()
fgefge
117k31 gold badges248 silver badges326 bronze badges
The compiler only checks to see if there are valid return paths from your method. The compiler isn’t «smart» enough to inspect the conditional statements and determine whether the conditions can be logically met — the compiler simply checks to make sure that some value is returned to respect the contract of the method declaration.
Some would argue that the following is a cleaner structure for the method (but I think it is just a matter of taste):
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
return (PrimeOrNot);
}
answered Jun 8, 2013 at 2:35
eebbeseneebbesen
5,0228 gold badges49 silver badges70 bronze badges
I am starting with java and while I was writing a way to identify whether a number was prime I wrote a method like this
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !Prime;
}
else if(((n % x) == 0) && (n > x)){
return Prime;
}
else {
return Prime;
}
}
What I couldn’t figure out was the necessity of the last else statement. If I do not put it, I get an error message. However I don’t think it is necessary since all possibilities are covered by the previous loops, with their respecting return statements. Or am I missing something?
asked Jun 8, 2013 at 2:28
FSBFSB
491 silver badge10 bronze badges
7
You don’t need the else. What you are being told by the compiler is the method must return SOMETHING. Your last else block could replaced by this:
return PrimeOrNot;
In fact, your method could look like this:
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
return (PrimeOrNot);
}
In any case your very last statement block cannot be an else if.
answered Jun 8, 2013 at 2:31
xagygxagyg
9,4622 gold badges31 silver badges29 bronze badges
The method has a return type of boolean.
The compiler is scared by the possibility in which none of the ‘if’ cases are met. In this situation, the method know what to return. This method needs to return something, so just give it a ‘return true’ before the method ends. It won’t ever be read, but it will make the compiler happy.
answered Jun 8, 2013 at 2:34
IanIan
5614 gold badges8 silver badges15 bronze badges
The conditional expressions within the if/else-if are only evaluated at runtime. Normally, the compiler wouldn’t know what the result would be, because they are not evaluated at compile-time. Only, situation when the compiler can figure what the result of the expression would be is when it’s some compile-time constant (like if(true) {).
answered Jun 8, 2013 at 2:38
Bhesh GurungBhesh Gurung
50.1k21 gold badges90 silver badges141 bronze badges
public static boolean checkPrime(int n){
boolean PrimeOrNot = false;
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
else if(((n % x) == 0) && (n > x)){
return (PrimeOrNot);
}
return PrimeOrNot;
}
answered Jun 8, 2013 at 2:34
mconlinmconlin
7,8095 gold badges30 silver badges37 bronze badges
A method which returns a value will be compilable if it returns a value in all its possible code paths.
Imagine for a moment that you’re the compiler. You see this code:
int myMethod()
{
if (cond)
return anInt;
}
While you may know that cond is in fact always true, the compiler will not know that. It can only be sure about the result of a boolean expression if it is an expression which can be evaluated at compile time only.
Note that the vast majority of «code optimization» in Java is in fact done at run time (JIT: Just In Time).
answered Jun 8, 2013 at 2:47
![]()
fgefge
117k31 gold badges248 silver badges326 bronze badges
The compiler only checks to see if there are valid return paths from your method. The compiler isn’t «smart» enough to inspect the conditional statements and determine whether the conditions can be logically met — the compiler simply checks to make sure that some value is returned to respect the contract of the method declaration.
Some would argue that the following is a cleaner structure for the method (but I think it is just a matter of taste):
public static boolean checkPrime(int n){
int x = 2;
while (((n % x) != 0) && (n > x)){
x = x + 1;
}
if(((n % x) == 0) && (n == x)){
return !(PrimeOrNot);
}
return (PrimeOrNot);
}
answered Jun 8, 2013 at 2:35
eebbeseneebbesen
5,0228 gold badges49 silver badges70 bronze badges
Выход из метода и возврат значения
Чтобы прекратить выполнение метода, используют оператор return. Например, проверяем, является ли число положительным и чётным. Если число оказывается меньше или равно 0, метод прерывается и выводится соответствующий комментарий. Если число положительное, проверяем, чётное ли оно.
public static void main(String[] args) {
checkIfPositiveEven(9);
}
public static void checkIfPositiveEven(int n) {
if (n <= 0) {
System.out.println(n +
" is not positive.");
return;
}
if (n%2 != 0) {
System.out.println(n +
" is not even.");
return;
}
System.out.println(n +
" is positive even.");
}
Вывод:
9 is not even.
Метод может возвращать результат своих вычислений. Тип возвращаемого значения указывается при объявлении метода. Ключевое слово void обозначает, что метод не возвращает значение. Если тип возвращаемого значения метода — не void, то метод обязан вернуть значение. Для этого также используется оператор return.
public static void main(String[] args) {
System.out.println(
"Is number 92 greater than ten " +
"by absolute value? " +
isGreaterThanTenAbs(92));
}
public static boolean isGreaterThanTenAbs(int n) {
if (n > 10) {
return true;
}
if (n < -10) {
return true;
}
return false;
}
Вызов не-void’ового метода — это выражение. Например, выражение isGreaterThanTenAbs(1) имеет тип boolean, т. к. метод isGreaterThanTenAbs возвращает значения этого типа.
42
Объявите метод boolean isRemarkable(int n),
который вернёт true, если аргумент n равен сорока двум,
и false в противном случае.
Положительное, отрицательное, ноль
Напишите метод, который возвращает строку
положительно, ноль или отрицательно
в зависимости от того, какое число было передано.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!
Экземпляр класса String напрямую нельзя создать из:
Строкового литерала
Экземпляра класса StringBuffer
Экземпляра класса StringBuilder
Массива символов
Массива строк
К какому принципу ООП относятся понятия иерархии классов и зарезервированное слово extends?
Наследование
Реализация
Инкапсуляция
Абстракция
По типу результата все методы можно разделить на:
Статические и не статические
С аргументами и без
С возвращаемым значением и без
Целочисленные и дробные
Константы и переменные
Может ли любой текстовый редактор быть редактором исходного кода на Java? При условии, что этот редактор не будет добавлять какие-либо служебные символы или служебную информацию в сохраняемый файл.
Да
Нет
Какая запись операторов сравнения верна?
<, >, =<, =>, ==, !=
<, >, <=, >=, ===, !==
<, >, =<, =>, =, !
<, >, <=, >=, =, !
<, >, <=, >=, ==, !=
Можно ли переопределить (override) private методы:
Да
Нет
Какие виды циклов существуют в Java?
for, for-each, while
for, while
for-each, do-while
for, for-each, while, do-while
for-each, while
С каким расширением хранится исходный код классов, а с каким скомпилированный?
Исходный код в .java, скомпилированный в .class
Исходный код в .java, скомпилированный в .javac
Исходный код в .javac, скомпилированный в .class
Исходный код в .javac, скомпилированный в .java
Исходный код в .class, скомпилированный в .java
Для массивов в Java верно:
Изменяемый состав элементов одного типа
Изменяемый состав элементов разных типов
Фиксированное количество элементов разных типов
Фиксированное количество элементов одного типа
Возможно ли в Java использование выражений вида: а < х < b?
Да
Нет
Можно ли создать объект абстрактного класса:
Да
Нет
Можно ли наследоваться от класса java.lang.String:
Да
Нет
У вас в проекте несколько классов. Можно ли в каждом из них объявить свой public static void main(String[] args)?
Да
Нет
Что является условием для выполнения итерации в цикле?
Арифметическое выражение, результат которого – 0
Логическое выражение, результат которого значения не имеет
Логическое выражение, результат которого – истина
Логическое выражение, результат которого – ложь
Арифметическое выражение, результат которого — любое неотрицательное число
Чем инициализируется по умолчанию локальная переменная ссылочного типа данных:
Зависит от конкретного типа переменной
0
Локальные переменные не инициализируются по умолчанию
Объектом, созданным с помощью конструктора по умолчанию
Null
К какому принципу ООП относятся понятия прав доступа и модификаторов public, protected, package-private и private?
Инкапсуляция
Полиморфизм
Абстракция
Реализация
Наследование
Какие категории типов данных поддерживаются в Java?
Переменные, примитивные
Примитивные, ссылочные (объектные)
Ссылочные (объектные)
Примитивные
Переменные, постоянные
Является ли язык программирования Java кроссплатформенным?
Нет
Да
Можно ли переопределить (override) статический (static) метод:
Нет
Да
Для объявления переменной в Java достаточно задать:
Тип, имя
Тип, первоначальное значение
Имя, первоначальное значение
Имя
Тип, имя, первоначальное значение
Укажите правильную форму метода main:
public int main(String[] args)
public static void main()
public static void Main(String[] args)
public static void main(String[] args)
public void main(String args[])
К какому принципу ООП относятся понятия overloading (перегрузка) и overriding (переопределение)?
Полиморфизм
Инкапсуляция
Реализация
Абстракция
Что появится в консоли в результате работы программы:
127
128
-128
0
Ошибка времени исполнения
У каждого примитивного типа есть аналог среди ссылочных (объектных) типов?
Нет
Да
Может ли быть значение статического поля у объектов одного класса разным:
Нет
Да
Что появится в консоли в результате работы программы:
Java
JAVA
java
Ошибка времени исполнения
Оператор switch можно заменить условными конструкциями if-else if
Да
Нет
Остановит ли когда-нибудь свою работу цикл вида:
Да
Нет
Ошибка компиляции
Ошибка времени исполнения
Как узнать количество элементов в массиве: int[] arr = new int[10]?
arr.length()
arr.length
length(arr)
arr.size()
size(arr)
Нумерация элементов массива начинается с:
1
-1
0
Какой из способов объявления массива некорректен?
int[][] a = new int[5][5];
int[] a[] = new int[5][5];
[]int[] a = new int[5][5];
int a[][] = new int[5][5];
Как Java CodeConvention рекомендует называть классы и методы?
Классы начинаются со строчной буквы, методы с заглавной
Классы пишутся строчными буквами, методы целиком заглавными
Классы начинаются с заглавной буквы, методы со строчной
Классы пишутся заглавными буквами, методы целиком строчными
Классы начинаются с заглавной буквы, методы начинаются с заглавной
Аргумент метода — это:
Значение, указываемое после ключевого слова return
Значение или переменная, передаваемая в метод для участия в его работе
Любая переменная, участвующая в работе метода
Переменная, в которую записывается результат работы метода
Переменная, объявленная в теле метода
Какой способ в общем случае сравнит два объекта по значению?
obj1 = obj2;
equals(obj1, obj2);
obj1 == obj2;
obj1.equals(obj2);
equals(obj1 == obj2);
Может ли в одном классе объявлено больше одного метода с именем main:
Нет
Да
Можно ли использовать оператор return в void методе:
Нет
Да
Тернарным логическим оператором является:
&&
||
? :
!
^
Выберите верные утверждения: строки (объекты), созданные с помощью класса
String — неизменяемые, а StringBuffer и StringBuilder – изменяемые
String — изменяемые, а StringBuffer и StringBuilder — неизменяемые
Какое значение будет сохранено в строке s?
«value = 2 2»
Ошибка компиляции
«value = 4»
«value = 2 + 2»
«value = 22»
Какое значение будет сохранено в строке s?
Ошибка компиляции
«22 = value»
«4 = value»
«2 2 = value»
«2 + 2 = value»
Размер переменной типа char равен:
64 бита
16 бита
32 бита
8 бит
Какой цикл имеет инициализатор, условие и шаг?
for-each
for
do-while
while
infinite loop
Операторы сравнения <, >, <=, >= применимы для:
Строк
Чисел
Логических переменных
Функций
Объектов
Инициализированная переменная в Java имеет:
Имя, первоначальное значение
Тип, первоначальное значение
Тип, имя, первоначальное значение
Имя
Тип, имя
Ключевое слово else после конструкции с if:
Может отсутствовать
Обязательно присутствует
Какой вариант объявления массива некорректен:
int e[5] = {1, 2, 3, 4, 5};
int[] a = new int[5];
int b[][] = new int[5][];
int c[][] = { {1, 2}, {3, 4} };
Что появится в консоли в результате работы программы:
4
8
12
32
Ошибка времени исполнения
Ошибка компиляции
Если метод имеет тип boolean, какой вариант оператора return приведет к ошибке:
return true && !false;
return (boolean)0;
return ‘a’ < 70;
return Integer.valueOf(«10») < 15;
return 12 > 60;
Какой оператор нужен в выражении 5 … 5, чтобы оно стало истинным?
<
!=
=
<=
>
Являются ли два метода перегруженными, если у них одинаковые имена, разный набор аргументов и разный тип возвращаемого значения:
Да
Нет
Размер переменной типа short равен:
8 бит
64 бит
32 бит
16 бит
Список типов, переменные которых могут хранить дробные числа:
byte, short, int, long, float, double
char, byte, short, int, long
float, double
int, long, float, double
byte, short, int, long
Может ли абстрактный класс иметь конструктор:
Нет
Да
Какой из типов данных является ссылочным (объектным)?
String
Long
Int
Boolean
Double
Укажите список типов данных, которые позволяют хранить только целые числа:
float, double
int, long, float, double
byte, short, int, long, float, double
byte, short, int, long
boolean, byte, short, int, long
Если в коде какой-либо ветки if есть другое условие if, то такой условный оператор:
Сложный
Вложенный
Многовариантный
Составной
Комбинированный
Какой из перечисленных методов объявлен некорректно:
void doSomething1(int… arr1, int… arr2)
int add(int… arr)
boolean isNegative(int n)
void printArray(int arr[])
String makeText(char… arr)
Возможно ли получить доступ к отдельным символам или диапазонам символов строки?
Да, числовые индексы начинаются с 1
Нет, доступ к отдельным символам строки получить нельзя
Да, символьные индексы начинаются с ‘A’
Да, числовые индексы начинаются с 0
Да, символьные индексы начинаются с ‘a’
Что такое значение переменной?
Операции, доступные для действий с переменной
Участок в памяти, где хранятся данные
Данные, хранящиеся в переменной
Типы данных, доступные для хранения в переменной
Адрес в памяти, по которому хранится значение переменной
Сколько измерений будет у массива … arr = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } }:
3
4
2
1
Не абстрактный метод в Java должен содержать как минимум:
Тип возвращаемого значения, имя, тело метода
Модификатор доступа, тип возвращаемого значения, имя, список аргументов
Тип возвращаемого значения, имя, список аргументов, тело метода
Имя, список аргументов, тело метода
Имя, тело метода
Тип возвращаемого значения, имя, список аргументов
Что появится в консоли в результате работы программы:
java
Java
Ошибка времени исполнения
JAVA
Что появится в консоли в результате работы программы:
5
2
7
Ошибка компиляции
Ошибка времени исполнения
В какой кодировке хранятся символы в переменной типа char:
UTF-16
UTF-8
UTF-32
ASCII
Какие типы данных не могут быть в качестве условия switch-case:
Символы
Строки
Дробные числа
Целые числа
Использование геттеров и сеттеров относится к принципу:
Наследование
Полиморфизм
Инкапсуляция
Укажите способ создания именованного экземпляра класса:
Object obj;
Object obj = new Object();
Object;
Object();
new Object();
Что появится в консоли в результате работы программы:
false false
true false
null
true true
false true
Если в сигнатуре метода указано void, то ключевое слово return в теле метода:
Не обязательно, может быть указано с любым значением
Не обязательно, но может быть указано в качестве прерывания работы метода
Обязательно, но без какого-либо значения
Обязательно как минимум один раз без какого-либо значения
Обязательно как минимум один раз с любым значением
Можно ли переопределить final метод:
Нет
Да
Какой класс является суперклассом для всех классов:
Class
Super
Main
Object
MainClass
Есть два класса A и B, которые не связаны между собой наследованием и лежат в одном пакете. Каким образом можно вызвать public не статический метод doSomething() класса A в public не статическом методе класса B:
Создав экземпляр класса A внутри метода класса B, и вызвав метод у этого экземпляра
Просто вызвав метод doSomething() без указания класса или объекта, поскольку оба класса лежат в одном пакете, все методы класса A видны внутри класса B
Через обращение к классу A: A.doSomething()
Сделав статический импорт метода A.doSomething()
Вызвать статический метод, или обратиться к статическому полю класса можно
Только создав экземпляр класса, в котором они реализованы
Не создавая экземпляр класса, в котором они реализованы
Только из любого класса в том же пакете
Только из подклассов
Только из методов этого класса
Возможно ли унаследовать класс от двух суперклассов (множественное наследование):
Да
Нет
Результат сравнения — это:
Строка
Объект
Логическое значение
Число
Символ
В классе-наследнике определён статический метод такой же, как в родительском.
Метод в классе-наследнике скроет (hiding) родительский метод
Метод в супер-классе скроет (hiding) метод в классе-наследнике
Метод в классе-наследнике переопределит (override) родительский метод
Метод в классе-наследнике перегрузит (overload) родительский метод
Метод в супер-классе перегрузит (overload) метод в классе-наследнике
Укажите пакет, в котором классы для работы со строками String, StringBuffer, StringBuilder
java.text, требует обязательного импорта
java.util, не требует обязательного импорта
java.lang, не требует обязательного импорта
java.lang, требует обязательного импорта
java.util, требует обязательного импорта
Вы можете обратится к нам напрямую, через:
По Skype: molodoyberkut
По Telegram: @MolodoyBerkut
По ICQ: 657089516
По Viber: molodoyberkut
Или через форму обратной связи на нашем сайте