Java学习记录二

  ①关键字:Java语言赋予特定含义的单词,常用的关键字不需要记忆,用的多了自然就熟了。

     关键字特点

          组成关键字的字母全部小写

     关键字注意事项

          gotoconst作为保留字存在,目前并不使用

          类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

  ②标识符:就是给类,接口,方法,变量等起名字时使用的字符序列 (见名知意、驼峰原则)

     组成规则

          英文大小写字母

          数字字符

          $_

     注意事项

     不能以数字开头

     不能是Java中的关键字

     区分大小写

    ③注释:用于解释说明程序的文字 ,要勤写注释,不认一段时间后不认识自己写的代码。

    单行注释

        •格式: //注释文字

    多行注释

        •格式: /*  注释文字  */

    文档注释

        •格式:/** 注释文字 */

    ④常量:在程序执行的过程中其值不可以发生改变

    Java中常量分类

        字面值常量

        自定义常量(面向对象部分说)

      字面值常量的分类

          字符串常量  用双引号括起来的内容

          整数常量  所有整数12,23

          小数常量  所有小数12.34,56.78

          字符常量  用单引号括起来的内容‘a’,’A’,’0’

          布尔常量  较为特有,只有truefalse

          空常量  null(数组部分讲解)

    ⑤进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

          二进制         ----------->由电信号开关演变而来

          八进制        ------------>只用二进制太长了,三位二进制用一位来表示,有了八进制

          十进制

          十六进制

     1)进制的区分

    二进制 

        •由0,1组成。以0b开头

    八进制 

        •由0,1,…7组成。以0开头

    十进制 

        •由0,1,…9组成。整数默认是十进制的

    十六进制   

        •由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

    2)进制的转换

        十进制和二进制的快速转换

          8421

        二进制和八进制,十六进制如何转换

         二进制到八进制  3位组合

         •100110

         二进制到十六进制  4位组合

         •100110

    3)有符号数据表示法 :原码、反码、补码,所有的数据的运算都是采用补码进行的。感觉原、反、补主要针对的是负数

         原码

         •就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

         反码

         •正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

         补码

         •正数的补码与其原码相同;负数的补码是在其反码的末位加1

    ⑥变量:在程序执行的过程中,在某个范围内其值可以发生改变的量

     变量定义格式

      数据类型 变量名 = 初始化值;

    ⑦数据类型:Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

              整数默认:int    小数默认:double

                 

     1)内存分配

        

        

    2)注意事项

      作用域 

            •变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

      初始化值

            •没有初始化值不能直接使用

      在一行上建议只定义一个变量

            •可以定义多个,但是不建议

      3)数据类型的转换

      boolean类型不能转换为其他的数据类型

      默认转换

            byte,short,charint—long—float—double

            byte,short,char相互之间补转换,他们参与运算首先转换为int类型

      强制转换

            目标类型 变量名=(目标类型)(被转换的数据);

     面试题 :常量:java在编译时期会检查该常量的和是否超出byte类型的范围,变量:转int,再赋值给byte报错。

     byte b1=3,b2=4,b;

     b=b1+b2;

     b=3+4;

    ⑧运算符

      1)算数运算符

         

      2)赋值运算符

       符号

          = , +=, -=, *=, /=, %=

      3)关系运算符

           

      4)逻辑运算符

          异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。左右相同false,不同则为true

          

      5)位运算符

              &:110(6) & 011(3)→ 010 (2)    有0则0

              | :110 | 011 →7                         有1则1

              ^:110 ^ 011 → 5                         不同为1相同为0

         

      6)三目运算符

       格式

          (关系表达式)?表达式1:表达式2;

          如果条件为true,运算后的结果是表达式1;          

          如果条件为false,运算后的结果是表达式2;

    ⑨流程控制:在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

   1)顺序结构概述

      是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

      总的来说:写在前面的先执行,写在后面的后执行

   2)选择结构

      也被称为分支结构。

      选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

      Java语言提供了两种选择结构语句

      •if语句

      •switch语句

  3)循环结构:常用的有while  for do...while

    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

    初始化语句:

        •一条或者多条语句,这些语句完成一些初始化操作。

    判断条件语句:

        •这是一个boolean 表达式,这个表达式能决定是否执行循环体。

    循环体语句:

        •这个部分是循环体语句,也就是我们要多次做的事情。

    控制条件语句:

        •这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

     注:循环的跳出

        break 中断

        continue 继续

        return 返回

    ⑩方法:方法就是完成特定功能的代码块

       方法格式解释

         修饰符 比较多,后面会详细介绍。目前public static

         返回值类型 用于限定返回值的数据类型

         方法名 一个名称,为了方便我们调用方法

         参数类型 限定调用方法时传入参数的数据类型

         参数名 是一个变量,接收调用方法时传入的参数

         方法体 完成功能的代码

         return 结束方法以及返回方法指定类型的值

         返回值 程序被return带回的结果,返回给调用者

    如何定义一个方法

      返回值类型 明确功能结果的数据类型

      参数列表 明确有几个参数,以及参数的类型

    方法的注意事项

      方法不调用不执行

      方法与方法是平级关系,不能嵌套定义

      方法定义的时候参数之间用逗号隔开

      方法调用的时候不用在传递数据类型

      如果方法有明确的返回值,一定要有return带回一个值

    方法的重载

      方法重载概述

            在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

      方法重载特点

            与返回值类型无关,只看方法名和参数列表

            在调用时,虚拟机通过参数列表的不同来区分同名方法

   

    数组:数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器

      数组的定义格式

            格式1:数据类型[] 数组名;

            格式2:数据类型 数组名[];

      动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

            •格式:数据类型[] 数组名 = new 数据类型[数组长度];

      静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

            格式:  数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

                          数据类型[] 数组名 = {元素1,元素2,…};

     常见问题:

      数组索引越界

        ArrayIndexOutOfBoundsException

        访问到了数组中的不存在的索引时发生。

      空指针异常

        NullPointerException

        数组引用没有指向实体,却在操作实体中的元素时

    二维数组:

      格式1

            数据类型[][] 变量名 = new 数据类型[m][n];

            m表示这个二维数组有多少个一维数组

            n表示每一个一维数组的元素个数

      格式2

            数据类型[][] 变量名 = new 数据类型[m][];

            m表示这个二维数组有多少个一维数组

            这一次没有直接给出一维数组的元素个数,可以动态的给出。

      格式3

            数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

            简化版格式:

            数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

    Java中的内存分配:重点!!

       Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

      栈 存储局部变量

      堆 存储new出来的东西

      方法区 (面向对象部分讲)

      本地方法区 (和系统相关)

      寄存器 (CPU使用)

猜你喜欢

转载自blog.csdn.net/qq_34117624/article/details/83142879
今日推荐