Java基础

注释

  • 概述:对代码进行解释的部分

  • 分类:

    • 单行注释【//】

      特点:一次只能注释一行内容

      ​ 可以嵌套使用

    • 多行注释【/* 注释的内容 */】

      特点:可以选择注释多行内容

      ​ 不可以嵌套使用

代码实例:

 //定义的一个主方法;单行注释。
    public static void main(String[] args) {
        System.out.println("陈爽~~~~~~~");
        /*
        * 多行
        * 注释
        * */
    }

关键字

  • 概述:官方定义的具有特殊含义的关键字
abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

注意:

  • 保留字:现Java版本尚未使用,但是以后版本可能会当作关键字使用:【goto 、const
  • 自己命名时候避免使用保留字
  • 关键字全部都是小写!!

标识符:

自己起名字的都叫做标识符

标识符命名规则

  • 数字不能开头
  • 由字母、下划线(_)、美元符($)、或者数字组成
  • 不能使用关键字和保留字命名,但可以包含它们
  • 标识符大小写敏感
  • 标识符不能包含空格
  • 不建议使用中文或者拼音命名

常量

用来表示那些不会发生改变的数据

  • 分类:直接写出来的数据也可以成为:字面值常量

    • 基本数据类型常量:

      • 整数常量:表示所有的整数 10 100 1000 1 2 -2
      • 小数常量:表示所有的小数 1.1 1.2 1.3 -1.2
      • 字符常量:使用单引号引起来的单个符号 ‘a’ ‘你’
      • 布尔常量:表示真和假 true false
    • 引用数据类型的常量

      • 字符串常量:使用双引号引起来的任何内容

      • 空常量: null 不指向任何数据

        不能直接打印、可以用来判断

代码

public class Demo02 {
    public static void main(String[] args) {
        //打印整型常量
        System.out.println(666);
        //打印小数常量
        System.out.println(66.66);
        //打印字符常量
        System.out.println('a');
        //打印字符串常量
        System.out.println("chenshuang");
        //打印布尔常量
        System.out.println(true);
        System.out.println(false);
        //打印空常量
        //System.out.println(null);
    }
}

变量

  • 概述:在程序的运行过程中,可以发生变化的数据

  • 定义格式:

    • 数据类型 变量名 = 变量值;

       public static void main(String[] args) {
              //要求:小明今年18岁、定义的变量保存
              int age = 18;
              System.out.println("小明的年龄是"+age+"岁!");
              //更改变量;
              age = 20;
              //重新打印
              System.out.println("小明的年龄是"+age+"岁!");
      
              //要求定义小明的身高,初始身高为180.5、再将身高改为190.5;
              double height = 180.5;
              System.out.println(height);
              height = 190.5;
              System.out.println(height);
          }
      
  • 说明:

    • 数据类型:表示在运行内存中给变量分配内存空间的方式

    • 变量名:给我们定义的可以变化的数据起一个名字

      ​ 1、小驼峰命名法:xxxYyyZzz、maxValue

  • 定义变量的原因:方便改变

  • 变量在内存中存储的方式

在这里插入图片描述

变量注意事项
  • 变量是有作用域的,在哪个作用域定义就在哪个定义域使用。

    作用域:大括号

  • 在同一个作用域中不能定义重名变量

  • 在方法中定义的变量、先赋值在使用(不赋值的话编译报错,在使用前赋值就行)

  • 定义多个同类型的变量,可以一行定义。【int a=1,b=2;】

数据类型

  • 概述:Java语言是强类型语言,在定义变量时候,要强制给变量分配空间。

  • 数据类型分类

    • 基本数据类型
      • 整数类型:
        • byte 1字节 -128~127
        • short 2字节 -32768 ~32767
        • int 4字节 -2147483648~2147483647
        • long 8字节 ……………………
      • 小数类型:【IEEE754标准】
        • float 4字节 单精度小数
        • double 8字节 双精度小数
      • 字符类型:
        • char 2字节
      • 布尔类型:
        • boolean true、 false
    • 引用数据类型
  • 注意:

    • 整数和小数是由默认类型的

    • 如果定义了一个整数,默认类型为int;

    ​ 如果想要定义一个超过int范围的整数,可以在数据后面加一个L、l;

    • 如果定义一个小数,默认类型为double;

    ​ 如果想要定义一个float类型的小数,可以在数据后面加一个F 、f;

    代码:

    public static void main(String[] args) {
            //通过四种数据类型来定义整数
            byte a = 127;
            short s = 32677;
            int i = 156461;
            long l = 123135446L;
            //定义小数
            float f = 12.15f;
            double d = 148.456487;
            //定义字符
            char c = 'c';
            char c1 = ' ';
            //定义布尔类型
            boolean boo = true;
            boolean boo1 = false;
            System.out.println("a\ni\nl\nf\nd\nc\nc1\nboo\nboo1");
        }
    }
    
    

数据类型之间的转换

隐式转换:
  • 小数据类型和大数据类型再进行运算时,会先将小数据类型转为大数据类型在运算。最终的结果是大数据类型

  • 数据类型排序:

    byte < char < short < int < long < float < double

    如果是byte\char\short\int\这四个数据类型转换、统一都转换成int类型。

    代码:

    public static void main(String[] args) {
            int i = 100;
            long l = 10000L;
            //先将i转换成long类型,然后再进行计算
            long sum = i + l ;
    
            int i1 = 100;
            double d = 50.555;
            double sum1 = i1 + d;
    
            byte b = 98;
            short s = 55;
            //byte、short、char、int、这四个数据类型计算都先转换成int类型;
            int sum2 = b + s;
        }
    
强制转换:
  • 概述:可以将某个类型的数据任意转换为其他类型

  • 转换的格式:

    (要转换的数据类型)原数据类型;

代码:

 public static void main(String[] args) {
        int i = 100;
        //强制将int类型转化为double类型;
        double d = (double) i;
        System.out.println(d);
        //将int类型转换为byte类型,因为100在byte的范围内,所以数据没问题;
        byte b = (byte) i;
        
        int i1 = 1000;
        byte b1 = (byte) i1;
        System.out.println(b1);//因为1000不在byte的范围内,所以会数据丢失
    }
字符类型:
  • 字符:单引号引起来的单个符号

  • 字符数据类型:char

  • 计算机底层存储数据,只能存储二进制

  • 特点:

    • 定义的整数和小数会默认转为二进制,然后被存储或者处理。
    • 定义的字符先转为对应的十进制整数,然后将十进制的整数再转为二进制后处理
  • 结论:

    在程序中定义出来的每个字符都有其对应的十进制整数,在编码表中显示。【ASCII表】

  • ASCII编码表
    在这里插入图片描述

  • ASCII编码表只定义一部分,中文字符编码表,GBK编码表

    一个英文占用1个字节,一个中文占用2个字节

  • 因为每个国家都有自己国家的编码表,所以有一个万国码表,UTF-8

    一个英文占用1个字节,一个中文占用3个字节

  • 整数 ===> 字符 解码

    字符 ===> 整数 编码

字符串类型:
  • 使用双引号引起来的任意个符号

  • 定义字符串变量:String

  • 特点:

    • 基本数据类型变量中存储的是数据本身
    • 引用数据类型变量中存储的是数据所在的地址值
  • 图示
    在这里插入图片描述

  • 字符串可以和其他数据类型的数据进行 + 运算:

    • 字符串之间可以直接相加: 相加表示的是字符串之间的拼接
    • 字符串和其他类型数据 + :会先将其他数据转为字符串在拼接

代码:

 public static void main(String[] args) {
        String str1 = "chen";
        String str2 = "shuang";
        String result = str1 + str2;
        System.out.println(result);                 //chenshuang

        System.out.println("chen"+100);             //chen100
        System.out.println("chen"+'爽');             //chen爽
        System.out.println("chen"+true);            //chentrue

        System.out.println(100+200+"chenshuang");   //300chenshuang
        System.out.println("chenshuang"+100+200);   //chenshuang100200
        System.out.println('a'+'b'+"chenshuang");   //195chenshuang
    }

运算符

概述:对数据进行各种运算的符号

分类:

  • 算术运算符
  • 自增自减运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 三元运算符

算术运算符

  • 分类:+ - * / %

    • **+:加运算符:**可以进行数据的加法运算

      ​ 表示字符串的拼接

      ​ 表示正数 +10

    • **-:减运算符:**进行数据的减法运算

      ​ 表示负数 -10

    • ***:乘运算符:**表示数据的乘法运算

    • /:除运算符(取商运算符)

      • 如果两个数相除,结果还是整数(只要两个数相除的商)
      • 如果数据中有小数,结果就是小数(小数师大范围类型,结果也是大范围类型)
    • %:取余运算符 取模运算符

      • 获取两个数相除的余数(不要商,就要余数)
      • 结果的正负,只和 “%” 前面数据的正负有关,前面数据为正,结果就为证

自增自减运算符

  • 分类: ++ –
    • ++:自增运算符
      • 可以对一个变量进行自增运算,在原有值的基础上+1;
    • –:自减运算符
      • 可以对一个变量进行自减运算,在原有值的基础上-1;
    • 特点:
      • ++i表示,先自增再运算
      • i++表示,先运算载自增

赋值运算符

  • 分类:

    基础赋值运算符:=

    • 将符号右边的数据赋值给左边的变量

    *扩展的赋值运算符:+= -= = /=

    • 先对右边的数据进行运算再复制给左边的值(i+=10 ====> i=i+10)
  • 注意:

    关于数值运算的符号,只适用于整数、小数、字符。

比较运算符

  • 分类:

    基础的比较运算符:> < >= <=

    • 比较方式:比较符号左边两边数据的大小关系,满足为真、不满足为假。

    • **注意:**只参与整数、小数、字符(数据类型)之间的比较。

      ​ 字符串、布尔、null不能使用以上符号互相比较

    扩展的比较运算符:== !==

    • 比较方式:比较两个数据是否相等或者不等

      ==:如果两个数据相等为真,不等为假

      !=:如果两个数据不等为真,相等为假

    • **注意:**不仅可以参与数值之间的比较

      ​ 还可以参与布尔、字符串的比较(仅限同数据类型之间)

逻辑运算符

  • 分类:& | && ||

    • &:逻辑与运算符

      • 比较方式:左右两边的表达式结果都为真,最终为真

        ​ 左右两边的表达式结果有一个不为真,最终为假

      • 不会短路

      • 总结:全真则真,有假则假

    • |:逻辑或运算符

      • 比较方式:左右两边的表达式结果有一个为真,最终为真

        ​ 左右两边的表达式都为假,最终为假

      • 总结:有真则真,全假则假

    • &&:逻辑短路与

      • 比较方式:全真为真,有假则假
      • 会短路。
    • ||:逻辑短路或

      • 比较方式:有真为真,全假则假
      • 会短路
    • !:逻辑非

      • 比较方式:取反(真为假、假为真)
public static void main(String[] args) {
        //逻辑与
        int i = 10;
        System.out.println((i > 10) & ((i++)>10) );//false
        //逻辑或
        i = 10;
        System.out.println((i < 10) | ((++i)>10) );//true
        
        //逻辑短路与
        i = 10;
        System.out.println((i > 10) && ((i++)>10));//false\后面不执行、短路
        //逻辑短路或
        i = 10;
        System.out.println(((++i) > 10) || ((++i)>10));//true\后面不执行、短路
    }

三元运算符

1、元:用来表示数据或者表达式

  • 三元:表示三个数据或者三个表达式

  • 格式:表达式1 ? 表达式2 : 表达式3;

  • 说明:

    • 表达式1必须是一个布尔表达式(结果要么为真要么为假的表达式叫做布尔表达式)
    • 表达式2和表达式3可以是任意操作
  • 三元运算符的执行流程:

    • 先执行表达式1 ,结果要么为真要么为假
    • 如果表达式1的结果为真,执行表达式2;结束
    • 如果表达式1的结果为假,执行表达式3;结束
    int s = i > j ? i : j;
    

    返回值类型一样可以接收

    i==j ? "cehnshuang" : 0;
    

    当表达式返回类型不一致的时候,不可以接收。只能直接打印

位运算符

  • 概述:再进行数据的运算时,是根据该数据的二进制移动位置来改变的一种方式

    【相比普通运算,运算效率高】

  • 分类:

    << >> >>>

    • 1、<< 左移运算符:向左移动一位扩大2倍。移动两位扩大四倍,3位扩大8倍;

    • 2、>> 右移运算符:向右移动一位扩大2倍。移动两位扩大四倍,3位扩大8倍;

    • 3、>>> 无符号右移运算符:和右移运算符相同

      ​ 【但不能移动复数、因为符号位也会随之移动。】

数据的进制

  • 进制:数据进位的一种规则

  • 常见的进制:二进制、八进制、十进制、十六进制

    • 二进制:
      • 二进制的每一位数据都是由 0、1 组成
      • 进位规则:逢二进一
      • 表示数据:0bXXXX
    • 八进制:
      • 八进制的每一个数据,都以由 0~7 组成
      • 进位规则:逢八进一
      • 表示数据:0XXXX
    • 十进制:
      • 十进制的每一个数据,都以由 0~9 组成
      • 进制规则:逢十进一
      • 表示数据:XXXXX
    • 十六进制:
      • 十六进制的每一个数据,都以由 0~9abcdef 组成
      • 进制规则:逢十六进一
      • 表示数据:0x97fd

    其他进制转为十进制

    • 概述:将二进制、八进制、十六进制转化为十进制数据表示

    • 方式:系数*技术的权次幂 求和

    • 解释:

      ​ 系数:每一位的值是多少,系数就是多少

      ​ 基数:当前数据是几进制,基数就是几 0b100 : 2 010:8

      ​ 权:从右往左一次递增 0 开始

      例:

      二进制:1010 1101 = 1*2^7 + 1*2^5 + 1*2^3 + 1*2^2 + 1 =173 
      

    十进制转为其他进制

    • 方式:除基倒取余

    • 解释:

      • 除:除法运算
      • 基:当前十进制的数据要转为几进制,基就是几
      • 倒去余:反过来获取每次相除的余数
    • 图示:
      在这里插入图片描述

键盘录入

  • 概述:在程序启动之后,可以让用户给变量录入一些数据,将来用户录入多少,代码中使用的就是多少
  • 步骤:
    • 导包:import java.util.Scanner;
    • 创建Scanner对象:Scanner sc = new Scanner(System.in);
    • 使用方法来录入数据:int x = sc.nextInt();
    • 可以使用这个变量x。
    • 可以使用 sc.close(); 来关闭Scanner对象
  • 注意:
    • 导包要在类的上面导包
    • nextInt() 方法—录入整数
    • nextDouble() 方法–录入小数
    • next() 方法—录入字符 【除了回车、遇到空格结束录入】
    • nextLine() 方法—录入字符串 【只遇到回车结束录入】
    • 录入多个数据,导包一次即可

获取随机数

  • 概述:可以让程序给变量随机赋值
  • 步骤:
    • 导包:import java.until.Random;
    • 创建对象:Random r = new Random();
    • 时调用方法随机获取一个整数:r.nextInt();
    • 使用获取的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮卡丘不断更

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值