• 01.Java基础语法


    一、计算机基础知识

    • 二进制
      • 计算机内部全部采用二进制数表示,只包含0、1两个数,逢二进一。每个0或1叫做一个 bit (比特)。
        • 进制之间的转换
          • 十进制转换成二进制数据:使用除以2获取余数的方式。
          • 二进制转换成十进制数据:使用8421编码方式。
    •  字节
      • 字节是计算机中最小的存储单元,计算机储存任何数据,都是以字节的形式储存。
      • 8个 bit 表示为1个字节,写成1 byte 或1 B。
        • 1 B = 1024 bit
        • 1 KB = 1024 B
        • 1 MB = 1024 KB
        • 1 GB = 1024 MB
        • 1 TB = 1024 GB
    • 常用 DOS 命令
      • 进入 DOS 操作窗口
        • 按下 WIN + R 键,打开运行窗口,输入 cmd 回车,进入 DOS 操作窗口。
      • 常用命令

          

     二、Java 语言开发环境搭建

    • Java 虚拟机——JVM
      • JVM (Java Virtul Machine) :Java 虚拟机,简称 JVM ,是运行所有 Java 程序的假想计算机,是 Java 程序的运行环境,是 Java 最具吸引力的特性之一。我们编写的 Java 代码,都运行在 JVM 之上。
      • 跨平台:

          

    • JRE 和 JDK
      • JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所需要的核心类库。 
      • JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工具。
    • 关系图

            

    • JDK 9 安装
      • 安装路径不要包含中文和空格。
      • 公共JRE可以不装。
    • 配置环境变量
      • 计算机——属性——高级系统设置——高级——环境变量
        • JAVA_HOME:JDK 9的安装目录
        • 配置path:%JAVA_HOME%in;

    三、HelloWorld 入门程序

    • 开发步骤
      • 三步:编写、编译、运行。

        

    • 编写
      • 使用 notepad++ 软件编写
        • notepad++ 初始化设置(两处)

          

      • 编写

          

        • 注意事项
          • 文件名必须是 HelloWorld ,保证文件名和类名一致。
      • 编译
        • 在 DOS 命令行中,进入 Java 源文件的目录,使用 javac 命令进行编译。

          • 命令:javac  Java源文件名.后缀名
      • 运行
        • 在 DOS 命令行中,进入 Java 源文件的目录,使用 java 命令进行运行。
          • 命令:java  类文件名 

    四、常量

    • 概述  
      • 常量是指在 Java 程序中固定不变的数据。
    • 分类

         

    五、变量和数据类型

    • 概述
      • 在程序中可以变化的量成为变量。
        • Java 中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
    •  数据类型
      • 分类
        • 基本数据类型:整数、浮点数、字符、布尔
        • 引用数据类型:字符串、数组、类、接口、Lambda
      • 注意事项
        • 字符串是引用数据类型
        • 浮点型可能只是一个近似值,并非精确的值。
        • 数据范围与字节数不一定相关,例如 float 取值范围比 long 大,但 float 是4个字节,而 long 是8个字节。
        • 浮点数中默认类型是 double。如果一定要使用 float 类型,需要加上后缀 F 。
        • 整数默认是 int 类型,如果一定要使用 long 类型,需要加上后缀 L 。
      • 基本数据类型
        • 四类八种
        • Java 中的默认数据类型:整数类型是int,浮点类型是double。

          

    • 变量的定义
      • 格式:数据类型    变量名    =    数据值;
        • long 类型:建议数据后加 L 表示。
        • float 类型:建议数据后加 F 表示。
      • 注意事项
        • 变量名称:在同一个大括号范围内,变量的名字不可以相同。
        • 变量赋值:定义的变量,不赋值不能使用。
        • 对于 float 和 long 类型,字母后缀 F 和 L 不要丢掉。
        • 如果使用 byte 和 short 类型的变量,右侧的数据值不能操作左侧类型的范围。
        • 变量使用不能超过作用域的范围。
          • 作用域:从定义变量的一行开始,一直到所属的大括号结束为止。

    六、数据类型转换

    • 概述
      • Java 程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
    • 自动转换
      • 将取值范围小的类型自动提升为取值范围大的类型。
        • 转换规则
          • 范围小的类型向范围大的类型提升,byte 、short、char 运算时直接提升为 int 
    • 强制转换
      • 将取值范围大的类型强制转换成取值范围小的类型。
        • 格式
          • 范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
    • 注意事项
      • 强制类型转换可能会发生精度损失,数据溢出。
        • 精度损失:浮点数转成整数,直接取消小数点。
        • 数据溢出:满了。
      • byte / short / char 这三种类型都可以发生数学运算(ASCII编码表)。
      • byte / short / char 这三种类型在运算的时候,会先自动提升为 int 类型,然后再计算。
      • boolean 类型不能发生数据类型转换。
    • ASCII码表
      • 概念:将人类的文字和一个十进制的数字对应起来组成的一张表。
        • 字符    数值
        •   0   48
        •  ‘A’        65
        •  'a'        97  

    七、运算符

    • 算数运算符

      

      • 四则运算中 “+” 的三种常见用法
        • 对于数值来说,就是加法
        • 对于字符 char 来说,在计算之前,char 会提升为 int ,然后在计算。
        • 对付字符串 String 来说,加号代表字符串的连接。
          • 任何数据类型和字符串进行连接的时候,结果都会是字符串。
      • 自增运算符:++
      • 自减运算符:--
        •  含义:让一个变量涨一个数字1,或者减一个数字1。
        • 使用格式:写在变量名之前(前 ++),或者写在变量名之后(后 ++)。
        • 使用方式
          • 单独使用:不和其他任何操作混合,自己独立成一个步骤。
          • 混合使用:和其他操作混合,例如与赋值混合、与打印操作混合等。
        • 使用区别
          • 在单独使用时,前 ++ 和后 ++ 没有任何区别。
          • 在混合的时候,有【重大区别】
            • 如果是【前 ++】,那么变量【立刻马上+1】,然后拿着结果进行使用。【先加后用】
            • 如果是【后 ++】,那么首先使用变量本来的数值,【然后再让比那辆+1】。【先用后加】
      • 注意事项
        • 只有变量才能使用自增、自减运算符,常量不可发生改变,所以不能用。
    • 赋值运算符

        

      • 注意事项
        • 只有变量才能使用赋值运算符,常量不能使用。
        • 复合赋值运算符隐含了一个强制类型转换。

          

    • 比较运算符

        

      • 运算结果都是布尔值。
    • 逻辑运算符

        

      • “&&” 和 “||” ,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再运行,从而提高性能。
      • 注意事项
        • 逻辑运算符只能用于布尔值。
        • 与、或需要左右各自有一个布尔值,但是入返只要有唯一的一个布尔值即可。
        • 与、或两种运算符,如果有多个条件,可以连续写。
          • 两个条件:条件 A && 条件 B
          • 多个条件:条件 A && 条件 B && 条件 C ...
    •  三元运算符
      • 格式
        • 数据类型    变量名称    =    条件判断  ?  表达式 A  :  表达式 B ;
        • 首先判断条件是否成立:
          • 如果成立,将表达式 A 的值赋值给左边的变量。
          • 不成立,将表达式 B 的值赋值给左边的变量。
      • 注意事项
        • 必须同时保证表达式 A 和表达式 B 的值都符合左侧数据类型的要求。
        • 三元运算符的结果必须被使用。

    八、方法入门

    • 概述
      • 将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能,需要时再去调用。
      • 定义格式
        • 修饰符    返回值类型    方法名(参数列表){
          •  代码...
          •    return; 
        • }
      • 注意事项
        • 方法定义的先后顺序无所谓。
        • 方法的定义不能产生嵌套包含关系。
        • 方法定义好了之后,不会执行的。如果要想执行,一定要进行方法的【调用】。

     九、流程控制

    • 判断语句
      • if

           

      • if...else

          

      • if...else if...else

          

    • 选择语句
      • switch 语句格式

          

      • switch语句中,表达式的数据类型,可以是 byte,short,int,char,enum(枚举),JDK7 后可以接收字符串。
      • case的穿透性
        • 在switch语句中,如果 case 的后面不写 break ,将出现穿透现象,也就是不会在判断下一个 case 的值,直接向后运行,直到遇到 break,或者整体 switch 结束。
    • 循环语句
      • for 循环语句格式

         

      • while 循环语句格式

          

      • do...while循环格式

          

      • 三种循环的区别
        • 如果条件判断从来没有满足过,那么 for 循环和 while 循环将会执行0次,但是 do-while 循环会执行至少一次。
        • for 循环的变量在小括号当中定义,只有循环内部才可以使用。while 循环和 do-while 循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。   
      • break 关键字的两种常见用法
        • 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
        • 可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
      • continue
        • 一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
      • 嵌套循环
        • 格式

            

        • 举例:打印时分秒。

     十、方法复习

    • 方法定义的完整格式

        修饰符    返回值类型    方法名称(参数类型    参数名称, ...) {
            方法体
            return 返回值;
        }

      • 修饰符:现阶段的固定写法,public static
      • 返回值类型:也就是方法最终产生的数据结果是什么类型
      • 方法名称:方法的名字,规则和变量一样,小驼峰
      • 参数类型:进入方法的数据是什么类型
      • 参数名称:进入方法的数据对应的变量名称
        • PS:
          • return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处。
    • 方法调用的三种格式
      • 单独调用:方法名称(参数);
      • 打印调用:System.out.println(方法名称(参数));
      • 赋值调用:数据类型 变量名称 = 方法名称(参数);
        • PS
          • 返回值类型固定写为void,这种方法只能够单独调用,不能进行打印调用或者赋值调用。
    • 方法注意事项
      • 方法应该定义在类当中,但是不能在方法当中再定义方法。不能嵌套。
      • 方法定义的前后顺序无所谓。
      • 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
      • 如果方法有返回值,那么必须写上“ return 返回值;”,不能没有。
      • return后面的返回值数据,必须和方法的返回值类型,对应起来。
      • 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。
      • 对于void方法当中最后一行的return可以省略不写。
      • 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
    • 方法重载(Overload)
      • 概述
        • 多个方法的名称一样,但是参数列表不一样。
      • 方法重载与下列因素相关
        • 参数个数不同
        • 参数类型不同
        • 参数的多类型顺序不同
      • 方法重载与下列因素无关
        • 与参数的名称无关
        • 与方法的返回值类型无关
      • 在调用输出语句的时候,println 方法其实就是进行了多种数据类型的重载形式。

    十一、数组

    • 概念
      • 是一种容器,可以同时存放多个数据值。
      • 特点
        • 数组是一种引用数据类型。
        • 数组当中的多个数据,类型必须统一。
        • 数组的长度在程序运行期间不可改变。
      • 数组的初始化
        • 在内存当中创建一个数组,并且向其中赋予一些默认值。
        • 两种常见的初始化方式
          • 动态初始化(指定长度)
          • 静态初始化(指定内容)
      • 初始化格式
        • 动态初始化:在创建数组的时候,直接指定数组当中的数据元素个数。
          • 数据类型 []    数组名称    =    new    数据类型  [数组长度];
          • 初始化默认值
            • 整数类型,那么默认为 0;
            • 浮点类型,那么默认为 0.0;
            • 字符类型,那么默认为 'u0000';
            • 布尔类型,那么默认为 false;
            • 引用类型,那么默认为 null 。
        • 静态初始化:在创建数组的时候,直接指定数组当中的数据元素个数。
          • 数据类型 []    数组名称    =    new    数据类型 []  { 元素1 ,   元素2 , ...  };
            • 省略格式
              • 数据类型 []    数组名称    =    {  元素1 , 元素2 , ... } ;
          • 初始化默认值
            • 静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号当中的具体数值。
      • 注意事项
        • 静态初始化没有直接指定长度,但是仍然会自动推算得到长度。
        • 静态初始化标准格式可以拆分成为两个步骤。
        • 动态初始化也可以拆分成为两个步骤。
        • 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了。
      • 使用建议
        • 如果不确定数组当中的具体内容,用动态初始化;否则,已经确定了具体的内容,用静态初始化。
    • 数组的访问
      • 索引:每一个存储到数组的元素,都会自动的拥有一个编号,从 0 开始,这个自动编号称为数组索引 ( index ),可以通过数组的索引访问到数组中的元素。
        • 数组名称[索引值]
          • 索引值从 0 开始。
      • 数组的长度属性
        • 数组名.length
    • 数组的遍历
      • 通过for循环

    十二、Java基础语法完结

  • 相关阅读:
    Java基本数据类型
    java类和对象
    java命名规范
    算法(Algorithms)第4版 练习 1.5.16
    算法(Algorithms)第4版 练习 1.5.15
    算法(Algorithms)第4版 练习 1.5.14
    算法(Algorithms)第4版 练习 1.5.13
    算法(Algorithms)第4版 练习 1.5.12
    算法(Algorithms)第4版 练习 1.5.10
    算法(Algorithms)第4版 练习 1.5.9
  • 原文地址:https://www.cnblogs.com/_Moliao/p/12442959.html
Copyright © 2020-2023  润新知