13 Nisan 2015 Pazartesi

Java language specification Chapter 4: Types, Values and Variables

4.1. Tipler ve değerler

Java statistically typed bir dildir. Yani her bir variable ve expression'un compile time'da bilinen bir tipi vardır.

Java strongly typed bir dildir. Çünkü bir variable'ın tipi onun alabileceği değerleri ve desteklenen operationları sınırlar. Bu sayede hataların compile time'da yakalanması sağlanır.

Java dilinde tipler iki türdür: primitif ve referans tipler.
Variable'larda saklanabilen, argument olarak verilebilen, metodlardan döndürülebilen ve üzerinde operation yapılabilen iki tür değer vardır: primitif ve referans değerler.

Primitif tipler: boolean ve numerik tiplerdir (byte, short, int, long, char, float, double)
Referans tipler: class, interface ve array tiplerdir.

Ayrıca özel null tipi de bulunur.
Adı yoktur. O yüzden null tipinde variable deklare edilemez veya nulla type cast edilemez.
null tipinin alabildiği tek değer nulldır.
null referans her zaman başka bir referans tipine atanabilir ya da cast edilebilir.

Bir nesne, ya bir class tipinin dinamik olarak yaratılmış instance'ıdır, ya da dimaik olarak yaratılmış bir array'dir.
Referans tiplerin değeri nesneleri gösteren referanslardır.

Bütün nesneler (arrayler dahil) Object sınıfının metodlarını destekler.
String literalleri String nesneleri ile temsil edilirler.


4.2. Primitif tipler ve değerler

Primitif tipler rezerve edilmiş keywordleri ile önceden tanımlanmıştır.
Diğer primitif tiplerle state lerini paylaşmazlar.
Numeric tipler integral ve floating-point tiplerdir.
Integral tipler: byte, short, int , long (8, 16, 32 ve 64-bit) ve char (16-bit) dır.
Floating-point tipler: float ve double (32 ve 64-bit) dır.
boolean tipinin iki değeri vardır: true ve false.

4.2.1. Integral tipler ve değerleri
byte: -128 ile 127 arası...

4.2.2. Integer operationları
comparison, numeric, conditional, cast ve string concatenation operatorleridir.
comparison: <, <=, >, >=, ==, !=
numerical: +,-, *,/,%, ++, --, <<, >>, >>>,  bitwise operatorler
conditional: ? :
cast: type cast

4.2.3. Floating-Point Types, Formats, and Values
4.2.4. Floating-Point Operations
4.2.5. The boolean Type and boolean Values

4.3. Reference Types and Values

4.3.1. Objects
4.3.2. The Class Object
4.3.3. The Class String
4.3.4. When Reference Types Are the Same

4.4. Type Variables

4.5. Parameterized Types

4.5.1. Type Arguments of Parameterized Types
4.5.2. Members and Constructors of Parameterized Types

4.6. Type Erasure

4.7. Reifiable Types

4.8. Raw Types

4.9. Intersection Types

4.10. Subtyping

4.10.1. Subtyping among Primitive Types
4.10.2. Subtyping among Class and Interface Types
4.10.3. Subtyping among Array Types
4.10.4. Least Upper Bound

4.11. Where Types Are Used

4.12. Variables

4.12.1. Variables of Primitive Type
4.12.2. Variables of Reference Type
4.12.3. Kinds of Variables
4.12.4. final Variables
4.12.5. Initial Values of Variables
4.12.6. Types, Classes, and Interfaces

1 yorum: