Java задачи с собеседований
6.27K subscribers
597 photos
6 videos
19 files
244 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
👨🏻‍💻 Вопрос от реального человека

Как поставить toster в kotlin?

Всем привет, как выводить toast пока твой сайт на WebView еще не загрузился? То есть, ты открываешь прилку, а у тебя вместо белого экрана показывается, что прилка загружается.

import android.annotation.SuppressLint
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.annotation.RequiresApi
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen


@SuppressLint("SetJavaScriptEnabled")
class MainActivity : AppCompatActivity() {


@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webViewSetup()
}

@RequiresApi(Build.VERSION_CODES.O)
private fun webViewSetup() {
val wb = findViewById<WebView>(R.id.wb_webView)

wb.webViewClient = WebViewClient()

wb.apply {
settings.javaScriptEnabled = true
settings.safeBrowsingEnabled = true
loadUrl("https://www.google.com/?hl=ru")
}

}


override fun onBackPressed() {
val wb = findViewById<WebView>(R.id.wb_webView)
if (wb.canGoBack()) wb.goBack() else super.onBackPressed()
}
}

Java задачи с собеседований
👨🏻‍💻 Вопрос от реального человека

Как мне разделить строку на равные части по 4?

String binary =
"10011101000011101001001011111000100110000111001101010000";

Java задачи с собеседований
👨🏻‍💻 Как подключить jpa batch без использования GenerationType.SEQUENCE

Столкнулся с такой ситуацией, что нужно записать большое количество строк в таблицу postgres, где ключем выступает поле типа string.

create table manual_security
(
isin_code varchar(12) not null,
emitent_id numeric,
update_date_time timestamp not null,
constraint manual_security_pk primary key (isin_code)
);

доступа к таблице у меня нет, изменить не могу. т.е. например добавить в нее поле типа int и create sequence manual_security_security_id_auto_gen increment 100;

я прочел в документации, что SEQUENCE is used for delegating the identifier generation to a database sequence.

по документации в случае GenerationType.IDENTITY Spring ИГНОРИРУЕТ батчевую вставку, даже если она включена в настройках.

т.е. чтобы использовать батчевую вставку - нужно, чтобы в классе entity полем был ключ с типом integer и GenerationType.SEQUENCE

вот так

@Id
@SequenceGenerator(name = "manual_security_security_id_auto_gen", allocationSize = 100, sequenceName = "manual_security_security_id_auto_gen", initialValue = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "manual_security_security_id_auto_gen")
private Integer securityId;

вопрос к знатокам hibernate - можно ли как-то включить batch и добиться быстрого батчевого сохранения строк в таблице где ключем выступает string.

сейчас класс и репозиторий выглядят так.

@Entity
@Table(name = "manual_security")

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@EqualsAndHashCode(of = "isinCode")
public class ManualSecurity {
@Id
@NotNull
@Column(name = "isin_code", nullable = false)
private String isinCode;
// остальные поля
}

public interface ManualSecurityRepository extends JpaRepository<ManualSecurity, String> {

}

сохарнение saveall коллекции из 4к записей занимает так около 10 минут.

настройки драйвера

jpa:
show-sql: false
open-in-view: false
database: postgresql
properties:
hibernate:
jdbc:
batch_size: 100

Java задачи с собеседований
👨🏻‍💻 Почему компилятор выдает ошибку когда я пытаюсь добавить объект в Set?

Не могу понять, почему компилятор выдает ошибку когда я пытаюсь добавить объект класса Rout в Set rout?

public class SystemManager {
Rout CI106 = new Rout("WizzAir", "Rome", "Berlin", 1, "06:00", "06:40", 25);

Set<Rout> rout = new HashSet<>();
rout.add(CI106);

Выдает ошибку: Cannot resolve symbol 'add'

Java задачи с собеседований
👨🏻‍💻 Ошибка при установке Progress Bar progressBar.setVisibility(View.VISIBLE)

Помогите с задачей, пожалуйста. Выдает такую ошибку

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ProgressBar.setVisibility(int)' on a null object reference
at com.example.mvvm_test.view.MainActivity$4.onChanged(MainActivity.java:94)
at com.example.mvvm_test.view.MainActivity$4.onChanged(MainActivity.java:91)

Ругает за строчки с ProgressBar

mMyViewModel.getShowLoadingLiveData().observe(this, new Observer<Void>() {
@Override
public void onChanged(Void unused) {
progressBar.setVisibility(View.VISIBLE);
}
});
mMyViewModel.getHideLoadingLiveData().observe(this, new Observer<Void>() {
@Override
public void onChanged(Void unused) {
progressBar.setVisibility(View.GONE);
}
});



public class MyViewModel extends AndroidViewModel {
private final MutableLiveData<NumbersResponsePojo> pojoLiveData = new MutableLiveData<>();
private LiveData<List<Numbers>> numbers = new MutableLiveData<>();
private MutableLiveData <String> errorMessageLiveData = new MutableLiveData<>();
private final MutableLiveData<Void> showLoadingLiveData = new MutableLiveData<>();
private final MutableLiveData<Void> hideLoadingLiveData = new MutableLiveData<>();

private final WebRepo numberRepository;
private final DataBaseRepo dataBaseRepo;

public MyViewModel(Application application, WebRepo numberRepository) {
super(application);
dataBaseRepo = new DataBaseRepo(application);
numbers = dataBaseRepo.getAllFacts();
this.numberRepository = numberRepository;
}

void insert(Numbers numbers) {
dataBaseRepo.insert(numbers);
}

public void setPojoLiveData(NumbersResponsePojo pojoLiveData) {
setIsLoading(true);
this.pojoLiveData.setValue(pojoLiveData);
}

private void setIsLoading(boolean loading) {
if (loading) {
showLoadingLiveData.postValue(null);
} else {
hideLoadingLiveData.postValue(null);
}
}

public void getNumbers(String num) {
numberRepository.getNumbers(num)
.subscribe(new Observer<NumbersResponsePojo>() {
@Override
public void onSubscribe(Disposable d) {
}

@Override
public void onNext(NumbersResponsePojo numbersResponsePojo) {
Numbers numbers = new Numbers();
numbers.facts = numbersResponsePojo.getText();
numbers.number = numbersResponsePojo.getNumber();
numbers.time = System.currentTimeMillis();
setPojoLiveData(numbersResponsePojo);
insert(numbers);

setIsLoading(false);
//errorMessageLiveData.postValue("There is not items!");
}

@Override
public void onError(Throwable e) {
setIsLoading(false);
errorMessageLiveData.postValue("Internet is missing");
}

@Override
public void onComplete() {
}
});
}

public void getRandomNumbers(String num) {
numberRepository.getRandomNumbers(num)
.subscribe(new Observer<NumbersResponsePojo>() {
@Override
public void onSubscribe(Disposable d) {
}

@Override
public void onNext(NumbersResponsePojo numbersResponsePojo) {
Numbers numbers = new Numbers();
numbers.facts = numbersResponsePojo.getText();
numbers.number = numbersResponsePojo.getNumber();
numbers.time = System.currentTimeMillis();
setPojoLiveData(numbersResponsePojo);
insert(numbers);

setIsLoading(false);
}

@Override
public void onError(Throwable e) {

setIsLoading(false);
errorMessageLiveData.postValue("Internet is missing");
}

@Override
public void onComplete() {
}
});
}

public LiveData<NumbersResponsePojo> getPojoLiveData() {
return pojoLiveData;
}


public MutableLiveData<String> getErrorMessageLiveData() {
return errorMessageLiveData;
}
public void setErrorMessageLiveData(String errorMessageLiveData) {
this.errorMessageLiveData.setValue(errorMessageLiveData);
}

public LiveData<List<Numbers>> getDataFromDB() {
return numbers;
}

public MutableLiveData<Void> getShowLoadingLiveData() {
return showLoadingLiveData;
}

public MutableLiveData<Void> getHideLoadingLiveData() {
return hideLoadingLiveData;
}
}

Что не так? Спасибо

Java задачи с собеседований
👨🏻‍💻 Вопрос от реального человека

Можно ли передать из EditText в TextView не только текст, но и цвет текста, его размер и толщину?

У меня в активности есть ЭдитТекст, где я ввожу текст и изменяю его параметры (textSize, textColor,bold/italic) и фон. Всё работает.

Дальше по нажатию кнопки текст с параметрами должен передаваться в TextView в виджете. Я сделала код для передачи текста и фона из EditText в TextView и он работает, но как передать параметры текста я не знаю.

Пробовала сделать по аналогии, но с textSize у меня проблема с float, а с textColor то, что в ЭдитТекст нет метода getTextColor() и я не могу получить последнее значение textColor. Можно ли вообще передать текст с параметрами из ЭдитТекст в ТекстВьев?

Java задачи с собеседований
Какой результат работы данного кода?
public static void main(String[] args) {
String test = "Hello"; String test2 = "Hello"; System.out.println(test==test2); }
Anonymous Quiz
1%
null
3%
Hello
33%
false
63%
true
Дан следующий код:
public static void main(String[] args) {
int z = 15; // добавьте код { System.out.println(z); z--; } } Необходимо вывести на консоль все числа от 0 до 15. Выберите правильный
Anonymous Quiz
8%
while ((z >= 0) == (z <= 15))
3%
while ((z >= 0) != (z <= 15))
59%
while ((z >= 0) && (z <= 15))
10%
while ((z >= 0) & (z <= 15))
7%
while ((z >= 0) || (z <= 15))
12%
while ((z => 0) && (z <= 15))
Какой результат работы данного кода?
public static void main(String[] args) {
String[] array = new String[3]; System.out.println(array[2]); }
Anonymous Quiz
3%
1
4%
2
11%
0
9%
ArrayIndexOutOfBoundsException
73%
null
Какой результат работы данного кода?
public static void main(String[] args) {
int[] array = new int[]{11, 5, -4, 8, 4, 7}; for (int i = 0; i < array.length; i += 2) { System.out.print(i+" "); } }
Anonymous Quiz
1%
11
30%
0 2 4
19%
ArrayIndexOutOfBoundsException
50%
11 -4 4
Какой модификатор доступа необходимо использовать, чтобы переменная была видна только в текущем классе?
Anonymous Quiz
1%
default (package visible)
6%
protected
1%
public
91%
private
Какой результат работы данного кода?
public static void main(String[] args) {
int[] array = new int[]{11, 5, -4, 8, 4, 7}; for (int i = 0; i < array.length; i += 2) { System.out.print(array[i]+" "); } }
Anonymous Quiz
2%
11
12%
0 2 4
19%
ArrayIndexOutOfBoundsException
67%
11 -4 4
Какие из следующих объявлений переменных верны?
Anonymous Quiz
47%
int x,a,b; double y,z,x;
3%
int f,f;
37%
char symbol1,symbol2,symbol_3;
5%
int 1x;
8%
String book1; book2;
Какой результат работы данного кода?
public static void main(String[] args) {
int a = 5; System.out.println(a / 2); }
Anonymous Quiz
17%
2.5
5%
unhandled exception
77%
2
1%
1
Какой результат работы данного кода?

public static void main(String[] args) { byte x = -128; x -= 2; System.out.println(x); }
Anonymous Quiz
40%
126
13%
-130
24%
compile error
24%
2