Java复习总纲领

自己总结,有问题的地方,欢迎提出,共同进步!

 

一、JAVA基础:
知识点明细
java介绍 
java变量 
命名规范项目,包,类,变量,常量
数据类型基本    引用
运算符算数,比较,逻辑,赋值,自增自减,位
if     switch分支语句
for   while    do-while循环语句
类和对象概念
方法定义四种定义和调用
static静态属性,静态方法
1、java介绍
2、java变量
  数据类型 变量名;
  如:int i;
3、命名规范:
  (1)驼峰命名法:首单词字母小写,其余单词首字母大写。(变量,常量,方法名)
  (2)类,项目名单词首字母大写
  (3)包:域名.公司名.项目名
4、数据类型:
  (1)基本类型:八种
    byte   int   short   long   float   double   char   boolean
  (2)引用类型:类,接口,数组
5、运算符:
  (1)算数运算符:+ - * / %
  (2)比较运算符:> < >= <= !=
  (3)逻辑运算符:&& || !
  (4)赋值运算符:==
  (5)自增自减:++ --
  (6)位运算:
  (7)三目运算符: ?:
6、分支语句:
  (1)if语句
    if(){}
    if(){}else{}
    if(){}else if(){}else if(){}......else{}
  (2)switch语句
    switch()
    {
    case xx:break;
    case xx:break;
    case xx:break;
    ......
    default xx:break;
    }
7、循环语句:
  (1)for循环
    for(;;){}
      两个;;必须写,如果只写两个;;便是死循环
  (2)while循环
    while(){}
    ()内是循环条件,如果是true则是死循环
  (3)do-while循环
    do{}while();
  ()后要加;,至少要循环一次,()内是循环条件,如果是true则是死循环
8、类和对象:
  类:把对象的共有部分抽象出来,封装在类中。是引用类型。
  class 类名{
  变量;
  方法;
  }
  对象:类的实例。
  对象是类的实例,类是对象的模板。
 
9、方法四种定义及调用:
  (1)定义
    <1>无参数,无返回值
      访问修饰符 void 方法名(){}
      生活实例:人的睡觉的方法
    <2>无参数,有返回值
      访问修饰符 返回值类型 方法名(){}
      生活实例:得到某人的姓名
    <3>有参数,无返回值
      访问修饰符 void 方法名(参数列表){}
      生活实例:人吃东西
    <4>有参数,有返回值
      访问修饰符 返回值类型 方法名(参数列表){}
      生活实例:花钱买东西
  (2)调用
    <1>方法被static修饰:
      类名/对象.方法名();
    <2>方法为被static修饰:
      对象.方法名();
10、static(静态的):
  <1>static可以用来修饰属性,或方法(被修饰的方法称为类方法)。
    被修饰的属性和方法的调用:类名/对象.属性/方法()
  <2>static静态代码块:static{}
    只要调用类中的内容,静态代码块都会执行,切在构造方法前面
 
二、Java面向对象(要有自己的理解,不能只靠背)
 
知识点明细难度面试
封装概念:private get set
this(属性 构造 普通方法)
重载(方法 构造方法)
简单必考
继承关键:extends super final
特点:单继承 多层次
先实例化父类
再实例化子类
重写: 普通方法
类与类:继承
必考
接口关键:interface Implements
特点:属性 构造(没)
抽象方法
类和接口:多实现
必考
多态Public void 方法(接口/父类 对象名){ }必考
抽象类定义:class abstract 类名
属性:变量/常量
构造:有 不能实例化
方法:普通 /抽象
必考
集合List:ArrayList LinkedList
Set:HashSet TreeSet
Map:HashMap HashTable

遍历:for foreach iterator
必考
异常try catch finally  
 
1、封装:
  (1)把对象的属性和行为(方法)结合成一个独立的整体,并尽可能隐藏内部细节。
  (2)封装的对象的属性最好用private修饰,对属性的调用可以用set和get方法。
  (3)this关键字:
     <1>当用到本类的对象时,可以用this代替。
    <2>可以在本类的构造方法A中调用其它的构造方法B,但是要在构造A的代码的第一句。
  (4)构造方法:public 类名{}
    <1>初始化(把变量赋为默认值),实例化对象(类创建对象的过程)给对象的某些属性赋值(对应的要有构造方法)。
    <2>调用:实例化时自动调用:类名 对象名=new 类名();
    <3>每个类中至少都会有一个构造方法,如果没有明确,系统则提供一个无参的,方法体为空的构造,若明确,系统则不再提供
  (5)重载:
    <1>一个类中有方法名相同,参数列表不同(参数个数,参数类型,参数顺序不同)的方法叫方法的重载。
    <2>重载与访问修饰符和返回值(有的方法无返回值)无关。
    <3>构造方法也可以重载。
2、继承:
  (1)继承关键字:extends,适用于类与类之间,接口与接口之间。
  (2)特点:
    <1>类与类之间单继承,多层次,接口与接口之间多继承。
    <2>子类继承父类后,若实例化子类,那必定先实例化父类,再实例化子类。
  (3)重写:
    <1>子类继承父类后,对继承过来的方法感到不满意,需要对其进行改写叫方法的重写。
    <2>重写的前提是要继承,所以重写是对从父类里继承过来的方法,没有继承过来不能重写。
    <3>重写要求:方法名和参数列表必须相同。而访问修饰符不能比父类的更“严厉”,返回值一样或是其子类。
  (4)super关键字:
    <1>当子类需要父类的对象时,可以用super代替。
    <2>在子类构造方法中,调用父类构造方法,但是要在子类构造的代码第一行。
  (5)final:
    <1>如果某类,某方法不想被继承,设定某个常量则用final修饰。
    <2>特点:修饰属性则是常量,修饰方法和类不能被继承。
 
3、接口:
  (1)关键字:声明接口:interface,实现接口:implements
  (2)特点:
    <0>语法
    <1>属性是常量,默认用public static final修饰
    <2>方法是抽象方法,默认用public abstract修饰
    <3>没有构造方法
    <4>不能实例化
    <5>实现类必须实现接口的所有方法
    <6>接口与接口是实现,类与接口是继承
  (3)类实现接口(多实现),接口继承接口(多继承)。
 
4、多态:
  (1)概念:某个对象在不同的时刻表现出的多种状态。
      核心:方法传入不同的值调用不同的方法。
  (2)两种实现:
    <1>父类或接口作为参数(体现核心)
    <2>父类或接口作为返回值
  (3)public 返回值类型 方法名(父类/接口 对象名){}
    生活实例:老师布置作业,每个学生做的作业的结果都不同。
 
5、抽象类:
  (1)定义:public abstract 类名{}
  (2)特点:
    <0>语法
    <1>可以有常量也可以有变量
    <2>可以有普通方法,也可以有抽象方法
    <3>有构造方法
    <4>不能实例化
    <5>子类继承抽象类,要实现其所有的抽象方法。
 
6、集合:
  (1)集合有了两大类:
    <1>Collection(单列集合):
      List(有序,不唯一):
        ArrayList:底层数组,查询快,增删慢,线程不安全,效率高
        LinkedList:底层链表,查询慢,增删快,前程不安全,效率高
      Set(无序,唯一):
        HashSet:底层哈希表
        TreeSet:底层红黑树(一种自平衡的二叉树)
    <2>Map(双列集合):
      HashMap:底层哈希表
      TreeMap:底层红黑树(一种自平衡的二叉树)
 
  (2)ArrayList与LinkedList区别:
    ArrayList与LinkedList除了底层的区别,LinkedList比ArrayList多六个方法:
    setFirst() getFirst() removeFirst() setLast() getLast() removeLast()
 
  (3)遍历:
    <1>for循环:前提:集合有序(由于for循环根据下标来取值,如果无序,则无法取到下标)
    <2>for-each(增强for):集合有序无序都可以。(for-each其实就是用来代替迭代器,用法比迭代器简单的多)
    <3>迭代器(Iterator):集合有序无序都可以。
 
7、异常:
  (1)格式:
    <1>try{
      //可能发生异常的代码块
    }
    catch(Exception e){
    //捕捉到异常并处理代码块
    }
    finally{ //没有finally代码块也可以
      //发不发生都要执行的代码块
      //一般写关闭流等代码
    }
    <2>声明一个异常抛出:
      当有异常时:throw new Exception("异常原因");
      此时方法要抛出异常:throws Exception
  (2)当catch中有return情况,代码的执行过程:
    <1>如果不发生异常:执行try和finally
    <2>如果发生异常:先执行try,在执行catch的return之前,在执行finally,最后执行catch的return。
 
三、java扩展点 加分点
知识点明细难度面试
文件流IO字节流2
字符流2
缓存流4
转换流
线程 
网络编程 几率很小
1、文件IO流:
InputStream       FileInputStream      BufferInputStream
OutputStream      FileOutputStream    BufferOutputStream
Reader           FileReader       BufferReader
Writer        FileWriter        BufferWriter
牢记他们之间的转换,熟练运用。(具体方法就不再写了)
2、多线程:
  (1)线程的基本实现:
    <1>类A继承Thread类,重写run方法,在测试类中实例化类A的对象a,让a调用start()方法
    <2>类A实现Runnable接口,重写run方法,在测试类中实例化类A的对象a,在实例化Thread的对象t,让a作为参数传入t的构造方 法中,让t调用start()方法。(常用这种方法实现线程)
  (2)实现线程的两种方法的优缺点:
    <1>Java是单继承,如果继承Thread类,就不能继承其他的类。而Java可以多实现。适合资源共享。
    <2>继承Thread类实现线程要比实现Runnable接口的代码简洁。
  (3)线程常用的方法:
    <1>stop():强制终止线程(不推荐使用)
    <2>sleep():使线程休眠一段时间在执行
    <3>join():线程a调用此方法可以理解为线程a霸占资源,等线程a执行完之后其他线程再执行
    <4>yield():线程a调用此方法可以理解为线程a抢到资源后,礼让出去,然后再与其他线程一起抢夺资源。
    <5>setPriority():设置线程的优先级(0-10),默认为5,
    注:优先级越高,抢到的资源不一定越多,只是抢到资源的几率大而已
  (4)线程的生命周期
      新建---->就绪--->运行--->阻塞--->死亡
    <1>新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态
    <2>就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件
    <3>运行:当就绪的线程被调度并获得处理器资源时,便进入运行状态, run()方法定义了线程的操作和功能
    <4>阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出 CPU 并临时中止自己的执行,进入阻塞状态
    <5>死亡:线程完成了它的全部工作或线程被提前强制性地中止  
  (5)线程终止的原因:
    <1>运行完毕,线程终止
    <2>出现异常,线程终止
    <3>使用stop()方法强制线程终止
  (6)线程同步:
    <1>同步原因
      当多个线程争夺同一份资源时,执行的不确定 性引起执行结果的不稳定,比如,多个线程同时卖票,可能就会同时卖出同一张票,这样就不合理了。
    <2>解决方法:
      使用synchronized关键字,对多条操作共享数据的语句,只能让一个线程都执行完,在执行过程中,其他线程不可以参与执行。
  (7)死锁:
    <1>出现原因:
      不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁
    <2>解决方法:
      1)专门的算法
      2)尽量使用完后,释放资源。减少同步资源的定义。
3、网络编程(套接字 socket):
  (1)查看ip:在命令提示符里输入ipconfig回车即可
  (2)查看端口:在命令提示符里输入netstat -ano回车即可
  (3)查看正在使用的端口:在命令提示符里输入tasklist|findstr "正在使用的端口号"回车即可
  (4)TCP:
    <1>特点:
      1)基于字节流传输层
      2)面向连接
      3)点对点通信
      4)高可靠性
      5)实时,快速
    <2>缺点:
      占用系统资源多,效率低
      比如现实世界的打电话。
    <3>TCP的三次握手:
       第一次握手:建立连接时,客户端发送syn包
       第二次握手:服务器收到数据包
           第三次握手:客户端收到服务器
  (5)UDP特点:
    <1>非面向连接
    <2>传输不可靠
    <3>数据可能丢失
    <4>占用系统资源少,效率高
     比如现实世界的发短信。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/zxhyzyzs/p/5804558.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值