Интерфейсы и абстрактные классы
Случилась со мной такая история ...
Недавно проходил собеседование на Java разработчика, как и на всех собеседованиях, задали вопрос про интерфейсы и абстрактные классы. Конечно, ответил, но все же решил перепроверить информацию на эту тему, так что здесь будет вся моя выдержка за это время
Давайте начнем с базовых ответов по теме интерфейс и абстрактный класс.
На вопрос: "Причем тут абстрактный класс?", отвечу так: "На собеседованиях эти вопросы идут рядом и в целом чем-то они похожи".
Итак, жил был абстрактный класс Василий. Объект этого класса создавать было нельзя, но Василий не унывал по этому поводу, ведь он содержит конструктор, может выполнять определенную логику в своих методах и иметь абстрактные методы (методы, не имеющие реализации, их нужно реализовать в классе наследнике), кроме этого Василий имел собственные поля с модификаторами доступа.
В те времена можно было наследовать много абстрактных классов и Василий не был исключением, наследовали его и всех его родственников. Но так получилось, что множественное наследование приводило к ошибкам наследования (одинаковые методы классов постоянно сорились) тогдв многие абстрактные классы иммигрировали в другие страны, а вместо них к Василию иммигрировали интерфейсы из public abstract Ифрики (нельзя наследовать много классов, но можно реализовывать много интерфейсов)
Таким образом Василий познакомился с интерфесом Амбалой. Амбала рассказал Василию, что он не содержит конструктора и реализовать его нельзя соответственно Методы интерфейса public и abstract по умолчанию
interface SomeInterface {
int SOME_THING = 11;
int foo();
}
Еще Амбала рассказал Василию, что содержит поле, но его поля только публичные, константные и статические, тогда как у Василия поля могут быть какими угодно. Но так было у предков Амбалы, тогда сам Амбала может содержать методы по умолчанию - медоты имеющие реализацию
interface SomeInterface {
default int foo() {
System.out.println("foo");
}
}
Также Амбала может иметь и статические методы, а обращаться к ним можно также как и к статическим методам класс
interface SomeInterface {
static int foo() {
System.out.println("foo");
}
}
public static void main(String[] args) {
SomeInterface.foo();
}
Шли годы и у Амбалы появились дети (jdk 9), они уже умели делать свои методы приватными и эти приватные методы могут быть как статическими так и нет.
Также к Амбале приехали родственники из Ифрики, оказалось, что они не содержат ни методов ни полей. "Как так получилось" - спросил Василий: "Что они умеют делать???".
Родственники рассказали Василию про таинственный полиморфизм: когда пустые интерфейсы используются, для пометки класса, реализующий этот интерфейс, чтобы использовать после этот класс в качестве реализации методов
interface Printable { }
class SomeClass implements Printable {
private int magicNumber = 3;
public int getMagicNumber() {
return magicNumber;
}
public String toString() {
return String.valueOf(magicNumber);
}
}
public class Main {
public static void main(String[] args) {
var someClass = new SomeClass();
print(someClass);
}
public static void print(Printable printable) {
System.out.println(printable);
}
}
Суть в том, что тема интерфейсов оказалось гораздо интереснее чем я думал.
P.S помимо прочего веду телеграмм-канал и буду рад если поддержите IT-литературу.
Задачи на логику на собеседовании
В школе у меня была книга "Занимательная математика" [кажется, для 5 класса]. Там были совсем простые задачки, которые и ученики старших классов, и взрослые люди либо совсем не могли решить, либо решали очень долго.
В жизни и работе мы регулярно сталкиваемся с задачами. Иногда они бывают простыми, а иногда сложными. Но сложность (сложна ли задача для нас) определяем мы сами. Точнее наш мозг. И тем почти любые задачи [даже самые сложные, на первый взгляд] проще и быстрее решаются, чем больше наш мозг прокачан одновременно в двух направлениях:
1️⃣ в умении решать нестандартные задачи или задачи с кучей неизвестных - логикой;
2️⃣ в насмотренности (общей эрудированности + знаниях о мире + опыте).
Так, например, на определенные должности (если работу / проект нужно делать срочно) нельзя брать людей, которые не обладают этими навыками. Потому что нет времени развивать эти компетенции. Именно поэтому на собеседованиях иногда дают задачи "на логику" ("нестандартные задачи"). Через них проверяют, обладает ли человек этими навыками, может ли он быстро и эффективно решать задачи, сможет ли сложные задачи превращать в (разбивать на) простые и каждую из таких задач решать за 1-5 секунд, укладываясь в лимит по времени по общей (в целом) задаче проекта / в работе.
Задача на логику.
Ниже пример задачи, которую нужно решать за 1-5 секунд, потому что в работе таких задач постоянно десятки и сотни в день и вы не должны на них отвлекаться (уделять им значительное время или внимание), а должны решать их быстро / автоматически, не задумываясь (чтобы, например, не отвлекаться от основного обсуждения, не уходить в сторону, тупить, пока вы пилите финмодель или обсуждаете с партнером изменения в условия договора).
Итак, читайте ниже условия "быстрой задачи" внимательно. Потому что после их прочтения, вам нужно в течение не более чем 5 секунд ответить на вопрос задачи.
Условия задачи. Представьте, что вы только что создали компанию, которая сдает автомобили в аренду: 1 день аренды стоит 1.000 рублей. И в вашем договоре не предусмотрено никаких штрафов за досрочный возврат авто. Клиент оплатил вперед 100.000 рублей за 100 следующих дней аренды авто. Однако через 50 дней (половина срока) клиент передумал и пришел вернуть авто. По договору вы возвращаете ему 50.000 рублей.
Через год вы понимаете, что бизнес не очень прибыльный - и решаете повысить цены вдвое. Однако для клиентов, которые берут авто сразу на 100 дней вперед, готовы сделать скидку 50%. Итого снова получается: 100.000 рублей за 100 дней аренды. Но в этот раз в договор вы вводите штрафы за досрочный возврат автомобиля при долгосрочной аренде. То есть в договоре так и прописано: если клиент берет авто на 100 дней, но возвращает авто досрочно (ранее чем через 100 дней), то расчет стоимости услуги производится исходя из цены аренды авто без скидки.
Вопрос. Сколько денег вы должны вернуть клиенту, если он решил всё-таки вернуть авто через 50 дней (прокатав половину срока)?
Продолжение следует ...
| Денис Сучилин | ECWORLD | https://t.me/dsuchilin
| Жизнь. Бизнес. Логика. Развитие
Собеседование на ОТК
Можете рассказать ваши истории прохождения собеседований?И что вы делали для того чтобы пройти,как готовились.
Нестандартные задачи на собеседовании. Часть V
... Как вы, наверное, уже поняли, в таком "мероприятии" и в таком возрасте в огромной корпорации в первую очередь сталкиваешься с тремя вещами:
1). ты ничего не знаешь (теперь это уже мое обычное состояние, поскольку мир стремительно меняется);
2). ты еще плохо понимаешь, на что способны люди, для которых это место в силу своей [до сего момента] неэффективности - было золотым дном;
3). ты щегол и таким тебя видят все топы.
Но есть и плюс. В силу этих же пунктов - тебя сильно недооценивают.
Поэтому первым делом Алексей отправил меня на обучение по стратегии, kpi, balanced scorecard ... я плотно погрузился в корпоративные финансы, activity based budgeting, activity based costing и так далее - во всё то, что в те времена еще не могли дать в университете, слабо было описано в российской проф- и бизнес-литературе и ты должен был собирать по крупицам в статьях, которые изредка публиковали в каком-нибудь условном fd ребята, которые были чуть старше и опытнее тебя.
Далее мне предстояло максимально быстро выключить "парня из региона", купить хороший костюм, галстук и туфли, стать максимально корректным и научиться слушать и слышать то, что люди пытаются до тебя донести (боли), и то, что они пытаются скрыть (коррупция, неэффективность для группы). А также начать очень быстро и эффективно работать ... в ситуации, когда основной твой юридический (формальный) заказчик и непосредственный юридический (формальный) руководитель - Управляющий Группы компаний (он же Гендир компании, в которой ты числишься) - и есть основной визави, противостоящий изо всех сил процессу оптимизации деятельности Группы компаний, на каждом шагу подставляющий тебе подножки и подбрасывающий "интересные задачки".
Собственно, благодаря этим "задачкам" я очень быстро "подрос" - и уже через несколько месяцев в Группе появилась первая пока 5-летняя стратегия (чуть расширенная на 10 лет в некоторых моментах, из-за начавшего подавать "сигналы" интернета, в котором тогда еще мало кто видел конкурента огромному действующему оффлайн-бизнесу). Затем появился финансовый план (это уже совместно с прекрасной девушкой, внучкой собственника, с которой мы быстро сдружились на профессиональной почве), мы научились разделять постоянные затраты между видами деятельности, появилось узкое планирование по подразделениям, появилась система показателей, бюджеты, контроль, начала вырисовываться система мотивации ...
К этому моменту я зарабатывал уже, кажется, 1.200 долларов (немного, но я продвинулся с 300 долларов всего за 1,5+ года работы в Группе). Больше получали только управляющий Группой, гендиры компаний и один зам управляющего, который продолжил отвечать за оптимизацию Группы (бизнес-аналитики, описывающие процессы, уже ушли). И в скором времени мне предстояло решить еще одну и очень важную "нестандартную задачу" и столкнуться с тем самым вторым https://t.me/dsuchilin/7 факапом, который мог отправить меня обратно домой ... в регион. Я захотел больше денег ... за свою работу (поскольку такая работа столько стоила, а моя зарплата всего в 2,3 раза превышала медианную ЗП в Москве)...
Продолжение следует ...
| Денис Сучилин | ECWORLD | https://t.me/dsuchilin
| Жизнь. Бизнес. Логика. Развитие
Первый зимний дайджест вакансий
Декабрь — это отличное время, чтобы подвести карьерные итоги года и продумать планы на следующие 12 месяцев. Мы составили список самых интересных вакансий, чтобы вдохновить вас на профессиональные свершения!
🧊Flowwow приглашает на работу ведущего юрисконсультанта. Зарплата до 200 000 рублей, ДМС и корпоративные льготы.
🧊Альфа-Банк ищет премиум-менеджера. Зарплата от 210 000 рублей, корпоративные льготы, возможность работать рядом с домом.
🧊В транспортную компанию «Атлас» требуется менеджер по транспортной логистике. Зарплата от 50 до 200 000 рублей.
🧊В «Азбуке Вкуса» открылось много позиций для менеджеров минимаркета. Можно найти работу в своем районе.
🧊«СберМаркет» приглашает к сотрудничеству водителей на своем авто. Зарплата до 240 000 рублей.
📌Еще больше предложений ищите на нашем сайте и в телеграм-канале.
Грузчик в театр, Санкт-Петербург
Опыт работы: не имеет значения
Оплата: 250 рублей в час
Обязанноcти:
Kомплекс погрузo-разгрузoчныx pабoт нa oбъeктax Худoжественно-Декорационного Производства Мариинского театра;
Разгрузка автомашин с материалами, а также штатных автомобилей (ткани, ЛКМ, метал, древесина, элементы декораций и т. д.).
Готовы к Евро-2024? А ну-ка, проверим!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037