Изучение Java

1. Ibrogim 1311 03.05.15 12:10 Сейчас в теме
Решил изучать java
Если найдутся коллеги с интересом к этому языку, то предлагаю делиться ссылками на курсы и т.п.

Вот например весёлый курс в виде игры по футураме )
Первые 10 уровней бесплатно.

Зарегистрируйтесь по моей ссылке и я смогу пройди дальше 10 уровня (когда дойду до него)
reotem; DoctorRoza; +2 Ответить
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
131. Lokiy 135 27.05.15 20:11 Сейчас в теме
(130) alex_sh2008, это утверждение чем подкреплено ? статистическими исследованиями ,экспериментами с контрольными группами или так умозрительное заключение ? :)
Просто я знаю как обычно сравнивают:
Берут студента который месяц изучал "каркасно" язык, и ботана который зубрил учебники 2 года и их сравнивают :))) И говорят, нет... вот ботан он больше может написать и лучше :)
И никогда не сравнивают человека который года 2 делал проекты, изучая язык "каркасно", периодически читая учебники и статьи, и ботана который 2 года зубрил учебник, да и понятно, потому что и сравнивать даже глупо.
P.S. ну а вообще дискуссию о методологии обучения думаю можно не продолжать и просто остаться при своих мнениях. Я просто говорю как я считаю лучше и оптимальнее, а уже принимать это или не принимать - тут личный выбор каждого. Я просто вот считаю такой путь оптимальным - его советую, думаю вдруг кто-то прочитает - попробует такой подход, у него лучше пойдет. Бывают люди которым ну надо прочитать там 3-4 учебника, чтобы сесть за реальный проект... так тоже можно. Просто я встречал очень много именно теоретизирования и чтения учебников вместо реальных дел среди моих знакомых, просто потому , что энтузиазм на чтении учебников и тестовых задачах долго не держится.
132. alex_sh2008 4 27.05.15 20:53 Сейчас в теме
(131) Lokiy, Я 2.5 года изучал в начале С, потом C++, и при этом была реальная практика, каркасное изучения меня то и дело отталкивало к началу, когда освоив полностью все возможности языка, я уже спокойно мог выстраивать архитектуру своего приложения, и не переписывать одни и те же модули из за того что где то что то не предусмотрел, то же самое применял в приложениях на Java, и сейчас такое же применяю при программирование на шарпе.
А спорит по методам обучения у меня нет ни какого желания, сейчас наверное 90% из всех программистов именно нахрапом изучают языки программирования, в результате структура кода и приложений получается хаотичной, и трудно читаемой. Конкретный пример конфигурации 1С, прошло столько лет а до сих пор не выработано четкое стратегии построения приложений и внутренней организации кода в конфигурации. По множеству раз переписывается одно и тоже.
133. Lokiy 135 27.05.15 21:08 Сейчас в теме
(132) alex_sh2008,
сейчас наверное 90% из всех программистов именно нахрапом изучают языки программирования, в результате структура кода и приложений получается хаотичной, и трудно читаемой.
Через чур эгоистичная позиция :) Хочу чтобы другие изучали язык правильно, чтобы мне было удобнее читать их код :) У изучающего язык вряд ли должна стоять такая задача :)
134. alex_sh2008 4 27.05.15 21:15 Сейчас в теме
(133) Lokiy, Вы ничего не поняли из того что я написал, заканчиваем эту демагогию.
136. Ibrogim 1311 28.05.15 08:09 Сейчас в теме
(122) Lokiy,
А если тебе за 30
+ дети, ипотеки и 1С
116. alex_sh2008 4 27.05.15 16:42 Сейчас в теме
(114) Lokiy,
Давайте щас еще обсуждать чем абстрактный класс от интерфейса отличается :)))

С вами, зачем?
118. Lokiy 135 27.05.15 16:45 Сейчас в теме
(116) alex_sh2008,
:))) всмысле есть определенные темы которые вы конкретно со мной обсуждать не хотите ? :)))
чем это интересно обусловлено ?
119. alex_sh2008 4 27.05.15 16:48 Сейчас в теме
(118) Lokiy, Зачем обсуждать то что прописано в языке намертво, получится пустой треп.
125. spacecraft 27.05.15 18:05 Сейчас в теме
(114) Lokiy,
Давайте щас еще обсуждать чем абстрактный класс от интерфейса отличается :)))

Это же очевидно.
1. Java не имеет множественное наследование. Используют интерфейсы дополнительно (вместо).
2. В абстрактное классе уже может быть некая реализация. Повторно используемый код.
Это основные и достаточные условия применения.
126. Lokiy 135 27.05.15 18:10 Сейчас в теме
(125) spacecraft, собрались как-то 1Сники и понтуются друг перед другом , что приблизительно знают ответы на детские вопросы в Java :)))
127. spacecraft 27.05.15 18:13 Сейчас в теме
(126) Lokiy, а я Java вместе со всеми изучать начал :)
128. ture 606 27.05.15 18:14 Сейчас в теме
(125) spacecraft, Вы понимаете, что многое уже на автомате?
А Вы знаете, что так можно поднимать темы среди изучающих язык?
А Вы представляете, что много появилось недавно и старики еще этому могут не доверять?

Если Вы все это знаете и понимаете, так почему до инфостара никак не допрет, что ТУТА НУЖЕНЫ РАЗДЕЛЫ НЕ ТОКА ПО 1С-С-Сыыыы??????????????????
129. Lokiy 135 27.05.15 18:17 Сейчас в теме
(128) ture, да это нишево, ru.stackoverflow.com - для вопросов и ответов пойдет,
а тут хватит и темы, для 1Сников потрындеть про джаву.
я вот потихонечку ради прикола набиваю там рейтинг иногда, когда не лень развернуто отвечать.
85. Swetlana 20 27.05.15 13:24 Сейчас в теме
(79) Ibrogim, ABAP то зачем ?
вообще разрываться тяжело, надо чтото одно выбрать. Как говорится за двумя зайцами погонишься
89. Ibrogim 1311 27.05.15 13:54 Сейчас в теме
(85) Swetlana,
ABAP то зачем
Ну скажем если я вдруг решу, что хочу жить в Баварии (1С ближе к ABAP чем к JAVA)

Как говорится за двумя зайцами погонишься

Тут немного другая ситуация. Один заяц пойман и крутит колесо в мельнице. Думаю поимать другого, по ногастей, главное подкармливать вовремя того первого.
151. AlexO 135 01.06.15 14:28 Сейчас в теме
(89) Ibrogim,
Ну скажем если я вдруг решу, что хочу жить в Баварии
Т.е. достаточно "хочу решить"? )))
33. DoctorRoza 25.05.15 16:51 Сейчас в теме
(1) Ibrogim, тоже начал изучать Java, правда, изучаю только после работы, вечерами (ну как обычно). Конечно, Java не 1С, классы, все сложнее. Так что, присоединяюсь к ветке, буду отслеживать. А где Ваша Ссылка на футураму (могу подсобить)? Или что-то не то делаю? :)
34. ture 606 25.05.15 16:57 Сейчас в теме
(33) DoctorRoza, учебные задачи Вам надо нарыть. Иначе забросите.
приводите что-ли задачи здесь. Будем вместе их колбасить. Тогда дело пойдет веселей.
77. Ibrogim 1311 27.05.15 09:14 Сейчас в теме
(33) DoctorRoza, Ссылка вот http://javarush.ru/user/reference/641a83a2-469a-4f3e-8ec7-5e0a97e479f6
в зачёт идут не анонимы достигшие 3 уровня.
87. DoctorRoza 27.05.15 13:46 Сейчас в теме
(77) Ibrogim, что же Вы так долго, я успел до 3 уровня "наизучать" :)
90. Ibrogim 1311 27.05.15 13:58 Сейчас в теме
(87) DoctorRoza,
что же Вы так долго
Да я что то ваш комментарий проглядел (

Задача то в intelliJ IDEA ? можете её ID написать (например com.javarush.test.level08.lesson11.home02)
96. DoctorRoza 27.05.15 14:29 Сейчас в теме
(90) Ibrogim, коллега spacecraft (91) верно указал ответ. А задача ерундовая, даже и озвучивать ее стыдно! :)
321. DoctorRoza 14.06.15 19:14 Сейчас в теме
(1) Ibrogim, скажите, Вы далеко прошли в JavaRush? Есть вопрос по одной задаче, не совсем догоняю код, подскажите, пожалуйста. Или может сообщество подскажет. Уровень 5, создание классов и объектов, задача5. Провести 3 боя попарно между котами.
Итак, имею следующий код:

package com.javarush.test.level05.lesson05.task05;

/* Провести три боя попарно между котами
Создать три кота используя класс Cat.
Провести три боя попарно между котами.
Класс Cat создавать не надо. Для боя использовать метод boolean fight(Cat anotherCat).
Результат каждого боя вывести на экран.
*/

public class Solution {
public static void main(String[] args) {
//add your code here
}

public static class Cat {

public static int count = 0;
public static int fightCount = 0;

protected String name;
protected int age;
protected int weight;
protected int strength;

public Cat(String name, int age, int weight, int strength) {
count++;

this.name = name;
this.age = age;
this.weight = weight;
this.strength = strength;
}

public boolean fight(Cat anotherCat) {
fightCount++;

int agePlus = this.age > anotherCat.age ? 1 : 0;
int weightPlus = this.weight > anotherCat.weight ? 1 : 0;
int strengthPlus = this.strength > anotherCat.strength ? 1 : 0;

int score = agePlus + weightPlus + strengthPlus;
return score > 2; //эквивалентно return score > 2 ? true : false;
}
}
}

Вопрос по методу fight(), не пойму как аргументы тут необходимо вводить? Привык, что между ними ставится запятая, а тут одну строку. Как это понять? Метод уже описан и дописать код требуется только в PSVM. Как быть? Спасибо!
322. spacecraft 14.06.15 20:26 Сейчас в теме
(321) DoctorRoza, создаются 3 объекта класса cat()
Для боя вызывается метод (к примеру) cat1.fight(cat2);
Т.е. в качестве параметра передается ссылка на другой объект Cat.
323. spacecraft 14.06.15 21:32 Сейчас в теме
(321) DoctorRoza, что-то в этом роде:
        List<Cat> cats = new ArrayList<Cat>();
        cats.add(new Cat("Барсик", 5, 15, 10));
        cats.add(new Cat("Мурзик", 6, 25, 7));
        cats.add(new Cat("Брысь", 9, 21, 9));
        
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < cats.size()-1; j++) {
                for (int k = j+1; k < cats.size(); k++) {
                    if (cats.get(j).fight(cats.get(k)))
                        System.out.println("Победил " + cats.get(j).name);
                    else System.out.println("Победил " + cats.get(k).name);
                }
                
            }
        }
Показать
324. DoctorRoza 15.06.15 08:50 Сейчас в теме
(323) spacecraft, меня вводит в ступор в методе написание аргументов:
public boolean fight(Cat anotherCat)
Так можно писать? Или тут просто сознательно написана ошибка?
325. spacecraft 15.06.15 09:08 Сейчас в теме
(324) DoctorRoza, хмм. что тут не понятно?
public boolean fight(Cat anotherCat)

публичный(открытый) метод возвращает булев тип и принимает в качестве параметра ссылку на объект типа Cat.
Cat и anotherCat это не 2 параметра, а один anotherCat имеющий тип Cat.
Вспомните, как создается ссылка на объект:
Cat myCat = new Cat();
Вот первая часть это и есть пример параметра (Cat anotherCat).
Не примитивные типы передаются по ссылке, а не по значению. И в методе fight(Cat anotherCat) происходит создание новой ссылки типа Cat и именем anotherCat, которая будет ссылаться на тот же самый объект, который ему передадут по внешней ссылке.
DoctorRoza; +1 Ответить
326. DoctorRoza 15.06.15 10:20 Сейчас в теме
(325) spacecraft, спасибо вроде разобрался, а то уже привык, что перед тем как что-то куда-то пихать, то нужно это заранее .. описать что ли.
Не:

а = ЗаполнитьСтруктуру(Новый Структура("БлаБла"));

А:

Структура = Новый Структура("БлаБла");
а = ЗаполнитьСтруктуру(Структура);

Ведь тут тоже самое?
327. spacecraft 15.06.15 10:35 Сейчас в теме
(326) DoctorRoza, если про метод, то нет.
а = ЗаполнитьСтруктуру(Новый Структура("БлаБла"));

это "подходит" к коду:
        List<Cat> cats = new ArrayList<Cat>();
        cats.add(new Cat("Барсик", 5, 15, 10));

если брать аналогию с 1С для метода
public boolean fight(Cat anotherCat)

то будет что-то в этом роде?
Процедура НеВажноКакая()
Док = Документы.ИмяДокумента.НайтиПоНомеру("1");
Результат = fight(Док);
КонецПроцедуры

Функция fight(anotherCat) // тут не указывается тип, т.к. 1С не жестко типизирована.
//тут еще код
Возврат Истина;
КонецФункции
Показать


1С не жестко типизирована, по-этому ссылка передается без указания типа.
В Java обязательно указывать передаваемый тип.
DoctorRoza; +1 Ответить
331. alex_sh2008 4 15.06.15 14:27 Сейчас в теме
(327) spacecraft,
если брать аналогию с 1С для метода
public boolean fight(Cat anotherCat)

то будет что-то в этом роде?


Не правильная аналогия, функция "fight(Cat anotherCat)" принадлежит классу Cat, и аналогия с 1С будет, когда в модуле документа вы пропишите функцию которая будет принимать ссылку на такой же документ. и Вызов будет, так:
Док.fight(другойДокумент)
332. spacecraft 15.06.15 14:33 Сейчас в теме
(331) alex_sh2008, я и не пытался воспроизвести работу класса Cat в 1С. Цель была: дать понять, как передавать ссылку на объект методу.
333. alex_sh2008 4 15.06.15 14:42 Сейчас в теме
(332) spacecraft, Фактически все что производное от класса Объект, все передается по ссылке.
334. spacecraft 15.06.15 15:13 Сейчас в теме
(333) alex_sh2008, вот от чего точно не зависит... В Java всё от класса object.
И передача по значению или по ссылке определяется только одним. Где значение хранится в памяти. Если в стеке, то передача по значению. Если в управляемой куче, то по ссылке. Кстати, ссылка хранится в стеке и передается по значению, т.е. копируется в новую ссылку.
335. Lokiy 135 15.06.15 15:59 Сейчас в теме
(334) spacecraft,
int a=5;
function(a);


в функцию передалось по ссылке или по значению ? :)
336. spacecraft 15.06.15 16:28 Сейчас в теме
(335) Lokiy, переменная а хранит значение в стеке (целое число 5). Следовательно передается по значению. Локальная переменная метода function будет содержать значение 5. Но никакого отношения к значению в первой переменной а оно не будет иметь отношение. И при изменение значения локальной переменной а метода function, значение в первой переменной а не изменится.
В чем проблема?
362. alex_sh2008 4 16.06.15 12:27 Сейчас в теме
(336) spacecraft, в примере выше нельзя определить что передается ссылка или значение, не известна область определения переменной а
364. spacecraft 16.06.15 13:01 Сейчас в теме
(362) alex_sh2008, можно пример, когда в том примере будет передаваться ссылка?
Могу себе представить, что в принимающем методе будет упаковка в Integer, но сам факт передачи будет по значению из стека.
Даже если переменная объявлена локально, все равно она будет находится в локальном стеке. Объект в куче, в ней целочисленная переменная содержащее значение в локальном стеке. И передаваться будет именно по значению из стека.
366. alex_sh2008 4 16.06.15 13:19 Сейчас в теме
(364) spacecraft, Этот код и так описан так что переменная является глобальной, а вот код:
{
int a=5;
function(a);
}
уже вызовет другое поведение передачи параметра в функцию.
369. spacecraft 16.06.15 13:22 Сейчас в теме
(366) alex_sh2008, ничего не понял. Где здесь передача ссылки?
370. alex_sh2008 4 16.06.15 13:24 Сейчас в теме
(369) spacecraft, В моем варианте идете передача значения, а в первом варианте передача ссыли, так как не указана область определения, и подразумеваем что это глобальная переменная.
371. spacecraft 16.06.15 13:26 Сейчас в теме
(370) alex_sh2008, хмм. могу только повторить:
Даже если переменная объявлена локально, все равно она будет находится в локальном стеке. Объект в куче, в ней целочисленная переменная содержащее значение в локальном стеке. И передаваться будет именно по значению из стека.
375. alex_sh2008 4 16.06.15 13:31 Сейчас в теме
(371) spacecraft, А я еще раз повторю, что все зависит от области видимости переменной, вы можете настроить компилятор так что может переменный относить как глобальные или как локальные, это зависит от специфики приложения.
383. spacecraft 16.06.15 13:51 Сейчас в теме
(375) alex_sh2008,
class myClass{
int a = 5;
public myClass(){myMetod(a);}

void myMetod(int a){
a++;
}
}

чему будет равна а в итоге?
384. DoctorRoza 16.06.15 13:53 Сейчас в теме
387. awk 741 16.06.15 13:57 Сейчас в теме
(384) DoctorRoza, (385) alex_sh2008, Не верно.


Тому значению, которое передали. Передадут 10 - будет 10...
388. spacecraft 16.06.15 13:57 Сейчас в теме
(384) DoctorRoza, 5 значение переменной а передается по значению (просто копируется). и локальная переменная метода a перекрывает переменную класса а. Для доступа из метода к одноименной переменной класса а используется ключевое слово this.
389. alex_sh2008 4 16.06.15 14:02 Сейчас в теме
(388) spacecraft, А теперь усложните реализацию программы, и сделайте так что бы можно было непосредственно изменить переменную а класса по ссылке
391. spacecraft 16.06.15 14:10 Сейчас в теме
(389) alex_sh2008, так я давно прошу такой пример.
396. alex_sh2008 4 16.06.15 14:25 Сейчас в теме
(391) spacecraft, Можно было бы, но если бы не одно но, тип int относится к примитивным типам, и не наследуется от класса Object.
397. spacecraft 16.06.15 14:27 Сейчас в теме
399. alex_sh2008 4 16.06.15 14:31 Сейчас в теме
(397) spacecraft, Кстати я уже писал на эту тему в предыдущих постах.
402. awk 741 16.06.15 14:42 Сейчас в теме
(397) spacecraft, (399) alex_sh2008,

А что будет на консоле в этом случае?


class Test {
	class Foo {
		privare int i;
		public Foo(int i) {
			this.i = i;
		}
		public String toString() {
			return "" + i;
		}
	}

	private void setFoo(Foo f) {
		f = new Foo(4);
	}
	
	public static void main(String ... args) {
		Foo f = new Foo(5);
		setFoo(f);
		Console.WriteLine(f); //Что выведет 5 или 4????
	}
}
Показать
407. spacecraft 16.06.15 15:03 Сейчас в теме
(402) awk, 5. Если поле класса сделать статик, то 4.
436. awk 741 16.06.15 18:23 Сейчас в теме
(407) spacecraft, Если у бабушки были бы яйца - она была бы дедушкой.
437. Lokiy 135 16.06.15 20:27 Сейчас в теме
(436) awk, вот почему ты такое не смешной ?
409. alex_sh2008 4 16.06.15 15:15 Сейчас в теме
(402) awk,
{
int a = 1;

{
int a = 3;
}

a++;

Console.Writeln(a);
}
Что выведет на экран?
412. spacecraft 16.06.15 15:20 Сейчас в теме
(409) alex_sh2008, ошибку компиляции выведет. Повторное определение.
413. alex_sh2008 4 16.06.15 15:28 Сейчас в теме
(412) spacecraft, Дак определение давалось не для компиляции, но если скомпилировать допишите сами, думаю что сложности не составит
385. alex_sh2008 4 16.06.15 13:53 Сейчас в теме
386. spacecraft 16.06.15 13:55 Сейчас в теме
(385) alex_sh2008, но все равно передача ссылки?
433. DoctorRoza 16.06.15 17:18 Сейчас в теме
(383) spacecraft,

(375) alex_sh2008,
class myClass{
int a = 5;
public myClass(){myMetod(a);}

void myMetod(int a){
a++;
}
}
...Показать
чему будет равна а в итоге?


прощу хелп! Вот я написал ваш код

//
public class MyClass {

public static void main(String[] args) {

new MyClass().mmyClass();

}

int a = 5;

public void mmyClass()
{
myMetod(a);
}

void myMetod(int a){

System.out.println(a++);

}
}

дебаг показывает, что а = 6! What the f..k is that? :( Help!
434. spacecraft 16.06.15 17:39 Сейчас в теме
(433) DoctorRoza, где показал?
void myMetod(int a){

System.out.println(a++);

} 

в конце этого метода, локальная переменная этого метода будет 6.
Но переменная класса а не изменится. Так и будет 5.
DoctorRoza; +1 Ответить
435. spacecraft 16.06.15 17:47 Сейчас в теме
(433) DoctorRoza, рекомендую прочитать "К. Сьерра, Б. Бейтс - Изучаем Java". Очень доступно написано, как раз для 1Сника.
438. fzt 17.06.15 09:00 Сейчас в теме
(433) DoctorRoza,

void myMetod(int a){

System.out.println(a++);

} 

Это первая грабля жавы и ООП языков вообще. С шышечкой, с почином тыкскать.
В твоем методе создана копия примитивного типа int. С ней ты и работал.
В Java объекты всегда передаются по ссылке, а примитивы - по значению.
Т.е. передай ты на вход методу объект, ты бы изменил сам объект.

Просто помни об этом.
439. awk 741 17.06.15 13:15 Сейчас в теме
(438) fzt,
В Java объекты всегда передаются по ссылке, а примитивы - по значению.
Нет в яве передачи по ссылке. Есть передача значения ссылки. Пример не из Ява (т.к. на яве нет передачи по ссылке).

// Передача по ссылке
Процедура Замена(Т)
  Т = "Привет"
КонецПроцедуры

А = 5;
Замена(А);
Сообщить(А); // Выведет Привет

// Передача по значению
Процедура Замена(Знач Т)
  Т = "Привет"
КонецПроцедуры

А = 5;
Замена(А);
Сообщить(А); // Выведет 5
Показать
440. ZLENKO 398 17.06.15 14:03 Сейчас в теме
(439) awk, "Нет в яве передачи по ссылке. Есть передача значения ссылки."

Ну это достаточно легко проверить изменив (присвоить) в вызываемом методе ссылку на другой объект, то измениться ли ссылка в основной программе.
441. awk 741 17.06.15 14:14 Сейчас в теме
(440) ZLENKO, Бери код из (402) и проверяй.
442. Lokiy 135 17.06.15 14:44 Сейчас в теме
(440) ZLENKO, да не, он прав, если переопределить саму ссылку, то все, старая забывается просто.
443. alex_sh2008 4 17.06.15 15:24 Сейчас в теме
444. Lokiy 135 17.06.15 17:03 Сейчас в теме
(443) alex_sh2008, ну можно и так сказать, я не особо понимаю ковыряния в таких мелочах и их рассусоливания, один раз столкнулся, запомнил и работаешь дальше.
448. alex_sh2008 4 17.06.15 20:46 Сейчас в теме
(444) Lokiy, Запомнить мало главное понимать как работает механизм. К примеру ссылки не позволяют непосредственно изменять защищенные и приватные данные, с использованием указателей это сделать не составляет труда
450. awk 741 17.06.15 23:43 Сейчас в теме
(448) alex_sh2008, ТЫ про какой язык говоришь?
453. alex_sh2008 4 18.06.15 08:22 Сейчас в теме
(450) awk, Я говорю про разницу между указателем и ссылкой, ссылка не указывает на адрес где находится объект, а лишь указывает на заголовок объекта, а вот функция hashCode возвращает адрес на объект.
455. awk 741 18.06.15 10:02 Сейчас в теме
(453) alex_sh2008, Ерунду перестань писать... Hash code - никоим образом не относится к памяти...
458. alex_sh2008 4 18.06.15 10:18 Сейчас в теме
(455) awk, С главным коком не поспоришь. Читай лучше документацию по Java, а не бросайся поверхностными фразами.
459. awk 741 18.06.15 11:18 Сейчас в теме
(458) alex_sh2008, Ну так и ты читай документацию, а не серию "... для Чайников".
465. alex_sh2008 4 18.06.15 13:05 Сейчас в теме
(459) awk, Ну раз ты не для чайников читаешь, объясни мне чайнику зачем нужен hashCode объекту?
472. awk 741 18.06.15 13:29 Сейчас в теме
(465) alex_sh2008,
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.
The general contract of hashCode is:
Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.)
Returns:
a hash code value for this object.


http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/lang/Object.java
473. alex_sh2008 4 18.06.15 13:30 Сейчас в теме
(472) awk, Своими словами, а не цитированием других
475. alex_sh2008 4 18.06.15 13:39 Сейчас в теме
(472) awk, И второе в этом тексте все равно нет ответа, зачем нужен hashcode, и почему без него обходились в C++.
478. awk 741 18.06.15 13:43 Сейчас в теме
(475) alex_sh2008, Забудь о С++. С++ - это С++, а Java - это Java.

(473) alex_sh2008, Если тебе боженька ума не дал. То я не подряжался за него его работу выполнять...
480. alex_sh2008 4 18.06.15 13:44 Сейчас в теме
(478) awk, Дак ты ответишь на вопрос или будешь обвинениями блестать?
484. awk 741 18.06.15 13:53 Сейчас в теме
(480) alex_sh2008,
1. Кто тебе сказал, что в С++ не используется аналог?
2. В исходниках класса написано где используется. Для операций сравнения.
487. alex_sh2008 4 18.06.15 13:57 Сейчас в теме
(484) awk,
1. В с++ принцип другой работы с объектами.
2. А что нельзя 2 объекта сравнить без hashCode?
496. awk 741 18.06.15 14:11 Сейчас в теме
(487) alex_sh2008,
1. Я знаю. Но кто тебе сказал, что в С++ недоиспользующийся хеш функции для сравнения значений?
2. Операцией "==" для объектов - нет. Переопределив equals - пожалуйста.
499. alex_sh2008 4 18.06.15 14:16 Сейчас в теме
(496) awk, Речь шла про hashcode, а сравнить я могу и создав функцию "compare", или перегрузив в классе оператор "==".
503. spacecraft 18.06.15 14:18 Сейчас в теме
(499) alex_sh2008, мы точно про Java говорим?
510. alex_sh2008 4 18.06.15 14:26 Сейчас в теме
(503) spacecraft, Ну там по другому это называется, как такового наследования нет, и для каждого класса определяется своя статическая функция оператор.
504. awk 741 18.06.15 14:19 Сейчас в теме
(499) alex_sh2008, И что? Я могу пешком на работу ходить, но я так не делаю...
513. alex_sh2008 4 18.06.15 14:31 Сейчас в теме
(504) awk, Дак вы мне можете дать ваш ответ зачем нужен hashCode, и почему его обязательно реализовывать в классах наследниках?
514. awk 741 18.06.15 14:33 Сейчас в теме
(513) alex_sh2008,
зачем нужен hashCode
Уже отвечал.
его обязательно реализовывать в классах наследниках
Я такого не писал.
516. alex_sh2008 4 18.06.15 14:35 Сейчас в теме
(514) awk, Сравнивать объекты можно и без hashcode, но его намерено ввели в класс Объект, зачем?
519. alex_sh2008 4 18.06.15 14:46 Сейчас в теме
445. spacecraft 17.06.15 17:26 Сейчас в теме
(439) awk, неудачный пример. В 1С нет передачи объекта. Есть передача переменной по ссылке.
Идея понятна, но основывается на точки зрения, что передается не объект. Я не спорю и понимаю. Но и другую точку зрения тоже понимаю.
446. awk 741 17.06.15 18:36 Сейчас в теме
(445) spacecraft, Я уже говорил, что ССЫЛА_ЯВА != ССЫЛКА_СРР. ССЫЛКА_ЯВА == УКАЗАТЕЛЬ_СРР - адресная арифметика. ТУт надо для четкого понимания смотреть код на ассемблере/байт код - во что все это превращается.
447. alex_sh2008 4 17.06.15 20:39 Сейчас в теме
(446) awk,
ССЫЛКА_ЯВА == УКАЗАТЕЛЬ_СРР

Интересно, Можете показать пример на Javа, где есть операции с ссылкой так же как с указателем?
449. awk 741 17.06.15 23:34 Сейчас в теме
(447) alex_sh2008, Научись читать.

ССЫЛКА_ЯВА == УКАЗАТЕЛЬ_СРР - адресная арифметика
451. fzt 18.06.15 06:12 Сейчас в теме
(439) awk.
Официальная документация называет "их" ссылками. Сравнения с какими-то языками зачем?
Да в сравнении с какими-то там языками "ссылка" в жава "особенная". В том плане, что единожды её создав, все-таки можно поменять значение адреса, на которое она указывает. Т.е. это переменная хранящая значение адреса. Которое всегда можно поменять.

Мы знаем (а мы знаем?), при передаче параметра в метод создастся копия этого параметра. Если внутри метода мы попытаемся переопределить переданную ссылку, то внешняя ссылка не изменится. Поменяется лишь значение её копии внутри метода.
Всё так же, как и с параметрами, переданными по значению. Вот этот нюанс хочется подчеркнуть?

Какого дъявола отражать в терминологии особенность поведения ссылок. Ну раз уж мы читая доку называем эти "ссылки" ссылками.
Это ведь не передача по значению, это такие ссылки (которые можно переопределить).

Почему по значению? - В любом языке, внутри метода возникает техническая копия адреса. Есть другие предложения, где метод будет хранить переданный ему параметр?. Поэтому в любом языке ссылки передаются по значению. В отличии от жавы их просто переопределить нельзя.

Не стоит вносить ЭТУ мозгодротку в головы новичкам. Для которых жава по сути первый язык.
К тому-же в терминологии документации это "передача по ссылке".
452. Lokiy 135 18.06.15 08:05 Сейчас в теме
(451) fzt,
Не стоит вносить ЭТУ мозгодротку в головы новичкам. Для которых жава по сути первый язык. 
К тому-же в терминологии документации это "передача по ссылке.
ты че ! без этого важного знания даже hello world нормально не написать, а если попытаться это приведет к вселенской катастрофе и по всему миру рухнут сервера.
457. awk 741 18.06.15 10:04 Сейчас в теме
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день