前言

  对于刚开始学习 Java 的同学来说,第一步不是马上写复杂的程序,而是先搞清楚 Java 中最基础的概念,例如:什么是常量,什么是变量,变量有哪些数据类型,不同类型之间如何转换,以及常见运算符应该怎么使用。这些内容看起来比较基础,但它们是后面学习分支语句、循环、数组和面向对象的前提。只有把这些基础规则掌握清楚,后面写代码时才不容易出现看不懂报错、不会改错误的问题。


`

一、常量与变量

1.1常量

在代码的运行过程中,值不会随着不同的情况发生改变的数据叫做常量,比如数字 10、字符串 “hello”、布尔值 true,以下是常量的分类
整数常量:所有整数
小数常量:所有带小数点的数 2.5 2.0
字符常量:'‘表示, 单引号中必须有且只能有一个内容,可以是一个数字,一个空格等等
注意’12’(不是字符,因为12是两个内容)
字符串常量:""表示 双引号中是字符串内容
布尔常量:true(真) false(假)
空常量:null 代表的是数据不存在,不能直接使用,null是作为引用数据类型初始化值使用

 public static void main(String[] args) {
       System.out.println(1);
       System.out.println(1+2);//输出3
        System.out.println(2*3);//输出6
       //整数常量
         System.out.println(1.0);
         //小数常量
          System.out.println('a');
        System.out.println('6');
        System.out.println(' ');//一个空格也是一个字符
          //字符常量
          System.out.println("莱昂纳多Leonard666");
          //字符串常量
          System.out.println(true);
          //布尔常量
          //System.out.println(null);
          //null->代表的是数据不存在,不能直接使用
          
    }

 
 

1.2变量

在代码的运行过程中,值会随着不同的情况随时发生改变的数据,叫做变量
变量可以理解成一个“装数据的盒子”。这个盒子有名字,也有类型,程序运行过程中可以往里面存不同的值。
在这里插入图片描述

基本数据类型一共只有四类八种,需要熟记,以下为分类和示例:
在这里插入图片描述
 
 
引用类型:类 数组 接口 枚举 注解 Record类
需要注意的是,我们常用的字符串类型String是属于类的一种

public static void main(String[] args) {
        //byte
        byte num1 = 10;
        System.out.println(num1);
        // short
        short num2 = 20;
        System.out.println(num2);
        //int
        int num3 = 10;
        num3 = 200;
        System.out.println(num3);
        //long 给long赋值的话,值建议后面加L
        long num4 = 10L;
        System.out.println(num4);
        //float 给float赋值,值建议后面加F
        float num5 = 10.5F;
        System.out.println(num5);
        //double
        double num6 = 10.5;
        System.out.println(num6);
        //char
        char num7 = 'a';
        System.out.println(num7);
        //boolean
        boolean num8 = true;

        //定义一个字符串类型的变量
        String s = "i love yu";
        System.out.println(s);

        var i = 10.5;
        //var 可以根据右边的赋值自动推断变量类型,但初学阶段不建议大量使用,因为它会让变量类型不够直观,降低代码可读性。
    }

整型计算中需要注意计算结果向下取整!不是四舍五入

public static void main(String[] args) {
            int a = 10;
            int b = 3;
            System.out.println(a + b);// 13

            int sub = a - b;
            System.out.println(sub);//  7

            int mul = a * b;
            System.out.println(mul);//  30

        /*
           除号前后如果都是整数,结果只取整数部分 ,小数点直接舍去
           除号前后一旦有一个是小数,结果就是正常小数
         */
            int div = a / b;
            System.out.println(div);//  3
        }
public static void main(String[] args) {
       /*
          \在java中代表的是转义字符
          1.可以将具有特殊含义的字符转成普通字符
          2.将普通字符转义成具有特殊含义的字符
        */

        /*
          n:普通字符
          \n:换行
         */
        System.out.println("hello\nworld");

        /*
           \:转义字符
           我们需要将具有特殊含义的\变成普通的\字符
         */

        String path = "F:\\jdk\\bin";
        System.out.println(path);
    }

 
Java 变量使用最需要注意的五个点:

序号 重要规则 简单理解
1 变量必须先定义,再使用 没有声明变量,不能直接用
2 变量必须初始化后才能使用 第一次赋值后,变量才有值
3 同一个作用域中变量名不能重复 一个 {} 里不能定义两个同名变量
4 变量有作用域限制 小作用域可以访问大作用域,大作用域不能访问小作用域
5 变量类型要和数据匹配 int 存整数,double 存小数,char 存单个字符

二、标识符

简单的说,标识符就是给类,变量,方法取的名字
当然跟人取名字一样,类,变量,方法取名字也有规则要求,就像你的同学不可能叫–小猪佩奇·2333·Peter
在这里插入图片描述

标识符的命名规则如下:
硬性规定:
a.标识符不能是关键字如class,int
b.标识符中可以包含字母,数字,_等,但是不能以数字开头
软性建议:
a.给类命名,遵循大驼峰式命名规范即:每个单词首字母大写Program1
b.给方法,变量,参数命名遵循小驼峰式命名规范即:第一个单词小写 + 后面每个单词首字母大写,userAge,getName,setAge

三、数据类型转换

当等号左右两边的数据类型不一致,或者不同类型的数据参与运算时,就可能发生数据类型转换。想到了哆啦A梦的变小隧道…
在这里插入图片描述

int a = 10;
double b = a;

3.1数据类型转换分类

类型 含义 是否需要手动写
自动类型转换 小范围类型转成大范围类型 不需要
强制类型转换 大范围类型转成小范围类型 需要

3.2自动类型转换

情况一:小类型赋值给大类型
情况二:大类型和小类型一起运算
小弟自动被大哥强化了说是(bushi

public static void main(String[] args) {

        long num1 = 23;
        System.out.println(num1);
        //自动类型转换,23默认是int转换成long


        int a = 10;
        double b = 2.5;
        double sum = a+b;
        System.out.println(sum);
        //int与double相加,结果是double
    }

3.3强制类型转换

当取值范围大的数据类型赋值给取值范围小的数据类型时,不能自动转换,需要强制类型转换
(谁说小受不能改变攻emoji

格式为    小范围类型 变量名 = (小范围类型) 大范围数据

double a = 3.14;
int b = a; // 错误写法
double a = 3.14;
int b = (int) a;
System.out.println(b);//正确写法,输出3

注意!强转容易出现精度损失和数据溢出风险,不要随意使用!
特殊情况:
byte 和 short 的特殊情况

  1. 等号右边是字面值时
    如果右边是一个固定数字,而且没有超过范围,Java 会自动帮我们处理。
byte a = 10;
short b = 100;//虽然整数默认是 int 类型,但因为 10 和 100 没有超过 byte、short 的范围,所以 JVM 会自动帮我们转换
  1. 等号右边有变量参与运算时
    只要 byte、short 变量参与运算,就会自动提升为 int 类型。
byte a = 10;
byte b = 20;
byte c = a + b; // 错误
//a + b,运算时会先变成 int + int,结果也是 int 类型。int 不能直接赋值给 bytebyte a = 10;
byte b = 20;
byte c = (byte) (a + b);
System.out.println(c);//正确写法

char 类型参与运算

Java 中的 char 本质上保存的是 Unicode 编码值。当 char 参与运算时,会自动提升为 int 类型,计算的是字符对应的 Unicode 编码值。ASCII 可以看作 Unicode 的一部分。

四、运算符

4.1算数运算符

在这里插入图片描述

public static void main(String[] args) {
        int a = 18;
        int b = 4;
        int sum = a + b;
        System.out.println(sum);//加,22
        int sub = a - b;
        System.out.println(sub);//减,14
        int mul = a * b;
        System.out.println(mul);//乘,72
        int div = a / b;
        System.out.println(div);//除,4
        int mod = a % b;
        System.out.println(mod);//取余,2
        //"+"也表示字符串拼接:任意类型遇到字符串都会变成字符串,这是不是加法运算,而是拼接内容
        System.out.println(a+b+" ");//22:先进行加法运算,再进行拼接
        System.out.println(" "+a+b);// 184:仅拼接
        System.out.println(a+" "+b);//18 4:拼接
        System.out.println(" "+(a+b));// 22:先计算括号内的值,再进行拼接

        System.out.println("a和b相加等于:"+(a+b));

        int result = a+b;
        System.out.println("result = " + result);//result = 22
    }

自增自减运算符
 单独使用
如果 ++ 或 – 单独作为一句代码,符号在前和在后效果一样

 混合使用
如果 ++ 或 – 和其他语句混合使用,就要区分符号在前还是在后
其实就是先赋值还是先自增/自减的问题

写法 单独使用结果 混合使用规则
变量++ 变量加 1 先使用原值,再加 1
++变量 变量加 1 先加 1,再使用新值
变量-- 变量减 1 先使用原值,再减 1
--变量 变量减 1 先减 1,再使用新值
  public static void main(String[] args) {
        int i = 10;
        //单独使用
        //i ++,++i效果是一样的
        ++i;
        System.out.println(i);//11


        int j = 10;
        //混合使用
        //int result = ++j;
        int result = j++;//j先赋值给result,再j再自增1,此时j变为11
        System.out.println(result);//10
        System.out.println(j);//11


        int c = 100;
        c = c++;
        System.out.println(c);/*注意这里有个易错点,此时输出结果应该是100,这个过程是这样的:
        int temp = c; // temp = 100,先把 c 原来的值拿出来
        c = c + 1;    // c 自增,变成 101
        c = temp;     // 把刚才保存的 100 再赋值给 c*/
    }

4.2赋值运算符

1.基本赋值运算符
= ,-> 先看等号右边的
2.复合赋值运算符
+=, -=, *=, /=,%=

 public static void main(String[] args) {
        int i = 0;
        i += 1;//等价于i = i+1
        System.out.println(i);

        byte b = 0;
        b+=1;//这样写是正确的,复合赋值运算符内部会自动进行强制类型转换
        System.out.println(b);
    }

4.3关系运算符

主要用于比较,做判断条件,结果为true or false

public static void main(String[] args) {
        int i = 1;
        int j = 2;
        int k = 1;
        boolean result01 = i == j;// false,i与j比较是否相等
        System.out.println(result01);

        System.out.println(i > j);// false,i是否大于j
        System.out.println(i < j);// true,i是否小于j
        System.out.println(i >= k);// true,i是否大于等于k
        System.out.println(i <= k);// true,i是否小于等于k
        System.out.println(i != k);// false,i是否不等于k


    }

4.4逻辑运算符

逻辑运算符的作用是:连接多个判断条件,最终得到一个 boolean 类型的结果(true or false)。人类不感谢罗辑(哭
在这里插入图片描述

符号 说明
&& 短路与,并且 符号前后有一个是false,结果就是false并退出;符号前后都是true,结果才是true
|| 短路或 符号前后有一个为true并退出,结果就是true
! 非,取反
^ 异或: 符号前后结果一样为false,不一样为true
&,\ 逻辑与,逻辑或,符号前后句都要判断,运行
public static void main(String[] args) {
        int i = 1;
        int j = 2;
        int k = 1;
        boolean result = (i > j) && (i == k);//与运算符,如果符号前面为false.符号后面就不判断了
        System.out.println(result);// false

        boolean result2 = (i > j) || (i == k);//或运算符,如果符号前面为true,符号后面就不判断了
        System.out.println(result2);// true

        boolean result3 = !(i > j);//逻辑非运算符
        System.out.println(result3);// true

        int a = 1;
        int b = 2;
        boolean result4 = ++a > 100 & ++b > 100;
        System.out.println(result4);// false
        System.out.println(a);// 2
        System.out.println(b);// 3,为什么?单个&,|的时候,不仅要判断符号前面,还要判断符号后面,所以符号后面的++b也会执行,如果是&&,||则不执行


    }

4.5三元运算符

格式:
boolean表达式?表达式1:表达式2
意为:先判断boolean表达式,如果是true,就运行?后面的表达式1,否则就运行:后面的表达式2

public static void main(String[] args) {
        int grade = 100;
        String result1 = grade>=60?"OK":"NO";//满足条件则返回第一个值,否则返回第二个值
        System.out.println(result1);
    }

总结

本文主要介绍了 Java 入门阶段最基础的几个知识点,包括常量、变量、标识符、数据类型转换以及常见运算符。

其中,常量表示程序运行过程中不会改变的数据,变量表示程序运行过程中可以改变的数据。定义变量时,需要注意变量必须先定义、再赋值、后使用,并且变量名不能在同一个作用域中重复。

在数据类型转换部分,需要重点记住一句话:小范围类型转换为大范围类型可以自动转换,大范围类型转换为小范围类型需要强制转换。强制转换虽然可以解决类型不匹配的问题,但可能会造成精度损失或数据溢出,所以不要随意使用。

在运算符部分,算术运算符用于数学计算,赋值运算符用于给变量赋值,关系运算符和逻辑运算符通常用于判断条件,三元运算符可以根据条件从两个结果中选择一个。

这些内容虽然基础,但非常重要。只有把这些规则理解清楚,后面学习 if 判断、for 循环、数组和面向对象时,才能更容易看懂代码,也能更快解决程序中的错误。

更多推荐