Javaはタイプの安全な言語であり、C++は非タイプの安全な言語である。


C++の開発経験がある人は、0をfalseとして、非ゼロをtrueとして使うことができます。一つの関数は、たとえbookタイプでも、intタイプに戻り、自動的に0をfalseに変換し、非ゼロをtrueに変換することができます。コードの例は以下の通りです。

#include<iostream>
 #include<stdlib.h>
 using namespace std;

 bool fun()// bool, int 。
 {
     return 1;
 }

 void main()
 {
     int a=1;
     if(a)//a int , bool 。
     {
         cout<<"C++ 。"<<endl;
     }
     system("pause");
 }
しかし、javaでは、このようには使えなくなりました。javaでは、以下のコードができません。例えば、

public class TypeSafeTest {
    public static void main(String[] args) {
        int i=1;
        if(i)
        {
            System.out.println("java ");
        }
    }
}
で上述のコードを実行すると、次のようなエラーが発生します。

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タイプが自動的にブールタイプに変更されないことを示しています。これはタイプの安全という意味です。