Java基础
•发布于   •作者 懂不懂  •210 次浏览  •来自 分享

1.常量: 是在程序中的不会变化的数据。

2.变量: 其实就是内存中的一个存储空间,用于存储常量数据。

    变量的定义格式:数据类型 变量名 = 变量值;

3.数据类型:(4类8种)

    (1)、分类

    整数型:byte 、 short 、 int 、 long;

    浮点型:float 、 double;

    布尔型:boolean;

    字符型:char;

    (2)、数据类型转换之隐式转换

    取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算。

    (3)、数据类型转换之强制转换

    由大的转换成小的比如int转换成char.在转换的过程中会产生数据溢出.而导致数据丢失。

    (4)、进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的

4.关键字

其实就是某种语言赋予了特殊含义的单词。

5.标识符

其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含  0-9 、 a-z 、 $ 、 _  ;

    注意:

        1 、数字不可以开头。

        2 、不可以使用关键字。

        3、整体的命名要遵守驼峰式命名规范.这个规范适用于除了累和常量以外的内容。

6.运算符

1 、算术运算符

+ - * / %   

%: 任何整数模 2 不是 0 就是 1

+: 连接符。

++:自加。对原有的数据进行+1

--  :自减。对原有的数据进行-1

    注意:放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。

2 、赋值运算符

=  += -= *= /= %= 

3 、比较运算符

特点:该运算符的特点是:运算完的结果,要么是 true ,要么是 false 。

4 、逻辑运算符

&  |  ^  !   &&   ||  

逻辑运算符除了  !   外都是用于连接两个 boolean 类型表达式。

&:  只有两边都为 true 结果是 true 。否则就是 false 。

|: 只要两边都为 false 结果是 false ,否则就是 true 

^: 异或:和或有点不一样。 两边结果一样,就为 false 。 两边结果不一样,就为 true.  

&  和  && 区别:

 &  :无论左边结果是什么,右边都参与运算。

 &&: 短路与 ,如果左边为 false ,那么右边不参数与运算。

|  和 ||  区别:

| :两边都运算。

|| :短路或 ,如果左边为 true ,那么右边不参与运算。

5 、位运算符 : 用于操作二进制位的运算符。

&  |  ^   

<<  >>   >>>( 无符号右移 )  

8.三元(三目)运算符的格式

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

7.运算符的优先级和结合性

优先级

- 小括号和点

- 算数运算符

- 关系(比较大小)

- 位

- 逻辑

- 赋值

结合性

     - 右结合

          - 自增/自减

          - 正负

          - 取反

          - 赋值

7.流程控制语句的分类

    顺序结构、选择结构 、 循环结构

    (1)选择结构if语句

            格式一:

            if(比较表达式) {

                  语句体;

             }

            格式二:

            if(比较表达式) {

                  语句体1;

             }else {

                  语句体2;

             }

            格式三:

            if(比较表达式1) {

                  语句体1;

             }else if(比较表达式2) {

                  语句体2;

             }else if(比较表达式3) {

                  语句体3;

             }

                     ......

             else {

                  语句体n+1;

             }    

    (2)选择结构switch语句

        格式:

            switch(表达式) {

               case 值1:

                   语句体1;

               break;

              case 值2:

                   语句体2;

               break;

                  …

              default:     

                   语句体n+1;

              break;

            }

 

 注意事项:

        1.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。

        2.default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

        3.break最后一个可以省略,其他最好不要省略。

        4.default可以在任意位置。但是建议在最后。

        5.switch语句的结束条件 ,遇到break就结束了 ,执行到switch的右大括号就结束了。

switch建议判断固定值的时候用 ,if建议判断区间或范围的时候用。

    (3)循环结构的分类

        for,while,do...while 

            (a)for语句

                格式: for(初始化表达式;条件表达式;循环后的操作表达式) {

                              循环体;

                             }

           (b)while语句

               格式:while(判断条件语句) {

                           循环体语句;

                           控制条件语句;

                         }

            (c)do...while语句

                格式:do {

                              循环体语句;

                              控制条件语句;

                           }while(判断条件语句);

注意:

        break的使用场景,只能在switch和循环中 。continue的使用场景,只能在循环中。

        return是结束方法 ; break是跳出循环 ; continue是终止本次循环继续下次循环 。

8.一维数组

    (1)数组的概念:

            数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据类型。

    (2)数组的定义格式:

            数据类型[] 数组名 = new 数据类型[数组的长度];

    (3)数组初始化:

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

注意:ArrayIndexOutOfBoundsException:数组索引越界异常;NullPointerException:空指针异常。

    (4)二维数组

            二维数组格:数据类型 数组名[][] = new 数据类型[m][n];

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

熟悉掌握数组的遍历的一系列操作。利用数组进行相关的排序操作。

9.方法

在代码中将功能模块独立(业务逻辑独立)的代码抽取出来组成的独立模块.该模块可以复用,用于解决代码重复.代码臃肿问题.

语法格式为: 访问修饰符 返回值 方法名称(参数列表){方法体}

方法的调用: 在另外一个模块中写调用的方法的名称.如果有参数将参数传递.

方法的重载: 同一个类中(即一个class中)如果出现同名但是参数列表不同的视为方法的重载.如果方法名称相同和参数列表也相同视为方法重复.重复时错误的.

10.类

简单的说类就是Type(类型)使用关键class实现.每写一个class就是定义了一个类型. 类描述一类事物共同的特征和行为.

类的写法:

类由访问修饰 class关键字 类名和类体组成即

    public class Student{

    }

类的成分:

        1. 特征 :名词.所描述的事物的属性,特征在Java代码中通过字段(变量)来体现 

        2. 行为:动词.所描述的事物的动作,行为在Java代码中通过方法来体现.

11.对象

对象是相对于类来说的.是类的实例化.所以类一种概念.定义一类事物共性的内容.而对象是类的具体化.

对象的创建需要通过关键字new.语法格式为:

类型 变量名 = new 类型();

12.Java的内存管理

当JVM启动时.操作系统会分配给JVM一定的内存.当JVM加载类,启动Java程序时.会从系统分配给JVM的内存中开辟几个空间用来保存程序运行时所产生的数据.

寄存器 :位于CPU中,其空间容量很小,不受人为控制.运算速度最快.

栈(Stack) :速度仅次于寄存器.空间不大.通过栈针上下移动来释放和开辟空间.栈是先进后出.向杯子一样,底部是封死的.Java中所有的原生数据类型都在栈中.还有引用变量.

堆(Heap) :堆的空间很大,速度比寄存器和栈略慢.可以人为控制.所有需要手工申请的空间都在堆中.比如C语言中有一个函数malloc就是用来手工申请空间.比如Java中的对象.也是需要手工申请空间的.因此Java中所有new出来的都位于堆.

代码区 :用于存放加载的源代码.因为源代码是不可以被修改的..所以这里也会放置常量

数据区 :用于保存运行期产生的各种数据.

13.封装

封装简单来说可以用一个词来形容,打包.Java封装就是对数据做保护,设定访问限制.并且在一定的情况下可以对数据做验证.

Java中的访问修饰:

  public      : 公共的所有人都可以访问

  private     : 私有的只有自己可以访问

  protected   : 受保护的

  默认(default.什么都不写)

封装的写法 :将字段(属性)私有化.对外提供GET和SET两个方法.GET用于读取SET用于写.

14.继承

好处:

   1 :提高了代码的复用性。

   2 :让类与类之间产生了关系,提供了另一个特征多态的前提。

    单继承:一个类只能有一个父类。

    多继承:一个类可以有多个父类。

java类的继承主要是通过extends关键字来完成的,一但继承后,子类将获得父类的成员属性跟成员方法。

基本语法:

    class类名 extends 父类名{

    }

super.属性名(都是指父类的)

super.方法名(都是指父类的)

java类的重写,子类中的方法与父类中的方法名称、参数个数、类型都完全一致时,就称为子类中的这个方法复写了父类中的方法。

java类的重载与重写相比,重载是指方法名称一致,但是参数或者返回值是不一样的。

总结:经过两周的学习,让我从一个只是听过java的人变成了比较了解java的人,感受到Java的魅力与难度。想要学习好Java,一定要做好充足的准备和努力,只有基础打好,以后的路才会变得平坦。


0 回复
回到顶部

©2017 Powered by 三十三行伪代码
皖ICP备17005175号-3