Java基础及API总结

Day01

1. java开发环境:

   - 编译运行过程:

     - 编译期:.java源文件,经过编译,生成.class字节码文件

     - 运行期:JVM加载.class并运行.class(0和1)

       > 特点:跨平台,一次编译到处运行

   - 名词解释:

     - JVM:java虚拟机

       ​          加载.class并运行.class

     - JRE:java运行环境

       ​         除了包含JVM以外还包含了运行java程序所必须的环境

       ​         JRE = JVM+系统类库(小零件)

     - JDK:java开发工具包

       ​          除了包含JRE以外还包含了开发java程序所必须的命令工具

       ​          JDK = JRE + 编译、运行等命令工具

       > 说明:

       > 1. 运行java程序的最小环境为JRE

       > 2. 开发java程序的最小环境为JDK

2. idea:

   - JetBrains公司的,分为社区版(免费的)和终级版(收费的)

   - 开发步骤:

     - 新建Java项目/工程-------------------小区

     - 新建Java包------------------------------楼+单元

     - 新建Java类------------------------------房子

   - 注释:

解释性文本(计算机不执行)

     - 单行注释://

     - 多行注释:/*     */

     - 文档注释:/**     */

   - 补充

1. IDE:集成开发环境,是一整套带图形界面的包含复杂功能的工具,常用的有Idea和Eclipse

2. Java以前是Sun公司,但是Sun已经被Oracle收购了,所以现在说Java是Oracle公司的

   换算:

     1G=1024M(兆)

     1M=1024KB(千字节)

     1KB=1024B(字节)

     1B=8bit(位)

Day02

1. 变量:

存数的

   - 声明:

在银行开个帐户

   - 初始化:

给帐户存钱

   - 使用:

使用的是帐户里面的钱

     - 对变量的使用就是对它所存的那个数的使用

     - 变量在使用之前必须声明并初始化

   - 命名:

     - 只能包含字母、数字、_和$符,并且不能以数字开头

     - 严格区分大小写

     - 不能使用关键字

     - 允许中文命名,但不建议,建议"英文的见名知意"、"小驼峰命名法"

2. 八种基本数据类型:

byte、short、int、long、float、double、boolean、char

   - int:

整型,4个字节,-21多个亿到21个多亿

     - 整数直接量默认为int类型,但不能超出范围,若超范围则发生编译错误

     - 两个整数相除,结果还是整数,小数位无条件舍弃

     - 整数运算时,若超范围则发生溢出(溢出不是错误,但是需要避免)

   - long:

长整型,8个字节,很大很大很大

     - 长整型直接量需在数字后加L或l

     - 运算时若有可能溢出,建议在第1个数字后加L

   - double:

浮点型,8个字节,很大很大很大

     - 浮点数直接量默认为double型,若想表示float需在数字后加F或f

     - double和float型数据参与运算时,有可能会发生舍入误差(精确场合不能使用)

   - boolean:

布尔型,1个字节

     - 只能赋值为true或false

   - char:

字符型,2个字节

     - 采用Unicode编码格式,一个字符对应一个码

       表现的形式是字符char,但本质上是码int(0到65535之间)

       (ASCII码:'a'----97   'A'----65  '0'----48 )

     - 字符直接量必须放在单引号中,并且只能有一个

     - 特殊符号需要通过\来转义

3. 类型间的转换:

   - 数据类型大小

从小到大依次为:byte,short,int,long,float,double

                                       char

   - 两种方式:

     - 自动/隐式类型转换:小类型到大类型

     - 强制类型转换:大类型到小类型

       > 语法:(要转换成为的数据类型)变量

       > 注意:强转有可能溢出或丢失精度

   - 两点规则:

     - 整数直接量可以直接给byte,short,char赋值,但不能超范围,若超范围则编译错误

     - byte,short,char型数据参与运算时,系统会统一将其先转为int再运算    

4. 补充:

1. 命名法:

   - 小驼峰命名法:第1个单词首字母小写,其余单词首字母大写--------变量

   - 大驼峰命名法/帕斯卡命名法:所有单词首字母大写---------------------类

2. 数据类型分类:

   - 基本数据类型

   - 引用数据类型

3. Unicode:通用码、统一码、万国码,是一个世界级通用的定长(固定16位)字符集

Day03

1. 运算符:

   - 算术:

+、-、*、/、%、++、--

   - 关系:

>、<、>=、<=、==、!=

   - 逻辑:

&&、||、!

   - 赋值:

=、+=、-=、*=、/=、%=

   - 字符串连接:

+

   - 条件/三目:

boolean?数1:数2

2. 分支结构:

基于条件执行某语句

   - if结构:

1条路

   - if...else结构:

2条路

Day04

  1. Scanner

接收用户输入的数据:-----分三步,先背下来,面向对象第5天才能理解

2. 分支结构:

   - if...else if结构:

多条路

   - switch...case结构:

多条路

     优点:效率高、结构清晰

     缺点:只能对整数判断相等(char, byte, short, int, enum, Character, Byte, Short, Integer, String)

     break:跳出switch

3. 循环:

反复多次执行一段相同或相似的代码

4. 循环三要素:

   - 循环变量的初始化

   - 循环的条件(以循环变量为基础)

   - 循环变量的改变(向着循环的结束变)

     > 循环变量:在整个循环过程中所反复改变的那个数

5. 循环结构:

   - while结构:

先判断后执行,有可能一次都不执行

   - do...while结构:

先执行后判断,至少执行一次

     > 当第1要素与第3要素相同时,首选do...while--------参考Guessing猜数字小游戏

Day05

1. 循环结构:

   - for结构:

应用率最高,与次数相关的循环

2. 三种循环结构的选择规则:

   - 先看循环是否与次数有关:

     - 若有关-----------------------------------------------直接上for

     - 若无关,再看要素1与要素3是否相同

       - 若相同------------------------------------------直接上do...while

       - 若不同------------------------------------------直接上while

 break:跳出循环

continue:跳过循环体中剩余语句而进入下一次循环

3. 嵌套循环:

   - 循环中套循环,一般多行多列时使用,常常外层控制行,内层控制列

   - 执行规则:外层循环走一次,内层循环走所有次

   - 建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层

   - break只能跳出当前一层循环

4. 数组:

   - 是一种数据类型(引用类型)

   - 相同数据类型元素的集合

   - 定义:

   - 初始化:

   - 访问:

     - 通过(数组名.length)可以获取数组的长度(元素个数)

     - 通过下标/索引来访问数组中的元素,下标从0开始,最大到(数组的长度-1)

   - 遍历:

5. 补充:

1. 变量的重名问题:

   - 作用域重叠时,变量不能同名

2. break可以用在switch中,也可以用在循环中

   continue只能用在循环中

3. \t:水平制表位,固定占8位

4. 数组元素的默认值:

   byte,short,int,long,char------------------0

   float,double------------------------------0.0

   boolean-----------------------------------false

5. ArrayIndexOutOfBoundsException:数组下标越界异常

Day06

1. 数组:

   - 复制:

   - 排序:

2. 方法:函数、过程

   - 封装一段特定的业务逻辑功能

   - 尽可能独立,一个方法只干一件事

   - 方法可以被反复调用多次

   - 可以减少代码重复,有利于代码维护

   - 何时用:假设有一个功能,在很多地方都得使用,就将功能封装到一个方法中

3. 方法的定义:五要素

   ​ 修饰词   返回值类型   方法名(参数列表) {

   ​        方法体------具体的业务逻辑功能实现

   ​    }

4. 方法的调用:

   - 无返回值:方法名(有参传参);

   - 有返回值:数据类型  变量  =  方法名(有参传参);

5. return:

   - return 值;  //1) 结束方法的执行  2) 返回结果给调用方-------用在有返回值的方法中

   - return;       //1) 结束方法的执行--------------用在无返回值的方法

6. 补充:

1. 形参\实参:

形式参数,定义方法时声明的参数叫做形参

  实际参数,调用方法时传的参数叫做实参

Ooday01

1. 什么是类?什么是对象?

   - 现实生活是由很多很多对象组成的,基于对象抽出了类

   - 对象:软件中真实存在的单个个体/东西

     类:类型/类别,代表一类个体

   - 类是对象的模板,对象是类的具体的实例

   - 类中可以包含:

     - 对象的属性/特征-----------------------------成员变量

     - 对象的行为/动作/功能---------------------方法

   - 一个类可以创建多个对象

2. 如何创建类?如何创建对象?如何访问成员?

3.方法的签名:

方法名+参数列表

4. 方法的重载(overload/overloading):

-------------------更方便方法的调用

   - 发生在同一类中,方法名相同,参数列表不同

   - 编译器在编译时会根据方法的签名自动绑定方法

5. 补充:

1. OO:面向对象

   OOA:面向对象分析

  OOD:面向对象设计

   OOP:面向对象编程------------------你们所参与的

2. 高质量的代码: 

   ​ 复用性好、扩展性好、维护性好、可移植性好、健壮性好、可读性好、效率好......

3. 类是一种引用数据类型

   //            引用

   // 数据类型 引用类型变量  指向      对象

      Student     zs       =   new Student();

4. 默认值:

   byte,short,int,long,char-----------------0

   float,double-----------------------------0.0

   boolean----------------------------------false

   引用类型----------------------------------null

5. 文档注释:

    描述整个类、整个方法、常量是干什么的。一般写在类上面、方法上面、常量上面

文档注释是可以生成javadoc文档内容的-----doc文档后期才讲

Ooday02

  1. 构造方法:

构造函数、构造器、构建器----------------复用给成员变量初始化代码

   - 作用:给成员变量赋初始值

   - 与类同名,没有返回值类型(连void都没有)

   - 在创建(new)对象时被自动调用

   - 若自己不写构造方法,则编译器默认提供一个无参构造方法,

     若自己写了构造方法,则不再默认提供

   - 构造方法可以重载

  1. this:

指代当前对象,哪个对象调用方法它指的就是哪个对象

   ​          只能用在方法中,方法中访问成员变量之前默认有个this.

   this的用法:

   - this.成员变量名--------------访问成员变量

     > 当成员变量和局部变量同名时,若想访问成员变量则this不能省略,其它一般省略

   - this.方法名()------------------调用方法(一般不用,了解)

   - this()----------------------------调用构造方法(一般不用,了解)

  1. null:

表示空,没有指向任何对象。若引用的值为null,则该引用不能再进行任何点操作了,若操作则发生NullPointerException空指针异常。

  1. 补充:

1. 成员变量和局部变量是可以同名的,但是使用的时候默认采取的是就近原则

2. 内存管理:由JVM管理

   - 堆:new出来的对象(包括成员变量)

   - 栈:局部变量(包括方法的参数)

   - 方法区:------------周五再讨论

3. 基本类型变量中装的是具体的数,引用类型变量中装的是堆中对象的地址

Ooday03

1. 引用类型数组:

   - 给引用类型数组的元素赋值时,必须得new个对象

   - 若想访问对象的数据/调用方法,需要通过数组元素去打点

 

2. 继承:

   - 作用:代码复用

   - 通过extends来实现继承

   - 超类/父类:共有的属性和行为

     派生类/子类:特有的属性和行为

   - 派生类可以访问派生类的+超类的,而超类不能访问派生类的

   - 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----单一继承

   - 具有传递性

   - java规定:构造派生类之前必须先构造超类

   - 在派生类构造方法中若没有调用超类构造方法,则默认super()调超类无参构造方法

   - 在派生类构造方法中若自己调用了超类构造方法,则不再默认提供

       > 注意:super()调用超类构造方法,必须位于派生类构造方法的第一行

3. super:

指代当前对象的超类对象

   super的用法:

   - super.成员变量名------------------------访问超类的成员变量(一般不用,了解)

   - super.方法名()----------------------------调用超类的方法------------------明天下午讲

   - super()--------------------------------------调用超类的构造方法

Ooday04

1. 向上造型:

   - 超类型的引用指向派生类的对象

   - 能点出来什么,看引用的类型-------------这是规定,记住就可以了

2. 方法的重写(override/overriding):

重新写、覆盖

   - 发生在父子类中,方法名相同,参数列表相同

   - 重写方法被调用时,看对象的类型-------这是规定,记住就可以了

   - 重写需要遵循"两同两小一大"原则:-------了解,一般都是一模一样的

     - 两同:

       - 方法名相同

       - 参数列表相同

     - 两小:

       - 派生类方法的返回值类型小于或等于超类方法的

         - void和基本类型时,必须相同

         - 引用类型时,小于或等于

       - 派生类方法抛出的异常小于或等于超类方法的---------------API时讲

     - 一大:

       - 派生类方法的访问权限大于或等于超类方法的---------------下次课讲

3. 重写与重载的区别:

   - 重写(override/overriding):

     - 发生在父子类中,方法名相同,参数列表相同

   - 重载(overload/overloading):

     - 发生在同一类中,方法名相同,参数列表不同

  1. 补充:

1. 继承要符合is(是)的关系

2. 超类的意义:

   - 封装共有的属性和行为------------------代码复用

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值