【一步一步了解Java系列】:探索Java基本类型与C语言的区别

简介: 【一步一步了解Java系列】:探索Java基本类型与C语言的区别

java基本数据类型

Java数据类型大多数与C语言还是大同小异的,但今天要讲的就是”小异“。

首先我们先讲一下字面常量。先看一下一段代码:

public class Test {
 
    public static void main(String[] args) {
        System.out.println("hello world");
        System.out.println(18);
        System.out.println('A');
        System.out.println(18.8);
        System.out.println(true);
        System.out.println(20.1f);
      
    }
 
}

我们看到打印结果就是我们放在 System.out.println(); 括号里的数据,那么这里我填入的”18“,” A'“,"18.8","true","20.1f",都为字面常量。


数据类型分为基本数据类型和引用数据类型,但先我要学习的是基本数据类型

基本数据类型

基本数据类型分得更细的为四类,八种,那么接下来就仔细讲讲着四类,八种

四类为:整型、浮点型、字符型以及布尔型


我们将byte,short,int,long,称作四类中的整形。char,double为浮点型,char为字符型,boolean为布尔型

八种为:


数据类型                      关键字                        内存占用                       范围


字节型                           byte                          1 字节                         -128 ~ 127        


短整型                         short                          2 字节                         -32768 ~ 32767


整型                              int                             4 字节                         ~


长整型                           long                          8 字节                         ~


单精度浮点数                 float                         4 字节                        有范围,一般不关注  


双精度浮点数               double                     8 字节                         有范围,一般不关注


字符型                           char                         2 字节                         0 ~ 65535


布尔型                          boolean                没有明确规定                 true 和 false


不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节


整形和浮点型都是带有符号的 整型默认为int型


如8,默认为整形8


浮点型默认为double 字符串属于引用类型,该中类型后序介绍。


如8.0,默认8.0为double而不是float,8.0f才是float型。

如图给变量赋值时,类型不对会导致编译器报错。


变量

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的 计算结果等,对于这些经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。


整形变量

public class Test {
    public static void main(String[] args) {
 
        int a=10;
        short b=10;
        long c=10;
        byte d=10;
 
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Short.MAX_VALUE);
        System.out.println(Long.MAX_VALUE);
        System.out.println(Byte.MAX_VALUE);
    }
}

     System.out.println(Integer.MAX_VALUE);

       System.out.println(Short.MAX_VALUE);

       System.out.println(Long.MAX_VALUE);

       System.out.println(Byte.MAX_VALUE);

以上代码表示打印各自的最大值


int不论在何种系统下都是4个字节

推荐使用方式一定义,如果没有合适的初始值,可以设置为0

在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢出

变量在使用之前必须要赋初值,否则编译报错

int的包装类型为 Integer,其它整形的包装类就是改变首字母为大写而已

单精度浮点数float变量

float num = 1.0f; // 写作 1.0F 也可以
 System.out.println(num);
 

字符型char变量

 
        char a='Q';
        char b='闭';
        System.out.println(a);

注意:在Java是占两个字节的,也就是字符型可以储存一个汉字了,一个汉字是占两个字节的。

计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此 一个字符占用两个字节, 表示的字符种类更多, 包括中文


布尔类型boolean变量

boolean b = true;
System.out.println(b);
b = false;
System.out.println(b)

注意:布尔类型只有true和false,不能和C语言一样,0表示假,非0表示真 。

目录
相关文章
|
17天前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
13天前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
|
17天前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
1月前
|
存储 C语言
C语言:普通局部变量、普通全局变量、静态局部变量、静态全局变量的区别
C语言中,普通局部变量在函数内部定义,作用域仅限于该函数;普通全局变量在所有函数外部定义,作用域为整个文件;静态局部变量在函数内部定义但生命周期为整个程序运行期;静态全局变量在所有函数外部定义,但仅在定义它的文件内可见。
45 10
|
25天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
28天前
|
存储 C语言
C语言:结构体与共用体的区别
C语言中,结构体(struct)和共用体(union)都用于组合不同类型的数据,但使用方式不同。结构体为每个成员分配独立的内存空间,而共用体的所有成员共享同一段内存,节省空间但需谨慎使用。
|
1月前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
1月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
1月前
|
存储 编译器 C语言
C语言:数组名作为类型、作为地址、对数组名取地址的区别
在C语言中,数组名可以作为类型、地址和取地址使用。数组名本身代表数组的首地址,作为地址时可以直接使用;作为类型时,用于声明指针或函数参数;取地址时,使用取地址符 (&),得到的是整个数组的地址,类型为指向该类型的指针。
|
1月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
24 1