제2장 포장
우리는 Java가 객체 지향 언어라는 것을 알고 있으며 그 본질 중 하나는 다형성을 사용하여 프로그램의 유연성을 향상시킬 수 있다는 것입니다.
하지만 Java에는 8가지 기본 유형이 있습니다: byte, short, int, long, float, double, char, boolean. 객체가 아닌 값으로 메모리에 존재합니다.
Object의 하위 클래스가 아니며 객체 지향 개발에 참여할 수 없습니다. java1.5 버전 이전에는 다음 코드를 통과할 수 없었습니다.
package com.souvc.api;public class Test { public static void main(String[] args) { String str = "hello"; doSome(str);// 可以,因为String是Object的子类 int i = 1; // 程序编译不通过,原因在于int不是Object的子类,不能使用多态性。 doSome(i); } public static void doSome(Object o) { // .... } }
문제의 원인은 기본 유형 int가 상속 관계가 없고 Object의 하위 클래스가 아니기 때문입니다. 따라서 기본 유형이 객체 형태로 존재하도록 하려면 Integer 클래스를 정의한 다음 해당 인스턴스를 사용하여 기본 유형 int를 설명해야 합니다.
이것의 장점은 객체를 사용하여 기본 유형 데이터를 설명하고 클래스가 객체를 상속한다는 것입니다. 이를 통해 기본 유형이 객체 지향 개발에 참여할 수 있습니다. 다행스럽게도 Java는 이미 8가지 기본 유형에 해당하는 래퍼 클래스를 제공하므로 Integer와 같은 클래스를 정의할 필요가 없습니다.
참고: 자동 언박싱 기능은 Java 버전 1.5 이후에 등장했으며, 위 코드는 정상적으로 컴파일 가능합니다. 자동 개봉 및 상자 포장에 대해서는 나중에 자세히 설명하겠습니다.
8가지 기본 유형에 대해 Java는 해당 패키징 클래스를 제공합니다.
기본 유형 패키징 클래스
byte java. lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang. Float
double java.lang.Double
char java.lang.Character
boolean java.lang.Boolean
제외 상위 클래스가 Object인 Character 및 Boolean의 경우 나머지는 java.lang.Number
Number에서 상속됩니다. 그 자체로는 인스턴스화할 수 없습니다. Number의 하위 클래스는 표현된 값을 byte, double, float, int, long 및 short로 변환하는 메서드를 제공해야 합니다.
예:
abstract double doubleValue()는 지정된 값을 double form Value
abstract int intValue() 지정된 값을 int 형식으로 반환
abstract float floatValue() 지정된 값을 float 형식으로 반환
나머지 추상 메서드 , API 문서: java.lang.Number를 참조하세요.
이제 기본 유형과 래퍼 클래스 간의 변환 방법을 알아보겠습니다.
기본 유형을 래퍼 클래스로 변환해야 하는 경우 래퍼 클래스의 정적 메서드 valueOf()를 호출할 수 있습니다.
Integer i = Integer. valueOf( 1);
Double d = Double.valueOf(1.1);
래퍼 클래스를 기본 유형으로 변환해야 할 때 다음을 사용할 수 있습니다. 래퍼 클래스의 메서드 xxxValue() 메서드(여기서 서로 다른 래퍼 클래스의 메서드 이름은 정확히 동일하지는 않지만 모두 Value로 끝납니다):
Integer i = new Integer(1);int n = i.intValue();
Double d = new Double(1.1);double dn = d.doubleValue();
위 방법을 사용하여 다음을 수행할 수 있지만 기본 유형과 래퍼 클래스 Convert 간에 통신합니다. 하지만 실제로 코드를 작성할 때는 상대적으로 번거롭습니다. Java는 버전 1.5 이후에 자동 언박싱이라는 새로운 기능을 출시했습니다.
다음 코드는 java1.4에서 컴파일에 실패하지만 java1.5 이후에 컴파일할 수 있습니다.
int i = new Integer(1);//래퍼 클래스는 자동으로 기본 유형으로 변환 자동 언박싱
정수 in = 1;//기본 유형을 패키징 클래스로 자동 변환할 수 있습니다. 자동 박싱
자바는 자동을 어떻게 구현하나요? 상자 풀기는 어떻습니까?
사실 JVM은 이 기능을 지원하지 않습니다. 상자의 자동 압축 풀기는 컴파일 프로세스 중 컴파일러의 "전처리" 작업일 뿐입니다. 컴파일러는 래퍼 클래스와 기본 유형 간에 변환이 필요하다고 판단되면 바이트코드로 컴파일할 때 다음과 같이 변경합니다.
컴파일된 바이트코드의 소스 코드
Integer a = 100 => Integer.valueOf(100);
정수 b = 200 => 정수 b = Integer.valueOf(200);
정수 c = a +b => valueOf (a.intValue( ) + b.intValue( ));
double d = c => double d = c . doubleValue( );
2.1 정수 클래스 - 정수 클래스 34
2.1.1 생성자 메소드 - Integer 클래스의 생성자 메소드 34
2.1.2 Constant - Integer 클래스의 상수 34
2.1.3 bitCount 메소드 - 2의 보수에서 1의 수를 구함 Quantity 34
2.1.4 byteValue 메소드 - 바이트 유형의 값 획득 35
2.1.5 CompareTo 메소드 - 정수 비교 35
2.1.6 decode 메소드 - 문자열을 int 유형으로 디코딩 35
2.1. 7 doubleValue 메소드 - double 값을 반환합니다. 36
2.1.8 equals 메소드 - 정수 객체의 동일성을 결정합니다. 36
2.1.9 floatValue 메소드 - float 값을 얻습니다. 37
2.1.10 getInteger 메소드 - —정수 37의 시스템 속성 값을 가져옵니다.
2.1.11 hashCode 메소드 - 정수 39의 해시 코드를 생성합니다.
2.1.12 maximumOneBit 메소드 - 의 최상위 이진 비트 1의 인덱스를 가져옵니다. 정수 39
2.1.13 intValue() 메서드 - int 값 가져오기 40
2.1.14 longValue 메서드 - long 값 가져오기 40
2.1.15 lowOneBit 메서드 - 최하위 비트의 인덱스 가져오기 1 정수 바이너리 41
2.1.16 parseInt 메서드 - 문자열을 int 값으로 구문 분석 41
2.1.17 역방향 메서드 - 정수 2의 보수의 비트 순서를 역전 43
2.1.18 ReverseBytes 메서드 - 정수 바이트의 순서를 뒤집습니다. 44
2.1.19 shortValue 메서드 - 짧은 값 가져오기 44
2.1.20 signum 메서드 - 정수 부호 가져오기 44
2.1.21 toBinaryString 메서드 - 정수 45의 이진 문자열 생성
2.1.22 toHexString 메소드 - 정수의 16진수 문자열 생성 45
2.1.23 toOctalString 메소드 - 정수의 8진수 문자열 생성 46
2.1.24 toString 메소드 - 정수의 10진수 문자열 생성 47
2.1.25 ValueOf 메소드 - Integer 객체 생성 49
2.2 Long 클래스 - Long 정수 클래스 50
2.2.1 구축 방식 - Long 클래스 구축 방식 51
2.2.2 상수 - Long 클래스의 상수 51
2.2.3 bitCount 메소드 - 2의 보수에서 1의 수를 가져옵니다. 51
2.2.4 byteValue 메소드 - 바이트 값 51을 가져옵니다.
2.2. 5 CompareTo 메서드 - 긴 정수 비교 52
2.2.6 decode 메서드 - 문자열을 긴 형식으로 디코딩 52
2.2.7 doubleValue 메서드 - double 값 반환 53
2.2. 긴 정수 객체 53
2.2.9 floatValue 메소드 - 부동 소수점 값을 가져옵니다. 54
2.2.10 getLong 메소드 - 긴 정수의 시스템 속성 값을 가져옵니다. 54
2.2.11 hashCode 메소드 - 부동 소수점 값의 해시 코드를 생성합니다. 긴 정수 56
2.2.12 maximumOneBit 메서드 - 긴 정수 56의 가장 높은 이진 비트 1의 인덱스를 가져옵니다.
2.2.13 intValue() 메서드 - int 값 57
2.2.14 longValue 메서드 - 긴 값을 가져옵니다. 57
2.2.15 lowerOneBit 메서드 - 긴 정수 이진수의 가장 낮은 비트 1의 인덱스를 가져옵니다. 57
2.2.16 parseLong 메서드 - 문자열을 긴 값으로 구문 분석합니다. 58
2.2.17 Reverse 방법 - 긴 정수의 2의 보수의 비트 순서를 뒤집습니다. 60
2.2.18 ReverseBytes 방법 - 긴 정수 바이트의 순서를 뒤집습니다. 60
2.2.19 ShortValue 방법 - 짧은 값을 가져옵니다. 61
2.2.20 Signum 메소드 - 긴 정수 부호 가져오기 61
2.2.21 toBinaryString 메소드 - 긴 정수 이진 문자열 생성 61
2.2.22 toHexString 메소드 - 긴 정수 16진수 문자열 생성 62
2.2.23 toOctalString 메소드 - 긴 정수 62의 8진수 문자열 생성
2.2.24 toString 메소드 - 긴 정수 63의 10진수 문자열 생성
2.2.25 valueOf 메소드 - 긴 정수 65
2.3 Short 클래스 - Short 정수 클래스 67
2.3.1 구축 방법 - Short 클래스의 구축 방법 67
2.3.2 상수 - Short 클래스의 상수 67
2.3.3 CompareTo 메서드 - 짧은 정수 비교 67
2.3.4 decode 메서드 - 문자열을 짧은 유형으로 디코딩 68
2.3.5 doubleValue 메서드 - double 값 반환 68
2.3.6 Equals 메서드 - 짧은지 여부 결정 정수 개체는 동일합니다 68
2.3.7 FloatValue 메서드 - 부동 소수점 값 가져오기 69
2.3.8 HashCode 메서드 - 짧은 정수 생성 해시 코드 69
2.3.9 intValue() 메서드 - int 값 가져오기 70
2.3.10 longValue 메서드 - 긴 값 가져오기 70
2.3.11 parseShort 메서드 - 문자열을 짧은 값으로 구문 분석 70
2.3.12 reverseBytes 메서드 - 짧은 정수 바이트의 순서를 뒤집음 72
2.3.13 shortValue 메소드 - 짧은 값 가져오기 72
2.3.14 toString 메소드 - 짧은 정수 생성 10진수 문자열 73
2.3.15 valueOf 메소드 - 짧은 객체 생성 73
2.4 Boolean 클래스 - Boolean 클래스 75
2.4.1 생성 방법 - —Boolean 클래스의 생성 방법 75
2.4.2 상수 — Boolean 클래스의 상수 75
2.4.3 booleanValue 메서드 — 부울 값 가져오기 76
2.4.4 CompareTo 메서드 - 부울 값 비교 76
2.4.5 equals 메서드 - 동등성 확인 77
2.4.6>getBoolean 메서드 - 부울 유형의 시스템 속성 값 가져오기 77
2.4.7>hashCode 메소드 - 부울 객체의 해시 코드 생성 78
2.4.8 parseBoolean 메소드 - 문자열을 부울 값으로 구문 분석 78
2.4.9>toString 메소드 - 다음의 문자열을 생성합니다. 부울 값 78
2.4.10> valueOf 메소드 - 부울 객체 생성 79
2.5 Byte 클래스 - Byte 객체 80
2.5.1 Constructor - Byte 클래스 80의 생성자 메소드
2.5.2 Constant - Byte 클래스 80의 상수
2.5 .3 compareTo 메소드 - 바이트 객체 비교 80
2.5.4 decode 메소드 - 문자열을 바이트 값으로 디코딩 81
2.5.5 doubleValue 메소드 - double 값 가져오기 82
2.5.6 equals 메소드 - 바이트 결정 같음 82
2.5.7 floatValue 메서드 - 부동 소수점 값 가져오기 83
2.5.8 hashCode 메서드 - 바이트 객체의 해시 코드 생성 83
2.5 .9 intValue 메서드 - int 값 가져오기 83
2.5.10 longValue 메서드 - 긴 값 가져오기 83
2.5.11 parseByte 메서드 - 문자열을 바이트 값으로 구문 분석 84
2.5.12 shortValue 메서드 ——짧은 값 가져오기 85
2.5.13 toString 메서드 ——10진수 문자열 생성 바이트 값 85
2.5.14 valueOf 메소드 ——바이트 객체 생성 86
2.6 Character 클래스 - 문자 클래스 88
2.6.1 생성자 - 생성자 메소드 문자 클래스 88
2.6.2 상수 - 문자 클래스의 상수 88
2.6.3 charCount 메소드 ——지정된 문자의 코드 포인트 수를 계산합니다. 89
2.6.4 charValue 메소드 ——문자를 가져옵니다. 값 89
2.6.5 CodePointAt 메소드 ——문자 배열 요소의 코드 포인트를 가져옵니다. 90
2.6.6 codePointBefore 메소드 ——문자 배열 인덱스의 이전 요소의 코드 포인트를 가져옵니다. 91
2.6 .7 codePointCount 메소드 —— 문자 배열의 하위 배열에 있는 코드 포인트 수를 반환합니다. 93
2.6.8 CompareTo 메소드 —— 문자 개체 비교 94
2.6.9 equals 메서드 - 문자 개체가 같은지 확인 95
2.6.10>getNumericValue 메소드 - 문자 95가 나타내는 int 값을 반환합니다.
2.6.11>getType 메소드 - 문자의 일반 범주를 나타내는 값을 반환합니다. 97
2.6.12 hashCode 메소드 - 문자 객체의 해시 코드를 생성합니다. 97
2.6.13 isDefined 메소드 - 유니코드 문자인지 확인합니다. 98
2.6.14 isDigit 메소드 - 숫자인지 확인합니다. 98
2.6. 15 isLetter 메소드 - 영문자인지 판별 99
2.6.16 isLowerCase 메소드 - 소문자인지 판별 100
2.6.17 isUpperCase 메소드 - 대문자인지 판별 100
2.6 .18 toLowerCase 메소드-소문자로 변환 101
2.6.19toUpperCase 메소드-대문자로 변환 101
2.7이배정밀도 숫자 클래스 102
2.7 .1 생성자 - Double 클래스 102
의 생성자 2.7.2 상수 - Double 클래스 102
의 상수 2.7.3 byteValue 메서드 - 바이트 값 102
가져오기 2.7.4 비교 메서드 - 배정밀도 디지털 객체 비교 103
2.7.5 CompareTo 메소드 - 두 개의 Double 객체를 비교합니다. 103
2.7.6 intValue 메소드 - 이 Double 값을 int 형식으로 반환합니다. 104
2.7.7 doubleToLongBits 메소드 - 지정된 부동 소수점의 표현을 반환합니다. value 104
2.7.8 doubleToRawLongBits 메소드 - NaN 값을 유지하고 지정된 부동 소수점 값의 표현을 반환합니다. 105
2.7.9 doubleValue 메소드 - double 값 105
2.7.10 equals 메소드를 얻습니다. Double 개체가 같은지 확인 106
2.7.11 floatValue 메서드 - 부동 소수점 값 획득 107
2.7.12 hashCode 메서드 - Double 개체의 해시 코드 생성 107
2.7.13 isInfinite 메서드 - 부동 소수점 값을 확인합니다. Double 값의 크기는 무한합니다 107
2.7.14 isNaN 메서드 - Double 값이 숫자가 아닌 값인지 확인 108
2.7.15 longBitsToDouble 메서드—— 주어진 비트 표현의 double 값을 반환합니다 109
2.7.16 longValue 메서드 - 긴 값을 가져옵니다. 110
2.7.17 parseDouble 메서드 - 문자열을 double 값으로 구문 분석합니다. 110
2.7.18 shortValue 메서드 — —짧은 값 110
을 가져옵니다. 2.7. 19 toHexString 메소드 - 배정밀도 숫자의 16진수 문자열 생성 111
2.7.20 toString 메소드 - 배정밀도 숫자의 10진수 문자열 생성 112
2.7 .21 valueOf 메소드 - Double 객체 생성 112
2.8 Float - 부동 소수점 클래스 113
2.8.1 생성자 - Float 클래스 113의 생성자
2.8.2 Constant - Float 클래스 114의 상수
2.8.3 ByteValue 메소드 - 바이트 값 114 가져오기
2.8.4 비교 메소드 - Float 객체 비교 114
2.8.5 CompareTo 메서드 - 두 개의 Float 객체가 나타내는 값 비교 115
2.8.6 DoubleValue 메서드 - double 값 가져오기 115
2.8. 메소드 - Double 객체가 동일한지 확인 115
2.8.8 floatToIntBits 메소드 - 부동 소수점 값의 표현을 반환 116
2.8.9 floatToRawIntBits 메소드 - 숫자가 아닌 값을 유지하고 지정된 표현을 반환 부동 소수점 값 117
2.8.10 FloatValue 메서드 - 부동 소수점 값을 가져옵니다. 118
2.8.11 hashCode 메서드 - Float 객체의 해시 코드를 반환합니다. 118
2.8.12 intBitsToFloat 메서드 - 부동 소수점을 반환합니다. 지정된 비트 표현 값 118
2.8.13 intValue 메서드 - int 값 가져오기 119
2.8.14 isInfinite 메서드 - float 값의 크기가 무한한지 확인 120
2.8.15 isNaN 메서드 - 무한한지 확인 Float 값은 숫자가 아닌 값입니다. 120
2.8.16 longValue 메소드 - long 값을 가져옵니다. 121
2.8.17 parseFloat 메소드 - 문자열을 float 값으로 구문 분석합니다. 121
2.8.18 shortValue 메소드 - 짧은 값을 얻습니다 122
2.8.19 toHexString 메소드 ——부동 소수점 숫자의 16진수 문자열을 생성합니다 122
2.8.20 toString 메소드——부동 소수점 숫자의 10진수 문자열을 생성합니다 123
2.8.21 valueOf 메소드 —— 부동 소수점 객체 생성 124
위 내용은 패키징 클래스 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











모바일 XML에서 PDF의 속도는 다음 요인에 따라 다릅니다. XML 구조의 복잡성. 모바일 하드웨어 구성 변환 방법 (라이브러리, 알고리즘) 코드 품질 최적화 방법 (효율적인 라이브러리 선택, 알고리즘 최적화, 캐시 데이터 및 다중 스레딩 사용). 전반적으로 절대적인 답변은 없으며 특정 상황에 따라 최적화해야합니다.

단일 애플리케이션으로 휴대 전화에서 직접 XML에서 PDF 변환을 완료하는 것은 불가능합니다. 두 단계를 통해 달성 할 수있는 클라우드 서비스를 사용해야합니다. 1. 클라우드에서 XML을 PDF로 변환하십시오. 2. 휴대 전화에서 변환 된 PDF 파일에 액세스하거나 다운로드하십시오.

휴대 전화에서 XML을 PDF로 직접 변환하는 것은 쉽지 않지만 클라우드 서비스를 통해 달성 할 수 있습니다. 가벼운 모바일 앱을 사용하여 XML 파일을 업로드하고 생성 된 PDF를 수신하고 클라우드 API로 변환하는 것이 좋습니다. Cloud API는 Serverless Computing Services를 사용하고 올바른 플랫폼을 선택하는 것이 중요합니다. XML 구문 분석 및 PDF 생성을 처리 할 때 복잡성, 오류 처리, 보안 및 최적화 전략을 고려해야합니다. 전체 프로세스에는 프론트 엔드 앱과 백엔드 API가 함께 작동해야하며 다양한 기술에 대한 이해가 필요합니다.

XML 서식 도구는 규칙에 따라 코드를 입력하여 가독성과 이해를 향상시킬 수 있습니다. 도구를 선택할 때는 사용자 정의 기능, 특수 상황 처리, 성능 및 사용 편의성에주의하십시오. 일반적으로 사용되는 도구 유형에는 온라인 도구, IDE 플러그인 및 명령 줄 도구가 포함됩니다.

XML을 PDF로 직접 변환하는 응용 프로그램은 근본적으로 다른 두 형식이므로 찾을 수 없습니다. XML은 데이터를 저장하는 데 사용되는 반면 PDF는 문서를 표시하는 데 사용됩니다. 변환을 완료하려면 Python 및 ReportLab과 같은 프로그래밍 언어 및 라이브러리를 사용하여 XML 데이터를 구문 분석하고 PDF 문서를 생성 할 수 있습니다.

Web.xml 파일을 열려면 다음 방법을 사용할 수 있습니다. 텍스트 편집기 (예 : 메모장 또는 문자 메시지)를 사용하여 통합 개발 환경 (예 : Eclipse 또는 NetBeans)을 사용하여 명령을 편집하십시오 (Windows : Notepad Web.xml; Mac/Linux : Open -A Texted web.xml).

대부분의 텍스트 편집기를 사용하여 XML 파일을여십시오. 보다 직관적 인 트리 디스플레이가 필요한 경우 Oxygen XML 편집기 또는 XMLSPy와 같은 XML 편집기를 사용할 수 있습니다. 프로그램에서 XML 데이터를 처리하는 경우 프로그래밍 언어 (예 : Python) 및 XML 라이브러 (예 : XML.etree.elementtree)를 사용하여 구문 분석해야합니다.

XML을 PDF로 내보내는 두 가지 방법이 있습니다 : XSLT 사용 및 XML 데이터 바인딩 라이브러리 사용. XSLT : XSLT 스타일 시트를 만들고 XSLT 프로세서를 사용하여 XML 데이터를 변환 할 PDF 형식을 지정하십시오. XML 데이터 바인딩 라이브러리 : XML 데이터 바인딩 라이브러리 가져 오기 PDF 문서 객체로드 XML 데이터 내보내기 PDF 파일을 만듭니다. PDF 파일에 더 나은 방법은 요구 사항에 따라 다릅니다. XSLT는 유연성을 제공하지만 데이터 바인딩 라이브러리는 구현하기가 간단합니다. 간단한 변환의 경우 데이터 바인딩 라이브러리가 더 좋으며 복잡한 변환의 경우 XSLT가 더 적합합니다.
