![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
kamnerobot |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Почему если надо узнать длинну массива пишем, скажем
args.length а если длинну строки то myString.length() |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
ну так разные ведь вещи!
длинна массива, и метод "количество символов в строке" |
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Хороший вопрос. Учитывая, что String не может поменять своё значение, могли бы сделать и просто полем. Метод length() просто возвращает count – приватное поле объекта. То есть вполне могли сделать также как и в array - "hello world".length и всё тут. Причины действительно на первый взгляд не понятны.
|
|||
|
||||
53x7u5 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
А по-моему это вполне логично. Если строка в памяти хранится вместе с параметром отражающим её длинну - то это будет мартышкин труд. Реально далеко даже не в половине случаев для работы со строками нужно точно знать ее длинну. В итоге программа за счет неиспользуемых данных будет занимать неоправданно больше места в памяти, что так или иначе отразится на быстродействии. В то же время для работы с массивами знать его длинну нужно всегда и обращаться к ней нужно постоянно. Следовательно удобнее для каждого объекта данных хранить параметр эквивалентный длинне массива. Таким образом для строк выгоднее использовать метод, а для массива - читать параметр напрямую. Это конечно только догадка, но звучит вроде разумно. Поправьте если я не прав. |
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
это надо посмотреть в исходники java, на конструкторы класса String. Обрати внимание на поле count, а также на метод length();
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |