Java基础篇02

Java标识符和数据类型

标识符

  • 关键字
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try woid volatile while
  • Java所有的组成部分都需要名字。类名,变量以及方法名都被称为标识符。

注意点

  • 所有标识符都应该以26字母美元$下划线_开始
  • 首标识符之后由数字和26个字母以及_和$,任何字符组成
  • 标识符不能以数字开头
  • JAVA语言严格区分大小写
  • 标识符不能包含空格

可以使用中文命名,但是不推荐使用,也不推荐使用拼音

public class Demo1 {
    public static void main(String[] args) {
        //合法标识符
        String A1 = "合法标识符";
        String a1 = "合法标识符";
        String $1 = "合法标识符";
        String _1 = "合法标识符";
        //非法标识符
        /**String 1A1 = "非合法标识符";
        String A 1 = "非合法标识符";
        String class = "非合法标识符";
         */
        System.out.println(A1+a1+$1+_1);
    }
}

数据类型

  • 强类型语言:要求变量的使用要求严格符合规定,所有变量都必须先定义后才能使用

  • 弱类型语言

  • Java的数据类型

    • 整数类型

    byte:占1个字节

    short:占2字节

    int:占4字节

    long:占8字节

    • 浮点型

    float:占4字节

    double:占8字节

    • 字符类型

    char:占2字节

    • boolean类型:占一位,其值只有true和false

    • 引用类型

    接口

    数组

存储单位

位(bit):是计算机内部数据存储的最小单位(b)

字节(byte):是计算机中数据处理的基本单位(B)

字符:是计算机中使用的字母,数字,字和符号

1B=8bit

代码展示

public class Demo2 {
    public static void main(String[] args) {
        //数据类型

           //整数类型
        int a = 12;
        byte b = 13;
        short c = 20;
        long d = 20L;//long类型要在数字后面加个L

           //浮点型
        float e = 1.2F;//float类型要在数字后面加个F
        double f = 0.23333;

           //字符型
        char x = '如';
           //String y = "abcd";这里String不是关键字,是类

           //布尔值:判断对错
        boolean flag = true;
           //boolean flag = false;
        System.out.println(d+" "+x+" "+flag);
    }
}

/*输出结果
20 如 true

Process finished with exit code 0
*/

数据类型扩展

public class Demo3 {
    public static void main(String[] args) {
        //整数扩展  进制: 二进制0b    十进制    八进制0    十六进制0x
        int a1 = 11;//十进制   0~9
        int a2 = 0b11;//二进制,转为十进制a2 = 3   0~1
        int a3 = 011;//八进制,转为十进制a3 = 9   0~7
        int a4 = 0x11;//十六进制,转为十进制a4 = 17   0~9  A~F
        //输出验证一下
        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a3);
        System.out.println(a4);
        System.out.println("=================");
       /*输出结果
11
3
9
17
=================
       */

        //浮点数扩展  float double 有限 离散 舍入误差
        //最好完全避免使用浮点数进行比较,以后会学digdecimal数学工具类
        float b1 = 0.11F;
        double b2 = 0.11;
        float b3 = 23333333333333f;
        float b4 = b3 + 1;
        //输出验证一下
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b1 == b2);//返回boolean类型值false,说明b1不等于b2,体现精度不同
        System.out.println(b3 == b4);//返回boolean值true,说明b3=b4,体现有限性
        System.out.println("=================");
        /*输出结果
0.11
0.11
false
true
=================
        */

        //字符扩展
        char c1 = 'a';
        char c2 = '如';
        System.out.println(c1);
        System.out.println(c2);
        System.out.println((int) c1);//强制转换 a转换为数字为97
        System.out.println((int) c2);//强制转换
        //所有的字符本质都是数字
        //编码 Unicode 2字节 0~65535   2^16
        // U0000~UFFFF
        char c3 = '\u0061';
        System.out.println(c3);//0061为16进制,转换为10进制为97,即字符a
        System.out.println("=================");
        /*输出结果
a
如
97
22914
a
=================
        */

        //转义字符 常用:\t  \n
        System.out.println("hello\tworld");//相当于tab
        System.out.println("hello\nworld");//相当于换行
        System.out.println("=================");
        /*输出结果
hello	world
hello
world
=================
        */

        //
        String d1 = new String("hello");
        String d2 = new String("hello");
        System.out.println(d1 == d2);//new是创建一个新地址,所以d1和d2是不同地址
        String d3 = "hello";
        String d4 = "hello";
        System.out.println(d3 == d4);
        System.out.println("=================");
        /*输出结果
false
true
=================
        */

        //boolean值扩展
        boolean flag = true;
        if (flag == true) {
        }
        if (flag) {
        }//以上两个if判断条件是一样的,推荐第二种写法,代码越精简越好
    }
}

类型转换

public class Demo4 {
    public static void main(String[] args) {
        //类型转换
        int i = 128;
        byte b = (byte)i;//内存溢出,强制转换
        //byte,short,char >int >long >float >double优先级比较由小到大
        //优先级高转换低:强制转换  (类型)变量名
        //优先级低转换高:自动转换
        double d = i;//自动转换
        System.out.println(i);
        System.out.println(b);
        System.out.println(d);
        /*
        注意点:
        1.不能对boolean进行强制转换
        2.不能把对象类型转化为不相干的类型
        3.强制转换,会出现内存溢出或者精度问题
         */
        System.out.println("===============");
        System.out.println((int)23.7);
        System.out.println((int)-34.1F);
        System.out.println("===============");

        char c = 'a';
        int x = c+1;//自动转换
        System.out.println(c);
        System.out.println(x);
        System.out.println((char)x);//强制转换
        System.out.println("===============");
        
        //操作比较大的数,注意溢出问题
        int m = 10_0000_0000;//数字之间可以用下划线分隔
        System.out.println(m);
        int y = 20;
        int total = m*y;//溢出
        System.out.println(total);
        long total2 = m*((long)y);//先把一个数转化成long类型
        long total3 = m*y;//默认是int类型,转换前已经存在问题?
        System.out.println(total2);
        System.out.println(total3);
    }
}

posted @   RuHeYun  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示