基本数据类型

本文详细介绍了Java中的标识符规则,包括其定义、大小写敏感性,并列举了各种数据类型的细节,如基本数据类型(整数、浮点、字符、布尔)及其字节表示。此外,还探讨了字符串在内存中的处理,如String对象的创建与比较,以及不同进制的表示。最后,文章通过示例代码展示了如何在Java中使用这些概念。
摘要由CSDN通过智能技术生成

标识符

关键字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iouY2INi-1616595569947)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\1616588494505.png)]

标识符

以字母(A-Z或者a-z),美元符号($)、或者下划线(_)开始

首字母之后可以是字母(A-Z或者a-z)、美元符号($)、下划线(_)或者数字

不能使用关键字作为变量名或者方法ming

**标识符是大小写敏感的 **

数据类型

java的数据类型

基本数据类型(8个)

数值类型

​ 整数类型:byte 1个字节

​ short 2个字节

​ int 4个字节

​ long 8个字节 L

​ 浮点类型:float 4个字节 F

​ double 8个字节

​ 字符类型:char 2个字节 char n=‘A’ 一个

boolean类型:占1位 {true false}

引用类型

​ 类

​ 接口

​ 数组

String 不是关键字,是类

String name=‘ssss’

Integer 类

什么是字节

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

电脑32位(4GB)和64位(128GB)的区别

寻址能力

  • 1bit表示1位
  • 1Byte表示1个字节 1B=8b
  • 1024B=1KB
  • 1024KB=1M
  • 1024=1G

整数、浮点数、字符、转义字符拓展

进制 二进制0b 十进制 八进制0 十六进制十六进制0x 0-9 A-F表示0-16

public class Test{
    public static void main(String []args){
     //整数扩展 进制   二进制0b 十进制  八进制0 十六进制十六进制0x 0-9 A-F表示0-16
        int i=10;
        int i2=010;//八进制0
        int i3=0xF;//十六进制0x 0-9 A-F表示0-16
        int i4=0b10;
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    //浮点数拓展
        //float 有限离散 舍入误差 大约接近但不等于
        //double
         //最好避免用浮点数进行比较,银行业务用BiDecimal类  数学工具类
        float f=0.1f;//0.1
        double d=1.0/10;//0.1
        System.out.prinln(f==d);
        System.out.println(f);
        System.out.println(d);
        float d1=23123123123132123f;
        float d2=d1+1;
        System.out.println(d1==d2);//true
     //字符型拓展
        char c1='a';
        char c2='中'
            System.out.println(int(c1));
          System.out.println(int(c2));
        //所有字符本质还是数字
        //编码 Unicode 2字节  2的16次幂=65536
        //U0000-UFFFF
        char c3='\u0061';
        System.out.println(c3);//a
    //转义字符拓展 \t 制表符 \n换行...
        String sa=new String("Hello World");
         String sb=new String("Hello World");
        System.out.println(sa==sb);
        String sc="Hello World";
        String sd="Hello World";
        System.out.println(sc==sd);
   //对象 从内存分析 new一个对象地址不同  == 比较的是地址
        
   //布尔值扩展 
        boolean flag=true;
        if(flag){
            System.out.prinln("代码精简易读");
        }
    }
}
10
8
31
2
false
0.1
0.1  
true    
97
20013    
a

浅谈String st=new String()和String ==比较

public class StringDemo2 {
    public static void main(String[] args) {
        String str1 = "abc";//直接赋值
        String str2 = "ab";
        String str3 = "c";
        String str4 = str2 + str3;//传递引用
        String str5 = str2 + str3;
        String str6 = new String("abc");//通过new赋值
        String str7 = "ab"+"c";
        String str8 = str2+"c";

        System.out.println(str1 == str6);
        System.out.println(str1 == str4);
        System.out.println(str4 == str5);
        System.out.println(str1 == str7);
        System.out.println(str1 == str8);
    }
}
————————————————
版权声明:本文为CSDN博主「Sweetie77」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43235210/article/details/96139554

总结:
String str1 = “abc”;在初始化的时候可能创建了一个对象, 也可能一个对象都没有创建
String str1 = new String(“abc”); 在初始化的时候, 因为new关键字, 所以至少在内存中创建了一个对象, 也有可能是两个对象

再回到这道题
首先明确一下 == 比较的是地址
第一行str1 == str6, 因为new就在堆上开辟了新的内存空间, 所以是false
第二行str1 == str4, 字符串拼接的时候, String会转为StringBuilder, 调用append, 所以也是false
第三行str4 == str5, 同上, false
第四行str1 == str7, 纯常量的拼接不会转化为StringBuilder, 直接在常量池中寻找是否存在已有值. 所以是true
第五行str1 == str8, 同第二行, false

总结:

字符串拼接的时候, String -> StringBuilder, 调用append方法
纯常量的拼接不会转为StringBuilder, 直接在常量池内找是否存在已有值
————————————————
版权声明:本文为CSDN博主「Sweetie77」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43235210/article/details/96139554

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值