Когда вы компилируете литерал числа в Java и назначаете его Integer (capital I
), компилятор испускает:
Integer b2 =Integer.valueOf(127)
Эта строка кода также генерируется при использовании автобоксинга.
valueOf
реализовано так, что определенные числа «объединены», и он возвращает тот же экземпляр для значений, меньших 128.
Из исходного кода java 1.6 строка 621:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
Значение high
может быть настроено на другое значение с системным свойством.
-Djava.lang.Integer.IntegerCache.high = 999
blockquote>Если вы запустите свою программу с этим системным свойством, она выведет true!
Очевидный вывод: никогда не полагайтесь на то, что две ссылки идентичны, всегда сравнивайте их с
.equals()
.
Таким образом,
b2.equals(b3)
будет печатать true для всех логически равных значений b2, b3.Обратите внимание, что кег Integer отсутствует по соображениям производительности, а скорее соответствует JLS, раздел 5.1.7 ; идентификатор объекта должен быть задан для значений от -128 до 127 включительно.
Целое число # valueOf (int) также документирует это поведение:
этот метод вероятно, даст значительно лучшую производительность пространства и времени, кэшируя часто запрашиваемые значения. Этот метод всегда будет кэшировать значения в диапазоне от -128 до 127 включительно и может кэшировать другие значения за пределами этого диапазона.
blockquote>
Take me to [pookie](#pookie)
должен быть правильным синтаксисом разметки для перехода к якорной точке с именем pookie.
Чтобы вставить опорную точку этого имени, используйте HTML:
<a name="pookie"></a>
Markdown Кажется неважно, куда вы помещаете опорную точку. Полезное место для его размещения - в заголовке. Например:
### <a name="tith"></a>This is the Heading
работает очень хорошо. (Я бы продемонстрировал здесь, но средство визуализации SO вырезает якорь.)
id=
по сравнению с name=
Ранняя версия этого сообщения предложила используя <a id='tith' />
, используя самозакрывающийся синтаксис для XHTML и используя атрибут id
вместо name
.
XHTML позволяет любому тегу быть «пустым» и «самозакрытым», , То есть <tag />
является короткой для <tag></tag>
, совпадающей пары тегов с пустым телом. Большинство браузеров будут принимать XHTML, но некоторые из них этого не делают. Чтобы избежать проблем с несколькими браузерами, закройте тег явным образом, используя <tag></tag>
, как было рекомендовано выше.
Наконец, атрибут name=
устарел в XHTML, поэтому я изначально использовал id=
, который каждый распознает , Тем не менее, HTML5 теперь создает глобальную переменную в JavaScript при использовании id=
, и это может быть необязательно то, что вы хотите. Таким образом, использование name=
теперь, скорее всего, будет более дружелюбным.
(Благодаря Slipp Douglas для объяснения XHTML мне и nailer для указания из-за побочного эффекта HTML5 - см. комментарии и ответ гвоздя для более подробной информации. name=
, похоже, работает повсюду, хотя он устарел в XHTML.)
Markdown Anchor поддерживает хешмарк, поэтому ссылка на привязку на странице будет просто [Pookie](#pookie)
. Генерация якоря фактически не поддерживается в Gruber Markdown, но находится в других реализациях, таких как Markdown Extra .
В Markdown Extra идентификатор привязки добавляется к заголовку или подзаголовку с помощью {#pookie}
.
Github Flavored Markdown на страницах репозитория Git (но не в Gists) автоматически генерирует якоря с несколькими метками разметки на всех заголовках (h1, h2, h3 и т. д.), включая:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(это для значка ссылки svg, который отображается при наведении курсора мыши) Исключая арию / svg icon, когда вы пишете:
# Header Title
Github генерирует:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Поэтому никому не нужно создавать ссылки заголовка и всегда можно ссылаться на них с помощью:
[Header Title](#header-title)
На bitbucket.org голосование не будет работать. Вместо этого при использовании заголовков (с ##) можно ссылаться на них как на якоря, префикс их как # markdown-header-my-header-name, где # markdown-header - неявный префикс, созданный средством визуализации, и
Пример
## My paragraph title
будет генерировать неявный якорь, подобный этому
#markdown-header-my-paragraph-title
. весь URL-адрес перед каждой привязной ссылкой необязателен, т. е.
[Some text](#markdown-header-my-paragraph-title)
эквивалентен
[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
при условии, что они находятся на одной странице.
Источник : https://bitbucket.org/tutorials/markdowndemo/overview (отредактируйте источник этого файла .md и посмотрите, как создаются привязки).
## My paragraph title
будет создан следующий якорь user-content-my-paragraph-title
, поэтому вы можете ссылаться на него с помощью [Some text] (# user-content-my-paragraph-title). Однако я не нашел для этого официальной документации.
– toto_tico
11 July 2016 в 23:02
[linky](#header)
был достаточным якорем и работал при публикации в Gist.
– Felipe Alvarez
18 May 2017 в 04:15
Поздно к вечеринке, но я думаю, что это дополнение может быть полезно для людей, работающих с rmarkdown
. В rmarkdown
имеется встроенная поддержка ссылок на заголовки в вашем документе.
На любой заголовок, заданный
# Header
, можно ссылаться на
get me back to that header(#header)
Ниже приведен минимальный автономный файл .rmd
, который показывает это поведение. Его можно связать с .pdf
и .html
.
---
title: "references in rmarkdown"
output:
html_document: default
pdf_document: default
---
# Header
Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text.
Go back to that [header](#header).
Используя последний Markdown, вы должны использовать следующий синтаксис:
[](){:name='anchorName'}
Это должно создать следующий HTML:
<a name="anchorName"></a>
Если вы хотите, чтобы якорь имел текст, просто добавьте тест в квадратные скобки:
`Some Text {: name = 'anchorName'}
Для наиболее распространенных генераторов разметки. В каждом заголовке у вас есть простой самогенерируемый якорь. Например, с помощью pandoc сгенерированный якорь будет кеш-кешем для вашего заголовка.
echo "# Hello, world\!" | pandoc
# => <h1 id="hello-world">Hello, world!</h1>
В зависимости от того, какой вы используете парсер разметки, якорь может измениться (возьмите пример symbolrush и La muerte Peluda отвечает, они разные!). См. Этот babelmark , где вы можете видеть сгенерированные привязки в зависимости от реализации уценки.
Используйте name
. Использование id
не требуется в HTML 5 и создаст глобальные переменные в вашем JavaScript
См. Спецификацию HTML 5, 5.9.8 Навигация к идентификатору фрагмента - оба id
и name
.
Важно знать, что большинство браузеров все еще обращают идентификаторы в глобальные переменные . Вот быстрый тест . Использование name
позволяет избежать создания глобалов и любых конфликтов, которые могут возникнуть.
Пример использования имени:
Take me to [pookie](#pookie)
И привязка адресата:
### <a name="pookie"></a>Some heading
name
и id
различна.
– Marnen Laibow-Koser
11 September 2014 в 19:22
fineuploader
, вы не сможете использовать модуль fineuploader
. Избегание создания ненужных глобальных элементов помогает избежать этих конфликтов.
– mikemaccana
14 September 2014 в 14:34
В исходном синтаксисе Markdown нет доступного синтаксиса, но Markdown Extra предоставляет средства, по меньшей мере, назначать идентификаторы заголовкам, которые вы можете легко связать с ними. Также обратите внимание, что вы можете использовать обычный HTML как в Markdown, так и в Markdown Extra, а атрибут name
был заменен атрибутом id
в более поздних версиях HTML.
<a>
без href, это не значит, что он сам закрывается. Если я полностью не схожу с ума, оба из них: test-xhtml11 и [ sln.6bitt.com/public/test-html5.html] (test-html5) сделать остальную страницу в пределах & lt; a & gt; тег. Идите вперед и осмотрите веб-инспектора по вашему выбору. – Slipp D. Thompson 21 April 2012 в 01:33<a id="hi"/> rest of doc
, но с ним обращались как<a id="hi"> rest of doc</a>
. (И элементный анализ страницы также показывает это.) Моя ошибка: я посмотрел на элементы, отображаемые не на исходный источник. Считаете ли вы, что ответ должен быть изменен в свете этого наблюдения? – Steve Powell 16 May 2012 в 14:56name
также создает глобальные переменные (см. stackoverflow.com/questions/3434278/… ), поэтому вы можете также использовать атрибутid
в качестве целевого URL-адреса идентификатора фрагмента, так как предназначена. – Bobby Jack 15 June 2015 в 09:22