Файл класса Java содержит комментарии - почему? -- java пол Связанный проблема

java class file contains comments - why?


1
vote

проблема

русский

Когда я открываю <код> MyClass.class файл в моем редакторе Eclipse, он также показывает мне комментарии кода.

Не должен быть оптимизирован .class файла для удаления комментариев? Я ожидал увидеть оптимизированные кода Sans комментарии.

Я вижу это, когда я открываю string.class в Eclipse.

 <Код>     /**       * Returns a hash code for this string. The hash code for a       * <code>String</code> object is computed as       * <blockquote><pre>       * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]       * </pre></blockquote>       * using <code>int</code> arithmetic, where <code>s[i]</code> is the       * <i>i</i>th character of the string, <code>n</code> is the length of       * the string, and <code>^</code> indicates exponentiation.       * (The hash value of the empty string is zero.)       *       * @return  a hash code value for this object.       */      public int hashCode() {          int h = hash;          if (h == 0 && value.length > 0) {              char val[] = value;                for (int i = 0; i < value.length; i++) {                  h = 31 * h + val[i];              }              hash = h;          }          return h;      }  
Английский оригинал

When I open MyClass.class file in my Eclipse editor, it shows me comments as well the code.

Shouldn’t the .class file be optimized to remove comments? I was expecting to see optimized code sans comments.

I see this when I open String.class in Eclipse.

    /**       * Returns a hash code for this string. The hash code for a       * <code>String</code> object is computed as       * <blockquote><pre>       * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]       * </pre></blockquote>       * using <code>int</code> arithmetic, where <code>s[i]</code> is the       * <i>i</i>th character of the string, <code>n</code> is the length of       * the string, and <code>^</code> indicates exponentiation.       * (The hash value of the empty string is zero.)       *       * @return  a hash code value for this object.       */      public int hashCode() {          int h = hash;          if (h == 0 && value.length > 0) {              char val[] = value;                for (int i = 0; i < value.length; i++) {                  h = 31 * h + val[i];              }              hash = h;          }          return h;      }
</div
  
     
     

Список ответов

4
 
vote

Когда Eclipse открывает <код> .class файл, он генерирует читаемое представление байтовных кодов, а также комментариев (где он может и где он будет полезным). Эти комментарии не являются частью .class файла. (Однако, если информация отладки присутствует в <код> .class файла, он будет использовать это при генерировании комментариев.)

Редактировать: на основе вашего обновленного вопроса, я бы сказал, что то, что происходит, это то, что Eclipse связано с исходным файлом с помощью файла .class и показывает, что вместо кодов байтов. Для классов Java API, это обычно потому, что определение библиотеки в Eclipse устанавливается, чтобы указать на исходный файл .jar.

 

When Eclipse opens a .class file, it generates a readable representation of the byte codes as well as comments (where it can and where it figures they would be helpful). These comments are not part of the .class file. (However, if debugging information is present in the .class file, it will make use of that when generating the comments.)

EDIT: Based on your updated question, I'd say that what's happening is that Eclipse is associating a source file with the .class file and is showing that instead of the byte codes. For the Java API classes, this is usually because the library definition in Eclipse is set up to point to a source .jar file.

</div
 
 
   
   

Связанный проблема

-1  Java создает массив объекта, который 40% длины массива должен быть объектом x другой объект 30% Z и 30% объекта Y [закрыто]  ( Java create an array of object which the 40 of the array length should be objec ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос нуждается в Детали или ясность . В настоящее...

2  Наличие JSF выпивать поля поиска HTML. Doable?  ( Having jsf spit out an html search field doable ) 
Я не разработчик Java, но работаю с командой, которая использует JSF 1.2 Мы хотели бы начать использовать теги HTML 5 и атрибуты. Не отображается, что JSF 1...

-1  Невозможно получить доступ к файлу из сетевого диска  ( Unable to access file from network drive ) 
Я создаю отображение виртуального каталога в Weblogic, передавая местоположение сети и, похоже, не работает. <Код> <wls:virtual-directory-mapping> <wls:...

0  Чтение записи студентов из файла  ( Reading student record from file ) 
Я пытаюсь прочитать файл, который имеет запись студентов (имя, фамилия и оценка). Я написал простой код для выполнения этой задачи, но код не удается после пр...

0  Почему этот модульный тест говорит, что мой каталог не существует, когда он делает?  ( Why does this unit test say my directory doesnt exist when it does ) 
Этот код <код> URL listofFiles = this.getClass().getResource("someDir"); File f = new File(listofFiles.toString()); File[] files = f.listFiles(); работа...

-3  Я хочу знать, как извлечь данные из файла PDF с помощью Java [Закрыто]  ( I want to know how to extract data from a pdf file using java ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос должен быть больше Фокусированный . В настоя...

0  Что такое ошибка Java: 93: достигается конца файла во время анализа?  ( What is java error 93 reached end of file while parsing ) 
Это может быть относительно простым вопросом, но почему моя программа получает эту ошибку: Express.java: 93: Ошибка: достигается до конца файла во время анали...

1  Устройство не получают сообщение от GCM  ( Device not receive message from gcm ) 
Я пытаюсь использовать GCM для отправки уведомления с сервера на наше устройство. Все следуют в этом руководстве: http://hmkcode.com/android-google-cloud-m...

0  LinkedList Рекурсивный метод  ( Linkedlist recursive method ) 
Я пытаюсь написать рекурсивный метод, который печатает связанный список в обратном порядке, но я получаю ошибку Stackoverflow. Метод должен завершиться, когда...

1  Jaxb Marshalling само отношении  ( Jaxb marshalling self relation ) 
Рассмотрим известное отношение сотрудника / менеджера <код> public class Employee { public Employee manager; public List<Employee> employees; } То, чт...

0  Реализация ARP Smooth  ( Implementing arp sweep ) 
Я играю с libpcap / jpcap. Реализация Sweeper ARP. Я отправляю запрос на все IP в блоке до вещательного адреса и чтения ответов. Теперь я не могу думать о том...

21  Не мог зарезервировать достаточно места для кучи объекта, чтобы начать JVM  ( Could not reserve enough space for object heap to start jvm ) 
Просто столкнулся со странной проблемой. Когда я набрал <код> java -version Я получил <код> Error occurred during initialization of VM Could not reser...

154  Любой способ вызвать частный метод?  ( Any way to invoke a private method ) 
У меня есть класс, который использует XML и отражение для возврата <код> Object s на другой класс. Обычно эти объекты являются подпольными полями внешнего ...

1  Проблема с использованием TextureView с NDK  ( Issue using textureview with ndk ) 
Я работаю над небольшим кусочком кода, используя текстуру, чтобы отобразить результат среды MediaPlayer. Я сталкиваюсь с проблемой, пытающимся смешивать упр...

5  Веб-сервисы в Java  ( Web services in java ) 
Что вы обычно используете для подключения к веб-сервису, когда вы разрабатываете проект Java? Есть разные API-S, которые могут сделать работу. Из разных кни...