Java基础笔记(四)【数据类型】

本文介绍了编程语言中的强类型和弱类型语言概念,以Java为例详细阐述了其数据类型,包括基本类型和引用类型,并提及了32位和64位计算机内存差异。同时,文章讨论了浮点数的特性,强调在精度要求高的场景下使用BigDecimal的重要性,以及字符编码和转义字符的使用。此外,还涉及了字符串和布尔值在内存中的处理。
摘要由CSDN通过智能技术生成

开发语言大体上可以分为两类:

  1. 强类型语言:
    • 要求严格,所有变量先定义后使用,变量类型不经过转换的话永远是这个类型
    • 安全性高,但是因此效率更低
  2. 弱类型语言:
    • 如:JavaScript

Java是强类型语言。

Java的数据类型可以分为两类:

  1. 基本类型(primitive type)
  2. 引用类型(reference type)

在这里插入图片描述

code解释数据类型

public static void main(String[] args) {
        //整数
        int a = 10;
        byte b = 127;
        short c = 11;
        long d = 238494028L;//long类型要在后面加L

        //小数:浮点数
        float e = 11.2F;//float类型要在后面加F
        double f = 3.1415926;

        //字符
        char name = 'a';
        String sex = "female";//String不是关键字,是类

        //布尔值:是非
        boolean flag1 = true;
        boolean flag2 = false;

}

注意:不用刻意去记不同数据类型的最大最小值,可以通过相应的类,进入源码查看。
在这里插入图片描述

科普下,电脑的32位、64位的区别?

  • 32位:最多可以装4G的内存
  • 64位:最多可以装128G的内存

位、字节说明

  • 位(bit):是计算机内部数据存储的最小单位,11011001是一个8位的二进制数。
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
  • 1B(byte,字节)= 8bit(位)
  • 字符:指计算机中使用的字母、数字、字和符号
    1bit 表示1位
    1Byte表示一个字节 1B = 8b
    1024B = 1KB
    1024KB = 1M
    1024M = 1G

整数的扩展

public static void main(String[] args) {
      //整数扩展:  进制   二进制0b  八进制0  十进制  十六进制0x
      //分别输出不同进制的10
      int a = 10;
      int b = 010;//八进制10
      int c = 0x10;//十六进制10

      System.out.println(a);
      System.out.println(b);
      System.out.println(c);

}
//输出
10
8
16

注意:最好完全避免使用浮点数进行比较。

  • 浮点数的性质:有限、离散、舍入误差、大约、接近但不等于

浮点数的扩展

//浮点数的扩展        
//一个神奇的事情
        float i = 0.1F;
        double j = 1.0/10;
        System.out.println(i == j);
        System.out.println("i = "+ i);
        System.out.println("j = "+j);

        float d1 = 2342114434F;
        float d2 = d1 + 1;
        System.out.println(d1 == d2);
        System.out.println("d1 = "+d1);
        System.out.println("d2 = "+d2);
   //输出
   false
   i = 0.1
   j = 0.1
   true
   d1 = 2.34211456E9
   d2 = 2.34211456E9

因此,银行业务等表示金钱的,可以使用BigDecimal数学工具。

字符的扩展

		char x = 'a';
        char y = '种';
        System.out.println(x);
        System.out.println(y);
        System.out.println((int)x);
        System.out.println((int)y);
//输出
a
种
97
31181

存在unicode编码,2个字节,共 2 16 2^{16} 216位,表示0-65536,最早的excel也是只有65536个空格

//U0000 UFFFF
char a1 = '\u0061';
System.out.println(a1);
//输出
a

转义字符

//转义字符
//\t 表示制表符
//\n 换行
System.out.println("Hello\tworld!");
System.out.println("Hello\nworld!");
//输出
Hello	world!
Hello
world!

对象,内存分析

String s1 = new String("hello world!");
String s2 = new String("hello world!");
System.out.println(s1 == s2);
String s3 = "hello world!";
String s4 = "hello world!";
System.out.println(s3 == s4);
//输出
false
true

布尔扩展,写法分析

//布尔值扩展
   boolean flag1 = true;
   if (flag1 == true){
       //新手
   }
   if (flag1){
       //老手
   }
   //两者等价,但是用第二种
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值