Java初学总结篇

基本程序设计结构

1. 整形

  • int型 4字节
  • short型 2字节
  • long型 8字节(数值后有后缀L或l)
  • byte型 1字节

2. 浮点类型

  • float型 4字节(数值后有后缀F或f)
  • double型 8字节

3. char类型

  • char类型的字面量值要用单引号括起来

4. boolean类型

  • boolean类型有两个值:false和ture,用来判断逻辑条件。
  • 整型值和boolean值之间不能进行相互转换。

5. 类型转换

  • 强制类型转换
    • double x = 9.997; int nx = (int)x;
    • int nx = (int)Mash.round(x); 对浮点数进行舍入运算,以便于得到最接近的整数。

6.字符串

  • String类的substring(开始索引,结束索引)方法可以从较大字符串中提取子串
  • 运算符+可以实现字符串的拼接
  • 字符串不可变
  • s.equalts(t)可以检测s字符串与t字符串是否相等

7.输入

  • 首先需要导包:使用import关键字
  • 构造一个Scanner对象:Scanner in = new Scanner(System.in);
  • 然后使用变量来接收输入值:
  • String name = in.nextLine();此方法可以输入空格
  • String name = in.next();此方法不可以输入空格
  • int age = in.nextInt();其他数据类型类似

8.条件语句

  • if(条件判断){语句}else if(){语句} else{语句} 条件为真时执行语句块,若为假,判断下一条件,最后全为假则执行最后一个不需判断的语句块
  • while(条件){语句};条件为真,执行语句块并再次进行判断;
  • do{语句}while(条件);先执行一次语句块,再判断条件,若为真,则执行语句块并再次进行判断;
  • for(初始化语句;条件;末尾语句){语句};先进行初始化且只有一次,在进行条件判断,若为真,则执行语句,在执行末尾语句,在进行条件判断;
  • for(变量:数组){每一次给变量赋值一个新的数组元素};
  • switch(n){ case 1:语句;break;…default :语句;break;} 当case后的值与n相同时执行该语句,若无,则执行default后的语句;

9.中断语句

  • break:结束当前循环
  • 标签break:执行后会跳转到带标签的语句块末尾
  • continue:结束当前循环的后续部分,开始下一循环,不会跳过for循环的末尾语句

对象与类

1.类

  • 类是构造对象的模板或蓝图
  • 由类构造对象的过程称为创建类的实例
  • 类之间的关系
    • 依赖:如果一个类的方法使用或操纵另一个类的对象,则该类依赖于另一个类
    • 聚合:一个类的对象包含另一个类的对象
    • 继承:一个新类派生于一个已存在的类

2.对象

  • 根据类所构造的
  • 对象的行为是用可调用的方法来定义的
  • 要想使用对象必须构造对象

3.var

  • 定义局部变量时,若不明确变量的类型,可以var定义,可以从变量初值推导出变量类型

4.private

  • 使用该关键字定义方法时,会将定义方法私有化,即仅限于本类使用

5.final

  • 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
  • 当用final修改类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。
  • 当用final修改变量时,该变量成为常量,无法被修改。

6.static

  • 修饰成员变量时,该类所创建的对象所拥有的的该数据统一
  • 修饰代码块时,调用此类时,代码只会执行唯一的一次
  • 修饰方法时,可通过类名称直接调用方法

7.重载

  • 相同方法名,不同方法参数,可实现同名不同用

继承

1.extends

  • 使用该关键字后表明正在构造的新类派生于一个已存在的类
  • 这个已存在的类被称为超类,基类或父类
  • 新类称为子类,派生类或孩子类
  • 子类自动继承父类中的方法

2.覆盖方法

  • 当父类中的有些方法对子类并不适用时,子类可以覆盖这个方法
  • 当子类覆盖父类的方法之后又想调用父类的原方法,可使用关键字super来调用

3.多态

  • 将子类对象赋值给超类变量
  • 定义一个父类的子类对象,只可以调用父类方法,子类特有的方法不可用
  • 向上转型 :一般都是正确的,
  • 父类 变量名 = new 子类;
  • 向下转型:有可能出错:
  • 父类 变量名(a) = new 子类(前提);子类 变量名 = (父类)变量名(a)

4.abstract

  • abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
  • abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

5.Object

  • Object类是Java所有类的始祖
  • 可以使用Object类型的变量引用任何类型的对象
  • equals方法用于检测一个对象是否等于另一个对象
  • toSring方法会返回表示对象值的一个字符串

6.对象包装器与自动装箱

  • 所有的基本类型都有一个与之对应的类,这些类称之为包装器
  • Integer,Long,Float,Double,Short,Byte,Character,Boolean
  • 包装器类是不可变的,一旦构造就不允许更改其中的值
  • 包装器类不能派生子类

7. ···

  • 方法的参数个数可以不确定,用"…"定义
  • 在方法中定义可变参数后,我们可以像操作数组一样操作该参数
  • 若该方法除了可变参数还有其它参数,可变参数必须放到最后
  • 可变参数可以兼容数组参数,但数组参数无法兼容可变参数

接口与内部类

1.接口

  • 定义接口需要使用 interface 关键字
  • 接口不是类,不能实例化
  • 接口中的所有方法默认为public方法
  • 接口中变量默认修饰符为public static final
  • 接口可以声明变量,但变量必须引用实现了这个接口的类对象
  • 每个类可以实现多个接口

2.内部类

  • 内部类是定义在另一个类中的类
  • 普通内部类对象依赖外部类对象而存在
  • 静态内部类也是作为一个外部类的静态成员而存在,创建一个类的静态内部类对象不需要依赖其外部类对象,静态内部类中也无法访问外部类的非静态成员
  • 成员内部类定义在另一个类中。成员内部类可以无条件访问外部类的属性和方法,但是外部类想要访问内部类属性或方法时,必须要创建一个内部类对象,然后通过该对象访问内部类的属性或方法。
  • 局部内部类存在于方法中。局部内部类的访问权限仅限于方法或作用域内。局部内部类就像局部变量一样,前面不能访问修饰符以及static修饰符

3.泛型

  • 泛型类型在逻辑上可以看成是多个不同的类型,实际上都是相同的基本类型
  • 泛指所有参数类型,用于不确定使用的参数类型范围时
  • 可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法
  • 不能实例化类型变量
  • 不能构造泛型数组

集合

1.HashSet

  • 不允许有重复的值
  • 允许有NULL值
  • 无序存储

2.TreeSet

  • 保证了集合元素处于排序状态

3.ArrayList

  • 通过一个数组去保存数据的
  • 有索引
  • 查询快,增删慢

4.LinkedList

  • 双向链表实现的存储
  • 无索引
  • 查询慢,增删快

5.HashMap

  • 同时存储两个元素key&value
  • 数组集合链表实现的存储
  • 无序存储
  • 同步,效率高
  • 可以存储null
  • key不可重复,value可重复
  • key相当于数组的索引,通过key来查询value

6.Hashtable

  • 与HashMap类似
  • 同步,效率低
  • 不可以存储null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值