Это копия, сохраненная 4 декабря 2014 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Список нововведений в JDK 8: http://winterbe.com/posts/2014/03/16/java-8-tutorial/
1. С чего начать?
Начните с условно-бесплатных курсов по данному языку: http://javarush.ru/
Дополнительную практику можно получить здесь: https://www.codehunt.com/
И здесь: http://codingbat.com/java
Код играючи: http://www.codingame.com/puzzles
Задачи на кодинг: http://postimg.org/image/xdfbvgps9/
Ещё задачки: http://eax.me/programming-language-learning/
Еще задачки: http://acmp.ru/?main=tasks
И ещё: http://www.programmr.com/zone/java
2. Что бы почитать?
HARD: http://docs.oracle.com/javase/tutorial/
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
ANDROID: http://www.coreservlets.com/android-tutorial/
SPRING: http://spring.io/docs
HIBERNATE: http://it-ebooks.info/book/517/
STRUTS: http://struts.apache.org/release/2.3.x/docs/home.html
3. Я зануда и я хочу умные книжки.
Рубрика Youth Oriented & Bydlo Approved:
1. Thinking in Java (4th Edition): Bruce Eckel
2. Effective Java (2nd Edition): Joshua Bloch
3. Core Java (9th edition) : Cay S. Horstmann, Gary Cornell
4. Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates
Больше здесь: http://www.proklondike.com/books/java.html
4. Я не умею читать и хочу видео
Пожалуйста http://dou.ua/forums/topic/8113/
5. Что насчет SQL?
Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
В качестве чтива рекомендую: http://oreilly.com/catalog/sqlhks/chapter/
6. Всё это хорошо, но без алгоритмов меня на работу не возьмут.
Не беда вот курсы от Принстонского университета https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
7. Я готов к первому собеседованию.
Проверь свои знания здесь: http://www.quizful.net/test
И здесь: www.careercup.com/
Вопросы к собеседованию от грязнозадой Индусни найдешь тут:
http://howtodoinjava.com/2013/03/01/core-java-interview-questions-series-part-1/
http://howtodoinjava.com/2013/03/04/core-java-interview-questions-series-part-2/
http://howtodoinjava.com/2013/03/10/core-java-interview-questions-series-part-3/
8. Оп - хуй.
И он c гордостью несет это звание сквозь века.
бамп
Ты и в этом треде задумал филиал по устроить?
нахуя нужен short?
Аноны из ньюфаг-треда поясняли, что в нем нет смысла и нужно юзать int, но зачем тогда вообще нужен такой тип, как short? Как и где его применять?
То же самое интересно и с float/double. На float тоже можно забить?
Сосаны!
Обмазывался массивами и напоролся на сортировку. Потыкал 2 вида(пузырь, выбором) но потом наткнулся на метод sort из аарайс и офигел. Реально нужно ли знать алгоритм простейшей сортировки если есть такая шняга?
Для встраиваемых систем и микроконтроллеров, например. Где критичны объёмы выделяемых ресурсов.
Для встраиваемых систем и прочих микроконтроллеров, где присутствует критичность к выделяемым ресурсам.
>Аноны из ньюфаг-треда поясняли, что в нем нет смысла и нужно юзать int, но зачем тогда вообще нужен такой тип, как short? Как и где его применять?
JVM хранит все данные в независимости от типа в 32 битных ячейках, для Лонга и Дабла дважды по 32. Т.е. даже определяя переменную Short ты занимаешь то же количество памяти и сопоставимую скорость обработки.
Но надо понимать что Ява язык кроссплатформенный, и в некоторых случаях эти типы можно применять для систем с малой длинной регистра, чтобы повысить производительность. Но я сомневаюсь что ты на практике с такими системами столкнешься.
Также тип имеет значение для операции умножения, для больших массивов данных.
Блять, может он только к стрингу лепится? Хотя тупо так обделять
>Обмазывался массивами и напоролся на сортировку.
Это говно все время спрашивают на собеседованиях.
- Какие алгоритмы сортировки вы знаете?
- В чем между ними разница?
- Напишите реализацию одного из них кроме пузырькового
По факту Java 7 сейчас использует гибридный алгоритм сортировки TimSort как стадндарт.
https://www.youtube.com/watch?v=NVIjHj-lrT4
Заебал, пиздуй учить API. Метод, которых ты хочешь заюзать, применим только для массива объектов. Создавай Integer[] и дрочи обратную сортировку.
>new JavaThreadGo(); //2.1
>//2.1
Должно быть так:
thread.setVersionMajor(2);
thread.setVersionMinor(1);
>Заебал, пиздуй учить API. Метод, которых ты хочешь заюзать, применим только для массива объектов. Создавай Integer[] и дрочи обратную сортировку.
http://labs.carrotsearch.com/hppc.html
public class greeting {
public static void main(String[] args){
System.out.println('SPASIBO EPTA');
}
}
Все он сортирует, но с компараторами только массивы объектов. И если передан массив объектов без компаратора, то объекты этого массива должны реализовывать интерфейс Comparable.
Всё, понял спасибо. Можно еще использовать тип integer без всяких иньерфейсов Comparable но он прожорлив для обычных задач.
>Реквестирую фидбэк о туториале с tutorialspoint. Годно?
Это методичка чтобы быстро войти в курс дела.
Там опущены некоторые особенности языка и виртуальной машины, и некоторые вещи устарели с момента написания. Но если нет желания читать книги по 700 страниц чтобы начать писать код, это твой бро. Мне ещё нравиться тем что там есть ссылки на большую часть дополнительных технологий которые могут пригодиться в будущем.
>Начните с условно-бесплатных курсов по данному языку: http://javarush.ru/
Есть бесплатно без смс?
первых 10 уровней хватает за глаза, за остальное нет смысла платить.Ну можешь ещё про ООП почитать
>Есть бесплатно без смс?
Тащемта можно привести троих фейко друзей и получить месяц в подарок. Правда анон говорил что лавочка прикрыта.
>Так что же ты советуешь, раз прикрыто?
Как правильно заметил анон сверху - до 10 бесплатно, а дальше не надо. Если лавочка с приведи друзей получи подписку работает - хорошо.
Не работает анон ничего не теряет.
Поддвачну вопрос, на днях дошел до 10 уровня и думаю пока скидка есть, прикупить аккаунт за 100$, так как первые 9 уровней показались мне годнотой. Кто обмазывался? стоит?
Ну деньги тащемто небольшие, а на знания так вообще грех жмотиться. Интересно просто, дальше так же годно идет обучение или заманив тебя первыми 10 уровнями продолжают кормить переспелым свиным калом
Вряд ли тут кто-то выкидывал на ветер 100$, чтобы рассказать о впечатлениях. В сети есть масса материала для изучения и без этого сайта для детей-аутистов.
это хохляцкая параша не ведитесь, аноны, хуета из хует
хуйня, не стоит
два чая
>все вам задачи готовые подавай
Назови хоть одну причину изобретать велосипед, если есть уже готовый и полностью рабочий аналог.
Я задонатил, дальше неплохо, но говорят после 29 лвл задачи кончаются. Но судя по местному говнобложику и паблику джуном можно пробовать идти после 20+ лвл.
Но чувствую придется почитать про Maven,Hibernate, Java EE и прочее.
Столько времени угробил на джавакор, так это говно нигде и не юзается в реалиях проектов.
Первую работу хуй найдешь.
Лучше бы сел за джаваскрипт. Уже бы бабки кое-какие получал, а тут боюсь заглядывать в спринг.
Всё верно. Причём на жс в большинстве случаев такие низкие требования, что ты можешь прям сейчас почитать парочку туториалов и апплаиться. Ну, ради приличия разберись с селекторами из джейквери и подёргай пару контролов из ui, типа дейтпикера и автокомплита.
Кто-нибудь собеседовался в Люксофт? Как оно проходит? Подойдет ли попенсорц и гитхаб в качестве пруфа опыта, если получить из старой шараги референс - не вариант вообще? (она самоуничтожилась под громкий взрыв пукана гендиректора). А без пруфа опыта я вообще 23-летний хуй с непрофильным техническим образованием.
И вообще только методы класса должны обрабатывать данные класса
>Причём на жс в большинстве случаев такие низкие требования, что ты можешь прям сейчас почитать парочку туториалов и апплаиться
То-то я смотрю, по интернету добро пошло в последнее время
Ты какой-то ебанутый.
У тебя есть класс, в нем массив интов, есть метод филл, который заполняет этот массив рандомными интами. Пока все ок.
Потом ты в мейне создаешь массив своих объектов, в каждом из которых массив интов, и потом вместо того чтобы вызвать в цикле на все объекты массива свой метод филл, ты пытаешься присвоить объектам рандомный инт.
Ты вообще не понимаешь что ты делаешь? По моему нет.
алсо в коде куча ошибок
mass[j][j] - должно быть mass[j]
mass.length для двумерного массива вернет тебе не то, что ты думаешь
да пиздец тут код не рабочий чуть больше чем полностью, кому я все это пишу, ебать еще и имя DEANON ololo, иди нахуй.
Она могла string в полноценный код и выполнить его.
Мне нужно что-то похожее для джавы.
То есть мне дано слово "BOLD" (String), мне нужно соединить его с Font что бы получилось Font.BOLD.
Такая функция есть или придётся писать сотню строк кода ?
Font это класс. BOLD - переменная.
В 99% случаев можно обойтись без eval. Для всего остального есть ClassLoader
про знак вопроса разобрался на парочке примеров и гугла
яб тебе ответил, но Ошибка постинга: В сообщений присутствует слово из спам листа.
Еще бы не заполняются - ты их не ицициализируешь.
Да я уже понял свою ошибку с инициалтзацией. Я создал класс с конструктором и вызывая TDM m = new TDM[3][3] пытался создать именно массив примитивов так в конструкторе задал массив. А получал массив обьектов TDM видимо. Я потерялся в понятии "класс". Я пытаюсь в ммммаксимум ооп не зная принципов ООП(всего раз прочитал и видимо херово запомнил)
Хули ты такой не агресивный? Тебе в детстве Bocu no pico советовали?
тут больше байтоёбства чем оопущенства
>А получал массив обьектов TDM
This. Т.к. у тебя нет конструктора по умолчанию, то создай сперва двумерный массив, потом создай объект TDM, передав туда этот массив, а потом вызови метод fill для созданного TDM. Получается, конечно, говнокод, но это максимально приближённый рабочий вариант к твоему коду.
Вот я могу создать класс с 3-мя переманными и инициализировать их через конструктор при создании.
Class gopa{
int g,b,n;
}
gopa(int f,int h,int j){
h=b;
f=g;
j=n;
}
gopa tbl = new gopa(3,4,5);
Как сделать такое если у тебя вместо переменных двумерный массив?
public static void main(String[] args) {
int[][] mas = new int[3][3];
TDM tdm = new TDM(mas);
}
}
class TDM{
private int[][] mas;
public TDM(int[][] mas){
this.mas = mas;
}
}
C[4][17] = 23 x - 12
и в зависимости от х, выбирая эту ячейку я буду получать разные числа.
Я уже час пытаюсь найти, как сохранить функцию, как параметр, но ничего нужного не нахожу. помогите пожалуйста
(i + 19) x - (j-5)
С помощью рефлексии делаешь двумерный массив методов, и потом вызываешь их, смотри Reflection, Method[], getDeclaredMethods, invoke и т. д.
спасибо
Можешь создать интерфейс Function<K,R> с методом
T apply(R r) и создать массив этих функций.
Но тут зависит от того какие одинаковые ли параметры и результаты функций, если нет то придется поебаться с приведением типов.
Охуенный ОП-пик.
например один порт - низкоприоритетные входящие запросы, другой порт - высокоприоритетные
Сап программач, хочу спросить у тебя советане спеши бросаться говном: прохожу вот эти курсы по java: http://javabegin.ru/products/fastjava/ , где запилили проекты "калькулятор" и "mp3плеер"
(эти проекты создаются по ходу курса, по сути это копипаста со своей изюминкой), встал вопрос: какие книги необходимо прочесть (и желательно чтобы в них было поменьше воды, а еще лучше только то, что реально используется на практике, к примеру алгоритмы сортировки и кратко суть - на чтение 1000+ томов у меня просто нет времени, неплохо будет если информация будет выложена в виде емкой методички)), чтобы претендовать на вакансию джуна, примерный срок: 3 месяца, я уже нашел кое-какие издания, но не могу определиться, так же выслушаю советов опытных анонов
1) Изучаем java Кэти Сьерра и Берт Бейтс
2) Философия java Брюс Екель
3) Герберт Шилдт - Полный справочник по Java
4)https://dl.dropboxusercontent.com/u/829163/draft.pdf
И вопрос к анонам - сколько времени у вас ушло на то, чтобы стать джуном? А В условиях ограниченности времени (в моем случае: 9 часов на работе + 4 часа дорога + 1 час помыться/поесть ~ 1-2 часа остается на обучение)? И как вы думаете, стоит ли заливать на гитхаб эти проекты (калькулятор и мп3-плеер)? Вот вопросы, накоторые я на данный момент могу ответить:
Основы ООП
Наследование, инкапсуляция, полиморфизм
Модификаторы доступа private, public, protected
Что такое интерфейс
Что такое абстрактный класс
Что такое static
Можно ли наследоваться от нескольких интерфейсов и абстрактных классов
Рассказать про коллекции
Что такое индекс
>Но вот об этом я пока еще ничего не знаю:
Уметь написать иерархический запрос
Примеры агрегатных функций
Оконные функции
Сложность. О(n). Объяснить на пальцах
Быстрая сортировка, сортировка вставками, сортировка кучей. Их сложность.
Generics.
mutable/immutable
Многопоточность
Это мне один анон список вопросов составил, их я и скопировал
>3 месяца
>в моем случае: 9 часов на работе + 4 часа дорога + 1 час помыться/поесть ~ 1-2 часа остается на обучение>>396349
>А В условиях ограниченности времени (в моем случае: 9 часов на работе + 4 часа дорога + 1 час помыться/поесть ~ 1-2 часа остается на обучение)?
С таким режимом за три месяца нереально. Ты просто нихуя не поймешь. Если ты конечно работаешь на работе и твоя работа не связана с программированием.
>работа не связана с программированием
Нет, иначе я бы не стал перекатываться, но время в дороге я думаю можно с пользой использовать, у меня цель сейчас - устроиться в контору средней руки, там не брезгают студентами и прочими недоучками NC, если кто поймет, мне главное попасть к ним, а дальше уже профессионально развиваться будет не так сложно
>язык для лоботомированных дебилов устаревший в момент его создания
Посоны, я невфаг в этой вашей Jave, но ведь это же юмор такой, да? Как язык может быть устаревшим, когда все приложения для современных ведра и яблока пишутся на нем?
Дорогу осилит идущий. В любом случае это интересно, желаю удачи.
либо долбоеб смешал в одну кучу десктоп и мобильные девайсы, либо он имел в виду iOS.
залезь туда откуда вылез
А я - Михаил Прохоров. Приятно с тобой познакомиться.
http://ideone.com/RLXyAu
>Платиновый вопрос: стоит ли учить джаву, чтобы зашибать бабло и сьебать за границу?
Нет, ни в коем случае не стоит.
Ага, понял, это ты так сказал, чтобы было меньше конкурентов, значит все-таки стоит.
Просто я в вузе всего понемногу изучаю и не знаю, в какую область углубляться.
>чтобы было меньше конкурентов
Пол Индии конкурентов, одним больше, одним меньше - похуй абсолютно.
ёба-автодополнение на порядок круче
Но говноеды предпочитают печатать говно руками.
Так и есть. И именно поэтому в ней очень много индийцев и к ним приближенных.
>crm\erp-систему
Они уже все разработаны для нас. Но ты можешь написать клиента под их бэкэнд на Android.
Между ними я поставил функцию, которая высвечивает текст в JTextarea, который говорит о том, что функция выполнилась.
Почму-то когда я запускаю программу, приложение на вид зависает, но на самом деле выплолняет все, и не обновляет никакой информации, до тех пор пока все функции не закончат свою работу. Почему джава не выполняет то, что я прошу именно в той последовательности, в которой я прошу?
Диплом бы хотелось на жабе написать.
Как же вы заебали. Джава выполняет именно то, что ты просишь. Или иди и дрочись с дебагером для поиска причин того, что ты мудак или выкладывай код сюда если хочешь, чтобы другие тебя ткнули носом.
В в древнем билдере такая же хуйня была, там всё работало в одном потоке, и пока ты управление из своего обработчика не взвращал, гуй не перерисовывался. И в кутэ так. Кто хочет одновременно и считать и гуй обновлять должен мутить потоки. Но это на крестах, ясен пень. Но судя по симптомам в джаве та же хуйня.
В гугле не забанен, но так все мутно написано.
Заработная плата разработчиков
Java-разработчик (нет данных) Ур.
Java - разработчик
Уровень предлагаемой заработной платы (руб. gross)
минимальный средний максимальный
Junior
Москва 40 000 49 409 70 000
Санкт-Петербург 30 000 38 750 60 000
Воронеж 16 000 25 333 30 000
Екатеринбург - - -
Нижний Новгород - - -
Новосибирск 25 000 35 000 40 000
Regular
Москва 80 000 104 627 130 000
Санкт-Петербург 50 000 85 517 110 000
Воронеж 45 000 56 725 67 800
Екатеринбург 40 000 54 167 70 000
Нижний Новгород 40 000 55 000 65 000
Новосибирск 50 000 58 333 75 000
Senior
Москва 90 000 132 800 180 000
Санкт-Петербург 90 000 128 095 160 000
Воронеж 84 000 98 000 105 000
Екатеринбург 50 000 72 100 87 500
Нижний Новгород 65 000 76 250 80 000
Новосибирск 70 000 87 500 120 0
Заработная плата разработчиков
Java-разработчик (нет данных) Ур.
Java - разработчик
Уровень предлагаемой заработной платы (руб. gross)
минимальный средний максимальный
Junior
Москва 40 000 49 409 70 000
Санкт-Петербург 30 000 38 750 60 000
Воронеж 16 000 25 333 30 000
Екатеринбург - - -
Нижний Новгород - - -
Новосибирск 25 000 35 000 40 000
Regular
Москва 80 000 104 627 130 000
Санкт-Петербург 50 000 85 517 110 000
Воронеж 45 000 56 725 67 800
Екатеринбург 40 000 54 167 70 000
Нижний Новгород 40 000 55 000 65 000
Новосибирск 50 000 58 333 75 000
Senior
Москва 90 000 132 800 180 000
Санкт-Петербург 90 000 128 095 160 000
Воронеж 84 000 98 000 105 000
Екатеринбург 50 000 72 100 87 500
Нижний Новгород 65 000 76 250 80 000
Новосибирск 70 000 87 500 120 0
Что ты этим хотел сказать?
спасибо, бро, через пару часов попробую
Напиши запрос, который будет сортировать работников фирмы по числу отгулов и должности. Сотрудники, должность и записи об отгулах - три разных таблицы.
Bocu no java
Пожалуйста, перечитай шапку, будь няшей.
бро, спасибо, работает отлично. Можешь мне объяснить, почему не работало и почему заработало? ведь после перемен IO функции и функции обновления JFrame так же работают в одном потоке... что изменилось?
Вызов textField.setText() меняет только значение переменной внутри textField, а это дело надо еще и нарисовать. Но загвоздка в том, что поток занимающийся отрисовкой сейчас занят твоим IO и пока он не освободится (метод не выполнится до конца) форма перерисована не будет. По этой же причине не будут срабатывать кнопки и прочее (форма "зависает"). Выходом из данной ситуации является создание нового потока, который будет заниматься своими грязными делишками на стороне и время от времени выплевывать прогресс через setText(), а поток отрисовки спокойно это дело рисует т.к. не имеет других задач в данный момент.
спасибо, теперь все понятно
Контора маленькая, да, но по ощущениям уютненько.
Какие подводные камни?
Хлебнул чайку за твоё здоровье. IDE-бляди настолько отупели, что не смогут вручную build.xml для HelloWorld написать. А из-за автодополнения кода хуй вспомнят хоть один метод из java.lang.String
Засунь себе в жопу свои регекспы и юзай SAX
Пердолик же.
Судя по всему все нормально. Испытательный срок всегда оплачиваемый.
Желаю Удачи.
Алсо что за код выкладывал на Гит?
Примерно нужно что-то такое
if (file.isOpen()) file.close;
Нужно именно его закрывать в приложении, так как заказчик попросил.
убрал, и я спрашивал правильно ли реализован этот ебаный алгоритм? Меня смущает обновление а и b. Судя по всему оно нафиг не нужно
на вид правильно. почитай, зачем он сделан и проверь на пимерах, выдает ли нужный ответ
Я ручками считал и получил слегка отклонения :
руками : x1=0.73
x2=0.83
f1=13.96
f2=13.88
Я надеюсь ЭТО НОРМА
Но меня поёбывает неуверенность
Ок, успокоил, спасибо.
Я не настоящий сварщик, но думаю, что за это отвечает ОС, поэтому, пока процесс, использующий файл, работает, у тебя ничего не выйдет. Поэтому убивай процесс, открывший его.
И пусть только опущенцы с другими языками попробуют что-то вякнуть. Я думаю это жирная точка в языковом холиваре.
Начал на javarush решать задачки и читать лекции и скоро перестал понимать, что надо делать. Нихуя не понятно. Сначала просто println пишешь, а потом сразу ничего не понятно.
спасибо бро
Спс. Практически всё говно, что писал когда-то сам
Вангую "нуль-справа-убери-джавамакака-безмозглая". А если его убрать, сишники и хаскелебляди всёравно сосут.
Читай книги, проще будет.
Это в час?
по этому условию я должен переприсваивать и получать в конце "7.0 и 0" но хз как сделать
Лол, зато в eclipse есть супер фича - рестарт эклипса. Что как бы намекает на качество этой IDE. Idea очень хороша, рекомендую (удобство работы, рефакторинга, классные плагины, заточка под java, разные продуманные скины)
ёба, теперь я буду, ёба, на джяве, ёба
хуярить, ёба, классы, ёба, с этими, ёба
ну как их, ёба, а, ёба, объедками
поиск элемента в массиве захуярю...
бамп этому заданию
>Благодаря большой популярности Джава среди жителей Востока, готовых работать за воду, вы можете быть уверены, что скоро потеряете своё рабочее место
Ты это про себя писал, я гляжу.
Неизвестно
O_o Это какую?
а KDE пропатчил уже? или тоже подсказать?
midl
tim lid
>Как его выгрузить из памяти?
Открыть VisualVM и кропотливо отследить все ссылочки на объект. После чего сделать обертку, из которой будет только одна ссылка на тяжелый объект, из которой им и управлять, и через которую дергать твою картинку.
Сделал везде где можно повторное использование объектов, вроде перестало жрать.
Только почему JVM при захапывании свободной памяти под хип "про запас" ее обратно не отдает? Можно как нибудь ее пнуть, чтобы не жадничала и оптимизировала?
Серверные программы обычно работают с фиксированным объемом памяти. Никому не нужна программу у которой потребление непредсказуемо скачет. Не отдает из-за традиций linux выделять память через sbrk.
inb4: Apache Hadoop
Что характерно. Задавал я вашему брату-пидору как-то задачу, требовавшую модульности. Сначала он попытался switch...case мне подсунуть как решение. После, будучи обоссан мной за тупость, поднатужился и высрал - внимание - ProxyFactory.
И ты это говно съел?
Спасибо. Сразу видно, это решение уровня энтерпрайз Big Data. Осталось к нему облачные вычисление подкрутить и можно в продакшн.
Определить соответствие элементов произвольных типов условию, заданному пользователем.
Дали тестовое задание.
Write a program that simulates work of a vehicle factory.
Program should read from standard input description of an order sent to the factory. In the next step it should „build” ordered vehicles and as output it should print total cost of an order to standard output. After processing the order program should wait for next package of input data.
Input
Input data contains an XML document as can be seen on the following example:
<order>
<item type=”car”/>
<item type=”car”/>
<item type=”truck”/>
</order>
Every item element describes one request for vehicle production (type of vehicle is determined by value of the type attribute). Correct processing of the above order should result in production of two vehicles of type car and one vehicle of type truck.
Интересует момент с ожиданием следующей порции данных. Как это организовать? И не понятно что имеется следующей порцией - новый ксмл документ? Или что? Подскажи, двач.
Лол, кто-то нашёл мой гист
Нет, блядь, в консоль пердолится. Какая тебе-то разница - твоя задача в том, чтобы написать внутреннюю логику.
>посоны, стоит ли читать Thinking in Java (4th Edition) если учесть, что с тех пор вышло 3 обновления джавы?
Да большая часть вещей рассмотернных там, актуальна до сих пор. Рекомендую их сразу пробовать. Алсо не расчитывай. что в конторе куда ты придешь будут писать на Java 8. С высокой вероятностью тебя на первое время посадят поддерживать legacy-говно.
спасибо.
эти сгенерированные файлы как-то помогают для запуска или они для работы ide генерируются? Если нет, где можно почитать как их использовать?
Тебе их использовать не надо. Там настройки проекта и параметры компиляции. Это для ИДЕшки файлы, а не для тебя.
>и какой вкратце цикл написания приложения (я знаю только что нужно код написать, а что потом, что до этого и т.д.)
http://en.wikipedia.org/wiki/Systems_development_life_cycle
Помогите, не запускается. Пишет:
Exception in thread "main" java.lang.NullPointerException
at fibonaccii.Fibonaccii.main(Fibonaccii.java:29)
Java Result: 1
При этом NetBeans говорит, что выполняется только чтение из массива, но не запись. Вот только как это исправить не говорит.
Точно, я забыл эту строчку, но проблему это не решило. Все та же ошибка.
Но добра, что заметил.
Промахнулся, но все равно помогите.
Всё заработало. Спасибо. Не знал, что нужно так делать. В ебучей книжке пример без создания объекта для каждого элемента массива. И не слова об этом.
>>first from:all, hasField:FieldA OR:(hasField: fieldB and:(valueOf:(fieldB is: floatpoint and: valueOf:fieldB = 5.1)))
>В ебучей книжке пример без создания объекта для каждого элемента массива
Так пошли нахуй такую книжку и возьми другую, нормальную. Поначитаются, блядь, своих индусских мантр.
Суп, /пр.
Вопрос следующий: я пишу приложение для хрома для работы с нашим любимым двачом, но вот наткнулся на проблему, от которой у меня нехило бомбит. Итак, у меня есть функция:
function addFile_captcha(url) {//Тут получаем из гугла файл с переменной, из которой берем recaptcha_challenge_field
var jqxhr = $.get(url, function () {
> console.log("ok");
})
.done(function (data) {
> var m = "{" + data.toString().split('{')[1].split('}')[0] + "}";
> var recaptcha_challenge_field = m.split("challenge : '")[1].split("'")[0];
> captcha_url = "https://www.google.com/recaptcha/api/image?c=" + recaptcha_challenge_field;
> addIMG(captcha_url);//функция вставляет HTML-контент (display:none) вниз
})
.fail(function () {
> alert("error");
});
}
Так вот, Анон,
1)почему в тот момент, когда коллбэк функци запускается и начинает выполняться то, что я выделил зеленым, ( console.log("ok"); и прочее, что в .done), HTML-контент всей страницы Двача куда-то девается, а я вижу только пустоту?
2)Проблема в том, что функция addIMG у меня для начала получает элемент на странице по id, а из-за того, что на странице нету ни хуя, она найти ничего и не может.
3)Вызвать addIMG после addFile_captcha я, как понимаете, тоже не могу, так как $.get работает асинхронно и скачивает гугловский контент позже, чем запустится следующая функция.
Аноны, помогите, пожалуйста. Если кто-то захочет взглянуть на весь код или поинтересоваться, что это за хуйня, долбоеб ни хуя непонятно написал, я дам ссылку на ГитХаб.
Двачую. Или просто List<type>. Мне они больле доставляют, люблю хранить типизированную инфу, если могу.
Видимо, основное отличие от обычных массивов в том, что на эти больше памяти выделяется.
Они эту дополнительную память с лихвой отрабатывают наличием годного функционала, который твои самописные велосипеды будет превосходить в 95% случаев и по скорости, и по штабильности.
Вангую, что в книжке рассматривается массив примитивов, которые создавать как объекты не нужно или используется Integer/Long/Float/Double/etc., которые создавать специально тоже не обязательно т.к. джава сама умеет преобразовывать "Integer i = 5;" в "Integer i = new Integer(5);"
То есть я ещё и интерпретатор должен писать? Может сразу вербально вводить, на человеческом языке, чтобы ещё и искусственный интеллект сюда приплести?
Ты не думал что подобное должен писать программист в коде, а не "пользователь" в консоли?
> Видимо, основное отличие от обычных массивов в том, что на эти больше памяти выделяется.
На 3.5 байта разве что. Столько же выделяется, только не забывай сразу capacity проставлять, где возможно.
No. Книга: Кен Арнольд, Джеймс Гослинг - Язык программирования Java
>Вообще не стоит использовать ни массивы, не списки.
Тогда да, тупая книга
А этих >>399281 >>399347 не слушай. Используй массивы до тех пор пока хватает их функционала. А вот если уже потребуется изменять размер, тогда и смотри в сторону List'ов. С таким подходом лучше поймешь в итоге что за магию творит ArrayList и почему крайне желательно указывать его начальный размер.
Конкретно ебанашкам вроде тебя (неспособным даже в гугл)? Пойти в макдак работать.
Хуйню сморозил и отправил в гугл. Отведай ка свеженькой урины дебиленыш.
Для пользователя твои соратники уже написали красивенький интерфейс с кнопочками, который сам генерирует запросы в таком виде. Ты не увиливай, ты задачку решай, гений лямбда-исчисления.
Не знаю как в джяве, а в скале можно наворотить говнецо вроде этого: http://ideone.com/9OKIap
Можно подумать иммутабельные коллекции не являются массивами/списками.
о, збсь, почитаю, но все равно интересно, для чего яву используют больше всего и осенние она такая популярная? (не считая простоты разработки)
Больше всего разумеется для серверов (веб-бэкенды, например), потому что сервера это большая часть программирования вообще.
Ещё под ведроид в основном на ней пишут. А под десктоп уже всё написано.
Ок. А теперь то же самое, но для произвольного запроса. Плюс твое поле может содержать список значений.
>но для произвольного запроса
define произвольного
И как ты будешь такое вписывать в "красивенький интерфейс с кнопочками".
>Плюс твое поле может содержать список значений
Пишешь любую какой в голову взбредет фильтр и его уже из своего интерфейса с кнопочками используешь.
http://ideone.com/2zuS7P
Только не говори что пользователь должен фильтры сам на ходу придумывать.
Произвольного - это значит такого, который содержит любые комбинации and, or, nor и прочих операторов, сравнения не только на равенство, сравнение листов как в напрямую заданном порядке, так и со значениями в произвольном порядке, сравнения по сублистам и прочую няшность.
Еще было бы очень хорошо, если твой код не приходилось бы переписывать наполовину при введении нового функционала.
>Произвольного - это значит такого, который содержит любые комбинации and, or, nor и прочих операторов, сравнения не только на равенство, сравнение листов как в напрямую заданном порядке, так и со значениями в произвольном порядке, сравнения по сублистам и прочую няшность.
Ну наклепай ещё сотню функций и будет это.
>Еще было бы очень хорошо, если твой код не приходилось бы переписывать наполовину при введении нового функционала.
Я показал базовый пример, а рефакторить это, обёртывать в классы и функции и т.п. это уже вторично.
В общем главная идея это http://www.scala-lang.org/api/current/index.html#scala.PartialFunction
>Я показал базовый пример, а рефакторить это, обёртывать в классы и функции и т.п. это уже вторично.
>Главное что я самый простой вариант нахардкодил, а доводить это до уровня продукта - это уже вторично
А, ну понятно. Видишь ли, эта ветка обсуждения началась с твоего утверждения, что дизайн-паттерны не нужны. Теперь мне хотя бы понятны твои мотивы - ты ничего серьезного и не писал никогда. Удачи на парах, увидимся с тобой на собеседовании.
Вообще-то я включился мимокрокодилом и мой первый пост в этом треде - >>398986
Но вот тебе рефакторенный вариант http://ideone.com/vpDAtS
Тоже одно время интересовал вопрос компиляции в exe и лучшее, что нашел - Excelsior JET. Хотя и сам ни разу не пробовал.
меня лучше пусть обоссут пираты, чем отпиздят кресты
Ты жадная мразь, хуже червя-пидора. Те кто спиратят твоё говно всё равно не стали бы за него платить.
не пизди, они просто жадные мрази, которые хуже червей-пидоров и им жалко платить, но они заплатят если не смогут спиздить, потому что их конкуренты заплатят и будут их обоссывать
КАК АБСТАЯТ ДИЛА С МАССИВАМИ)))))00)0000)))
Кого-нибудь спрашивали на собеседованиях про linked hash map, tree map, linked list, ну и про прочие array-листы да векторы? Очобу вроде бы надрочил, но что интересно что в принципе могут спросить.
почитал, все говорят, что так лучше не делать. Но я все равно не понимаю, почему гц не может это делать сразу же, как только надо. Может он таки делает это, просто я не знаю. Или у них там философия что надо так делать только по необходимости?
во что выродится HashMap, если hash() определить как return 0;?
Для освобождения памяти нужно считать ссылки на каждый объект и делать это после каждого метода слишком накладно
можешь вызывать гц() где хочешь
джява-препроцессор так и так вставляет эту строчку после каждого стейтмента
Где лучше всего почитать за потоки, байтовые-символьные и все такое?
Где лучше всего описана работа самого компилятора и виртуальной машины? Чтобы знать, где, когда и что загружается, особенно статические методы в этом плане интересуют.
И нахуя нужны вложенные классы, да еще и private?
>можешь вызывать гц() где хочешь
Лул, бездушной джавамашине похуй что ты там вставишь. Вызов метода гц() не гарантирует его немедленное выполнение.
ничо не понимаешь
Вложенные классы полезны в тех случаях, когда эти классы используются только в рамках одного класса.
Питон или джява? Где больше перспектив?
http://pastebin.com/bAmkvDTg
почините пж чтоб работало, а?
Конечно нужны
http://docs.oracle.com/javase/8/docs/api/java/util/function/IntBinaryOperator.html
Используй жидею, наконец.
Конкретно про классы тебя не спросят. Могут спросить, знаешь ли ты, нахуя там столько разных листов и карт, и какие у каждого из типов подводные камни.
В энтерпрайсе не принято считать память. Если надо, ещё докупят.
Из подводных камней нарыл только отличия во времени выполнения для разных операция с листами O(1), O(n), вот это вот всё. Типа для таких-то операций лучше LinkedList чем Array, для таких-то TreeMap лучше HashMap-a. А что еще можно сказать - не понимат.
Сейчас гуглю какие-то подвохи с 0 и null, как сказал >>399830 вообще охуеть.
Там фишка не в 0, а в том, чтобы хэш был одинаковый для всех объектов класса.
Гуглить нужно устройство HashMap
А что про него можно написать, кроме официальных доков, которые не такие уж большие?
Нужно просто знать, что лямбды - просто сахарок для паттерна комманда.
:)
Проблема такая. Есть довольно здоровая клиент(js,html)-серверная(java) система.
На сервере есть такая структура классов:
http://paste.org.ru/?2pusjg
В QueryResource описаны методы, принимающие http запросы от js части.
Мне нужно спроектировать кусок нового функционала, а для этого мне по-сути нужно создать в каждом из этих трех классов новые методы, которые по цепочке начиная с QueryResource и заканчивая OlapQuery пересылают данные, которые надо добавить в private org.olap4j.query.Query query (через методы библиотеки olap4j). При этом каждый из этих новых методов так или иначе должен взаимодействовать с уже имеющимися private членами, которые я написал в классах выше.
Проблема в том, что надо бы сделать это отдельно от уже существующей реализации, т.е. лид говорит, что надо по-минимуму лезть в готовый функционал, и все пилить в отдельных классах
Вопрос такой. Правильно ли я понимаю, что в данном случае наследование никак не поможет (т.к. надо обращаться к private полям), и что единственный вариант - пилить отдельные классы, подменяющие OlapQueryService, OlapQuery (и может быть IQuery)? Т.е. я думаю сделать копии этих классов, но в каждый добавить новый, нужный мне метод, и потом через бины переключить QueryResource на работу с моим классом-аналогом OlapQueryService, который в свою очередь будет хранить в хешмапе экземпляры моего нового класса-аналога OlapQuery.
Спасибо за внимание.
Мне не нравится твой подход, особенно часть про копию. Тебе нужно не копировать класс и переключать всю обработку на свой велосипед, а сделать новый QueryResource и обрабатывать в нем только запросы нового функционала. Как ты там что переключать будешь - уже похуй.
Есть небольшая разница в зависимости от того, что использует HashMap: chaining или open addressing.
>При этом каждый из этих новых методов так или иначе должен взаимодействовать с уже имеющимися private членами, которые я написал в классах выше.
Ну сделай их protected, даун
HashMap - это конкретный java класс, мудило.
>>400259
Хамите, парниша. Мы не перезвоним.
http://openjdk.java.net/jeps/180
Дурачок запостил какую-то левую говноссылку, в которой рассказывается про новую фишку Java 8.
В рашке сейчас даже мало кто интересуется восьмой явой - а ты тут такую хуетень постишь.
Классическая реализация HashMap в яве - метод раздельных цепочек, гугли устройство.
И да, >>400423 пишет правильно: зависит от реализации. Ибо параша, подобная тебе, с лёгкостью напутает хешмап и хештейбл
Алсо, восьмая ява твоя нахуй никому не нужна. Лямбды для всратых. Обтекай
обосрался@обсирай
Обтекай, обтекай, мамкин илитарий.
Для НЕ всратых: ява7, конкурренси, гуава, спринг, градл, jetty. А пердолики пусть дальше наяривают на очередной weaklinkedtreehashmap c МАКСИМАЛЬНО БЫСТРЫМ ДОСТУПАМ БЕЗ СМС. Вас на крестах надо кодить - там виртуальные диструктары и множественное наследование, для илиток просто малина
Вот есть метод String.replaceAll (или Matcher.replaceAll), который заменяет все совпадения на обычную строку (можно только подставить группы из результата $1, $0 и т.д.) А требуется заменять не на константную строчку, а вызывать функцию.
Как это наименее костыльно реализовать?
Если применять паттерн к StringBuilder и заменять прямо в нём, что-то типа
StringBuilder sb = new StringBuilder(str);
Matcher matcher = pattern.matcher(sb);
while (matcher.find()) sb.replace(matcher.start(), matcher.end(), func(matcher.group()));
Подозреваю, что не взлетит (как будет проходить find, когда исходная строка изменяется по ходу).
Цирк одного пролетария итт
Молодой человек, на вопрос вы ответили неверно и нахамили - мы не сможем продолжить с вами сотрудничество.
Ваши диспуты нисколько не полезны ни для вас, ни для других посетителей треда.
>но ищи в строке, а изменяй билдер
Но тогда же позиции matcher.start() и matcher.end() будут искаться в строке, а в билдере, начиная со второй итерации, возможно смещение.
- в строке найдено совпадение с 5 по 10 символы (5 символов). В стрингбилдере производится замена этой подстроки на строчку длиной в 2 символа ([5] и [6]).
- в строке найдено совпадение с 20 по 30 символы. Но в стрингбилдере это будет уже, не 20-30, а 17-27.
- и т.д.
Можно, конечно, при каждой замене ещё учитывать это смещение (как разницу длин исходной и заменённой подстроки). Но может можно и как-то менее криво?
http://ideone.com/lVjLzr - во-первых
Искать нужно по регулярке и заменять не тупо на строку, а на функцию от строки.
Хуй знает, может криво изъясняюсь.
Значит суть такова. Пользователь вводит строку. И по регэкспу ищутся совпадения, дальше некоторая обработка этих данных (для каждого совпадения, вызывать функцию, а не тупо "A"->"B") и потом замена.
Ну например, "(?i)HU[IJ](\\d+)" найти "hUi265", дальше обработка, некоторые действия (например, распарсить число, сделать ещё что-то в зависимости от результата и собрать новую подстроку) и провести замену.
а что сейчас с вакансиями джуниора происходит?
Курс доллара как-то влияет на всю эту хрень? Или война никогда не меняется?
>а что сейчас с вакансиями джуниора происходит?
Стало меньше. Требования повысились.
Но если не долбоеб то работу можно найти.
Это скорее связанно, с тем что написанно милионы бэкэндов, которые можно без особых усилий модифицировать, а фронтарей для того чтобы адаптировать эти бэки не хватает. С другой стороны бэкэндищики всегда рубили больше баблеца, и имели меньше проблем с заказчиком и ПМами.
А как вообще искать работу джуниором?
Написать всем известным компаниям на (инфо|hr)@(дойчебанк.зига) и ждать когда перезвонят?
И дополнительный вопрос: как в себе распознать долбоёба?
[CODE]javac @src_files -d bin -classpath ...
jar cfm name.jar MANIFEST ./bin/src/ -C bin [/CODE]
В созданом jar-e ко всему дереву обьектов еще и bin добавляется, как победить?
Ну блять, разметку сломал.
Точнее так:
[CODE]
javac @src_files -d bin -classpath ...
jar cfm name.jar MANIFEST ./bin/src/
[/CODE]
Ебаный make не переходит по cd. Написал отдельный скрипт под запаковку jar. Так работает.
А ты думаешь, все джависты под десктоп пишут?
Или ты не знаешь, что такое энтерпрайз? Энтерпрайз - это веб на 99%.
я нуб просто, вот и все. гуглил в нете инфу про джаву и увидел много тем по вебу, стало интересно.
я не путаю
>Посоны, а сильно ли популярна джава для веба?
Моя контора стряпает копроративные порталы.
Бэкэнд весь на жабе. Фронт на жаваскрипте.
ппц, особенно второе.
Дебил, перечитай еще раз то, что пишут по ссылкам и ту херню, что ты написал.
Книги: Java Network Programming, 4th Edition, Killer Game Programming in Java.
+исходники l2jserver
Всё правильно делаю? Или не стоит заморачиваться, а дальше изучать и закреплять знания разных тырпрайз фреймворков?
Пиши MMORPG на HTTP, очевидно же.
Как ругается?
Если уж не можешь скопировать сообщение об ошибке в гугл, скопируй его хотя бы сюда.
Баг был действительно с пакетом в пакете. Создал текстовый файл, вставил код, поменял формат, вставил в папку, компилировал, запустил и все работает.
Ебаные нетбинсы.
И да, спасибо за проебанное на меня время.
ну молодец
В EPAM Systems, например.
Пишу на веб-стеке Java 5 с анальным вендор-локом на IBM - сервер приложений WebSphere, брокер сообщений MQ, СУБД DB2, среда разработки RSA, а также фреймворк Apache Struts 1. Иногда дают пописать на Java 6-7. Иногда и десктопные приложения приходится писать на Swing и JavaFX 2.
Я считаюсь кагбе джуниором, но на деле получается, что весь жизненный цикл разработки приложения от анализа требований до программной инженерии поддерживаю я. Из этого сами понимаете какое говно получается.
Алсо, это гос. контора, пришел сразу после вузика - уже второй год, до этого нигде не работал, получаю на руки 18К. ЧЯДНТ?
>получаю на руки 18К. ЧЯДНТ?
>18К
>ЧЯДНТ?
1. Сервер с базой расписания. Какую базу юзать? Или может вообще не базу, а JSON какой-нибудь? Возможно вопрос тупой, но я ещё в глаза не видел эти базы и прочие способы хранения данных.
2. Не будет же шлюха, отвечающая за расписание, работать напрямую с базой. Поэтому пишем прогу, которая будет принимать файл, парсить его и заполнять этими данными бд.
3. Ну и самый тупой вопрос. Как соединяться с сервером? Я видел примеры с Socket, но там везде IP. А если сервер с динамическим ойпи?
В общем прошу советов мудрых, всем добра за ответы.
1. Базу данных имеет смысл использовать для долговременного хранения данных. Тебе же нужно хранить очень небольшой фрагмент данных и обновлять его. Так что тебе достаточно какого-нибудь простого текстового формата вроде JSON, например, да.
2. Для начала поинтересуйся, будет ли она тебе файл отправлять. Может она не умеет с электронной почтой работать, просто печатает и вешает это расписание. Это самая большая проблема в твоём проекте.
3. Соединяйся по HTTP, можешь использовать REST (в википедии почитай). Например у тебя будет по адресу http://raspisanie.govnovuz.ru/today/ возвращаться JSON с расписанием на сегодня. По хорошему лучше присосаться к сайту своей шараги, если он вообще существует. Если ты хочешь сервер под кроватью с динамическим ойпи, то можешь использовать что-то типа этого http://ru.wikipedia.org/wiki/DynDNS
>В 2014 г. компания полностью свернула программу бесплатного предоставления динамического DNS
А, ну ты соснул значит. Можешь попробовать вот это http://freedns.afraid.org/
1. Зависит от нагрузки. Я использовал мускуль для своих диванных проектов. Юзать лучше базу - попутно будет немного знаний sql, научишься писать простенькие запросы, поработаешь с ORM. Это гораздо ближе к реальному проекту, чем пердолинг JSON в файл.
Хотя, не спорю, >>401899 прав - тут можно без базы.
2. Библиотек для парсинга различных форматов куча. Если будешь писать в файл - прога ненужна, шлюха будет в Excel юзать расписание, при запросах клиента инфа будет браться и парситься с этого файла.
3. Сначала гугли Servlet, почитай про принцип работы, напиши простенький. Почитай про Tomcat, запусти сервлет.
Дальше можешь ознакомиться со Spring, затем почитать про Spring MVC. Про рест тоже читай - если будет приложение для мобилок, 99% что он нужен. Реализовывать можно либо с помощью вышеупомянутого MVC, либо с помощью Jax-RS.
Пока не протестишь на локалхосте серв - не приступай к мобильному клиенту.
Книжки:
Spring in Action - о спринге
Java EE, Gonsalvez - Java EE-стек, альтернатива спрингу. На любителя, но если решишь начинать с книг - первые пару глав лучше читать в ней, для общего понимания. Если решишь юзать базу - всё, что связано с JPA, транзакциями, ОРМ - лучше тоже начинать с неё. Всякие EJB,JSF,JMS пока можешь не трогать.
http://www.mkyong.com/ - куча работающих примерчиков по каждой конкретной технологии, с подробным разъяснением.
В шапке тоже есть олимпиадные задачи. А на Тимусе задачи достаточно просты и помогают разобраться. Да и тупо интересно.
>В шапке тоже есть олимпиадные задачи. А на Тимусе задачи достаточно просты и помогают разобраться. Да и тупо интересно.
Добавим в третью версию.
Пиши без базы, не нужен лишний геморпользователям. Просто сделай, что когда в первый раз запускаешь приложение - выбираешь группу, а приложение само парсит расписание с сайта и хранит его, к примеру, в виде XML файлов на самом девайсе. Автономность приложения - всегда плюс. Ну, и еще сделай кнопку "Обновить", которая будет актуализировать данные в твоих XML-ках.
Мимо JavaEE Junior
возьми книгу про паттерны проектирования и вопрос об интерфейсах отпадет.
а аннотации - метаданные, никак на работе программы не сказываются.
Интерфейсы - это один из основных столпов полиморфизма. Ты просто определяешь точки входа (методы), а потом уже ебешь конкретную реализацию как сам хочешь. И для выполнения методов описанных в интерфейсе тебе не нужно гадать какая реализация тебе приедет. Ближайший пример примения - List и реализации в виде ArrayList и LinkedList. Ну еще итераторы все тоже являются реализацией интерфейса Iterator.
Еще есть пальцатые интерфейсы, которые немного по-другому обрабатываются самой JVM - Throwable (все Exception'ы), Runnable (реализует Thread), Serializable (реализация сериализируется через JVM) и Cloneable (можно копировать обьект).
Аннотации это эдакие метки, которые доступны тебе в рантайме через рефлекшн. Оно немного через жопу, но энтерпрайзникам очень понравилось и там везде аннотации на аннотациях. Можно писать свои аннотации, но бремя их обработки ляжет целиком на тебя.
А правда, чем? Ну кроме того что в классе методы могут быть реализованы и интерфейс может иметь только final static поля. Не пинайтесь, я только-только начал учиться.
Любой класс может наследовать только один класс, но реализовывать может хоть сколько интерфейсов. В интерфейсе методы только публичные (вроде).
Глупый вопрос, джаваны, если где-то в теле метода может выкинуться исключение, компилятор всегда будет заставлять обработать его или добавить throws в сигнатуру метода? Или может такое случиться, что я написал код, компилятор меня ни о чем не предупредил, и вдруг программа упала с необработанным исключением?
Точно, множественное наследование ведь не завезли.
Есть проверяемые и непроверяемые исключения. Вот в случае с проверяемыми компилятор заставит обработать. Ну а с непроверяемыми не заставит, это всякие NullPointer, Arithmetic.
>NullPointer, Arithmetic
RuntimeException еще. Очень удобно для всякого ловимого пиздеца, никаких method(XUI, PIZDA) throws Throwable
В Java 8 добавили default методы. Теперь в интерфейсе тоже можно делать реализацию.
Бля, ну смотри пример.
Допустим, тебе нужно хранить какие-то данные.
Ты ебашишь интерфейс Хранилище с методами Сохранить и Достать.
А потом пилишь реализацию ХранилищеСтатическимКлассом, у которого есть статический класс, в полях которого хранятся твои данные.
Через неделю до тебя доходит, что ты еблан, и перезапуске прогарммы у тебя все данные теряются. Тогда ты ебашишь новый класс ХранилищеВМайЭскуэль и сохраняешь всё в таблицах. При этом тебе достаточно подменить название класса рядом с new, а дальше всё работает само (если ты не используешь dependency injection фреймворки, с ними ещё проще).
Потом через неделю до тебя опять таки доходит, что ты сидишь на АИБ, и сиквел здесь использовать некошерно. Поэтому ты пишешь новое Хранилище: ХранилищеВМамкинойЖеппе, и опять у тебя всё сразу работает.
>если где-то в теле метода может выкинуться исключение, компилятор всегда будет заставлять обработать его или добавить throws в сигнатуру метода
Если исключение является подклассом RuntimeException, то нет. Костыль:
try{...}catch(Exception e){throw new RuntimeException(e);}
http://jsfiddle.net/7jg41zmn/
Задание - сделать абстрактный класс в которым будет абстрактный метод. Потом сделать наследников, который через этот метод будут что-то с собой делать.
Вопросы:
1. Объекты я должен создавать вне классов, или в самих этих классах-наследниках?
2. Программа должна начинаться со слова класс или нужно сначала создавать пустой метод?
3. Где организовывать ввод данных, опять же после всех классов или где?
1. Создавать то можно где угодно, смотря что требуется. В твоём случае, видимо, в методе main.
2. Не распарсил. Если очень грубо говоря, программа состоит из классов, классы состоят из методов. В одном из классов должен быть static метод main, которому передаётся управление при запуске программы.
3. Смотря какая реализация класса. Если данные передаются через конструктор, или сеттер или public поле, то там, где собственно задаются данные. Можно сделать метод у класса, который сам считывает данные и просто вызывать его.
[code]
private static int n;
public static synchronized set( int arg )
{
n = arg;
}
public static synchronized get()
{
return n;
}
[/code]
Один поток может спокойно прочитать n когда второй его будет записывать. Как победить эту хуйню? Мой быдлокодерский мозг подсказывает сделать один synchronized метод с флагом читаем/пишем. Но наверное есть способ лучше?
объяви переменную как volatile и можешь вообще хоть public сделать
волятайл не спасает от инкремента, только от присваивания. Загугли почему у стринги хэш код с рейс кондишн потенциально
>>402882
Можно еще вот так.
http://ideone.com/I3xz4t
Хотя хуй знает, в моем варианте может быть дедлок или нет. По идее, не должен бы.
>не спасает от инкремента
Ну да, как public лучше не объявлять. Но сеттер и геттер с присваиванием можно
>почему у стринги хэш код с рейс кондишн потенциально
>public int hashCode() {
> int h = hash;
> if (h == 0) {
> ...
> hash = h;
> }
> return h;
>}
В худшем случае (если кто-то вызовет этот метод, пока хэш уже считается в другом потоке) хэш посчитается несколько раз.
Только как это связано с этим вопросом? (про инкременты и присваивание)
Никакого дедлока. Дедлок бывает когда у тебя два вложенных блока synchronized и перепутано так что один ждет когда разблокируется второй, а второй... ну ты понел.
>Один поток может спокойно прочитать n когда второй его будет записывать.
С хуя ли? Ты что сделать хочешь, малыш?
Я так прикинул, классу похуй где лежит другой класс, когда тот к нему обращается (наследует, например). То же самое и с созданием класса
Всякие protected, private, public, без-упоминания работают одинаково.
Всё верно?
Как делают крутые программисты, которые получают деньги за работу: держат строго все классы в отдельных файлах, или как поучится?
Хорошей практикой является держать по одному классу верхнего уровня на один файл - так их проще искать. Вложенные классы, само собой, не считаются.
Многие к тому же делают структуру папок точно такой же, как и структуру пакетов.
Спасибо за ответ. А что такое класс "верхнего уровня"? super?
И, как я понимаю, javac потом всё равно создаст по .class файлу для каждого класса, даже если они в одном файле?
Не вложенный
Бля, столько же пхп джуны получают, да и студенты, работающие не по спецухе.
Лол? Грузчик в два раза больше получает
>А для одномерного массива ссылок на массивы объктов
AtomicReferenceArray, AtomicLongArray, AtomicReferenceArray
ReentrantReadWriteLock
Ты AtomicReferenceArray забыл.
> зп - 15к, полставки с гибким. ДС-2
Любой джун, на любом языке работает первый гд за еду. С другой стороны лучше поискать полную ставку.
Смолоду нужно раздалбливать свое очко, чтобы в будущем было не так больно.
Блджад, походу придется мне читать литературу по потокам. Если в одном synchronized методе (геттере) производится запись в поле, synchronized сеттер не залочен же?
перепутал местами гетер и сеттер.
в общем виде synchronized записывается как synchronized (object) { } и при заходе одного потока в такой блок все другие synchronized-блоки вызванные с этим же object блокируются для других потоков. При записи synchronized в определении метода это работает как synchronized(this) { }. То есть раз у тебя геттер и сеттер в одном объекте, то все должно работать как надо.
Уже почитал какуйто статью и разобрался. Если поток потянул один synchronized метод, блочится не метод а весь объект этот метод содержащий.
http://pastebin.com/Ffk2YmtE
>matrix2.matrix[k];
>matrixL2[k]
Определись с расстановкой индексов и измерь скорость еще раз.
разметка продолжает радовать
Ну например int a, int b, пишешь swap(a,b) и их значения меняются.
Никак. Переменные в Java передаются по значению. В случае встроенных типов, таких как int, byte, char и т.д. ты просто получишь их копии при передаче в метод. При работе с ссылочными типами, которые ссылаются на объекты в куче, ты просто получишь копии ссылок, которые указывают на объекты. Т.е, когда ты сделаешь swap для объектов, то новые object references будут указывать на новые объекты, тогда как старые ссылки продолжат ссылаться на те же самые объекты.
Swap можно только в списках. Если работаешь с каштомом, где есть все геттеры и сеттеры - можно сделать рефлективный своппер.
Заебись. Не думал, что у всех оберток примитивов значение хранится в поле с именем value. Только вот с таким подходом можно наебаться с поиском ошибок. На вскидку тот же hashCode() у стринга кэшируется и будет неприятно потом работать с хэшмапами.
[code]public static int mystery(int a, int b){
if(b==0) return 0;
return mystery(a+a, b/2)+a;
}[/code]
А конкретно интересует последняя строка, допустим если значение а-2, b-6, то что в ней происходитполучается return mystery(6, 5)?
и второй, если n-6 то результат возвращает 311361142246:
[code]public static String exR1(int n){
if(n<=0) return "";
return exR1(n-3)+n+exR1(n-2)+n;
}[/code]
Тут тупо нечего объяснять.
Если a=2, b=6, то будет:
return mystery(4,3)+2;
mystery(4,3) в свою очередь вернет:
return mystery(8,1)+4;
И так далее.
Скорее всего не съедаешь перенос строки после инта, nextInt парсит только число и не символом дальше.
Красота
Или напиши scanner.skip("\n") после чтения числа. Или даже scanner.nextLine(), но это немного коряво.
fix: не кидает, а ловит
а так как ты строки сравниваешь как ссылки на объекты, а надо по значению: word.equals("сумма")
Взял и получил. Серьезно, я не знаю, что еще тут можно сказать. Просто построчно код в уме выполни, он более чем достаточно прост для этого.
Зачем присваивать ссылке родителя объект наследника? Что-то вроде:
[CODE]Parent a=new Child();[/CODE]
Вот что нашел(пик).
Тут написано, что таким образом можно вызвать метод, который переопределяет метод родителя.
Так, а почему бы не написать:
[CODE]Child a=new Child();[/CODE]
Так этот метод тоже может быть вызван + у нас будут все поля унаследованные от родителя.
Поясните, пожалуйста.
Ну и нахуй ты здесь такой нужен не могущий в документацию?
https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep%28long%29
Ну ты же понимаешь, Маня, что за использование слипа в реальной программе тебе надо напихать хуёв за щёку?
Пока на практике не сталкнешься с говном типа фабрик которые едут через фабрики или DAO, тут обьяснять трудно.
Обычно любят делать так: клепают интерфейс с базовыми методами, потом абстрактный класс с базовой реализаций типа моча-говно, потом делают конкретный класс реализацию. Если еще и фабрики подключаются, то будет ебический бардак.
Если не в основном потоке, то как-то похую.
А вам в пистон уже потоки завезли? Настоящие?
Нахуй иди, долбаеб
Какой фронтэнд на спринге сейчас в моде? Надеюсь, что JSP уже почил на свалке истории?
Тогда не только спринг, но и гибернейт.
Будто жсон размапливает не MVC. Не нужны разве что серверные шаблоны.
Ну хуй знает, я же ньюфаг.
Может сделать задержку перед вводом пароля в консоли против брутофорса.
Или таймер, основанный на слипе в игре какой-то.
рантайм это ошибки во время выполнения. Например ты хочешь обратиться к какому то элементу массива, а он не существует или во время выполнение у тебя получается деление на ноль. Компилятор такие ошибки не видит, они выявляются во время выполнения кода.
рантайм - runtime - время работы.
Ошибка во время работы программы. Например ты делаешь калькулятор, и ошибся с синтаксисом. Тогда компилятор выдаст ошибку - она во время сборки. Ты исправил ошибку и продал свой калькулятор.
Пользователь когда им пользовался поделил на ноль, и ему выбило ошибку - ошибку рантайма.
Рантайм - это время работы программы. Массив например переполнится, NullPointerException вылетит и т.д.
Спасибо, теперь понятно
Thread.sleep() causes the current thread to suspend execution for a specified period.
Это копия, сохраненная 4 декабря 2014 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.