Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

пара вопросов по Java

268
25 июля 2006 года
Михаил
587 / / 25.06.2005
вопрос: суперкласс - это предок всех класов или класс-родитель дочернего класса?
268
25 июля 2006 года
Михаил
587 / / 25.06.2005
воторой вопрос: если метод в классе объявляется безо всякого модификатора, то каким он считается public, protected или private?
12K
26 июля 2006 года
Criolit
20 / / 27.06.2006
Ответ на первый: суперкласс это класс-родитель дочернего класса. Дочерний класс в свою очередь может стать суперклассом для другого класса который его наследует.

Ответ на второй: public
268
26 июля 2006 года
Михаил
587 / / 25.06.2005
спасибо Criolit
240
26 июля 2006 года
aks
2.5K / / 14.07.2006
[QUOTE=Criolit]
Ответ на второй: public[/QUOTE]
Ай ай ай =)) private конечно же )
2.7K
26 июля 2006 года
alexeyvnikitin
96 / / 11.10.2004
[QUOTE=aks]Ай ай ай =)) private конечно же )[/QUOTE]

А я думал это тоже, что и internal в .NET: доступен из того же пакета
11K
26 июля 2006 года
0ver10PD
45 / / 05.12.2005
[QUOTE=Criolit]Ответ на первый: суперкласс это класс-родитель дочернего класса. Дочерний класс в свою очередь может стать суперклассом для другого класса который его наследует.

Ответ на второй: public[/QUOTE]

На второй ответ правильно сказать не public а default

public - полный доступ.
protected - доступен внутри пакета и наследуемыми классами
default - доступен только внутри пакета
private - доступен только внутри класса
268
26 июля 2006 года
Михаил
587 / / 25.06.2005
как вывести код символа?
268
26 июля 2006 года
Михаил
587 / / 25.06.2005
с кодом символа я разобрался, а в какая кодировка используется?
240
26 июля 2006 года
aks
2.5K / / 14.07.2006
Ай ай, попутал форум c C++. ))
0ver10PD конечно прав )
11K
26 июля 2006 года
0ver10PD
45 / / 05.12.2005
[QUOTE=Михаил]с кодом символа я разобрался, а в какая кодировка используется?[/QUOTE]
System.out.println(Charset.defaultCharset());
12K
26 июля 2006 года
Criolit
20 / / 27.06.2006
[QUOTE=aks]Ай ай ай =)) private конечно же )[/QUOTE]
В книге П.Ноутон и Г.Шилдт "Java2" написано на странице 174 в листинге указано: доступ по умолчанию public. Так это что ошибка в книге? Если да, то оторвать редактору одно место :)!
12K
26 июля 2006 года
Criolit
20 / / 27.06.2006
Согласен, что не логично. Сейчас проверю.
240
26 июля 2006 года
aks
2.5K / / 14.07.2006
[QUOTE=Criolit]В книге П.Ноутон и Г.Шилдт "Java2" написано на странице 174 в листинге указано: доступ по умолчанию public. Так это что ошибка в книге? Если да, то оторвать редактору одно место :)![/QUOTE]
Видимо так и есть. Проверить довольно легко ведь - достаточно создать метод без модификаторов и попытаться к нему обратиться из другого класса.
Да и не логично было бы Public делать )

Собственно из официальной спецификации языка:
http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html
12K
26 июля 2006 года
Criolit
20 / / 27.06.2006
Таки public по умолчанию.
268
26 июля 2006 года
Михаил
587 / / 25.06.2005
20ver10PD а в каком пакете находится Chareset?
11K
26 июля 2006 года
0ver10PD
45 / / 05.12.2005
[QUOTE=Criolit]Таки public по умолчанию.[/QUOTE]
таки неправильно
создай классы в разных пакетах, и попробуй обратится на прямую к переменной, тоже самое если в разных пакетах и твой класс наследует класс в котором переменная default

http://www.janeg.ca/scjp/declarations/access.html
или гугл в помошь "java access modifiers" но достаточно проверит самому

[QUOTE=Михаил]20ver10PD а в каком пакете находится Chareset?[/QUOTE]
java.nio.charset.Charset
3.7K
26 июля 2006 года
bioflash
169 / / 01.10.2005
0ver10PD ти прав относительно доступа по умолчанию "Default".
Но относительно дефолтной кодировки - такого метода я никогда не видел, может в новой jre есть такая имплементация, но в 1.4.2 НЕТУ!!!

Чтоби достать дефолтний Charset (пакет: java.nio.charser) делаю так:
Charset.forName(System.getProperty("file.encoding"))
12K
26 июля 2006 года
Criolit
20 / / 27.06.2006
[QUOTE=0ver10PD]таки неправильно
создай классы в разных пакетах, и попробуй обратится на прямую к переменной, тоже самое если в разных пакетах и твой класс наследует класс в котором переменная default

http://www.janeg.ca/scjp/declarations/access.html
или гугл в помошь "java access modifiers" но достаточно проверит самому


java.nio.charset.Charset[/QUOTE]
Во блин как в этой Java намутили с доступом к членам класса.
11K
26 июля 2006 года
0ver10PD
45 / / 05.12.2005
[QUOTE=bioflash]0ver10PD ти прав относительно доступа по умолчанию "Default".
Но относительно дефолтной кодировки - такого метода я никогда не видел, может в новой jre есть такая имплементация, но в 1.4.2 НЕТУ!!!

Чтоби достать дефолтний Charset (пакет: java.nio.charser) делаю так:
Charset.forName(System.getProperty("file.encoding"))[/QUOTE]
Согласен, что в 1.4.2 этого нету, я юзаю 1.5.0 (в ней так и написано что это начиная с версии 1.5 появилось, и кстати по исходникам оно именно так ее и получает в 1.5)
268
26 июля 2006 года
Михаил
587 / / 25.06.2005
Вычитал, что при присвоении нового значения строке просто создается новый объект. Удаляется ли старый?
то есть если я напишу так

String s=new String("nmn");
int i;
for(i=0;i<10;i++)s=s+i;

то всего экземпляров класса String будет 11 или 1?
9.8K
27 июля 2006 года
vds
18 / / 20.07.2005
теоретически правильным будет ответ, что остаётся 1 строка, т.к. на каждой итерации при создании нового объекта строки переменная уже не будет указывать на старый объект и он должен быть уничтожен... на практике я предполагаю, что реальное количество строковых объектов может и не равняться 1, а быть и больше... смотря насколько сборщик мусора хорошо выполняет свою работу(при большом желании можно было вызывать его на каждой итерации, но кому это надо?)
268
27 июля 2006 года
Михаил
587 / / 25.06.2005
а когда вызывается сборщик мусора?
18K
27 июля 2006 года
DanStopka
4 / / 08.07.2006
ответ на второй:
нормальное положение шлакбаума - закрытое
9.8K
27 июля 2006 года
vds
18 / / 20.07.2005
Сборщик мусора вызывается автоматически(жаль только, что виртуальные машины от разных производителей всяк по своему понимают выражение автоматически), когда виртуальная машина решит собрать мусор... но можно и принудительно, написав что-то типа этого
 
Код:
Runtime myRuntime = Runtime.getRuntime();
myRuntime.gc();
//и будет вам счастье
3.7K
27 июля 2006 года
bioflash
169 / / 01.10.2005
Для такого примера:
String s=new String("nmn");
int i;
for(i=0;i<10;i++)s=s+i;

Действительно екземляров будет 11. Пока сборщик мусора (GC) не виполнится. Но ето не самое плохое в данои ситуации - хуже то - что 11 раз будет виделятся место в пам'яти (а если GC будет виполнятся при каждои итерации, то ето притормозит роботу програми).
Для виполнения операции з строками лучше использовать клас StringBuffer - он бистрее и намного зручнее.
20K
28 июля 2006 года
Юрий Чиж
1 / / 28.07.2006
Народ!!! Сборщик мусора НЕЛЬЗЯ принудительно вызвать. Когда мы пишем
Runtime.getRuntime().gc(); , мы всего-лишь говорим сборщику мусора, что мы хотим его вызвать. Вызов этого метода не обязательно приводит к выполнению очистки. В Sun-овском экзамене есть вопрос, что-то типа: "Можно ли принудительно вызвать сборщик мусора?". На буржуйском, естественно. Правильный ответ - НЕТ! Мы можем только попросить... А как он решит - это его дело, и я подозреваю, что разные реализации будут вести себя по-разному. Такие вот пироги.
11K
31 июля 2006 года
0ver10PD
45 / / 05.12.2005
[QUOTE=Юрий Чиж]Народ!!! Сборщик мусора НЕЛЬЗЯ принудительно вызвать. Когда мы пишем
Runtime.getRuntime().gc(); , мы всего-лишь говорим сборщику мусора, что мы хотим его вызвать. Вызов этого метода не обязательно приводит к выполнению очистки. В Sun-овском экзамене есть вопрос, что-то типа: "Можно ли принудительно вызвать сборщик мусора?". На буржуйском, естественно. Правильный ответ - НЕТ! Мы можем только попросить... А как он решит - это его дело, и я подозреваю, что разные реализации будут вести себя по-разному. Такие вот пироги.[/QUOTE]
Читай SUNовский JavaDoc http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#gc()
Цитата:

Runs the garbage collector. Calling this method suggests that the Java virtual machine expend effort toward recycling unused objects in order to make the memory they currently occupy available for quick reuse.


Запускает сборщик мусора. Вызов этого метода предполагает что виртуальная машина Java тратит "усилия" на предстаящий сбор неиспользуемых объектов для очистки памяти они занимают доступно для быстрого (дальнейшего) использования.
Вот здесь http://java.sun.com/docs/hotspot/gc1.4.2/faq.html пункт 14

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог