Сбер
Ищут джуна-архитектора😳😂Ищут джуна, чтобы потом дообучить его на архитектора
#sber | Прислать задачу | Подписаться
Ищут джуна-архитектора😳😂
import java.util.*;
import java.lang.*;
import java.io.*;
//Напишите программу, которая заменяет все вхождения строки "abc" на "xyz" в данном тексте(abc is a string with abc in it)
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
}
}
#sber | Прислать задачу | Подписаться
😁10❤2🤯2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28🤔16👍5
СБЕР
#sber | Прислать задачу | Подписаться
#
Следующий класс работает в продакшен среде.
Класс компилируется и не содержит Runtime исключений.
Но у него есть несколько проблем, которые вам предлагается найти их, и предложить
идеи по исправлению(рефакторингу),
* class Cat4Profile существует и находится в том же пакете
public class Cat4 {
private final ConcurrentHashMap<byte[], BigDecimal> CACHE = new ConcurrentHashMap<>();
public int jumpsCount = 0;
private Cat4Profile cat4Profile;
private final DataSource dataSource;
public Cat4(DataSource dataSource) {
this.dataSource = dataSource;
}
public void doRandomJumps(int maxJumps) {
Random rnd = new Random();
int jumpsToDo = Math.abs(rnd.nextInt()) % maxJumps;
for (int i = 0; i < jumpsToDo; i++) {
new Thread(() -> {
doJump();
}).start();
}
}
public void setCat4Profile(Cat4Profile cat4Profile) {
this.cat4Profile = cat4Profile;
}
public String getCat4Name() {
try {
return this.cat4Profile.getCatName();
} catch (NullPointerException e) {
return "Max";
}
}
public void doJump() {
this.jumpsCount++;
Logger.getLogger(Cat4.class.getName()).fine("Jump!");
}
public void doMeow() {
Logger.getLogger(Cat4.class.getName()).fine("Meow!");
}
public BigDecimal doQuery(byte[] parameters) throws SQLException {
Connection conn = null;
Statement stmt = null;
try {
conn = dataSource.getConnection();
stmt = conn.createStatement();
ResultSet resultSet = stmt.executeQuery("select weight from Cat where name = '" + new
String(parameters) + "')");
resultSet.next();
return resultSet.getBigDecimal("weight");
} finally {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
public BigDecimal doQueryCached(byte[] parameters) throws SQLException {
if (CACHE.get(parameters) != null)
return CACHE.get(parameters);
BigDecimal weight = doQuery(parameters);
CACHE.put(parameters, weight);
return weight;
}
public int getJumpsCount() {
int result = jumpsCount;
jumpsCount = 0;
return result;
}
public void setJumpsCount() {
this.jumpsCount++;
}
}
#sber | Прислать задачу | Подписаться
🤔3❤2
Астон
Что будет выведено?
#aston | Прислать задачу | Подписаться
Что будет выведено?
class MyCode {
public static void main(String[] args) {
SuperBase sb = new Base();
Object o = "";
sb.mm(o);
sb.mm("");
}
static class SuperBase {
public int i = 3;
protected void mm(Object o) {
System.out.println("Object " + i);
}
private void mm(String o) {
System.out.println("String " + i);
}
}
public static class Base extends SuperBase {
public Base() {
i = 5;
}
}
}
#aston | Прислать задачу | Подписаться
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Всех с окончанием рабочей недели)
#fridaymemes
#fridaymemes
😁25❤1
Т-банк (стажировка)
Сделать код ревью
#tbank | Прислать задачу | Подписаться
Сделать код ревью
import java.util.UIID;
/**
* Сервис бронирования места в самолете.
* Клиент с купленным билетом может за дополнительную плату выбрать конкретное место.
* Базовая цена мест определяется тарифами (внешним сервисом).
* Для клиентов с определенными тарифами (PREMIUM, ULTRA) необходимо сделать скидку при оплате.
* При бронировании клиенту выставляется инвойс на оплату. Управление оплатой осуществляется в стороннем сервисе.
*/
@Service
public class SeatBookingService {
@Autowired private SeatBookingRepository seatBookingRepository;
@Autowired private TicketRepository ticketRepository;
@Autowired private TariffClient tariffClient;
@Autowired private CustomerClient customerClient;
@Autowired private PaymentClient paymentClient;
/**
* Бронирование.
* @param seatCode код места (например 19A)
* @param ticketId ид билета
*/
@Transactional
public void bookSeat(String seatCode, UIID ticketId) {
var ticket = ticketRepository.findById(ticketId);
// бронируем
var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED);
seatBookingRepository.save(seatBooking);
// ищем базовый тариф для выбранного места в самолете
var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode);
// ищем данные о клиенте
long userId = (long) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
var userData = customerClient.getCustomer(userId);
System.out.println("Найден пользователь " + userData.getFio() + " номер документа " + userData.getDocument());
var price = basePrice;
if (userData.getTariff() == "PREMIUM") {
// скидка 50%
price = basePrice * 0.5d;
}
if (userData.getTariff() == "ULTRA") {
// скидка 20%
price = basePrice * 0.8d;
}
var invoice = new Invoice(price, ticketId, userId);
// выставляем платежку
paymentClient.sendInvoice(invoice);
}
}
@Data
@Table("seat_booking")
public class SeatBooking {
@Column
private String seatCode;
@Column
private UUID flightId;
@Column
private UUID ticketId;
@Column
private BookingStatus status;
}
public enum BookingStatus {
BOOKED, PAID;
}
#tbank | Прислать задачу | Подписаться
🤔2❤1
Сбер
Дописать метод +рефакторинг
#sber | Прислать задачу | Подписаться
Дописать метод +рефакторинг
/*
Спроектировать класс "Банкомат", хранящий купюры в различных номиналах.,
Предусмотреть методы загрузки, выгрузки, расчета остатка, выдачи суммы клиенту (в номинальном разрезе)*/,
public class Atm {
Hashtable<Short, Integer> denominations; // номиналы /
public void load(Hashtable<Short, Integer> denominations) {
this.denominations = new Hashtable<>();
Object[]keys = denominations,keySet().toArray();
for (int i = 0; i < keys.length; i++) {
this.denominations.put((Short)keys[i], denominations.get((Short)keys[i]));
}
}
//Выгружает банкноты, оставляя пустую емкость.
//@return карта "номинал" -> число выгруженных купюр
public Hashtable<Short, Integer> unload() {
Hashtable<Short, Integer> result = new Hashtable<>();
Object[] keys = denominations.keySet().toArray();
for (int i = 0; i < keys.length; i++) {
result.put((Short)keys[i], denominations.get((Short)keys[i]));
}
return result;
}
//Рассчитывает остаток в банкомате.
@return*/
public Integer getRest() {
int result = new Integer(0);
Object[] keys = denominations.keySet().toArray();,
for (int i = 0; i < keys.length; i++) {
result += (Integer)denominations.get((Short)keys[i]) * (Short)keys[i];
}
return result;
}
}
public HashTable<Short, Integer> dispense (Integer amount) {
//TODO
return null;
}
#sber | Прислать задачу | Подписаться
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Всех с окончанием рабочей недели)
#fridaymemes
😁28❤3👎2👍1🔥1
х5 #sql
Вывести список отделов, количество сотрудников в которых не превышает 3 человек
#x5 | Прислать задачу | Подписаться
Вывести список отделов, количество сотрудников в которых не превышает 3 человек
-- Отдел:
CREATE TABLE department (
id INTEGER NOT NULL, -- идентификатор отдела
name VARCHAR(128) NOT NULL, -- название отдела
PRIMARY KEY (id)
);
-- Сотрудник:
CREATE TABLE employee (
id INTEGER NOT NULL, -- идентификатор сотрудника
department_id INTEGER NOT NULL, -- идентификатор отдела
manager_id INTEGER, -- идентификатор начальника
name VARCHAR(128) NOT NULL, -- имя сотрудника
salary DECIMAL NOT NULL, -- оклад сотрудника
PRIMARY KEY (id),
FOREIGN KEY (department_id) REFERENCES department(id),
FOREIGN KEY (manager_id) REFERENCES employee(id)
);
#x5 | Прислать задачу | Подписаться
👍4❤1
Реальные задачи с собеседований | Java
Т-банк (стажировка) Сделать код ревью import java.util.UIID; /** * Сервис бронирования места в самолете. * Клиент с купленным билетом может за дополнительную плату выбрать конкретное место. * Базовая цена мест определяется тарифами (внешним сервисом).…
Т-банк (стажировка, 2 задача)
Завершится ли программа или нет? И если завершится, то что будет выведено в конце?
#tbank | Прислать задачу | Подписаться
Завершится ли программа или нет? И если завершится, то что будет выведено в конце?
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Increment {
private static int counter1 = 0;
private static int counter2 = 0;
public static void main(String[] args) throws InterruptedException {
int tasksCount = 100_000;
CountDownLatch latch = new CountDownLatch(tasksCount);
ExecutorService executor = Executors.newFixedThreadPool(100);
for (int i = 0; i < tasksCount; i++) {
executor.submit(() -> {
counter1++;
counter2++;
latch.countDown();
});
}
latch.await();
System.out.println(counter1);
System.out.println(counter2);
System.exit(0);
}
}
#tbank | Прислать задачу | Подписаться
👍2❤1
Реальные задачи с собеседований | Java
Задач осталось на два-три дня🫡 Прислать задачу - @privatevoidmain
This media is not supported in your browser
VIEW IN TELEGRAM
задачи закончились, буду публиковать мемы😏😂
😁52❤2👎1👏1
Реальные задачи с собеседований | Java
задачи закончились, буду публиковать мемы😏😂
у кого есть задачи с собесов, присылайте - @privatevoidmain🫡
😁23❤1👏1
2гис ( не 100% )
В комментариях дан скл-запрос. Нужно сделать аналог этого запроса в методе join()
#2gis | Прислать задачу | Подписаться
В комментариях дан скл-запрос. Нужно сделать аналог этого запроса в методе join()
#2gis | Прислать задачу | Подписаться
❤1
❤2👍2
СБЕР
Даны два листа стрингов.
Написать метод возвращающий совпадения
#sber | Прислать задачу | Подписаться
Даны два листа стрингов.
Написать метод возвращающий совпадения
#sber | Прислать задачу | Подписаться
❤2