Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Воспользуйтесь вызовом «System.current-TimeMillis()», возвращающим число миллисекунд с начала 1970 года.
Однако будьте внимательны: метод System.current-TimeMillis обычно весьма неточен. В большинстве реализаций он даже не обеспечивает декларированную точность в 1 миллисекунду. Например, в Windows NT/2000/XP возвращаемое значение меняется в среднем один раз в 10 миллисекунд. Поэтому данный метод пригоден лишь для измерения сравнительно длительных промежутков времени.
Если необходимо точно измерить короткий промежуток времени – например, время исполнения некоторого участка кода – можно попытаться повторить соответствующий участок много раз в достаточно длинном цикле и поделить общее время на число итераций. Для исключения влияния параллельных процессов эту операцию обычно имеет смысл повторить несколько десятков раз и из всех измерений времени взять наименьший результат.
Альтернативный подход – реализовать для точного измерения времени native-метод на языке C. В операционной системе Windows можно использовать стандартные вызовы QueryPerformanceCounter и QueryPerformance-Frequency, обеспечивающие на Intel-платформе точность около 1 наносекунды. Кроме того, на процессорах Intel можно использовать специальную команду ассемблера rdtsc (машинный код 0Fh,31h), обеспечивающую максимально возможную точность – до одного такта процессора.
Вопрос:
Как правильно вывести в системную консоль многострочный текст?
Ответ:
Используйте несколько вызовов System.out.println.
Не пытайтесь использовать специальный символ “ ” для разделения строк, как это принято в языках C, C++, Perl и многих других. В языке Java символ “ ”, в полном соответствии с идеологией языка, является платформенно-независимым: на любой платформе он имеет десятичный код 10 (стандартный символ «перевода строки»). Но, скажем, на Macintosh для перехода на новую строку используется другой символ: ASCII 13 (“ ” в Java).
Существует корректная альтернатива использованию серии вызовов println. Можно объявить константу:
public static final String lineSeparator= System.getProperty("line.separator"," ");
и использовать ее для разделения строк:
System.out.println("1st line"+lineSeparator+"2nd line");
Все сказанное, конечно, справедливо только в случае, если вывод на консоль используется с целью визуального просмотра на том же компьютере. Если средства консольного вывода используются, скажем, для формирования заголовка HTTP-ответа веб-сервера по HTTP-протоколу, в котором строки должны разделяться парой символов с жестко фиксированными кодами 13 и 10, то ситуация будет обратной. Использование метода println будет ошибкой, а правильным решением будет вызов метода print с явным добавлением комбинации « » в конце каждой строки.