Rumah  >  Artikel  >  Java  >  Jenis Penukaran dalam Java

Jenis Penukaran dalam Java

PHPz
PHPzasal
2024-08-30 15:12:18691semak imbas

Setelah pembolehubah dan pemalar pelbagai jenis akan disatukan dalam ungkapan, ia boleh ditukar kepada jenis yang serupa. Teknik menukar satu jenis yang dipratentukan kepada satu sama lain dikenali sebagai penukaran jenis dalam Java.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Penukaran Jenis

Terdapat 2 jenis penukaran berbeza yang kami gunakan dalam bahasa pengaturcaraan.

Jenis Penukaran dalam Java

1. Penukaran Jenis Tersirat

Jika penukaran jenis dijalankan serta-merta melalui pengkompil tanpa penglibatan pengaturcara, penukaran jenis dikenali sebagai penukaran jenis tersirat. Pengkompil secara asasnya menggalakkan setiap operan ke arah jenis data operan terbesar.Tiada kehilangan data berlaku sepanjang penukaran data.Tiada peluang untuk membuang pengecualian melalui penukaran dan oleh itu dikenali sebagai jenis-selamat. Penukaran kuantiti bersaiz lebih kecil nombor yang terlalu besar boleh menjadi penukaran tersirat. Transformasi data jenis integer kepada terapung.

float i=0;
int j=10;
i=j;

// Ini boleh menjadi transformasi tersirat kerana apungan boleh lebih besar daripada integer, oleh itu tiada kekurangan data Dan juga tidak terkecuali.

2. Penukaran Jenis Eksplisit

Penukaran jenis, yang boleh dikuatkuasakan melalui pengaturcara, dikenali sebagai penukaran jenis eksplisit. pada asasnya, pengaturcara membuat ungkapan untuk menjadi jenis tertentu. Transformasi jenis eksplisit boleh dikenali sebagai typecasting. Kehilangan data mungkin atau mungkin tidak berlaku semasa penukaran data. Oleh itu, wujud kebarangkalian kehilangan butiran. ia boleh menimbulkan ralat jika ia mungkin cuba melakukan tanpa taip. Transformasi nombor yang lebih besar kepada nombor bersaiz lebih kecil boleh menjadi penukaran eksplisit.

float k=123.456
int i= (int) k

// ini boleh menjadi Penukaran eksplisit serta (int) adalah taip, pengendali. Pada ketika ini, kami mungkin berjaya melepaskan diri daripada pengecualian, tetapi anda boleh menemui kehilangan data yang boleh dilihat. iaitu i=123

// .456 boleh digugurkan dalam proses penukaran

Penukaran Jenis dalam Java

Seperti bahasa pengaturcaraan lain, terdapat 2 jenis penukaran dalam java:

Penukaran Jenis Tersirat

  • Ini secara amnya adalah apa yang kami panggil Meluaskan penukaran, dan ini boleh dilakukan secara automatik kerana kami beralih kepada jenis data yang lebih luas. Jadi jika kita mempunyai integer 32-bit dan kita mahu beralih ke integer 64-bit, itu lebih luas. Jadi nilai itu boleh dialihkan dengan selamat supaya ia boleh dilakukan secara tersirat. Pengkompil perlu memutuskan cara membuat penukaran ini dan peraturannya agak mudah.
  • Jika kita mempunyai ungkapan dengan berbilang saiz integer (Campuran) di dalamnya, jika kita mempunyai pendek dan panjang, tidak kira saiz integer terbesar, perkara akan menukarnya kepada. Jadi jika kita melakukan operasi dengan pendek dan panjang, pendek akan secara tersirat dilemparkan ke dalam bersama.
  • Jika kita melakukan operasi dengan saiz titik terapung bercampur, jadi kita mempunyai apungan dan berganda, mereka akan sentiasa pergi ke berganda kerana berganda ialah saiz mata terapung terbesar.
  • Dan kemudian, jika kita mempunyai operasi yang menggunakan jenis integer bercampur dan jenis titik terapung, pengkompil akan menghantar ke mana-mana titik terapung terbesar dalam persamaan. Jadi jika kita melakukan operasi dengan long dan terapung, yang panjang akan dilemparkan ke terapung.
  • Jika kita melakukan operasi dengan long dan double, long kemudian akan dilontarkan kepada double.

Penukaran Jenis Eksplisit

  • Kami secara eksplisit melakukan dalam kod kami apabila menggunakan operasi cast ini. Apabila kami berbuat demikian, kami bertanggungjawab ke atas apa sahaja yang berlaku akibat daripada jenis penukaran tersebut. Disebabkan itu, kami boleh melakukan kedua-dua penukaran meluas dan sempit. Ia melebar daripada 32-bit kepada 64-bit, mengecil, daripada 64-bit turun kepada 32-bit. Kita seharusnya hanya mahu sedar bahawa kita tahu perkara yang mungkin berlaku.
  • Jika kita melakukan balingan eksplisit dari titik terapung ke integer, jadi titik terapung boleh mempunyai bahagian pecahan, integer tidak boleh, jadi mana-mana bahagian pecahan akan digugurkan apabila kita menghantar terapung itu ke integer.
  • Anda ingin berhati-hati apabila melakukan penukaran yang mengecil. Jika kita mempunyai integer 64-bit, ia mempunyai keupayaan untuk menyimpan nilai yang terlalu besar untuk dimuatkan ke dalam integer 32-bit.
  • Jadi, jika kita menghantar 64 bit itu kepada 32-bit, program sebenarnya akan melakukannya, tetapi jika nilainya terlalu besar untuk dimuatkan ke dalam 32-bit, anda akan mendapat beberapa hasil yang ganjil daripada itu. Jadi, anda ingin memastikan bahawa apabila anda menghantarnya melakukan balingan penyempitan, anda tahu bahawa apa yang anda lakukan adalah selamat.
  • Dan yang terakhir ialah anda ingin berhati-hati apabila menukar daripada integer kepada titik terapung kerana jika anda mempunyai integer dengan bilangan digit bererti yang besar, kerana cara titik terapung disimpan, anda boleh kehilangan beberapa digit penting tersebut.

Contoh Penukaran Jenis

Contoh penukaran jenis yang dinyatakan di bawah secara terperinci:

Kod:

Jenis Penukaran dalam Java

Kami mempunyai atur cara mudah di sini, beberapa pengisytiharan di bahagian atas, terapung, berganda, bait, pendek dan panjang, dan setiap pembolehubah dinamakan untuk membantu mengenal pasti jenis apungan itu ialah floatVal,

Kod:

Jenis Penukaran dalam Java

long is longVal

Kod:

Jenis Penukaran dalam Java

Dan program hanya mencetak mesej Kejayaan jika ia dijalankan.

Jenis Penukaran dalam Java

Jadi mari kita lihat bagaimana beberapa penukaran jenis dimainkan di sini. Jadi mari kita mula-mula sekali, mari kita teruskan dan buat pembolehubah. Kami mempunyai pendek, dan kami hanya akan memanggilnya sebagai hasilnya.

Malah, mari kita teruskan dan panggil ia hasil1. Dan mari kita buat tugasan yang mudah. Dan pertama sekali, kami hanya akan menetapkan byteVal kepadanya. Sekarang, seperti yang kita jangkakan, jika kita meneruskan dan menjalankan ini, jadi jalankan dengan jayanya.

Kod:

Jenis Penukaran dalam Java

Output:

Jenis Penukaran dalam Java

Kami tahu itu adalah tugasan yang sah kerana bait boleh ditetapkan menjadi pendek kerana itu ialah penukaran yang semakin meluas.

Jika kita mengambil byteVal ini, dan sebaliknya kita menjadikannya longVal, jadi sekarang ia sebenarnya panjang; jika kami menjalankan ini, kami mendapat mesej ralat di sini yang mengatakan jenis tidak serasi, kemungkinan kehilangan penukaran dari panjang ke pendek.

Kod:

Jenis Penukaran dalam Java

Jenis Penukaran dalam Java

Jadi apa yang boleh kita lakukan di sini ialah kita boleh melakukan pelakon yang jelas. Kami hanya akan meletakkan pendek di hadapan ini. Jadi sekarang ia sah, jadi kami boleh menjalankannya.

Kod:

Jenis Penukaran dalam Java

Dan, sudah tentu, ia berkesan. Kerana panjang tidak boleh menjadi pendek kerana itu adalah penukaran yang menyempit.

Output:

Jenis Penukaran dalam Java

Tetapi dengan meletakkan pelakon yang jelas di hadapannya, kini ia sah. Jika kami mahu, kami boleh meletakkan notasi cast menjadi sangat eksplisit dan mengatakan bahawa anda tahu, kami tahu walaupun penukaran bait adalah sah, kami ingin menunjukkan secara eksplisit bahawa kami menghantarnya dengan meletakkan cast pendek di sana, kami boleh lakukan itu, dan itu sah sepenuhnya.

Kod:

Jenis Penukaran dalam Java

Output:

Jenis Penukaran dalam Java

Jadi sekarang, mari kita lihat senario lain. Kami akan mencipta pembolehubah lain yang akan kami panggil result2, dan result2 juga pendek. Dan apa yang kami mahu lakukan di sini ialah kami hanya akan mengambil byteVal kami, dan kami mahu menolak longVal. Sekarang kita tahu itu tidak sah kerana hasil ungkapan itu akan menjadi saiz integer terbesar di dalamnya, iaitu panjangnya.

Kod:

Jenis Penukaran dalam Java

Jadi jika kami menjalankan ini, kami mendapat ralat yang mengatakan bahawa tidak sah untuk menukar panjang kepada pendek.

Jenis Penukaran dalam Java

Tetapi katakan kita mahu meneruskan dan memastikan keputusan itu singkat. Kita perlu membuat lakonan. Tetapi kami mahu membuang kali ini sebagai nilai keseluruhan hasil di sini. Jadi apa yang akan kita lakukan ialah meletakkan pelakon pendek di hadapannya di sini.

Letakkan pelakon pendek di hadapannya di sini. Dan bungkus semuanya dalam kurungan. Dan jalankannya.

Kod:

Jenis Penukaran dalam Java

Ia akan berjalan dengan jayanya.

Output:

Jenis Penukaran dalam Java

Sekarang isytiharkan pembolehubah lain yang dipanggil result3, tetapi isytiharkan pembolehubah ini sebagai panjang. Jadi mendapat keputusan 3, dan apa yang akan kami lakukan di sini ialah kami akan menetapkan longVal kami - floatVal. Oleh itu, kami menjalankannya, ralat kehilangan penukaran menukar daripada terapung kepada panjang kerana apabila kami mempunyai jenis integer dan sebarang jenis titik terapung, hasilnya akan menjadi jenis titik terapung.

Kod:

Jenis Penukaran dalam Java

Jenis Penukaran dalam Java

Jadi mari kita teruskan dan tukar hasil kita sekarang kepada apungan. Jadi dengan menjadikan apungan itu, kita sepatutnya dapat meneruskan dan menjalankannya. Dan berjalan dengan jayanya.

Kod:

Jenis Penukaran dalam Java

Output:

Jenis Penukaran dalam Java

Tetapi sekarang, jika kita mengambil floatVal di sini dan kita menukar ini menjadi doubleVal, dan jika kita cuba menjalankan ini, kita mendapat ralat kerana ia mengatakan hasilnya akan menjadi dua kali ganda kerana apabila anda melakukan integer dan titik terapung, ia ialah saiz titik terapung terbesar dalam persamaan.

Kod:

Jenis Penukaran dalam Java

Jenis Penukaran dalam Java

Jadi mari kita teruskan dan jadikan keputusan ini berganda, jadi sekarang kita boleh menjalankannya.

Kod:

Jenis Penukaran dalam Java

Output:

Jenis Penukaran dalam Java

Kesimpulan

1. Pembolehubah ditaip dengan kuat dalam Java
2. Jenis primitif

  • Jenis integer, jenis titik terapung, jenis aksara, jenis Boolean

3. Jenis penukaran

  • Kami selalunya terpaksa beralih antara jenis yang berbeza kerana program kami, apabila ia semakin kompleks, mungkin akan melibatkan berbilang jenis data.
  • Pengkompil boleh mengendalikan penukaran jenis yang semakin meluas, bergerak dari satu jenis ke jenis lain yang boleh memegang nilai yang lebih besar,
  • Tetapi anda juga boleh menggunakan penghantaran untuk melaksanakan jenis penukaran secara eksplisit yang tidak dapat dilakukan oleh pengkompil secara automatik.

Atas ialah kandungan terperinci Jenis Penukaran dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Senibina ServletArtikel seterusnya:Senibina Servlet