Java数据类型和字符集的介绍
本篇文章给大家带来的内容是关于Java数据类型和字符集的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
什么是数据类型
简单理解就是数据的类型。
what?数据怎么会有类型?数据难道不就是0或者1组成的字节码吗?
没错,在计算机中,只能存储0或者1,也就是说从存储的角度来看,根本没有类型这种东西,它们确实不过就是0或者1组成的字节码。
那为什么还会有数据类型?
因为,类型是相当于编程者(人)来说的,人把数据分成不同的类型,方便理解,方便计算。
比如:
int a = 0x61; char b = 0x61; float c = 0x61; double d = 0x61; System.out.println(a+" "+b+" "+c+" "+d);
输出结果是:97 a 97.0 97.0。
四个不同类型的变量,给与相同的字节码0x61,但是输出竟然不同!why?
因为编程者(人)给0x61这个16进制数赋予了类型,或者说给它赋予了含义。
为什么要赋予类型(含义)?是为了让0或1的字节码能够表示更具体的东西,或是说把它映射为人能理解的东西。
不设置类型,也可以对0x61这个数进行各种运算,但是。。。what is the meaning?
没有意义,对于一个整数进行加减乘除具有现实意义,对于一个字符小写变大写具有现实意义,可是对于一个二进制数的操作却是没有意义的。人不能理解的事情是没有意义的。
那么什么是数据类型?
就是人看待数据的方式,人理解数据的方式,人规定数据的方式,这就是数据类型。
数据之所以有类型,那取决于人的看法,而不却决于数据本身,数据本身是没有类型的。
为什么上面程序的输出不同?
因为输出就是把数据变成人想要的格式显示给人看。
计算机怎么知道人想要什么格式?通过数据类型!
当0x61被规定为int型时计算机就知道应该显示十进制数6*16+1 = 97。
当0x61被规定为char型时计算机就知道应该显示十进制数6*16+1 = 97代表的ascii码所对应的字符'a'。
虽然它们在计算机中都是同一个字节码0x61,但是因为人规定了类型,所以计算机才返回不同的结果。
从编解码的角度来看
编码是信息从一种形式或格式转换为另一种形式的过程,解码,是编码的逆过程。
具体来讲编码就是,把人理解的东西转换为计算机理解的东西,而解码则是把计算机理解的东西转换为人理解的东西。
计算机理解什么?只理解0和1,人呢?almost everything。
它们之间转换的桥梁是什么?就是数据类型!人只有规定了数据的类型,规定人所理解的事情如何转换为计算机理解的字节码,才能完成这种转换!
举例:
对于97这个数字,人可以理解它为一个十进制数,但是计算机只能理解0或者1,那么如何让计算机理解?给97编码。how?如果用二进制编码,则把97变成了1100001这个数。这样计算机就理解(能存储和计算)了,那么人怎么理解1100001这个二进制码呢?计算机在显示的时候把1100001这个数进行二进制解码,解码成97,人就理解了,而之所以能转换,是因为规定了二进制编码解码的规则,并且规定了它是个整数。而对于'a'这个字符,人理解为它是一个小写字母a,如何让计算机理解?还是编码?编什么码?编ASCII码,'a'的ASCII码是1100001,这样计算机又理解(能存储和计算)了,计算机如何让人理解1100001,解码!ASCII解码,就变成了'a',这样人就又理解了!。
不同的事物,使用不同的编码方式可能得到相同的二进制码,而相同的二进制码,使用不同的解码方式会被理解为不同的事物!
从本质上来讲什么是数据类型?
其实就是数据的编解码的方式!!!
最后,什么是字符集?
就是对字符的编码解码的方式!
不同字符集,规定了字符的编码(字符转换为二进制数)和解码(二进制数转换为字符)方式。
System.out.println("你好".getBytes("utf-8") ); System.out.println("你好".getBytes("gbk") );
输出:
[B@677327b6
[B@14ae5a5
可以看到不同的字符集(utf-8和gbk)把相同的中文"你好",编码成了不同的二进制码。
当然,上面输出并不是0和1,显然不是二进制码。。。那是因为计算机显示的时候把二进制码使用ASCII码帮你解了码。。。都变成了ASCII字符。why?我并不想让它解码,但是显示就是解码!!!
当然通过一些技巧可以输出二进制的字符串,但是这个不是重点,这里就不给出了。
最后的最后
计算机最早在什么领域应用了编解码?
汇编语言!
计算机命令也是二进制码,把汇编语言的英语单词变成二进制码就是编码,而把二进制码变成汇编语言的单词就是解码!
Atas ialah kandungan terperinci Java数据类型和字符集的介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.
