목차
지식 1: 정수와 정수의 차이점" >지식 1: 정수와 정수의 차이점
지식 2: 정수.값() 메소드에 대한 자세한 설명" >지식 2: 정수.값() 메소드에 대한 자세한 설명
Java java지도 시간 정수와 정수의 차이점과 정수.값() 메소드에 대한 자세한 설명

정수와 정수의 차이점과 정수.값() 메소드에 대한 자세한 설명

Jun 26, 2017 am 10:20 AM
integer 차이점 방법

면책조항: 이 글은 해당 블로거의 글을 재인쇄한 것입니다. 원본 주소는 글 끝에 있습니다.

지식 1: 정수와 정수의 차이점

/*
* int는 java에서 제공하는 8가지 기본 데이터 유형 중 하나입니다. Java는 각 기본 유형에 대한 래퍼 클래스를 제공합니다. Integer는 int에 대해 Java에서 제공하는 래퍼 클래스입니다. int의 기본값은 0,
*이고 Integer의 기본값은 null
* 즉, Integer는 할당되지 않은 값과 0의 값을 구분할 수 있지만 int는 할당되지 않은 상황을 표현할 수 없습니다. 예를 들어 시험에 응시하지 않은 것과 시험 점수가 0점인 것의 차이를 표현하려면
* , Integer
* 만 사용할 수 있습니다. JSP 개발에서는 Integer의 기본값이 null이므로 el 표현식을 사용하여 텍스트 상자에 표시하면 값이 빈 문자열이고 int의 기본값은 0이므로 el 표현식을 사용하면 텍스트 상자에 표시하려면
* 결과가 0이므로 int는 웹 레이어의 양식 데이터 유형으로 적합하지 않습니다.
* Hibernate에서 OID가 Integer 타입으로 정의된 경우, Hibernate는 객체의 값이 null인지 여부에 따라 객체가 임시인지 여부를 결정할 수 있습니다.
* * OID가 int 타입으로 정의된 경우, 해당 객체를 설정해야 합니다. hbm 매핑 파일에서 저장되지 않은 값 속성을 0으로 설정합니다.
* 또한 Integer는 문자열을 정수로 변환하는 등 다양한 정수 관련 연산 방법을 제공합니다. Integer는 정수의 최대값과 최소값을 나타내는 상수도 정의합니다.

*/

지식 2: 정수.값() 메소드에 대한 자세한 설명

System.out.println(Integer.parseInt ("128")==Integer.valueOf( "128"));
1
2
3
System.out.println(Integer.valueOf("127")==Integer.valueOf ("127"));System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));
System. out.println(Integer.valueOf("128")==Integer.valueOf("128"));
🎜🎜🎜

첫 번째 판단은 true를 반환하고 두 번째 판단은 false를 반환하는 이유는 무엇입니까? 127 128내가 모르는 차이점이 있나요? (물론127미만128...)

true而第二个判断返回了false127128有什么我不知道的区别吗?(当然除了127小于128…)

还有,为什么第三个判断返回了true
我看了另一个相关提问的回答,但是我还是不知道它们什么时候返回true还有为什么第二个判断返回false

  回答#1:

Integer.valueOf(String)确有一个不同寻常的行为。

valueOf会返回一个Integer(整型)对象,当被处理的字符串在-128127(包含边界)之间时,返回的对象是预先缓存的。这就是为什么第一行的调用会返回true-127

这个整型对象是被缓存的(所以两次valueOf返回的是同一个对象)——第二行的调用返回false是因为128没有被缓存,所以每次调用,都会生成一个新的整型对象,

因此两个128整型对象是不同的对象。

重要的是你要知道在上面的比较中,你实际进行比较的是integer.valueOf返回的对象引用,所以当你比较缓存外的整型对象时,相等的判断不会返回true,就算你

传个valueOf的值是相等的也没用。(就像第二行中Integer.valueOf(128)==Integer.valueOf(128))。想让这个判断返回true,你需要使用equals()方法。

parseInt()返回的不是整型对象,而是一个int型基础元素。这就是为什么最后一个判断会返回true,第三行的判断中,在判断相等时,实际比较的是128 == 128

所以它必然是相等的。

再来说说第三种比较中的一点区别,使得它的结果与第二种比较不一样了:

一个unboxing conversion(一种比较时的转换,把对对象的引用转换为其对应的原子类型)在第三行的比较中发生了。因为比较操作符使用了==同时等号的两边

存在一个int型和一个Integer对象的引用。这样的话,等号右边返回的Integer对象被进一步转换成了int数值,才与左边进行相等判断。

所以在转换完成后,你实际比较的是两个原子整型数值。这种转换正是你在比较两个原子类型时所期待看到的那样,所以你最终比较了128等于128

 

  回答#2:

Integer类有一个静态缓存,存储了256个特殊的Integer对象——每个对象分别对应`-128 和127之间的一个值。
有了这个概念,就可以知道上面三行代码之间的区别。

1
new Integer(123);그리고 왜 세 번째 판단은 true를 반환합니까? >?
다른 관련 질문에 대한 답변을 읽었지만 언제 그것이 참인지, 왜 두 번째 판단이 false를 반환하는지 모르겠습니다.

답변 #1:

Integer.valueOf(String)실제로 있습니다. 하나의 비정상적인 행동.

valueOf는 처리 중인 문자열이 에 있는 경우 <code>Integer(정수) 개체를 반환합니다. >-128 및 127(포함), 반환된 객체는 미리 캐시됩니다. 이것이 첫 번째 줄의 호출이 true-127

이 정수 객체가 캐시된 이유입니다(그래서 valueOf는 동일한 객체를 두 번 반환합니다. - 두 번째 줄의 호출은 128가 캐시되지 않기 때문에 false를 반환합니다. 따라서 호출될 때마다 새로운 정수 개체가 생성됩니다.

따라서 두 개의 128 정수 개체는 서로 다른 개체입니다.

중요 위의 비교에서 실제로 비교하는 내용은 integer.valueOf입니다. 반환된 개체 참조이므로 캐시 외부의 정수 개체를 비교할 때 동일성 판단은 true를 반환하지 않습니다.

값이 동일한 경우 valueOf를 전달하는 것은 쓸모가 없습니다. (두 번째 줄의 Integer.valueOf(128)==Integer.valueOf(128))와 같습니다. 이 판단이 true를 반환하도록 하려면 equals() 메서드를 사용해야 합니다.

parseInt()는 정수 객체가 아니라 int 기본 요소를 반환합니다. 이것이 마지막 판단이 true를 반환하는 이유입니다. 세 번째 판단 줄에서 동등성을 판단할 때 실제 비교는 128 == 128,

따라서 동일해야 합니다.

두 번째 비교와 결과가 달라지는 세 번째 비교의 약간의 차이점에 대해 이야기해 보겠습니다.

세 번째 줄의 비교 중에 언박싱 변환(객체에 대한 참조를 해당 원자 유형으로 변환하는 비교 변환)이 발생합니다. 비교 연산자는 ==와 등호 양쪽을 사용하기 때문에

int 유형이 있고 Integer 객체에 대한 참조입니다. 이 경우 등호 오른쪽에 반환된 Integer 개체는 왼쪽과 동일해지기 전에 int 값으로 추가로 변환됩니다.

따라서 변환이 완료된 후 실제로 두 원자 정수 값을 비교하게 됩니다. 이 변환은 두 원자 유형을 비교할 때 예상할 수 있는 것과 정확히 같으므로 128128과 동일하게 비교하게 됩니다.

답변 #2:

Integer 클래스 256개의 특수 Integer 개체를 저장하는 정적 캐시가 있습니다. 각 개체는 `-128에서 127 사이의 값에 해당합니다.
이 개념을 통해 위 세 줄의 코드 사이의 차이점을 알 수 있습니다.

1
new Integer(123);
🎜🎜

显示创建了一个 새로운정수对象.

1Integer对象。
1
Integer.parseInt("123");

解析完字符串后返回一个int值。

1
Integer.valueOf("123");

这种情况比其他的要更复杂一些。首先进行了字符串解析,然后如果解析的值位于-128127之间,就会从静态缓存中返回对象。如果超出了这个范围,就会调用

Integer()方法并将解析的值作为参数传入,得到一个新的对象。

现在,让我们看一下问题中的3个表达式。

1
Integer.valueOf("127")==Integer.valueOf("127");

上面的表达式返回true,因为Integer的值从静态缓存中取了2次,表达式返回了对象与自己比较的结果。因为只有一个Integer对象,所以返回结果为true

1
Integer.valueOf("128")==Integer.valueOf("128");
Integer.parseInt("123");
🎜🎜🎜 🎜解析完字符串后返回一个int值。
1🎜🎜
Integer.valueOf("123");🎜🎜🎜🎜🎜🎜🎜🎜🎜这种情况比其他的要更复杂一些。首先进行了字符串解析,然后如果解析的值位于-128 and 127 间,就会从静态缓存中返回对象。如果超了这个范围,就会调用🎜Integer() 方法并将解析的值作为参数传入,得到一丠入,得到一丠新的对象。 🎜现在,让我们看一下问题中的3个表达式。
1🎜🎜
정수. valueOf("127")==Integer.valueOf("127");🎜🎜🎜🎜🎜🎜🎜🎜🎜상면적表达式返回true,因为 정수가 值从静态缓存中取了2次,表达式返回了对象与自己比较的结果。因为只有一个Integer对象,所以返回结果为true
1🎜🎜
Integer.valueOf("128" )==Integer.valueOf("128") ;🎜🎜🎜🎜🎜🎜

위 표현식은 128이 정적 버퍼에 존재하지 않기 때문에 false를 반환합니다. 따라서 동등성이 결정될 때마다 방정식의 양쪽에 새로운 Integer 객체가 생성됩니다. 두 개의 Integer 개체가 다르기 때문에 ==는 방정식 false,因为128没有存在静态缓冲区。所以每次在判断相等时等式两边都会创建新的Integer对象。由于两个Integer对象不同,所以==只有等式

两边代表同一个对象时才会返回true。因此,上面的等式返回false

1
Integer.parseInt("128")==Integer.valueOf("128");

上面的表达式比较的是左边的原始int128与右边新创建的Integer对象。但是因为intInteger之间比较是没有意义的,所以Java在进行比较前会将Integer

自动拆箱,所以最后进行的是intint值之间的比较。由于128和自己相等,所以返回true

의 양쪽이 동일한 개체를 나타내는 경우에만 true를 반환합니다. 따라서 위 방정식은 false를 반환합니다. 🎜
1🎜
Integer.parseInt("128")==Integer.valueOf("128");🎜🎜
🎜🎜🎜위 표현식은 왼쪽int 값을 비교합니다. >128 및 새로 생성된 Integer 개체가 오른쪽에 있습니다. 하지만 intInteger 사이의 비교는 의미가 없기 때문에 Java는 자동 unboxing 전에 Integer🎜

를 변환하므로 최종 비교는 intint 값 사이에서 이루어집니다. 128은 자신과 동일하므로 true가 반환됩니다. 🎜

위 내용은 정수와 정수의 차이점과 정수.값() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

R1과 V3 버전의 차이점은 무엇입니까? R1과 V3 버전의 차이점은 무엇입니까? Feb 19, 2025 pm 03:24 PM

DeepSeek : R1과 V3 버전의 심층 비교는 최고의 AI 어시스턴트를 선택하는 데 도움이됩니다! DeepSeek에는 이미 수천만 명의 사용자가 있으며 AI 대화 기능이 호평을 받았습니다. 그러나 R1 및 V3 버전에 직면 할 때 혼란 스럽습니까? 이 기사에서는 가장 적합한 버전을 선택하는 데 도움이되는 두 가지의 차이점을 설명합니다. DeepSeekr1과 V3 버전의 핵심 차이 : 기능 V3 버전의 설계 목표는 복잡한 문제 추론, 딥 로직 분석, 다기능 대형 언어 모델, 확장 성 및 효율성 아키텍처 및 매개 변수 강화 학습 최적화 아키텍처, 매개 변수 척도 1.5에 중점을 둡니다. 10 억 ~ 700 억 MOE 하이브리드 전문가 아키텍처, 총 매개 변수는 671 억에 이르며 각 토큰은 370 억으로 활성화됩니다.

깊은 사용을위한 FAQ 요약 깊은 사용을위한 FAQ 요약 Feb 19, 2025 pm 03:45 PM

Deepseekai 도구 가이드 및 FAQ Deepseek은 강력한 AI 지능형 도구입니다. FAQ : 다른 액세스 방법의 차이 : 웹 버전, 앱 버전 및 API 통화간에 기능에는 차이가 없으며 앱은 웹 버전의 래퍼 일뿐입니다. 로컬 배치는 증류 모델을 사용하는데,이 모델은 DeepSeek-R1의 정식 버전보다 약간 열등하지만 32 비트 모델은 이론적으로 90% 정식 버전 기능을 갖습니다. 선술집이란 무엇입니까? Sillytavern은 API 또는 Ollama를 통해 AI 모델을 호출 해야하는 프론트 엔드 인터페이스입니다. 중단 한도는 무엇입니까?

비트 코인에는 비트 코인이 주식이 있습니까? 비트 코인에는 비트 코인이 주식이 있습니까? Mar 03, 2025 pm 06:42 PM

cryptocurrency 시장은 급성장하고 있으며, 리더로서 Bitcoin은 많은 투자자들의 관심을 끌었습니다. 많은 사람들이 궁금합니다. 비트 코인은 주식이 있습니까? 대답은 아니오입니다. 비트 코인 자체는 주식이 아니지만 투자자는 다양한 채널을 통해 비트 코인 관련 자산에 간접적으로 투자 할 수 있으며,이 기사에서 자세히 설명 할 것입니다. 비트 코인 투자에 대한 대안 : Bitcoin에 직접 투자하는 대신, 투자자는 Bitcoin Market에 참여할 수 있습니다. Bitcoin ETF : 이것은 자산 포트폴리오에 Bitcoin 또는 Bitcoin 선물 계약이 포함 된 주식 거래 시장에서 거래되는 펀드입니다. 이것은 비트 코인을 직접 보유하지 않고도 주식 투자에 익숙한 투자자에게 비교적 편리한 옵션입니다. 비트 코인 채굴 회사 주식 :이 회사의 비즈니스는 비트 코인 채굴 및 보유 비트 코인입니다.

프리 마켓과 애프터 마켓 거래의 차이점은 무엇입니까? 프리 마켓과 애프터 마켓 거래의 차이점에 대한 자세한 설명 프리 마켓과 애프터 마켓 거래의 차이점은 무엇입니까? 프리 마켓과 애프터 마켓 거래의 차이점에 대한 자세한 설명 Mar 03, 2025 pm 11:54 PM

전통적인 금융 시장에서, 프리 마켓 및 마켓 거래는 정기 거래 기간 이외의 거래 활동을 말합니다. cryptocurrency 시장은 24 시간 내내 거래되고 있지만 Bitget과 같은 거래 플랫폼은 유사한 기능, 특히 주식과 암호 화폐를 동시에 거래하는 일부 포괄적 인 플랫폼을 제공합니다. 이 기사는 프리 마켓 및 애프터 마켓 거래의 차이를 명확히하고 통화 가격에 미치는 영향을 탐구합니다. 프리 마켓과 애프터 마켓 거래의 4 가지 주요 차이점 : 프리 마켓과 마켓 트레이딩과 정기 거래 기간의 주요 차이점은 거래 시간, 유동성, 가격 변동 및 거래량 : 거래 시간 : 공식 거래가 시작되기 전에 시판 전 거래가 수행되기 전에 발생합니다. 유동성 : 시간 전 및 시간외 거래의 유동성은 낮으며, 거래자는 거의 없으며, 입찰 및 제안 가격 차이는 규칙적인 거래 기간 동안 높습니다.

Bittensor가 AI 트랙에서 'Bitcoin'이라고 말하는 이유는 무엇입니까? Bittensor가 AI 트랙에서 'Bitcoin'이라고 말하는 이유는 무엇입니까? Mar 04, 2025 pm 04:06 PM

원본 : Bittensor = Aibitcoin : S4mmyeth, 분산 AI 연구 원본 번역 :이 기사에서는 Bittensor, 분산 된 AI 플랫폼에 대해 논의하고, 중앙 집중식 AI 회사의 독점을 홍보하고 개방형 및 사형에 Ecosystem을 홍보하기를 희망합니다. Bittensor는 다양한 AI 솔루션의 출현을 허용하는 서브넷 모델을 채택하고 TAO 토큰을 통해 혁신을 고무시킵니다. AI 시장은 성숙하지만 Bittensor는 경쟁 위험에 직면하며 다른 오픈 소스의 적용을받을 수 있습니다.

한국 비트 코인과 국내 비트 코인의 차이가 있습니까? 한국 비트 코인과 국내 비트 코인의 차이가 있습니까? Mar 05, 2025 pm 06:51 PM

Bitcoin Investment Boom은 세계 최초의 분산 디지털 자산으로 인해 계속 가열되어 분산 및 글로벌 유동성에 많은 관심을 끌었습니다. 중국은 한때 비트 코인의 가장 큰 시장 이었지만 정책 영향으로 인해 거래 제한이 발생했습니다. 오늘날 한국은 세계의 주요 비트 코인 시장 중 하나가되어 투자자들이 IT와 국내 비트 코인의 차이점에 의문을 제기했습니다. 이 기사는 양국의 비트 코인 시장의 차이점에 대한 심층 분석을 수행 할 것입니다. 한국과 중국 비트 코인 시장의 차이점은 한국과 중국의 비트 코인 시장의 주요 차이점은 가격, 시장 공급 및 환율, 규제 감독, 시장 유동성 및 거래 플랫폼에 반영됩니다. 예를 들어, 2024 년 10 월 말에 한국의 비트 코인 가격은 한 번이었습니다.

Pepe는 큰 방식으로 구입하고 매진했습니다. Mutm은 2025 년에 더 똑똑한 투자입니까? Pepe는 큰 방식으로 구입하고 매진했습니다. Mutm은 2025 년에 더 똑똑한 투자입니까? Mar 03, 2025 pm 07:09 PM

Pepe의 급증 후 Mutm은 2025 년에 더 안정적인 투자 선택이 될 수 있습니까? Pepe (Pepe)는 초기 투자자들을 수익성있게 만들었지 만 폭력적인 가격 변동으로 인해 많은 사람들이 장기 전망에 의문을 제기했습니다. MEME 통화 시장이 계속 혼란스러워함에 따라, 거래자들은보다 근본적인 이점을 가진 프로젝트에 집중하기 시작했으며, MUTM (Mutuumfinance)이 그 중 하나입니다. 이것은 실제 금융 응용 프로그램에 중점을 둔 분산 대출 플랫폼입니다. 투기 투기 투기에 의존하는 Pepe와는 달리 Mutm은 사용자가 수동적 소득을 빌고받을 수있는 구조화 된 결함 생태계를 구축합니다. 사전 판매는 백만 달러를 초과했으며, 토큰 판매율의 첫 번째 단계는 97%, 초기 투자

수직 프록시 : 응용 시나리오 및 암호화 원시 프록시의 파괴적 잠재력 해석 수직 프록시 : 응용 시나리오 및 암호화 원시 프록시의 파괴적 잠재력 해석 Mar 04, 2025 am 10:21 AM

인공 지능 에이전트 (Aiagents)는 대기업에서 소기업에 이르기까지 기업의 일상 운영에 빠르게 통합되고 있으며, 거의 모든 영역 (거의 모든 영역이 영업, 마케팅, 재무, 법률, 프로젝트 관리, 물류, 고객 서비스 및 워크 플로우 자동화를 포함하여 사용되기 시작했습니다. 우리는 데이터의 수동 처리 시대에서 반복적 인 작업을 수행하며 Excel 테이블을 사용하여 시계 주변의 AI 에이전트의 자율 운영 시대로 이동하여 효율성을 향상시킬뿐만 아니라 비용을 크게 줄입니다. Web2에서 AI 에이전트의 응용 사례 : Ycombinator의 관점 Apten : AI 및 SMS 기술을 결합한 영업 및 마케팅 최적화 도구. Bildai : 건축 청사진을 읽을 수있는 모델,

See all articles