JavaSE学习笔记-Day8

孔子云:温故而知新,可以为师矣。那么今天就来回顾一下这一个星期所学的知识。

第一章: 初步认识Java

  1. Java版本:SE 、 EE 、 ME, SE定位于计算机,EE定位于服务器。
  2. Java优势: 跨平台性(不区分操作系统),面向对象,多线程,高性能等等。
  3. JVM 、JRE 、JDK:JVM是跨平台性的核心机制,运行Java只要JRE,开发需要JDK。
  4. Java运行机制:先编译成.class文件,再解释运行。
  5. "Hello World"程序: main方法是Java程序的入口。输出语句的固定写法。

第二章: Java面向对象编程基础

  1. 面向过程和面向对象思想:万物皆可对象,要宏观把控系统。
  2. 类和对象: 类是模板,对象是实例。
    1)类一般由三大部分组成(成员):成员变量、成员方法、构造方法。类名要符合驼峰原则。
    2)看见new这个关键字就是在创建对象,其含义是调用类的构造方法创建实例。
    3)匿名对象:一般对象都会给个名字,没名字的就是匿名对象。
  3. Java数据类型: 两类,基本数据类型和引用数据类型。
    1)整型默认为int,浮点型默认为double,long型数据在末尾加"l/L",float型数据在末尾加"f/F"。浮点型数据避免直接比较大小!
    2)自动数据类型转化:范围小的可自动转换成范围大的,有部分转化过程可能出现精度丢失,所以这也不是绝对安全的。
    3)强制类型转化:小的转化成大的,在前面加上小括号并写上要转化的数据类型即可。
  4. 运算符: 一元、二元、三元(? :)、条件、逻辑等等
    1)+ 比较特殊,如果都是数值则算数加,如果有一个是字符串(不是字符哦)则会变成字符串连接符。
    2)== 需要注意,在基本数据类型中是比较数值大小,而在引用数据类型中是比较地址的值。
  5. 变量: 本质就是可操作的内存空间。分为三类(按所在位置):局部变量,成员变量,类变量(其实也算是成员变量)。其中第一种需要初始化值才能使用,而后两者系统有默认值。
  6. 常量: 相对于变量的概念。
  7. 标识符: 名称。
  8. 关键字: 也叫保留字,是Java内部使用的单词,用来表示某些含义。其特点是全部小写字母。
  9. 类的第一种成员——成员变量。定义在类中的变量。
    1)如果有static修饰我们会换种称呼,叫静态变量或者类变量。它是从属于类的,要使用它,是类名.类变量名。
    2)如果没有static修饰,它是从属于对象的,要使用它,是对象名.成员变量名。
  10. 控制语句:选择、循环等结构。
  11. 关键字 break 和 continue 的详解。
  12. 类的第二种成员——成员方法。相当于C语言的函数。
    1)和成员变量一样,分有没有static修饰,且其他内容都一致,不过就是一个是变量一个是方法。
    2)方法中的形参和实参:在传递值是都是传递的副本,但是对象本就是存的地址,所以即使是地址的副本,指向性仍然不变。
    3)方法的重载:本质上是同名的不同方法。有三个条件:第一,不同含义即形参类型、形参个数、形参顺序不同;第二,只有返回值不同不能构成重载;第三,只有形参的名称不同,不构成方法的重载。本质上就是在调用时可区分开是不同的方法即可,不管返回值的。
  13. 类的第三种成员——构造方法: 就是一种特殊的方法,专门来创建对象的,所以构造方法一般都是为了给成员变量初始化。注意,不能写返回值类型,可就是不能return 什么东西回去,但可以有return; 表示方法的结束。
  14. 定义一个标准的类 :这是种规定,啥叫标准。要求:所有的成员变量必须要用private修饰;为每一个成员变量创建Setter和Getter方法;编写一个无参数的构造方法;编写一个全参数的构造方法。
  15. this 关键字详解: 说白了就是当前对象,this不能用于用于静态方法,原因是静态方法从属于类而非对象!
  16. static 关键字详解: 用static修饰的成员从属于类,并且只有一份,被所以对象共享!
  17. JVM内存结构粗略分析: 最主要的三部分——栈、堆、方法区。栈是方法执行的内存模型;堆是对象的存储区域;方法区放的是类信息和静态东西和一些常量。
  18. 垃圾回收机制: 分代垃圾回收机制。
  19. 包: 用于管理类!导入用import关键字。

第三章: Java面向对象编程进阶

  1. 面向对象三大特性——封装性: 成员变量全用private修饰;方法就是一种封装(常用Getter/Setter方法访问成员变量)。了解“高内聚,低耦合”。

  2. 访问控制符: public>protected>(default)>private。

  3. 面向对象三大特征——继承性: 子类和父类,也称派生类和基类。它们是一种逐渐延伸和具体化的关系。
    1)Java只能是单继承。
    2)方法的重写:和父类同名的方法的覆盖。要求:方法名、形参列表相同;返回值类型和声明异常类型,子类小于等于父类;访问权限,子类大于等于父类。
    3)instanceof运算符: 看左边对象是否是右边类的实例。(包含多态性)
    4)Object类: Java继承树的根节点。掌握两个方法toString()和equals()。
    5)super关键字: 构造方法第一句默认为super(),意思是找到父类的成员。super()和this()在构造方法中只能二选一。所以构造方法的执行一定是从上往下执行的。
    6)静态初始化块: 程序只执行一次,且优先级最高。
    7) 成员变量和成员方法在继承中的查找: 先找自己的,没有再往上找。

  4. 面向对象三大特性——多态性: 多种形态。
    1)多态是方法的多态,不是属性的多态。
    2) 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象

  5. 对象的转型: 父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。还有向下转型,这是强制转型,不安全!

  6. final 关键字详解: 修饰的变量是常量,不可改变;修饰的方法不能重写,但是可以重载;修饰的类不能被继承。

  7. 抽象方法和抽象类 : abstract修饰。
    1)抽象方法直接 ; 结束,没有方法体,必须要重写。必须要在抽象类或接口中。
    2)抽象类不能创建对象,但是可以有非抽象方法。

  8. 接口: 接口是一种规范,它比抽象类还抽象。
    1)接口不能有普通的成员方法,成员变量也只能是final修饰的。
    2)接口内容(Java9及之前):常量、抽象方法(7)、默认方法、静态方法(8)、私有方法(9)。
    3)接口可以有多继承,类也可以实现多个接口。implements作为关键字。

  9. 内部类 : 定义在类的内部的类。编译时也会生成.class文件,不过名称是:外部类名$内部类名.class。
    1)内部类分三种,第一种是成员内部类,顾名思义是类的成员。

    1. 有static修饰的,是静态成员内部类,和类变量、静态方法实质一样,所以使用它是用 外部类.内部类 对象=new 外部类.内部类的构造方法。
    2. 没有static修饰的,是非静态成员内部类,用法是外部类.内部类 对象=new 外部类构造方法.new 内部类构造方法。

    2)第二种是局部内部类:定义在方法内部。
    3)第三种是匿名内部类:没有名字的内部类,这种内部类最常见,用来写那些只实现一次接口的类。

第四章: 数组

  1. 一维数组: 相同数据类型的集合。
    1)长度是确定的。
    2)数组就是对象。
    3)初始化:静态、动态、默认。
    4) 数组的length东西,是Java底层靠指令知道的
    5)数组的遍历: 增强for循环。
    6)数组的拷贝: arraycopy(…)方法,System类的。还可以用来删除等其他操作。
  2. 多维数组: 元素为数组的数组,嵌套关系,不常用。
    1)二维数组的声明:从低到高。
    2)二维数组初始化:注意元素是数组,所以需要创建对象而不是直接赋值。

第五章: 常用类

  1. 包装类 : 把基本数据类型包装成类。它们都在java.lang包里。
    1)以Integer类举例,有两种构造方法,注意没有无参的。
    2)静态变量: MAX_VALUE和MIN_VALUE,最大最小值。
    3)静态方法:valueOf(…),创建一个Integer类对象。
    4)静态方法:parseInt(String s) 和 成员方法: toString()完成Integer类对象和字符串对象的相互转化。
    5)重写Number抽象类的方法…很多。
    6)自动装箱和自动拆箱:这是编译器的优化,别搞混。
    7)cache[]数组,缓存问题,仅对整型、char类型所对应的包装类。

  2. String类: 不可变字符序列。
    1)String类创建实例的方法:直接或使用构造器。
    2)字符串拼接用String类对象容易造成内存泄漏。
    3)String常用成员方法:charAt(int index)、 length()、equals(Object anObject)、 equalsIgnoreCase(String anotherString)、 indexOf(String str)、substring(int beginIndex,int endIndex)。
    4)字符串常量池:字符串的存储区。

待进一步学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值