👨🏻💻 Вопрос от реального человека
ReadWriteLock - внутри один объект блокировки или два?
У класса ReentrantReadWriteLock есть два метода на получение блокировки - readLock и writeLock. Между ними установлены некоторые правила взаимоотношений, по которым блокировка становится возможной.
Собственно такой вопрос - внутри класса получение этих двух блокировок будет сводиться к одному объекту блокировки, или там будут отдельный объект для блокировки на чтение и отдельный для блокировки на запись?
Может быть я неправильно понимаю и там вообще используется другой внутренний механизм без явных объектов блокировки? Документация говорит что
Java задачи с собеседований
ReadWriteLock - внутри один объект блокировки или два?
У класса ReentrantReadWriteLock есть два метода на получение блокировки - readLock и writeLock. Между ними установлены некоторые правила взаимоотношений, по которым блокировка становится возможной.
Собственно такой вопрос - внутри класса получение этих двух блокировок будет сводиться к одному объекту блокировки, или там будут отдельный объект для блокировки на чтение и отдельный для блокировки на запись?
Может быть я неправильно понимаю и там вообще используется другой внутренний механизм без явных объектов блокировки? Документация говорит что
A ReadWriteLock maintains a pair of associated locks, one for read-only operations and one for writingНо не очень понятно как это трактовать.
Java задачи с собеседований
👨🏻💻 Вопрос от реального человека
Как поставить toster в kotlin?
Всем привет, как выводить toast пока твой сайт на WebView еще не загрузился? То есть, ты открываешь прилку, а у тебя вместо белого экрана показывается, что прилка загружается.
Как поставить toster в kotlin?
Всем привет, как выводить toast пока твой сайт на WebView еще не загрузился? То есть, ты открываешь прилку, а у тебя вместо белого экрана показывается, что прилка загружается.
import android.annotation.SuppressLintJava задачи с собеседований
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()
}
}
👨🏻💻 Вопрос от реального человека
Как мне разделить строку на равные части по 4?
String binary =
"10011101000011101001001011111000100110000111001101010000";
Java задачи с собеседований
Как мне разделить строку на равные части по 4?
String binary =
"10011101000011101001001011111000100110000111001101010000";
Java задачи с собеседований
👨🏻💻 Как подключить jpa batch без использования GenerationType.SEQUENCE
Столкнулся с такой ситуацией, что нужно записать большое количество строк в таблицу postgres, где ключем выступает поле типа string.
по документации в случае GenerationType.IDENTITY Spring ИГНОРИРУЕТ батчевую вставку, даже если она включена в настройках.
т.е. чтобы использовать батчевую вставку - нужно, чтобы в классе entity полем был ключ с типом integer и GenerationType.SEQUENCE
вот так
сейчас класс и репозиторий выглядят так.
настройки драйвера
Столкнулся с такой ситуацией, что нужно записать большое количество строк в таблицу postgres, где ключем выступает поле типа string.
create table manual_securityдоступа к таблице у меня нет, изменить не могу. т.е. например добавить в нее поле типа int и
(
isin_code varchar(12) not null,
emitent_id numeric,
update_date_time timestamp not null,
constraint manual_security_pk primary key (isin_code)
);
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сохарнение saveall коллекции из 4к записей занимает так около 10 минут.
@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> {
}
настройки драйвера
jpa:Java задачи с собеседований
show-sql: false
open-in-view: false
database: postgresql
properties:
hibernate:
jdbc:
batch_size: 100
👨🏻💻 Почему компилятор выдает ошибку когда я пытаюсь добавить объект в Set?
Не могу понять, почему компилятор выдает ошибку когда я пытаюсь добавить объект класса Rout в Set rout?
Java задачи с собеседований
Не могу понять, почему компилятор выдает ошибку когда я пытаюсь добавить объект класса Rout в Set rout?
public class SystemManager {Выдает ошибку: Cannot resolve symbol 'add'
Rout CI106 = new Rout("WizzAir", "Rome", "Berlin", 1, "06:00", "06:40", 25);
Set<Rout> rout = new HashSet<>();
rout.add(CI106);
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Ругает за строчки с ProgressBar
at com.example.mvvm_test.view.MainActivity$4.onChanged(MainActivity.java:94)
at com.example.mvvm_test.view.MainActivity$4.onChanged(MainActivity.java:91)
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 задачи с собеседований
Можно ли передать из 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); }
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. Выберите правильный
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]); }
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+" "); } }
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]+" "); } }
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); }
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