java基础知识点整理

      这篇博文主要是将java基础进行整理,整理出大概的轮廓,然后我会针对每个不懂的点进行分析,增加自身的印象,大家有任何好的建议可以提出,毕竟刚刚进入这个行业,同时如果有任何错误的地方希望纠正,谢谢。


java基本概念

       1. 保留字和关键字
         关键字--指电脑语言中有特别意义的标识符
            用于类的接口声明:class extends implements interface
            包引入和包声明:import package
            数据类型:boolean byte char short int long float double
            某些数据类型的可先值:false true null
            流程控制:break case continue default for do while if else return switch
            异常处理:catch finally throw throws try
            修饰符:abstract final native private protected public static synchronized transient volatile
            操作符:instanceof
            创建对象:new
            引用:this super
            方法返回类型:void
        保留字--在升级版本可能成为关键字
            byValue,cast,false,future,generic,inner,operator,outer,rest,true,var,goto,const,null
    2. JDK,JRE,JVM,API
         JVM--java虚拟机,用于执行类文件
         JRE--java运行时环境
         JDK--java开发工具包;包括bin,include,lib,jre
         API--应用程序接口
    3. java的跨平台原理
         通过和c语言进行比较,将程序区分为编译和运行;c语言的编译过程和运行
         过程都是平台相关性的,即是编译性语言;而java则是将源文件编译成class
         文件,通过jvm消除平台相关性,既是解释性语言;实现了java的跨平台


数据类型

     1. 基本数据类型和引用数据类型
         数据类型--对内存的一种抽象的表达方式
         基本数据类型和引用数据类型区别:
             主要区别在存储方式的不同;基本数据类型的数据是存储在栈内,而
             引用数据类型则是在栈内存储引用,数据存储在堆内
    2. 自动类型转换和强制类型转换
       自动类型转换过程:byte,char-->short-->int-->long-->float-->double
       自动类型转换规则:多数据类型运算时默认转换为数据类型最大的,实数常量
                        默认为double,而整数默认为int
       问题:自动类型转换发生原因以及规则,强制类型转换过程
    3. 基本类型和包装类型
        包装类型产生原因:java是基于对象的语言,可以扩大基本类型的操作
        自动装包/拆包过程--有编译器实现基本类型和包装类型之间的转换
        缓存机制--Integer数据小于127具有缓存作用,直接访问数据而不是通过引用
                  (注意每个数据都具有缓存机制)


面向对象特性

     1. 面向对象和面向过程比较
      面向过程:分析解决问题所需的步骤并通过函数将步骤进行实现
      面向对象:指将对象作为程序的基本单元,并封装程序和数据
      对象:指类的实例,具有状态和行为
      类:描述了一类对象的状态和行为
         注意:通过jvm了解对象的创建和销毁过程
   2. 面向对象特性
      (1)抽象:忽略与当前目标无关的方面而充分关注与当前目标相关的方面
      (2)封装:将抽象性接口的实体细节进行隐藏的方式
      (3)继承:是联结类的层级模型并明确描述共性
      (4)多态:允许通过类对象对同一消息做出不同响应,包括参数化多态和包含性多态
         <1>方法重载和重写以及动态链接
             重载:以统一方式处理不同类型数据的方式,指同名函数具有不同参数列表
             重写:指在类层次结构中子类和父类具有相同标识的方法
                  注:方法签名--用于区分不同方法的标识符
                      包括方法名;方法参数;方法返回值,而重载的标识则是方法名和参数
             方法重载和重写区别
                 重载属于静态多态性,而重写则是动态多态性
                 (注:普通方法属于动态多态性,但是没有涉及继承时重载属于静态多态)
             java绑定机制
                静态绑定--指在编译过程中对方法进行绑定,包括final,static,private和构造方法
                动态绑定--在运行时根据对象类型进行绑定                
   3. 接口和抽象类
          接口--一系列方法的声明,是一些方法特征的集合
          抽象类--用来表征我们在对问题领域进行分析,设计中得出的抽象概念
          区别:抽象类表示一类事物的高度聚合;而接口则是定义了行为规范
   4. 代码块--包括普通代码块,构造代码块,静态代码块,同步代码块
        注:构造代码块优于构造方法执行
   5. 内部类--包括成员内部类、静态嵌套类、方法内部类、匿名内部类


异常

    1. 异常体系--异常是指用于传送系统问题,故障和未按规定执行的动作的相关信息
           异常超类是Throwable;包括error和exception
           error和exception区别
              error--指jvm出现不可恢复的错误,只能避免
              exception--指程序中操作不当出现的非正常情况
    2. 异常分类--包括编译性异常和运行时异常
    3. 异常捕获-- try-catch语句
    4. 异常抛出-- thorw语句和throws语句
    注:final,finally,finalize的区别.
       final:    修饰符,final类不能有子类,final方法不能被子类覆盖,final变量表示常量,只能赋值一次.
       finally:  语句块,必须和try连用.特点,无论是否有异常,最终都会执行finally代码块,目的:释放资源.
       finalize: Object类中的方法,当某一个对象被垃圾回收器(GC),就会调用该对象的finalize方法


线程

     1. 进程和线程
       并行--指两个或多个事件在同一时刻发生
       并发--指两个或多个事件在同一时间段发生
       进程--指内存中运行的应用程序,有着独立的内存空间
       线程--指进程的一个执行任务,堆空间是共享的
    2. 线程生命周期
         线程状态(java.lang.Thread.State)
             NEW--线程创建,未启动
             RUNNABLE--线程处于就绪或运行状态
             BLOCKED--线程处于线程池并等待进入临界区
             WAITING--线程等待被唤醒
             TIMED_WAITING--线程处于有时间限制的等待被唤醒状态
             TERMINATED--线程处理完毕,处于死亡状态
        多线程技术产生原因:
            解决处理器单元内多个线程执行的问题,减少处理器单元的闲置时间
    3. 线程同步


IO/NIO

    1. io流体系--使用装饰模式进行功能叠加
        <1>包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)
        <2>以功能区分:文件流,内存流,转换流,缓冲流,打印流,
                      扫描器,管道流,合并流,对象流,标准输入输出
   
   注: NIO包中定义了作为数据容器的缓冲区
   问: 对象的序列化--将对象值得数据信息以二进制格式进行保存
       序列化目的--方便网络传输以及将对象信息持久化在磁盘中
       实现序列化--实现Serializable接口


集合

     1. 集合体系
       <1>collection
           (1)List
               ArrayList--基于数组的List接口实现
               LinkedList--基于链表的List接口实现
           (2)Set
               HashSet--基于哈希表的Set接口实现
               TreeSet--基于红黑树的Set接口实现
       <2>Map
            HashMap--基于哈希表的Map接口实现
            HashTable--同步的基于哈希表的Map接口实现
            TreeMap--基于红黑树的Map接口实现
    2. 迭代器--即集合类具有迭代功能的原因
         分析:通过在集合类内部增加实现Iterator接口的内部类
              并通过iterator方法返回当前迭代器以实现迭代功能
    3. 问题
        <1>集合以接口进行划分原因和作用
        <2>集合基于数据结构的源码实现


网络编程

     1. 网络基础
         IP地址--通过IP协议提供的统一地址格式为主机分配逻辑地址
         端口--用于区分不同进程
         URL--统一资源定位符
         套接字--包括源IP地址及其端口和目标IP地址及其端口,标识客户端请求服务器和服务
    2. 网络编程(ServerSocket和Socket)








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值