1. Integer
sınıf
Integer
bir sınıf olması bakımından da iyidir, yani alanları ve yöntemleri olabilir. Ve elbette, onlara sahip. Birçoğu - düzinelerce. Burada en temel olanları ele alacağız.
Sınıfın, Integer
türün olası maksimum ve minimum değerlerini içeren iki alanı vardır int
:
Alan | Tanım |
---|---|
|
int Türün mümkün olan maksimum değeri |
|
int Türün mümkün olan minimum değeri |
int
Bazen bir değişkene mümkün olan en küçük veya en büyük değeri atamak istersiniz . Kodunuzu anlaşılmaz sabitlerle karıştırmamak için bunu aşağıdaki gibi çok net bir şekilde yazabilirsiniz:
kod | Tanım |
---|---|
|
|
Sınıfın Integer
ayrıca bazı ilginç yöntemleri var. İşte buradalar:
Yöntemler | Tanım |
---|---|
|
Sayının onaltılık gösterimi olan bir dize döndürür |
|
Sayının ikili temsili olan bir dize döndürür |
|
Sayının sekizlik gösterimi olan bir dize döndürür |
|
Geçileni int bir Integer nesneye sarar |
|
Geçirilen dizeden elde edilen sayıyı döndürür |
Daha önce statik yöntemle karşılaştınız Integer.parseInt()
. Nasıl çalıştığını hatırlayalım:
int name = Integer.parseInt(string);
Yönteme bir sayı (yalnızca rakam) içeren bir dize iletilirse parseInt()
, dizeyi ayrıştırır ve içerdiği sayıyı döndürür.
Yöntemlerin geri kalanı da yararlıdır. Örneğin, bazıları iletilen bir sayıyı, sayının ikili, sekizli veya onaltılı gösterimini içeren bir dizgeye dönüştürebilir.
2. Double
sınıf
Genel olarak, Double
sınıf sınıfa benzer , yalnızca a yerine Integer
a'yı sarar . Bizi de ilgilendirecek alanlar ve metotlar var. Bunlardan birkaçını düşünün:double
int
Sınıfın Double
altı ilginç alanı vardır:
Alan | Tanım |
---|---|
|
negatif sonsuzluk |
|
pozitif sonsuzluk |
|
Mümkün olan minimum üs (2 x ) |
|
Mümkün olan maksimum üs (2 x ) |
|
double Türün mümkün olan minimum değeri |
|
double Türün mümkün olan maksimum değeri |
Sonsuzluk
-1.0
ile bölerseniz 0.0
, negatif sonsuz elde edersiniz. 1.0
ile bölerseniz 0.0
, pozitif sonsuz elde edersiniz. a'yı yalnızca sıfıra bölmekle kalmaz double
, aynı zamanda bu işlemlerin sonuçlarını depolamak için de kullanabilirsiniz.
a'nın üssüdouble
Üssü anlamak kolaydır. Dahili olarak, bir çift bir mantis ve bir üsten oluşur. Ama burada üssün değeri değil ama . Böylece, üs artarsa , sayının toplam değeri iki katına çıkar.10x
2x
1
MIN_EXPONENT == -1024
, yani yaklaşık olarak eşittir2-1024
10-308
Ve tabii ki, Double
sınıfın ilginç yöntemleri var:
Yöntemler | Tanım |
---|---|
|
Sayının onaltılık gösterimi olan bir dize döndürür |
|
Geçen sayının sonsuz olup olmadığını kontrol eder. |
|
Geçilen sayının olup olmadığını kontrol ederNaN |
|
Geçileni double bir Double nesneye sarar |
|
Geçirilen dizeden elde edilen sayıyı döndürür |
İlginç bir şekilde, geçen sayının pozitif veya negatif sonsuz olması durumunda isInfinite()
dönen bir yöntem var .true
Yöntem isNaN()
benzerdir - iletilen sayının NaN
( Not-a-Number , tanımsız bir değeri gösteren özel bir sabit) olup olmadığını kontrol eder.
3. Character
sınıf
Sınıf Character
, öncelikle, karakterlerin çeşitli kategorilere ait olup olmadığını kontrol etmenizi sağlayan çok sayıda statik yardımcı program yöntemiyle ilgi çekicidir.
örnekler
Yöntemler | Tanım |
---|---|
|
Bir karakterin alfabetik bir karakter olup olmadığını kontrol eder |
|
Karakterin bir harf olup olmadığını kontrol eder |
|
Karakterin rakam olup olmadığını kontrol eder |
|
Karakterin boşluk mu, satır sonu mu yoksa sayfa sonu mu olduğunu kontrol eder (kodlar: 12, 13, 14) |
|
Karakterin boşluk olup olmadığını kontrol eder: boşluk, sekme vb. |
|
Karakterin küçük harf olup olmadığını kontrol eder |
|
Karakterin büyük harf olup olmadığını kontrol eder |
|
Karakteri küçük harfe dönüştürür |
|
Karakteri büyük harfe dönüştürür |
Bu yöntemlerin bir özelliği, bilinen tüm alfabelerle çalışmalarıdır: Arap rakamları rakam olarak sınıflandırılır, vb.
4. Boolean
sınıf
Tip , tip Boolean
ile hemen hemen aynıdır boolean
. Farklılıklar minimumdur.
Aşağıda sınıfın basitleştirilmiş bir versiyonunu gösteriyoruz Boolean
:
kod | Tanım |
---|---|
|
Sabitler: TRUE и FALSE Değişken Boolean sınıf oluşturucu Yöntem, dahili değişkenin değerini döndürür Bu statik yöntem, ve ' ye true dönüştürür . TRUE false FALSE |
Türün Boolean
iki sabiti vardır (iki alan):
Sınıfın sabitleri | Boole türünün karşılığı | Tanım |
---|---|---|
|
|
doğru |
|
|
YANLIŞ |
Onlarla, türle çalıştığınız şekilde çalışabilirsiniz boolean
:
kod | Not |
---|---|
|
Sınıf Boolean , bir koşul içinde yazılabilen tek sınıftır. |
|
true Üç değişkenin tümü /' ye eşittirTRUE |
|
Sabitler her ikisi kullanılarak karşılaştırılabilir equals ve == Bu da işe yarayacaktır. |
Otomatik kutulama burada harika çalışıyor. Bu, bu türü, türle aynı şekilde kullanabileceğiniz anlamına gelir boolean
- dikkat edilmesi gereken hiçbir tuzak yoktur.
nasıl yazılır | Nasıl çalışır |
---|---|
|
|
boolean
Ve burada ve türlerinin bir karşılaştırması Boolean
:
boolean a = true;
Boolean b = true; // b will be equal to Boolean.TRUE
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // true (compared by reference, but they point to the same object)
Gerçekten bağımsız bir nesneye ihtiyacınız varsa Boolean
, onu açıkça oluşturmanız gerekir:
boolean a = true;
Boolean b = new Boolean(true); // New Boolean object
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // false (compared by reference, and they point to different objects)
Boolean
a inside of an kullanacağımız bir örnek daha if
:
kod | Not |
---|---|
|
Bu derlenecek ve çalışacak |
Bu derlenecek, ancak işe yaramayacak!
kod | Not |
---|---|
|
hata _ Bu satır bir istisna atar |
5. Otomatik kutulama sırasında değerleri önbelleğe alma
Tamsayı sarmalayıcı türleri ile ilgili bazı tuzaklar vardır.
int
Bildiğiniz gibi, an ve an'ı karşılaştırırsak Integer
, Integer
an'a dönüştürülür int
:
nasıl yazılır | Nasıl çalışır |
---|---|
|
|
İki nesneyi birbiriyle karşılaştırırsanız Integer
, s'ye dönüştürülmezler int
:
kod | Konsol çıkışı |
---|---|
|
|
a == c
ve , ancak , çünkü karşılaştırdığımızda ve referansları karşılaştırdığımızda. Esasen beklediğimiz şey buydu.b == c
a != b
a
b
Sürpriz
500
Ancak ile değiştirirsek 100
, tamamen farklı bir sonuç elde ederiz:
kod | Konsol çıkışı |
---|---|
|
|
Buradaki sorun, otomatik kutulama sırasında her zaman yeni bir Integer
nesnenin gerçekten yaratılmamasıdır . -128
Nesneler, kapsayıcı aracılığıyla değerler için önbelleğe alınır 127
.
Sınıfın Integer
nesneleri depolayan gizli bir dizisi vardır: Integer(-128)
, Integer(-127)
, ... Integer(126)
,Integer(127)
yazarsanız Integer x = 128
, otomatik kutulama işlemi yeni bir nesne oluşturur, ancak yazarsanız Integer x = 127
, otomatik kutulama işlemi mevcut nesneyi önbellekten (diziden) alır.
Integer
Nesnenin önbellekten gelmesini istemiyorsanız , şunu yazarak açıkça oluşturmanız gerekir:Integer x = new Integer(127);
Tüm sarıcı türlerinin böyle bir önbelleği vardır: Integer
, Long
, Byte
, Short
, Boolean
. Tür için Boolean
, onun TRUE
ve FALSE
değerlerinin her ikisi de sabittir, dolayısıyla bunlar da temelde önbelleğe alınır.
GO TO FULL VERSION