數據類型是程式語言描述事物、對象的方法。Java數據類型分為內置類型和擴展類型兩大類。內置類型就是Java語言本身提供的基本數據類型，比如，整型數，浮點數，字符，布爾值等等。而擴展類型則是Java語言根據基本類型擴展出的其他類型，Java要求所有的擴展類型都必須包括在類定義裡面，這就是Java被叫做物件導向程式語言的原因。不同於像SmallTalk一樣的純粹的物件導向語言，Java保留了基本數據類型，但這主要是為滿足Java高效率執行的需求。JRE（Java Runtime Environment）提供了豐富實用的擴展類型供程式設計師使用，程式設計師也可以根據需要通過類的繼承機制自己擴展。
內置類型也稱作基本類型（Primitive Types），是其他類型的基礎。所有的其他類型（包括Java核心庫和用戶自定義類型）都是通過基本類型擴展而來的。這些類型是我們描述對象最基本的方式。比如：判斷是否使用boolean；衡量大小、長度使用各種整型（包括short, int, long）和浮點數（float和double）；表達字符使用char；而處理二進位數據塊使用byte。Java也提供了基本類型的類包裹(Wrapper)，這些類包裹都包括在了java.lang包裡面作為Java的語言基礎，比如對int的類包裹是Integer類。提供這些類包裹的原因主要是為了在某些接口上提供和類（對象）一致的接口，比如在泛型設計上的數據模板等等。而且相應的包裹類中還提供了對基本數據類型的操作，比如int Integer.parseInt(String s, int radix)將字符串轉化為相應進位的整型數。