Önlemler:
Kaplanan bayt sayısı ne kadar büyükse, değer aralığı o kadar büyük ve depolanan veriler o kadar büyük
Gerçek geliştirmede, uygun veri türünü seçmeli ve veri türünün değer aralığını aşmamayı unutmamalıyız Ek: Geliştirme sırasında, genellikle kısa ve bayt türü kod ekranı yerine int türü kullanılır:
public class Test {
// Ana yöntemi yazın, yazma yöntemi sabittir, programın girişi sanal makine tarafından kullanılabilir
public static void mian (String args) {
int yaş = 12;
System.out.println ("yaş" + yaş);
// çıktı yaşı 12
}
}
Tamsayı sabit değer sabiti; ondalık, onaltılık ve sekizlik içerebilir, ancak ikili değil
Kod ekranı
public class ConstantTest {
public static void main (String args) {
// sekizlik sabit değer sabiti
int num = 017;
System.out.println (num); // Çıktı 15
// Onaltılık sabit değer sabiti
int num2 = 0xFF;
System.out.println (num2); // Çıktı 255
}
}
Tamsayı sabit değer sabitinin varsayılan değeri int tipidir. İnt türünün değer aralığı -231 ~ 231-1 olup, yaklaşık artı veya eksi 2,1 milyar'dır. Değiştirmek için tamsayı sabit değer sabitinin sonuna küçük harf "l" veya büyük harf "L" ekleyin Uzun tip sabiti için
Öneri: Büyük "L" harfini kullanın, çünkü küçük l harfi 1 ile kolayca karıştırılır
public class ConstantDemo {
// Ana yöntemi yazın, yazma yöntemi sabittir, programın girişidir, ana yöntemde değiştirilebilecek tek şey sanal makine tarafından tanınabilen ve çalıştırılabilen "args" adıdır.
public static void main (String args) {
int num = 10000000000;
System.out.println (num); // derleme hatası, çok büyük tamsayı
}
}
Ekran görüntüsünü çalıştır:
Not: Tamsayı sabit değer sabitleri kullanırken, int türünün değer aralığını aşmayın
public class ConstantTest {
public static void main (String args) {
uzun num = 10000000000L;
// Doğru 10000000000L, uzun tipte sabit bir değer sabitidir
System.out.println (sayı);
}
}
public class ConstantTest {
public static void main (String args) {
uzun num = 10000000000;
System.out.println (num); // Bir derleme hatası oluştu
}
}
public class ConstantTest {
public static void main (String args) {
int num = 100000 * 100000;
System.out.println (num); // Tahmini: 10.000.000.000 Gerçek: 1410065408
}
}
Beklenen sonuç ile gerçek sonuç arasındaki tutarsızlığın nedenleri:
Derleme sırasında, iki girişle çarpılan 100000 * 100000 sayısı int türünün değer aralığını aşmaz, bu nedenle derleme ve çalıştırma sırasında iki int türü çalıştırılır ve döndürülen sonuç hala int türündedir
Tam sayılara bellekte nasıl erişilir?
Depolama: Bir tamsayıyı ikiliye dönüştürün ve ardından bellek alanında saklayın
Oku: Bellekteki ikiliyi ondalık sayıya çevir ve sonra çıkar
Çizim talimatları:
Kod ekranı:
public class IntDemo {
public static void main (String args) {
int yaş = 7;
System.out.println ("yaş" + yaş);
}
}
Not:
Kayan nokta türünün kapladığı bayt sayısı ne kadar büyükse, temsilin doğruluğu o kadar yüksek olur
İşgal edilen bayt sayısı ne kadar büyükse, değer aralığı o kadar geniş olduğu anlamına gelmez
Çift, daha yüksek ondalık anlamına gelir. Gerçek geliştirmede, çift genellikle daha fazla kullanılır
Ondalık sayılar farklı şekillerde saklandığından, ondalık sayılar için özellikle kesin hesaplamalar yapmamaya çalışın.
public class DoubleTest {
public static void main (String args) {
// Beklenen çıktı 0.0003 Gerçek çıktı 3.0000000000000003E-4
System.out.println (0.0001 + 0.0002);
}
}
Ondalık sabit değer sabiti varsayılan olarak çift tiptir ve ondalık sabit değer sabitinin sonuna küçük harfli "f" | büyük harfli "F" eklenir, ardından sabit float türünün sabiti olur
Kod ekranı:
public class DoubleTest {
public static void main (String args) {
float f = 3.14; // derleme hatası
System.out.println (f);
}
}
Ekran görüntüsü:
Nedeni: 3.14 varsayılan çift tiptir
Kod ekranı:
public class DoubleTest1 {
public static void main (String args) {
float f = 3.14f; // başarıyla derlendi
System.out.println ("f =" + f); // çıktı f = 3.14
}
}
Ekran görüntüsü:
Sebep: Ondalık sabit değerin sonuna küçük harf "f" eklendiğinden, sabit bir kayan tip olur
Ondalık sabit değer sabitleri nelerdir?
Ondalık ondalık sabit değer sabiti, örneğin: 3.14, 123.45, vb.
Bilimsel gösterimle ifade edilen sabitler, örneğin: 3.14E3, 3.14E-3, vb.
Kod ekranı:
public class Test {
public static void main (String args) {
float f = 3.14e3f;
System.out.println ("F =" + f);
çift d = 3.14E-3;
System.out.println ("D =" + d);
}
}
Ekran görüntüsünü çalıştır:
3.14e3, ondalık noktayı üç basamak sağa kaydırmaya eşdeğerdir, sonuç 3140.0 olur
3.14E-3, ondalık noktayı üç basamak sola kaydırmaya eşdeğerdir, sonuç 0,00314'tür
Not: Bilimsel gösterimdeki "E", küçük "e" harfi veya büyük "E" harfi olabilir
Durumları kullanın: genellikle koşul yargısı için kullanılır, koşul doğrudur, doğru döndürür, koşul doğru değildir, yanlış döndürür
public class BooleanTest {
public static void main (String args) {
boole bayrağı = true;
System.out.println (flag); // çıktı true
bayrak = yanlış;
System.out.println (flag); // Yanlış çıktı
bayrak = 3 > 5;
System.out.println (bayrak); // yanlış çıktı
bayrak = 3 < 5;
System.out.println (flag); // çıktı true
}
}
Ekran görüntüsünü çalıştır:
Soru: Boole türü kaç bayt kaplar?
Cevap: Java spesifikasyonunda, boolean türünün bayt sayısı açıkça belirtilmemiştir.Bence 1 bit, çünkü 1 bit doğru veya yanlış olmak üzere iki olasılığı ifade edebilir. Ayrıca dosya depolandığı için 1 bayt kapladığını düşünüyorum. En küçük birim bayttır
İşaretsiz bir değeri temsil eden 2 bayt kaplar ve değer aralığı 0 ~ 65535'tir.
Karakter sabit değer sabiti: bir çift tek tırnak içine sarılmış bir karakter, karakter sabiti olarak adlandırılır
public class CharTest {
public static void main (String args) {
char c = 'a'; // doğru
char c1 = 'Merhaba'; // hata
char c2 = 'sayı'; // doğru
char c3 = '11'; // hata
char c4 = '9'; // doğru
char c5 = ''; // doğru
char c6 = ''; // hata
}
}
1
2
3
4
5
6
7
8
9
10
11
Not:
char, 2 bayt kaplar, 65536 karakter saklayabilir, bir İngilizce | Çince karakter bellekte iki bayt yer alır
Karakterler ve dizeler arasındaki ilişki:
Karakterler ve dizgiler yakından ilişkilidir.Sizeler, koyun eti ve koyun eti şişleri arasındaki ilişkiye benzer şekilde birden fazla rastgele karakterden oluşur.
Dize
Java'da, Dize türü (dize türü) bir başvuru veri türüdür
Dize sabit değer sabiti: bir çift çift tırnak "" ile sarılmış içerik (herhangi bir sayıda karakter), biz buna bir dizge sabiti diyoruz
Kod ekranı:
public class StringDemo {
public static void main (String args) {
Dize adı = "Java";
String hobby = "Basketbol oyna";
String nullStr = "";
String eng = "merhaba Dünya";
System.out.println ("Adım" + ad); // Adım Java
System.out.println ("Hobim" + hobi); // Hobim basketbol oynamak
System.out.println (nullStr); // boş dizge
System.out.println (eng); // merhaba Dünya
}
}
1
2
3
4
5
6
7
8
9
10
11
12
operasyon sonucu:
Dizelerin özellikleri:
Dizeler ve diğer veri türleri, aslında bağlayıcı işlemi (ekleme işlemi) olan "+" işlemini yapar ve döndürülen sonuç Dize türündedir (dize türü)
Analiz: String str = "Merhaba" + 10;
Açıklama: Önce int türünün örtük tür dönüştürmesinden 10'u String türüne dönüştürün ve ardından dönüştürülen "10" ve "Merhaba" değerlerini birleştirin
public class StringDemo {
public static void main (String args) {
String str = "Merhaba" + 10;
System.out.println (str); // Hello10 çıktı
Dize str1 = 20 + "Merhaba" + 10;
System.out.println (str1); // "20Hello10" çıktı
// Genellikle aşağıdaki benzer durumlarda "+" kullanılır
int yaş = 15;
System.out.println ("yaş" + yaş); // Çıktı yaşı 15
}
}
1
2
3
4
5
6
7
8
9
10
11
Ekran görüntüsünü çalıştır:
Karakterler bellekte nasıl saklanır?
Fikir: Kodlama tablosuna göre, karaktere (sayı, harf) karşılık gelen pozitif tamsayıyı bulun
Depolama: Kodlama tablosunda depolanacak karakteri karşılaştırın, ardından karaktere karşılık gelen pozitif tamsayıyı bulun ve son olarak pozitif tamsayıyı ikiliye dönüştürün ve belleğe karşılık gelen depolama alanında saklayın > kodlama
Oku: Değişken adı aracılığıyla ilgili depolama alanındaki değeri bulun, ardından değeri ikiliden ondalık sayıya dönüştürün ve ardından ondalık değeri, karşılık gelen karakteri almak için kod tablosuyla karşılaştırın - > kod çözme
Çizim analizi:
Kod ekranı:
public class CharDemo {
public static void main (String args) {
char c = 'a';
System.out.println (c);
}
}
Not: Karakterler doğrudan ikiliye dönüştürülemez, yalnızca sayısal değerler
Çıktı ifadesi ne çıkarabilir?
System.out.println (değer)
System.out.print (değer)
Çıktı Değeri, sabit | değişken verilere atıfta bulunan verilerdir
Ortak kodlama tablosu
ASCII: Modern İngilizce ve Batı Avrupa dillerini görüntülemek için kullanılan bir kodlama tablosu
GBK: Çince'de kullanılan kodlamayı temsil etmek için kullanılır
Unicode: Evrensel Kod, Unicode
Çekirdek: Unicode kod tablosu dünyadaki hemen hemen tüm dilleri içerir
Not:
Java, Unicode kodlama tablosunu kullanır, bu da Java'nın dünyadaki hemen hemen tüm dilleri kullanabileceği anlamına gelir, örneğin: tanımlayıcılar Çince olarak ifade edilebilir, ancak Çince önerilmez
public class haha {
public static void main (String args) {
System.out.println ("Merhaba Dünya");
}
}
Ekran görüntüsünü çalıştır:
ASCII ve Unicode kod tablosu
ASCII kod tablosunun ilk 128 biti, Unicode kod tablosunun ilk 128 bitiyle tamamen aynıdır.
'0' - Karşılık gelen pozitif tam sayı - > 48
'a' - Karşılık gelen pozitif tamsayı - > 97
'A' - Karşılık gelen pozitif tamsayı: > 65
Ezberlemeye yardımcı olun:
İngilizce harfler (AZ, az): Büyük harfler (az) ile küçük harfler (AZ) arasındaki fark 32'dir, ortalama 97'dir, A 65 anlamına gelir ve her seferinde 1 artar
Pozitif tamsayı (0 ~ 9): 0, 48 anlamına gelir; 1, 49 anlamına gelir, her seferinde 1 artırın
Kod ekranı:
public class CharTest {
public static void main (String args) {
System.out.println ((int) 'a'); // 97
System.out.println ((int) 'b'); // 98
System.out.println ((int) 'B'); // 66
System.out.println ((int) 'A'); // 65
System.out.println ((int) '1'); // 49
System.out.println ((int) '0'); // 48
}
}
Ekran görüntüsünü çalıştır:
Karakter türü karakterlere karşılık gelen pozitif tam sayı nasıl kontrol edilir?
Zorlama kullanın
Kod ekranı
public class CharTest {
public static void main (String args) {
System.out.println ((int) 'a'); // 97
}
}
Kabul etmek için int türü değişkenleri kullanın
Kod ekranı:
public class CharTest {
public static void main (String args) {
int charInt = 'a';
System.out.println (charInt); // 97
}
}
Int türü ve Char türü arasındaki fark
Ortak nokta: int türü ve karakter türü, bellekte depolanan tüm tam sayılardır
Bu ortak özellik nedeniyle, int türünün ve char türünün birbiriyle değiştirilebileceği anlamına gelir.
int türüne dönüştürülmüş > karakter türü
Gereksinimler: int türü, pozitif bir tamsayı olmalı ve char türünün değer aralığını (0 ~ 65535) aşmamalıdır. Char türü işaretsiz vurgular
karakter-to- > int türü
Gereksinimler: Gerekli değildir, tüm karakter türü karakterler int türüne dönüştürülebilir
Kod ekranı:
// karakter - dönüştürülür - > int türü
public class CharIntDemo {
public static void main (String args) {
System.out.println ((int) 'a');
int charInt = '0';
System.out.println (charInt);
}
}
Kod ekranı:
// int --turn-- > karakter türü
public class CharIntDemo {
public static void main (String args) {
System.out.println ((char) 75); // K
System.out.println ((char) 48); // 0
char c = 78;
System.out.println (c); // N
char c1 = 49;
System.out.println (c1); // 1
}
}
Ekran görüntüsünü çalıştır:
fark:
İnt türü 4 bayt, char türü 2 bayt, int türü char türünden daha büyük bir değer aralığına sahiptir
Karakter türü işaretsiz, int türü işaretli, int türü bellekte pozitif | negatif tamsayılar depolayabilir, char türü yalnızca pozitif tamsayıları bellekte saklayabilir, negatif tam sayıları değil
Orijinal bağlantı: https://blog.csdn.net/qq_41473905/article/details/103175239