关于java:一文回顾-Java-入门知识下

5次阅读

共计 3566 个字符,预计需要花费 9 分钟才能阅读完成。

前言

这是 举荐学 java 系列的第三篇,这节的内容很多,对于小白来说,都是新概念,要熟练掌握的话,须要大量的练习。本节内容的导图会很大,小编会在解说每个知识点之前独自提供导图,当然全图也有,除此之外,这节内容会波及很多零碎的 API,而咱们要学会看 jdk 文档,所以也会给大家提供 jdk1.8 的帮忙文档,下载见文末。

有图有假相就不多说了,知识点根本是上一篇的两倍。

设计模式

Java 中的 23 种设计模式在开发中利用很多,不仅仅是咱们平时的利用开发,还包含一些框架和零碎源码中都有利用,具体的内容不能生吞活剥,而是在教训中去领会这个过程,思考利用设计模式的机会和场景。

其中单例设计模式最罕用,也最简略,简直能够说凡是用 Java 语言开发的程序,都会用到单例设计模式。没有必要死磕概念,重要的是了解其思维,随着开发教训的累积,就会缓缓体悟到其中的奥秘!

/**
 * 懒汉式
 */
public class SingletonLazy {

    private static SingletonLazy singletonHungry;

    private SingletonLazy() {}

    public static SingletonLazy getInstance() {if (singletonHungry == null) {singletonHungry = new SingletonLazy();
        }

        return singletonHungry;
    }

}
/**
 * 饿汉式
 */
public class SingletonHungry {private static SingletonHungry singletonHungry = new SingletonHungry();

    private SingletonHungry() {}

    public static SingletonHungry getInstance() {return singletonHungry;}

}

多态

多态 是 Java 面向对象中的三大特点之一,上一篇中讲了 封装 继承,多态是本节的第一重点内容。其要表白的意思简而言之:一种事务的多种状态展示模式就叫多态。

形象起来不好了解,举例理论场景比拟好了解:

比方咱们软件开发者自身就是形象一类,因为其余行业的人了解起来就不容易,而且还分不清楚,你到底是开发啥的?(是前端开发还是后端开发?是 Java 开发还是 PHP 开发?是零碎层开发还是游戏开发?等等),这个概念总体给人是一种形象的,但还大略晓得这个词具备哪些 共性 ,而这里的 共性 就是形象进去的具体能力,Java 中叫形象办法,因为每个具体的开发者所具备的同一个办法外部能力体现不同,这就是具体子类要实现的。这里的子类能够了解为 java 开发工程师PHP 开发工程师 等等。

在咱们理论开发中,依据业务场景,咱们要本人去提取抽象类,进而实现拆散的能力,而所分离出来的多个子类,具备不同的表现形式,就是多种状态的,故名 多态

关键字 instanceof

置信你能明确,咱们抽离进去了抽象类(父类),那么子类的体现各异,而父类如何判断一个子类是否是它的子类呢?这就是关键字 instanceof 的用途。

学习多态可能听到最多的一句话就是:父类援用指向子类对象

什么叫 援用 ,老版本教材中叫做 句柄 ,新点的教程都称为 援用,其实就是创立的对象的变量,比方:

// programmer 就是句柄,也叫援用
Programmer programmer = new Programmer();

再举个父类援用指向子类对象的例子:

// new 是用来创建对象的,上一节大家都用过
Programmer javaProgrammer = new JavaProgrammer();

interface

这块内容大家看导图,记住用法和为什么用。理论开发中,定义接口的场景太多了,必须熟练掌握应用规定。

小结

多态 的内容是重中之重,必须搞明确上面这几个概念和为什么?这也是常见的面试题。

  1. Java 中的多态你是怎么了解的?
  2. 你对抽象类怎么了解?抽象类有什么特点?
  3. Java 为什么会有接口(interface)?
  4. 接口的应用规定和接口中办法的定义
  5. 外部类的利用场景?

异样

这块内容当初开发中依附 IDE 的只能提醒曾经能够搞定了,更多的利用状况是本人开发 SDK 或者封装组件时候的解决,明确出现异常时,程序的执行程序,以及父类办法抛出异样,子类重写时抛异样的规定。

包装类

  • 明确为什么要有包装类?
  • 熟练掌握装箱与拆箱的规定和类型转换办法的应用

导图中提到的转换方法,开发中常常用到,大家要多练习,最起码根本数据类型要全副尝试一次。

以下代码是本节的重点:

private static void compareDemo() {

    Integer num1 = 20;

    /**
     * 相当于执行了 Integer num2 = Integer.valueOf(2021);
     *
     * Double 和 Float 不具备这个个性(常量池)*/
    Integer num2 = 2021;

    Integer num3 = 20;
    Integer num4 = 2021;

    System.out.println("num1 与 20 相等吗" + (num1 == 20));
    // 主动拆箱比拟
    System.out.println("num2 与 2021 相等吗" + (num2 == 2021));

    /**
     * 后果不同的起因:Integer 在 -128~127 之间时,参加两个 Integer 对象比拟前会主动拆箱,超过这个范畴则不会
     */
    System.out.println("num1 与 num3 相等吗" + (num1 == num3)); // 30 数字在比拟
    System.out.println("num2 与 num4 相等吗" + (num2 == num4)); // 对象在比拟
}

字符串

这部分内容每个 Java 开发者必须熟练掌握,字符串的 截取、替换、匹配、大小写转换、查找、拼接 等是最最罕用的操作,导图中列出来的办法必须纯熟使用。

汇合

导图中的重点内容都有标记,是属于重中之重,Java 中的汇合内容也是面试问的最多的知识点之一,必须牢记于心,纯熟使用。ArrayListHashMap 是开发中最罕用到的汇合,必须要明确它们各自的特点和罕用办法以及特有办法,大多数场景是两者联合来应用,比方:条件过滤操作等。

线程

首先要搞清楚程序执行的默认程序和主线程之间的关系;其次要明确当有多个线程的时候,程序又是如何执行的;这两个问题搞清楚后,你就会明确什么时候须要创立线程了。

知识点(同样是面试题):

  • 创立线程的形式
  • 线程的执行程序
  • 对 synchronized 关键字的了解
  • 线程死锁问题

IO

这部分内容理论开发中与网络申请联合应用,比方下载文件、上传文件、批改头像等,这里的具体 API 应用都是最原生的,也就是底层实现逻辑是这样的,往往理论开发中咱们会应用他人封装的框架,看不到最外面的 API 实现,框架会暴漏给咱们一些办法,兴许就是一句话就实现了下载或者上传;然而有些场景还是须要咱们手动撸一遍,所以这些原理的外围代码还是要把握,偶然面试也会让你口述流程。

以下代码是对于 File 类创立文件的三种形式,依据业务都有可能会用到:

/**
 * 创立文件 File 的几种形式
 *
 * @param parentPath   前端门路
 * @param fileNamePath 后端门路
 */
private static void createFile(String parentPath, String fileNamePath) {File file1 = new File(parentPath + "\\" + fileNamePath);
    System.out.println("file1 is exit ?" + file1.exists());

    File file2 = new File(parentPath, fileNamePath);
    System.out.println("file2 is exit ?" + file2.exists());

    File file3 = new File(new File(parentPath), fileNamePath);
    System.out.println("file3 is exit ?" + file3.exists());
}

总结

jdk1.8 帮忙文档下载:https://pan.baidu.com/s/12JHAlmwZbtBiJlPNZPlf3Q 取明码:d5ya(这个文档是小编从网上下的,外面如有其余内容请勿置信哈)

这三篇内容,对于小白倡议 15 天学完,必须操之过急,这就是 Java 最根底的货色,不论是前面要接触的如许牛逼的框架,底层都离不开根底的撑持。

补充内容:Java 中的枚举(Enum)

绝对比较简单,自行搜寻相熟写法,后续的我的项目篇章就会利用。

小编特意创立了一个公众号:举荐学 java,会分享与 java 相干的内容,并且以原创为主,欢送大家搜寻关注(关注即送小编筛选的精品视频教程),一起学 Java!

正文完
 0