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

目录
相关文章
|
2月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
5天前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
36 9
|
10天前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
42 12
|
1月前
|
Java
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
101 14
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
32 1
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
87 8
|
2月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
|
2月前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。