【一步一步了解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表示真 。

目录
相关文章
|
1天前
|
存储 C语言
C语言中a 和&a 有什么区别
在C语言中,"a" 是一个变量的名字,代表存储在内存中的某个值。而"&a" 则是获取该变量的内存地址,即变量a在计算机内存中的具体位置。这两者的主要区别在于:"a" 操作的是变量中的值,"&a" 操作的是变量的内存地址。
41 23
|
1天前
|
程序员 编译器 C语言
C中的 malloc 和C++中的 new 有什么区别
在C语言中,`malloc`函数用于在运行时分配内存,返回指向所分配内存的指针,需显式包含头文件 `<stdlib.h>`。而在C++中,`new`不仅分配内存,还对其进行构造初始化,且直接使用类型声明即可,无需额外包含头文件。`new`还支持数组初始化,能更好地融入C++的面向对象特性,而`malloc`仅作为内存分配工具。使用完毕后,`free`和`delete`分别用于释放`malloc`和`new`分配的内存。
40 21
|
1天前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
10 3
|
1天前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
9 3
|
1天前
|
Java 编译器
【一步一步了解Java系列】:探索Java基本类型转换的秘密
【一步一步了解Java系列】:探索Java基本类型转换的秘密
10 3
|
23小时前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
20 1
|
4天前
|
C语言
C语言形参和实参的区别
在C语言中,形参(形式参数)与实参(实际参数)有着明确的角色区分。形参是在函数定义中声明的参数,用于接收调用函数时传入的数据;实参则是调用函数时传递的具体值或变量。简言之,实参提供数据,形参接收并处理这些数据。
|
6天前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
22 1
|
6天前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
10 0
Java中 final、finally、finalize 有什么区别?
|
6天前
|
Java
Java中抽象类和接口有什么区别?
本文阐述了Java中抽象类和接口的区别,包括类型扩展、方法/属性访问控制符、方法实现、使用目的等方面的不同,并提供了抽象类和接口的使用示例,以及Java中其他类型的类(普通类、内部类等)的简介。
11 0
Java中抽象类和接口有什么区别?