Java学习笔记-Java基础

特点:
· 面向对象
· 静态语言
    编译时期就能够知道数据类型,运行前就能检查类型正确性,类型一旦确定就不可再更改
· 跨平台
    可以在任何带有JVM的平台运行 编译成.class -> 打包成jar
· 健壮性
    Java的强类型机制、异常处理、垃圾的自动收集等是其健壮性的重要保证

JDK
· 开发环境。称为Java开发包或Java开发工具,包括Java运行环境、Java工具、Java核心类库

JRE
· 运行环境。JDK已经内置了JRE,但JDK包含了许多与运行无关的内容,占用空间较大


数据类型(四类八种):
· 整数型
byte:1byte=8bits 初始值0
short:两个字节 16bits 初始值0
int:四个字节 32bit 初始值0
long:八个字节 64bit 初始值0L
· 浮点型
float:单精度浮点型 32bits 初始值0.0f
double:双精度浮点型 64bits 初始值0.0d
· 字符型
chat 16bits 初始值/u0000
· 布尔型
boolea 8bits 初始值false


命名:
· 变量名、方法名:驼峰命名Java大小写敏感
· 类名:首字母大写
· 包名:尽量小写


运算符:
· 赋值运算符 =
· 算术运算符 +-*/%
· 自增自减运算符 ++ --
· 比较运算符 > < >= <= == !=
· 逻辑运算符 & | ! ^
· 移位运算符 << >>
    追求极致性能
    移位操作符实际上支持的类型只有int和long
    编译器在对short、byte、char类型进行移位前,都会将其转换为int类型再操作
    移位操作符在JDK源码中,最常见的用法便是将其当成是乘 * 或者除 / 操作符使用 :对一个整型左移一位,相当于乘以2;右移一位,相当于除以2。
    <<:左移,二进制全部左移若干位,高位丢弃,低位补零
    >>:右移,二进制全部右移若干位,低位丢去,正数高位补零,负数高位补一
· 三元运算符


执行控制流程
· 条件语句
· 多分支语句
· 循环语句


面向过程
· 常见思维,符合思考习惯
· 可以将复杂的业务逻辑简单化,增强代码复用性
· 具有抽象、封装、继承、多态等特性
· 类
· 对象的创建
· 属性和方法
· 构造方法
    可以有多个构造方法
    没有定义构造方法,JVM会自动生成一个构造方法,默认的构造方法也被称为默认构造器或无参构造器
· 方法重载
    条件:
        · 方法名称必须相同
        · 参数列表必须不同
        · 方法的返回类型可以相同也可以不同
        · 仅仅是返回类型不同不足以称为方法的重载
        · 重载是发生在编译时,编译器可以根据参数的类型来选择使用哪个方法
· 方法重写
    重写的描述是对子类和父类
    原则:
        · 重写的方法必须和父类保持一致,包括方法名、参数列表、返回值
        · 重写的方法可以用@Override
        · 子类重写方法的访问权限不能低于父类中方法的访问权限


初始化
· 类的初始化
· 成员初始化
· 构造器初始化
初始化顺序
  静态属性初始化 静态方法块初始化 普通属性初始化 普通方法块初始化 构造方法初始化
· 数组初始化
冷门用法:可变参数列表


对象的销毁
    不需要手动管理对象的销毁,由Java虚拟机进行管理和销毁
对象作用域
    决定内部定义的变量名的可见性和生命周期

this和super
super指向父类的一个引用

访问控制权限(封装)
                        public protected default private
同一类                   y         y             y         y
同一包中的类        y         y             y
子类                       y         y
其他包中的类        y


继承
· 隐式继承Object父类。显示指定父类,则父类隐式继承Object
· 关键字extends
· 编译期绑定
· 紧耦合


多态
指同一行为具有多个不同的表现形式,是指一个类实例(对象)的相同方法在不同情况下具有不同的表现形式。


组合
· 将对象置于新类中
· 运行期绑定
· 松耦合


代理
· 定义:对其他对象提供一种代理以控制对这个对象的访问。
· 代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。


向上转型
· 通过子类对象转化为父类对象
向下转型
· 通过父类对象实例化子类对象


static
· 可用于修饰成员变量和方法
· 用static声明的成员变量为静态成员变量,也成为类变量。
· 类变量的生命周期和类相同,在整个应用程序执行期间都有效
· 用static修饰的方法称为静态方法
· 静态方法能够直接使用类名.方法名进行调用。
· 静态代码块,可用于类的初始化操作,随类的加载执行。


final
· 修饰类:表明这个类不能被继承。类中所有成员方法都会被隐式指定为final方法
· 修饰方法:表明这个方法不能被任何子类重写
· 修饰变量:
    · 修饰基本数据类型,表明数据类型的值不能被修改
    · 修饰引用类型,表明对其初始化之后便不能再让其指向另一个对象


接口和抽象类
接口 interface
· interface接口是一个完全抽象的类,不会提供任何方法的实现,只是会进行方法的定义
· 接口中只能使用两种访问修饰符,一种是public,对整个项目可见;
· 一种是default,缺省值,只具有包含的访问权限
· 接口只提供方法的定义,实现接口的类需提供方法的实现,一个接口可以有多个实现
· 接口不能被实例化,所以接口中没有构造方法
· 接口的实现需实现全部的方法,否则必须定义为抽象类

抽象类 abstract
· 如果一个类中有抽象方法,这个类一定是抽象类
· 抽象类中不一定只有抽象方法,抽象类中也可以有具体的方法
· 抽象类的约束不像接口那么严格,可以在抽象类中定义构造方法、抽象方法、普通属性、方法、静态属性和静态方法
· 抽象类和接口一样不能被实例化,实例化只能实力具体的类

异常
· runtimeException运行时异常:NullPointerException、ClassNotFoundException等
Exception
· 位于java.lang包下,顶级接口,继承于Throwable类
Throwable
· Java中所有错误errors和异常exception的父类
· 只有继承于Throwable的类或其子类才能够被抛出,带@throw注解的类也可以被抛出
· 除了RuntimeException和其子类,以及error和其子类,其他的所有异常都是checkedException

throws和throw
· throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。
· throw是具体向外抛出异常的动作,所以它是抛出一个异常实例。
· throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理
· throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。

try、finally、catch


Error
· 程序无法处理的错误,表示运行应用程序中较为严重问题。

内部类
· 将一个类的定义放在另一个类的内部

集合
· Iterable
顶层接口
· Collection 定义集合的约定
· List 继承collection接口,也是ArrayList、LinkedList等集合元素的父类
· Set 与List接口同级,同时也继承Collection接口。
· Queue 和List、Set接口并列的三大Collection的三大接口之一,处理之前保持元素的访问次序
· SortedSet接口直接继承于Set接口
    使用Comparable对元素进行自然排序或者使用Comparator在创建时对元素提供定制的排序规则
· Map 支持key-value存储的对象,不能包含重复的key,每个键最多映射一个值

ArrayList
实现了List接口的可扩容数组(动态数组)
· 可以实现所有可选择的列表操作,允许所有的元素,包括空值
    提供内部存储list的方法,能够完全替代Vector
· 非线程安全

Vector
· 基于数组实现
· 线程安全 对内部的每个方法都简单粗暴的上锁

LinkedList
双向链表,允许存储任何元素
· 所有的操作都可以是双向的
· 非线程安全

Stack
堆栈

HashSet
Set接口的实现类
· 非线程安全
· 支持fail-fast机制

TreeSet

LinkedHashSet

priorityQueue
队列

HashMap
· 利用哈希表原理来存储元素的集合
· 非线程安全
· 支持fail-fast机制

treeMap

LinkedHashMap

Hashtable
· 线程安全

IdentityHashMap

WeakHashMap


泛型

反射

枚举

I/O

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值