기본 유형과 참조 유형의 차이점은 무엇입니까?
이것은 과거의 시험 문제이며 기본 유형과 참조 유형이 먼저 무엇인지 궁금합니다. 배열을 사용하면 참조 유형이 배열이 객체 또는 변수로 구성된 곳이라는 것을 알고 있지만 기본 유형은 int 또는 문자열만으로 배열을 만드는 곳입니다. (권리?)
시험 문제에 어떻게 답하고 좋은 점수를받을 것이라고 생각하십니까? 원시 ARRAY 유형을 직접 참조하지 않고 ... 그것없이 할 수있는 방법이 있습니까? 아니면 배열로 설명하는 것이 좋을 것이라고 생각하십니까?
다음은 Java의 기본 유형입니다.
- 부울
- 바이트
- 짧은
- 숯
- int
- 긴
- 흙손
- 더블
다른 모든 유형은 참조 유형이며 객체를 참조합니다.
이것은 언어의 기초에 대한 Java 자습서 의 첫 번째 부분입니다 .
OCA JAVA SE 7 예약에서
남성과 여성이 근본적으로 다른 것처럼 (Man Are from Mars, Women Are from Venus의 저자 인 John Gray에 따르면) 원시 변수와 객체 참조 변수는 여러면에서 서로 다릅니다. 기본적인 차이점은 기본 변수는 실제 값을 저장하는 반면 참조 변수는 참조하는 객체의 주소를 저장한다는 것입니다. Person 클래스가 이미 정의되어 있다고 가정 해 봅시다. int 변수 a와 객체 참조 변수 person을 생성하면 그림 2.13과 같이 해당 값을 메모리에 저장합니다.
int a = 77;
Person person = new Person();
원시 데이터 유형 :
- 언어로 사전 정의되고 키워드로 명명 됨
- 합계 아니오 = 8
부울
문자
바이트
짧은
정수
long
float
double
참조 / 객체 데이터 유형 :
- 클래스의 정의 된 생성자를 사용하여 생성
- 개체에 액세스하는 데 사용
- 참조 변수의 기본값은 null입니다.
- 참조 변수는 선언 된 유형 또는 호환 가능한 유형의 모든 개체를 참조하는 데 사용할 수 있습니다.
이들은 원시 데이터 유형입니다
- 부울
- 캐릭터
- 바이트
- 짧은
- 정수
- 긴
- 흙손
- 더블
GC에서 관리하는 메모리의 헤드에 저장된 객체 데이터 유형 또는 참조 데이터 유형에 비해 관리되는 메모리 인 메모리에 스택에 저장됩니다.
이것이 가장 중요한 차이점입니다
프리미티브 vs. 참조
먼저 :-
Primitive types are the basic types of data: byte
, short
, int
, long
, float
, double
, boolean
, char
. Primitive variables store primitive values. Reference types are any instantiable class as well as arrays: String
, Scanner
, Random
, Die
, int[]
, String[]
, etc. Reference variables store addresses to locations in memory for where the data is stored.
Second:-
Primitive types store values but Reference type store handles to objects in heap space. Remember, reference variables are not pointers like you might have seen in C and C++, they are just handles to objects, so that you can access them and make some change on object's state.
As many have stated more or less correctly what reference and primitive types are, one might be interested that we have some more relevant types in Java. Here is the complete lists of types in java (as far as I am aware of (JDK 11)).
Primitive Type
Describes a value (and not a type).
11
Reference Type
Describes a concrete type which instances extend Object (interface, class, enum, array). Furthermore TypeParameter is actually a reference type!
Integer
Note: The difference between primitive and reference type makes it necessary to rely on boxing to convert primitives in Object instances and vise versa.
Note2: A type parameter describes a type having an optional lower or upper bound and can be referenced by name within its context (in contrast to the wild card type). A type parameter typically can be applied to parameterized types (classes/interfaces) and methods. The parameter type defines a type identifier.
Wildcard Type
Expresses an unknown type (like any in TypeScript) that can have a lower or upper bound by using super or extend.
? extends List<String>
? super ArrayList<String>
Void Type
Nothingness. No value/instance possible.
void method();
Null Type
The only representation is 'null'. It is used especially during type interference computations. Null is a special case logically belonging to any type (can be assigned to any variable of any type) but is actual not considered an instance of any type (e.g. (null instanceof Object) == false).
null
Union Type
A union type is a type that is actual a set of alternative types. Sadly in Java it only exists for the multi catch statement.
catch(IllegalStateException | IOException e) {}
Interference Type
A type that is compatibile to multiple types. Since in Java a class has at most one super class (Object has none), interference types allow only the first type to be a class and every other type must be an interface type.
void method(List<? extends List<?> & Comparable> comparableList) {}
Unknown Type
The type is unknown. That is the case for certain Lambda definitions (not enclosed in brackets, single parameter).
list.forEach(element -> System.out.println(element.toString)); //element is of unknown type
Var Type
Unknown type introduced by a variable declaration spotting the 'var' keyword.
var variable = list.get(0);
The short answer is primitives are data types, while references are pointers, which do not hold their values but point to their values and are used on/with objects.
Primatives:
boolean
character
byte
short
integer
long
float
double
이러한 기본 개념을 설명하는 좋은 참조가 많이 있습니다. http://www.javaforstudents.co.uk/Types
'programing' 카테고리의 다른 글
urllib2를 사용하여 대용량 바이너리 파일을 파일로 스트리밍 (0) | 2021.01.16 |
---|---|
픽셀을 sp로 변환 (0) | 2021.01.16 |
Java 도구를 초기화하는 동안 Eclipse 내부 오류 (0) | 2021.01.16 |
루트 사용자로부터 bower를 실행하십시오. 가능합니까? (0) | 2021.01.16 |
Android 용 Kotlin. (0) | 2021.01.16 |