深入理解:Java是類型安全的語言,而C++是非類型安全的語言
更新時間:2013年06月04日 10:34:23 作者:
本篇文章是對Java是類型安全的語言,而C++是非類型安全的語言進行了詳細的分析介紹,需要的朋友參考下
有過C++開發(fā)經(jīng)驗的人會發(fā)現(xiàn),我們可以將0作為false,非零作為true。一個函數(shù)即使是bool類型的,但是我們還是可以返回int類型的,并且自動將0轉(zhuǎn)換成false,非零轉(zhuǎn)換成true。代碼實例如下:
#include<iostream>
#include<stdlib.h>
using namespace std;
bool fun()//函數(shù)返回類型是bool,但是我們在函數(shù)中可以返回int類型。
{
return 1;
}
void main()
{
int a=1;
if(a)//a是int類型的,但是可以作bool類型來使用。
{
cout<<"C++是非類型安全的。"<<endl;
}
system("pause");
}
但是,在java中,我們就不能這樣使用了,java中不能做到int類型轉(zhuǎn)bool類型,比如以下代碼:
public class TypeSafeTest {
public static void main(String[] args) {
int i=1;
if(i)
{
System.out.println("java是類型安全語言");
}
}
}
執(zhí)行上述代碼會報如下錯誤:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Type mismatch: cannot convert from int to boolean
at TypeSafeTest.main(TypeSafeTest.java:4)
上述錯誤表明在java中int類型不能在自動轉(zhuǎn)變成bool類型了。這就是類型安全的意思。
復(fù)制代碼 代碼如下:
#include<iostream>
#include<stdlib.h>
using namespace std;
bool fun()//函數(shù)返回類型是bool,但是我們在函數(shù)中可以返回int類型。
{
return 1;
}
void main()
{
int a=1;
if(a)//a是int類型的,但是可以作bool類型來使用。
{
cout<<"C++是非類型安全的。"<<endl;
}
system("pause");
}
但是,在java中,我們就不能這樣使用了,java中不能做到int類型轉(zhuǎn)bool類型,比如以下代碼:
復(fù)制代碼 代碼如下:
public class TypeSafeTest {
public static void main(String[] args) {
int i=1;
if(i)
{
System.out.println("java是類型安全語言");
}
}
}
執(zhí)行上述代碼會報如下錯誤:
復(fù)制代碼 代碼如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Type mismatch: cannot convert from int to boolean
at TypeSafeTest.main(TypeSafeTest.java:4)
上述錯誤表明在java中int類型不能在自動轉(zhuǎn)變成bool類型了。這就是類型安全的意思。
相關(guān)文章
C/C++ 實現(xiàn)簡易HTTP服務(wù)器的示例
這篇文章主要介紹了C/C++ 實現(xiàn)簡易HTTP服務(wù)器的示例,幫助大家更好的理解和學(xué)習(xí)C/C++編程,感興趣的朋友可以了解下2020-10-10
C/C++?Qt?TabWidget?實現(xiàn)多窗體創(chuàng)建詳解
TabWidget組件配合自定義Dialog組件,可實現(xiàn)一個復(fù)雜的多窗體分頁結(jié)構(gòu)。這篇文章就主要介紹了如何通過TabWidget實現(xiàn)多窗體的創(chuàng)建,感興趣的小伙伴可以了解一下2021-12-12
Qt6遠程連接MySQL數(shù)據(jù)庫的簡單易上手版
在Qt應(yīng)用程序里,可實現(xiàn)遠程MySQL服務(wù)器的連接操作,本文就來介紹一下Qt6遠程連接MySQL數(shù)據(jù)庫,具有一定的參考價值,感興趣的可以了解一下2023-11-11
利用Matlab仿真實現(xiàn)圖像煙霧識別(k-means聚類圖像分割+LBP+PCA+SVM)
本文主要介紹了利用k-means聚類實現(xiàn)圖像分割+LBP算法進行特征提取+PCA算法進行特征降維+SVM算法訓(xùn)練二分類模型從而實現(xiàn)煙霧識別。文中介紹很詳細,感興趣的朋友可以了解一下2021-12-12

