Задать вопрос
  • Нужно ли хорошо рисовать что бы научится 3D моделированию?

    @mamkaololosha
    Нет. Текстуры буду рисовать художники. Вам же нужно хорошо скульптить и прочее.
    Ответ написан
    Комментировать
  • Что нужно знать и умень что бы быть зеленым сисадмином?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Сисадмин - специальность широких профилей.
    В клубе - одно, в мелкой конторе другое, в средней конторе третье, в крупной конторе совсем четвертое. В ISP еще отдельны вопрос.

    Ищите объявления с вакансиями, смотрите чего хотят работодатели, выбирайте что-то по себе. Но если друг до сих пор ничего не знает и не может понять что он хочет, есть сомнения, что он сможет сделать нормальную карьеру.
    Ответ написан
    2 комментария
  • Что нужно знать и умень что бы быть зеленым сисадмином?

    @FoxInSox
    - Windows переустанавливать
    - Офис устанавливать
    - Объяснять куда пропала иконка эксплорера с рабочего стола или уметь создать новую
    - Драйвера для принтера скачивать с интернета и устанавливать
    - Уметь найти в настройках роутера DHCP.

    Ну я думаю для зеленого хватит.
    Ответ написан
    4 комментария
  • Что нужно знать и умень что бы быть зеленым сисадмином?

    Begmak
    @Begmak
    Продвинутый эникей
    На хабре была серия статей по этому поводу. Хотя там и не только про начало,но советую полностью ознакомиться с ними, так вы поймете что вас ждет.

    Первая часть тут
    Ответ написан
    Комментировать
  • Сложно ли перейти с Java на C#?

    @Espleth
    Не сложно, но зачем, когда есть libGDX? Да, вряд ли этот фреймворк будет лучше Unity, но так ли сильно вам нужно изучать другой ЯП ради Unity?
    Ответ написан
    3 комментария
  • Какое приложение написать для изучения Java?

    @protven
    Напишите чатик, для начала. А потом уже в сторону EE смотрите.
    Ответ написан
    Комментировать
  • Как запустить сервлет на vps?

    @lopatin_ay Автор вопроса
    Все заработало.
    Возможно кому-то пригодиться настройка nginx для работы с apache и tomcat серве...;
    И описание создания проекта Java Server-Side Programming
    Ответ написан
    Комментировать
  • Как построить траекторию движения с помощью Qt?

    @vilgeforce
    Раздолбай и программист
    Выучите Qt на минимальном уровне для начала.
    Ответ написан
    Комментировать
  • Где на практике применяется рефлексия? Зачем она может в принципе понадобиться при написании проекта?

    EugeneP2
    @EugeneP2
    Java Dev
    Рефлексия - это инструмент с помощью которого можно узнать всю информацию о классе: имена методов, параметры, поля, аннотации и т.д.
    Эти возможности во всю используются во фреймверках, таких как Spring, Hibernate...
    Различные сериализаторы json/xml
    Ответ написан
    6 комментариев
  • Где на практике применяется рефлексия? Зачем она может в принципе понадобиться при написании проекта?

    DigitalSmile
    @DigitalSmile
    http://brainstorage.me/digitalsmile
    Рефлексия активно используется, например, для поддержки разных версий JDBC драйвера (для обратной совместимости при расширении интерфейса).

    Также может быть полезна для вызова метода, когда нет прямого доступа к экземпляру объекта, хотя это, безусловно, не самая лучшая практика.
    Ответ написан
    2 комментария
  • Где на практике применяется рефлексия? Зачем она может в принципе понадобиться при написании проекта?

    OLDRihard
    @OLDRihard
    Java Developer
    Ну вестч эта, достаточно хитрая. Я всего не упомню т.к. смотрел информацию по ней давно, и использовал всего разок что ли...
    Но, точно могу сказать что она помогает уничтожать объект в обход сборщику мусора, то есть немедленно.
    Также можно получить список публичных методов и выполнить их, заранее не зная названия.
    Ответ написан
    3 комментария
  • Какие будут советы начинающему YII программисту?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Может кто-то даст хорошие советы для изучения.

    Еб*ашь код.
    Ответ написан
    1 комментарий
  • Где на практике и при каких задачах применяется проверка равнозначности объектов?

    EugeneP2
    @EugeneP2
    Java Dev
    В большинстве случаев метод equals + hashCode реализуются, чтоб объект класса корректно хранился в Map и Set коллекциях. Внутренняя реализация коллекций используется эти методы.
    Ответ написан
    Комментировать
  • Где можно проверить свои знания по теории Java?

    @wing_pin
    Люблю сгущенку и функциональное программирование
    Неплохим вариантом является сертификация java-разработчиков от Oracle
    Ответ написан
    8 комментариев
  • Почему полиморфизм так работает?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Объяснить суть полиморфизма "на пальцах" довольно просто. Представьте себе класс Телефон. Его спроектировал некто в далеких 80-х, и определил в нем метод набратьНомер(). А потом другой программист в 90-х отнаследовал от него класс МобильныйТелефон и перекрыл метод набратьНомер(), т.к. грубо говоря, в новом устройстве набор производится уже не импульсно, а тонально. А потом третий программист отнаследовал от него класс Смартфон. При этом он не стал трогать метод набратьНомер(), а просто добавил методы для нового функционала, типа определитьПоложениеПоGPS() и т.д.

    Теперь представьте себе пользователя. Он родом из 80-х и понятия не имеет о тональном наборе и GPS... но если ему в руки дать любое из этих устройств, он сможет набрать номер и сделать звонок. Почему? Потому, что он умеет использовать метод набратьНомер(), и большего ему знать не нужно.

    А теперь представьте другого пользователя, нашего современника. Он вырос в эпоху смартфонов... но если ему в руки дать старый телефонный аппарат, он тоже сможет сделать звонок, т.к., опять же, знает метод набратьНомер().

    Применительно к ООП, пользователь - это переменная, содержащая ссылку на экземпляр класса. Ее тип (как она была объявлена) - это "набор знаний" о возможностях этого экземпляра. И т.к. Смартфон в своей основе является Телефон-ом, мы вполне можем дать его в руки гипотетическому пользователю из 80-х:
    Телефон устройство = new Смартфон();
    в результате чего он сможет сделать звонок:
    устройство.набратьНомер("03");
    А вот определить свое местоположение он не сможет, пока не узнает о существовании соотв. метода:
    Смартфон усовершенствованноеУстройство = (Смартфон)устройство;

    Это называется приведением типа. В данном примере у экземпляра класса уже был соотв. метод, но чтоб им воспользоваться, нужно сначала явно указать, что мы хотим рассматривать имеющееся у нас в руках устройство не как "простой" Телефон, а как Смартфон.

    P.S. Кстати, в этом примере мы затронули не только полиморфизм, но и наследование, и инкапсуляцию (пользователя "снаружи" совершенно не интересует, как именно производится набор номера - тонально, импульсно или еще как-то иначе)... так сказать, все три кита ООП в одном флаконе. И только так вообще имеет смысл рассматривать эти принципы, т.к. они по сути неотделимы друг от друга, как Отец, Сын и Святой Дух в Христианстве или же длина, ширина и высота в трехмерном пространстве :) Если это понять, ООП становится совершенно простой и естественной парадигмой программирования.
    Ответ написан
    8 комментариев
  • Почему полиморфизм так работает?

    Ewintory
    @Ewintory
    Java / Android developer
    пораженном
    никто не говорит, откуда вы такой перевод взяли? Говорят обычно
    дочерний класс


    Работать могу с методами в two
    скорее все таки с методами one, т.к. one родительский класс. А смысл в том что можно нужный нам функционал предоставить на реализацию дочерним классам, и не задумываться как они там его будут реализовывать.
    Ответ написан
    3 комментария
  • Почему полиморфизм так работает?

    timych
    @timych
    Вот тут очень простой и понятный пример: cybern.ru/java-polymorphism.html

    Если вы хотите вызывать собственные методы в наследуемом классе (те , которые не являются переопределенными). То необходимо либо обьявлять конкретный класс, а не родительский:
    Two x = new Two();
    либо делать явное приведение типов:
    One x = new Two();
    Two z = (Two)x;
    Ответ написан
    3 комментария
  • Где можно проверить свои знания по теории Java?

    abs0lut
    @abs0lut
    Ответ написан
    Комментировать
  • Как работает класс object в этом кода?

    EugeneP2
    @EugeneP2
    Java Dev
    Object clone = x.clone();

    Это клон(копия) объекта класса Date.

    Дальше его нужно привести к типу Date
    Date cloneDate = (Date) clone;

    Почему clone() возвращает Object ? - потому как этот метод наследуется от класса Object, а так как все типы в джаве наследуют класс Object, следовательно clone() должен возвращать общий для всех типов тип - Object

    UPDATE:

    Для начала нужно разобраться, почему же все таки нужно переопределять метод clone(), а не воспользоватся наследуемой нативной реализацией данного метода. Все дело в том, что базовый метод клонирование выполняет только поверхностное копирование. Будут скопированные только значения полей класса. Для примитивных типов (int, byte, char), все будет норм, но если это массивы, коллекции, объекты (например Date), или ваши типы, то будут скопированы только ссылки на них. В итогу клонирования у нас будет два объекта, у которых поля ссылаются на одни и те же поля, и через эти поля можно повлиять на все объекты которые клонировались:

    class TestClone implements Cloneable {
        		
        		private Date date = new Date();
    
    			public Date getDate() {
    				return date;
    			}
    
    			public void setDate(Date date) {
    				this.date = date;
    			}
    
    			@Override
    			protected Object clone() throws CloneNotSupportedException {
    				return super.clone();
    			}
        	}
        	
        	TestClone a = new TestClone();
        	TestClone b = (TestClone) a.clone();
        	System.out.println(a.getDate());
        	System.out.println(b.getDate());
        	b.getDate().setYear(0);
        	System.out.println(a.getDate());
        	System.out.println(b.getDate());
    
    
    
    // Fri Jul 10 23:13:47 EEST 2015
    // Fri Jul 10 23:13:47 EEST 2015
    // изменили один, а поменялось два
    // Tue Jul 10 23:13:47 EET 1900
    // Tue Jul 10 23:13:47 EET 1900


    Такое не пройдет, если будут неизменяемые (immutable) классы, тот же String. У него нет методов для изменения состояния.

    Потому то и нужно переопределять метод clone и выполнять глубокое копирование всех изменяемых объектов на который ссылаются поля (если есть такие).

    class TestClone implements Cloneable {
        		
        		private Date date = new Date();
        		private String s = "string"; // этот не нужно клонировать
        		
    			public Date getDate() {
    				return date;
    			}
    
    			public void setDate(Date date) {
    				this.date = date;
    			}
    
    			@Override
    			protected Object clone() throws CloneNotSupportedException {
    				TestClone clone = (TestClone) super.clone();
    				if (this.date != null) {
    					clone.date = (Date) this.date.clone();
    				}
    				return clone;
    			}
        	}
    
    
    Fri Jul 10 23:25:16 EEST 2015
    Fri Jul 10 23:25:16 EEST 2015
    // теперь это действительно клоны
    Fri Jul 10 23:25:16 EEST 2015
    Tue Jul 10 23:25:16 EET 1900


    Почему JVM само не может выполнить глубокое клонирование? - Потому как JVM не в курсе насколько клонирование должно быть глубоким:) И как правильно нужно копировать поля, со всеми нюансами, которые задумал программист:)

    ИМХО: интерфейс маркер Cloneable обязателен, чтоб можно было понять, переопределен ли метод clone в класса или нет.

    TestClone с = new TestClone();
        	
        	if (с instanceof Cloneable) {
        		System.out.println("ок, меня можно клонировать");
        	}


    PS
    Есть готовое решение от google для глубокого клонирование.
    Отличная статья: Глубокое клонирование в Java без велосипедов
    Ответ написан
    8 комментариев
  • В чем отличие кодовых единиц от кодовых точек?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Захожу, вижу стремный вопрос, вбиваю в гугл "кодовые единицы кодовые точки", открываю первую же ссылку, там приводится выдержка из статьи:

    javaportal.ru/java/articles/UnicodeJDK1_6.html

    Значит все же речь шла о "code point" и "code unit". Читаем статью и разбираемся.
    Ответ написан
    Комментировать