• 【Java初阶】--JavaSE基础语法



     

    活动地址:CSDN21天学习挑战赛

    ced485cbb11e458d81a746890b32cf3f.gif

    🎈🎈 作者 whispar
    🎈🎈专栏 :Java由浅入深

    ✨放低姿态,空杯心态✨

    7abc9c8906564477a6679bb15d368e37.gif


    目录

    JavaSE基础语法

    一、main()方法

    二、标识符

    三、常见关键字

    四、注释规则

    五、数据类型与变量

          1 . 常量与变量

          2. 基本数据类型

    六、类型转换

    七、类型提升

    八、 常见运算符


    一、main()方法

    1. public class TestBegin {
    2.    public static void main(String[] args) {
    3.        System.out.println("Hello World");
    4.   }
    5. }
    • 源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。

    • 类:类中带有一个或多个方法。方法必须在类的内部声明。

    • 方法:在方法的花括号中编写方法应该执行的语句。

    ✅简述Java中的main()方法

    main()方法是Java程序执行的入口,它是一个定义在类中的、公开的、静态的、无返回值的,参数为一个字符串数组的方法,它的参数args与执行参数一一对应。

    在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。

    二、标识符

    • 合法的标识符

    字母、数字以及 下划线和 $ 符号等等。

    注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。

    • 一般规范:

    类名:每个单词的首字母大写(大驼峰) 方法名:首字母小写,后面每个单词的首字母大写(小驼峰) 变量名:与方法名规则相同

    三、常见关键字

    具有特殊含义的标识符称为关键字

    • 48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

    • 2个保留字:goto、const。

    • 3个特殊直接量:true、false、null。

    四、注释规则

    单行注释:// 注释内容 Ctrl+/

    多行注释:/* 内容 */ Ctrl +Shift+/

    文档注释: /** 文档注释 */(常见于方法和类描述方法和类的作用) /** + Enter

    五、数据类型与变量

    1 . 常量与变量

    • 常量:固定不变的量

    字符串常量、整形常量、浮点数常量、字符常量、布尔常量true和false、空常量null

    • 变量:经常改变的内容

      int a = 10; // 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10

      字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型

    2. 基本数据类型

    • 基本数据类型:四类八种 整型、浮点型、字符型以及布尔型

    • 整型、浮点型、字符型以及布尔型


    • 整型

      1. public class TestBegin {
      2.    public static void main(String[] args) {
      3.        /** 整型变量
      4.         * 1. int不论在何种系统下都是4个字节
      5.         * 2.变量在使用之前必须要赋初值,否则编译报错
      6.         * 3. int的包装类型为 Integer
      7.         */
      8.        int a = 10;
      9.        System.out.println(a);
      10.        System.out.println(Integer.MIN_VALUE);
      11.        System.out.println(Integer.MAX_VALUE);
      12.        /**长整型变量
      13.         *1. 长整型变量的初始值后加L或者l,推荐加L
      14.         *2. 长整型 占8个字节: -2^63~2^63-1
      15.         *3. long的包装类型为Long
      16.         */
      17.        long b = 30L;
      18.        System.out.println(b);
      19.        System.out.println(Long.MIN_VALUE);
      20.        System.out.println(Long.MAX_VALUE);
      21.        /**短整型变量
      22.         * 1. short 占2个字节 16bit -32768 ~ 32767
      23.         * 3. 使用时注意不要超过范围(一般使用比较少)
      24.         * 4. short的包装类型为Short
      25.         */
      26.        short c = 5;
      27.        System.out.println(c);
      28.        System.out.println(Short.MIN_VALUE);
      29.        System.out.println(Short.MAX_VALUE);
      30.        /**字节型变量  
      31.         * 1. byte在任何系统下都占1个字节-128 ~ 127
      32.         * 2. 字节的包装类型为Byte
      33.         */
      34.        byte d = 2;
      35.        System.out.println(b);
      36.        System.out.println(Byte.MIN_VALUE);
      37.        System.out.println(Byte.MAX_VALUE);
      38.   }
      39. }

    • 浮点型

    1. /**double
    2. *双精度浮点数 8字节
    3. *存储方式与整数不同
    4. */
    5. double d = 5.26;
    6. /**float
    7.  *单精度浮点数 4字节
    8.  *包装类Float
    9.  */
    10. float f =12.5f;
    • 浮点数存在一定量的精度误差,因此浮点数是个近似值,并不是精确值

    • 在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 小数, 需用 double 类型计算.


    • 字符型
    1. char ch1 ='h';
    2. System.out.println(ch1);
    3. char ch2 = 97;
    4. System.out.println(ch2);

    Java 中char使用 Unicode 编码表示字符. 因此一个字符占用两个字节即16位, 表示的字符种类更多, 包括中文并兼容ASCLL 码

    • 布尔型
    • boolean 类型的变量只有两种取值, true 表示真, false 表示假.

    • Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

    六、类型转换

    隐式类型转换(编译器自动进行处理 )

    1. float f = 3.14F;
    2. double d = 5.12;
    3. d = f; // 编译器会将f转换为double,然后进行赋值
    4. f = d; // double表示数据范围大,直接将float交给double会有数据丢失,不安全
    5. byte b1 = 100; // 编译通过,100没有超过byte的范围,编译器隐式将100转换为byte
    6. byte b2 = 257; // 编译失败,257超过了byte的数据范围,有数据丢失

    数据范围小的转为数据范围大的时会自动进行

    强制类型转换(经过一定的格式处理 )

    1. int a = 10;
    2. long b = 100L;
    3. b = a; // int-->long,数据范围由小到大,隐式转换
    4. a = (int)b; // long-->int, 数据范围由大到小,需要强转,否则编译失败
    5. float f = 3.14F;
    6. double d = 5.12;
    7. d = f; // float-->double,数据范围由小到大,隐式转换
    8. f = (float)d; // double-->float, 数据范围由大到小,需要强转,否则编译失败

    注意事项:

    1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型

    2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是**可能精度丢失

    3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查

    4. 强制类型转换不一定能成功,不相干的类型不能互相转换

    七、类型提升

    1. /**
    2. *类型提升
    3. *参与运算的数据小于四个字节,进行整型提升,并使用int类型接收
    4. */
    5. //计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short
    6. //这种低于 4 个字节的类型, 会先提升成 int, 再参与计算
    7. byte x =10;
    8. byte y =20;
    9. int c = a+b;
    • 不同类型的数据混合运算, 范围小的会提升成范围大的.

    • 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算

    • 字符串类型转换

    1. String s1 = "hello";
    2. String s2 = " world";
    3. System.out.println(s1);
    4. System.out.println(s2);
    5. System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接

    在有些情况下,需要将字符串和整形数字之间进行转换: 

    1. int num = 10;
    2. // 方法1
    3. String str1 = num + "";
    4. // 方法2
    5. String str2 = String.valueOf(num);
    6. String str = "100";
    7. int num = Integer.parseInt(str)

    八、 常见运算符

    ✅逻辑运算符

    逻辑与 &&

    表达式1 && 表达式2,左右表达式必须是boolean类型的结果。 两个表达式都为真,结果才是真

    逻辑或 || 左右表达式至少有一个位真,则结果为真

    逻辑非 ! 真变假,假变真

    ✅位运算符

    按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.

    按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1

    按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0

    按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1

    ✅移位运算符

    <<左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
    >>右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
    >>>无符号右移: 最右侧位不要了, 最左侧补 0
    

    ☁由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替

                   💖如果文章对你有帮助,请多多点赞、收藏、评论、关注支持!!💖        

    ced485cbb11e458d81a746890b32cf3f.gif

  • 相关阅读:
    基于MAX-SUM算法的大规模信息系统的协调问题matlab仿真
    MATLAB | 一起来感受数学之美叭
    分布式协议笔记
    安卓玩机教程---全机型安卓4----安卓12 框架xp edx lsp安装方法
    SpringBoot / Vue 对SSE的基本使用(简单上手)
    java面向对象(四)
    Linux配置通过qq邮件服务器发送邮件
    WAF防范原理
    【BotR】CLR堆栈遍历(Stackwalking in CLR)
    Dubbo反序列化漏洞分析集合
  • 原文地址:https://blog.csdn.net/m0_56361048/article/details/126170746