java基础入门知识大纲(新手必看,从HelloWorld到实现聊天功能的app)

JavaSE

Java语言

  • 注册博客(新手入门必不可少)

  • MarkDown语法学习(编写美观博客)

  • 简单的Dos命令(linux统统使用窗口)

  • 计算机语言发展:(更易更强)

    • 机器语言:二进制
    • 汇编语言:指令代替二进制,应用:机器人、逆向工程、病毒
    • 第三代语言:C语言、C++、JAVA(服务器开发)、Python(大数据分析、人工智能)、PHP(快速构建网站)、JavaScript
  • Java诞生 -- 通过JVM替代C--,

    • 1995年进攻了三个市场:
      • Java SE:核心,基础
      • Java ME:手机端,Android上运行的Java文件
      • Java EE:企业级开发,例如:web端、服务端后台
    • 2006年:Hadoop:大数据分析
  • JDK:Java Development Kit 开发者工具包

    • 配置环境变量:JAVAHOME、Path
  • JRE:Java Runtime Environment 运行环境

  • JVM:Java虚拟机(Write Once、Run AnyWhere)

HelloWorld

public class Hello(){
    public static void main(String[] args){
        System.out.println("hello world!");
    }
}
  • javac Hello.java 生成Hello.class

  • java Hello

  • 编译型语言

  • 解释型语言

  • IDEA

基础语法

  • 注释

    • 行内注释 //
    • 多行注释 /* */
    • 文档注释 /** */ javadoc生成帮助文档
  • 标识符

    • 关键字

    java基础入门知识大纲(新手必看,从HelloWorld到实现聊天功能的app)

    • 数据类型
      • 基本数据类型:
        • 整数
          • byte 1
          • short 2
          • int(默认) 4
          • long 8
          • 0b二进制
          • 0x十六进制
          • 0八进制
        • 浮点数
          • float 4
          • double(默认)8
        • 字符 char 2 (utf-8,ascii、Unicode2个字节)
          • \u0000 \b \n \r \t \‘ \\
        • 布尔值 boolean 1bit
      • 引用数据类型
        • 接口
        • 数组
  • 类型转换

    • 自动类型转换(低转高)
    • 强制类型转换(高转低)
  • 变量和常量

    • type varName [=value];

    • 作用域

      • 类变量(static)

      • 实例变量(类内)

      • 成员变量(方法内)

        生命周期 类加载 对象创建
        对比项 类(静态)变量 实例(成员)变量 局部变量
      • 常量 final MAX_A = 10;

      • 命名规范

        • 见名知意
        • 驼峰命名(变量,方法)
        • 类,首字母大写、驼峰命名
        • 常量:大写+下划线
        • 不要使用拼音命令
  • 运算符

    • 算数运算符
    • 幅值运算符 =、+=、%=
    • 关系运算符>、<、!=
    • 逻辑运算符 && || !
    • 位运算符& | ^ ~ >> << >>>无符号移位
    • 条件运算符 ?:
  • 包机制

    • 域名倒写
    • 防止命名冲突(防止命名冲突)
    • package(必须写在第一行)
    • import
  • JavaDoc

    • jdk帮助文档

    • javadoc xxx

      • @author
      • @Version
      • @Since(java版本支持)
      • @param
      • @return
      • @throw
    • javadoc -encoding UTF-8 -charset UTF-8 HelloWorld.java
      

流程控制

  • Scanner:用户交互 System.in
  • 顺序结构:程序默认的结构,自上而下地执行
  • 选择结构:if、if--else、switch(jdk7支持了String类型、case穿透现象,不加break会一直case)
  • 循环结构:while(尽量避免死循环)、do…while、for(案例:九九乘法表)、for-each(增强for循环)

break和continue

  • break:跳出循环
  • continue:终止当前循环,进入下一次循环
  • 带标签的continue(已废弃)
  • return

方法

  • 什么是方法? ---语句块的集合

  • 定义:

    修饰符 返回值 方法名(参数名){return 返回值;}
    
  • 方法调用:

    • 类.方法
    • 对象.方法
  • 方法重载:名字相同,参数列表不同

  • 命令行传参(给main方法传递参数,可以向args传递参数)

    java基础入门知识大纲(新手必看,从HelloWorld到实现聊天功能的app)

  • 可变长参数 …(必须放在最后一个参数)

  • 递归(自己调用自己,给自己一个出口)(面试常用)

数组

  • 定义 new int[5],{1,2,3,4,5},数组内部必须是一个类型
  • 使用,通过下标获取,增强for循环
  • 二维数组
  • Arrays工具类
  • 排序算法(西部开源)
    • 冒泡排序
    • 选择排序
    • 插入排序
    • 快速排序
    • 归并排序
    • 希尔排序
    • 堆排序
    • 基数排序

面向对象

  • 什么是面向对象? ---任何事物都是一个对象

  • 类和对象(类是对象的抽象:模板class、对象是类的具体)

  • 构造方法 :构造的重载、默认的无参构造(如果定义了有参构造,那么必须手动加上一个无参构造)

  • new 对象

    • 栈存放引用
    • 堆存放具体的对象
  • 封装--属性私有,get、set

  • 继承--extends,子类拥有父类的全部特性、方法重写、this、super(java是单继承)

  • 多态

    • 父类的引用指向子类的对象 Person person = new Student();
    • instanceof关键,如果匹配,可以进行类型之间的转换
  • 修饰符

    • public
    • protected
    • private
    • static
    • final
    • abstract
  • 接口interface

    • 约束,智能定义方法名
    • 子类实现接口,必须重写其中的方法
    • 只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
    • 接口比抽象类更抽象
    • 一个类可以实现多个接口
  • 内部类

    • 局部内部类
    • 静态内部类
    • 匿名内部类(方法里面)(重点)

异常

  • Throwable

    • Exception
      • 运行时异常
        • 1/0
        • ClassNotFound
        • NullPoint
        • UnKownType
        • BoundOuTException
      • 编译时异常(检查型异常)
    • Error
      • AWT错误
      • JVM错误
        • *
        • OutOfMemory
  • 五个关键字

    • try{}
    • catch(){}
    • finally{}
    • throw:手动抛出异常
    • throws:方法抛出异常
  • 自定义异常:继承Exception类即可

常用类

  • Object类

    • hashcode()
    • toString()
    • clone()
    • getClass()
    • notify()
    • wait()
    • equals()
  • Math类

  • Random类:生成随机数 UUID

  • File类

    • 创建文件
    • 查看文件
    • 修改文件
    • 删除文件
  • 包装类:自动装箱和拆箱

  • Date类:

    • Date
    • SimpleDateFormat:yyyy-MM-dd HH:mm:ss
    • Calendar(建议使用)
    • String类:不可变性final 操作量少
  • Stringbuilder:可变长 append链式编程 多线程数据量大,效率低,安全

  • StringBuffer:可变长 单线程数据量大,效率高,不安全

    String str = "a" + 1 + 2;
    String str = ‘a‘ + 1 + 2;
    String str = 1 + 2 + "a";
    

集合框架

  • Collection

    • List(有序、可重复)
      • ArrayList(add----remove----contains-----size)
      • LinkedList: (push-----pull-----getFirst-----getLast------removeFirst------addFirst)
      • Vector(很少用)
      • Stack栈
    • Set(无序、不可重复)
      • HashSet()
      • TreeSet(不常用)
  • Map

    • HashMap(重点、天天用)(面试高频问题)
      • jdk1.7:数组+链表
      • jdk1.8:数组+链表+红黑树;链表长度超过8的话就转化为红黑树
    • TreeMap
  • Collections工具类

  • 泛型<>约束,避免类型转换之间的问题

Iterator

IO流

  • 处理流
    • buffer
      • bufferInputStream
      • bufferOutputStream
      • bufferReader
      • bufferWriter
    • 序列化、反序列化 Serializable transient透明的
    • Data
      • DataInputStream
      • DataOutputStream
    • 转换流
      • InputStreamReader
      • OutPutStreamWriter
    • filter
      • 四个
    • Print
      • PrintWriter
      • PrintStream
    • object流 4个
  • 字节流:
    • 输入:InputStream
    • 输出:OutputStream
  • 字符流
    • Writer
    • Reader
  • 节点流:
    • CharArrayReader、Writer、inputStream、outputStream
    • StringReader、Writer
    • pipe(管道流)
    • File(,,,)

多线程

  • 进程和线程

  • run()方法、start()

  • 线程创建的方式

    • Thread 继承了Runnable(start0,本地方法,java无权调用,交给底层的c处理) private native void start0();
    • Runnable:函数式接口,lambda表达式
    • Callable:可以有返回值
  • 静态代理

    • new Thread(Runnable).start();
  • Lambda表达式:

    • 函数式编程

    • 避免内部类定义过多

    • new Thread(()->{

      ? System.out.println();

      }).start();

    • 手动推导一遍

  • 线程的状态

    • 新建状态
    • 就绪
    • 运行
    • 阻塞
    • 死亡
  • 常用方法

    • sleep
    • yoin
    • yield
    • isLive
    • start
    • setPriority
    • interrupt
  • 线程同步

    • 多个对象操作同一个资源,并发
    • 队列 + 锁
    • Synchronized
      • 同步方法(弊端:锁太多了)
      • 同步代码块(常用)
      • 第一个线程进来拿到锁,后面的人就要排队,直到这个人释放锁,后面拿到锁才能进去
    • 死锁
      • 互斥
      • 请求与保持
      • 不剥夺条件
      • 循环等待条件
    • Lock ReentrantLock
      • lock
      • trylock
      • unlock
    • 线程通信
      • 缓冲区
      • 标志位
      • wait
      • notifyAll()

网络编程

  • IP

  • 端口

  • TCP

    • 三次握手
    • 四次握手
    • 面向连接
  • UDP

    • 无连接
    • Packet
  • URL

  • 初始Tomcat

  • 聊天通信

  • 文件上传

GUI

  • AWT

    • Frame
    • 监听事件
      • 鼠标
      • 键盘
      • 窗口
      • 动作事件
  • Swing

    • 文本框
    • 标签
    • 按钮
    • 文本域
    • 面板
    • 布局方式
    • 关闭窗口
    • 列表
  • 贪吃蛇

    • Timer
    • 键盘监听
    • 游戏帧的概念

注解和反射

  • 注解
    • 元注解
    • 内置注解
    • 自定义注解
    • 反射读取注解
  • 反射
    • class
    • 类加载机制
    • Method
    • Field
    • Construct
    • 破坏私有关键字
    • 性能分析
      • 正常 > 检测关闭的反射 > 默认的反射
    • 反射获得注解,泛型
  • 探索单例模式
  • Stream
  • ForkJoin

java基础入门知识大纲(新手必看,从HelloWorld到实现聊天功能的app)

上一篇:Axios 封装


下一篇:Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期