Java基础编程

编程入门

  1. 冯·诺依曼体系结构

  2. 计算机包括硬件(hardware)和软件(software)两部分

    1. 硬件:CPU、内存、硬盘、通信设备、输入和输出设备

      ​ 比特(bit) 和字节(byte):比特(bit),是计算机中最小的存储单位。但最基本的存储单元是字节。每个字节由8个比特构成。

    2. 软件:BOOT》操作系统》应用软件&其它

      ​ 操作系统(Operating System)是计算机上的最重要的程序,可以管理和控制计算机的活动。

      ​ 人机交互方式:图形化界面(GUI)、 命令行方式(CLI)

    3. 计算机语言:POP》OOP》高级编程

      机器语言》汇编语言》高级语言:面向过程的语言》面向对象》Java

  3. 万维网Web《因特网Internet《互联网

面向过程编程

第1章_Java语言概述

  1. Java历史》Java 基础知识图解
  2. Java工作方式:运行机制及运行过程:编码》javac编译》java解释执行(跨平台)
  3. Java环境
    1. JDK 、JRE 、JVM 关系

      • JDK = JRE + 开发工具集(例如Javac编译工具等)
      • JRE = JVM + Java SE标准类库

  4. Java的程序结构:HelloWorld》文档 注释》Java API文档
  5. 核心机制:
    1. JVM制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
    2. 垃圾回收

第2章_基本语法

变量

  1. 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
  2. 自动类型转换:byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
  3. 强制类型转换:可能造成精度降低或溢出。
  4. 字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型
  5. 计算机底层都以 二进制形式存在,使用补码。但数据应用时一般用其它进制表示,易懂。
  6. 八进制(octal) :0-7 ,满8进1. 以数字0开头表示。其它进制间转化 以二进制为桥接。

运算符
流程控制

java VS. C/C++

第3章_数组

  1. 一维数组和二维数组的内存的简化结构
  2. 数据结构》算法》Arrays 工具类

面向对象编程

面向过程(POP) 与面向对象(OOP)

  1. 》例子:人把大象装进冰箱
  2. 程序员从面向过程的执行者转化成了面向对象的指挥者

面向对象

  1. 成员变量(属性)和局部变量的区别?

  2. 方法调用机制;参数的值传递机制

  3. 封装和隐藏:四种访问权限修饰符

  4. 继承》多态

    父类的引用指向子类的对象>晚绑定

    编译时:要查看引用变量所声明的类中是否有所调用的方法。
    运行时:调用实际new的对象所属的类中的重写方法。

Java扩展

第7章 异常

  1. 异常体系结构 Error Exception:运行时异常+编译时异常
  2. 异常处理机制:try-catch-finally throws声明抛出异常

第7章 基础
4. Object 类:== 操作符与equals 》toString()
5. 包装类why:基本类型、包装类与String 类间的转换
6. 抽象类》Java 8接口改进》偏类
7. 类的成员之:代码块、内部类 。static、final
8. 枚举类
9. 字符串

String(JDK1.0):不可变字符序列
StringBuffer(JDK1.0):可变字符序列、效率低、线程安全
StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安

1.日期

  1. JDK8 之前日期时间API
  2. 新日期间 时间API :本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类、 瞬时Instant、DateTimeFormatter 类

1.其它

  1. Java实现对象排序的方式有两种

     自然排序(默认):java.lang.Comparable
     定制排序:java.util.Comparator

  2. System类代表系统

  3. Math类

  4. BigInteger类

  5. BigDecimal类

Java实战

第8章_多线程

  1. 程序、进程、线程(一个程序内部的一条执行路径)

  2. 线程 的生命周期、有关方法

  3. 创建线程的方式:继承Thread类的方式、实现Runnable接口的方式、实现Callable、使用线程池

    Callable功能更强大:可以有返回值、方法可以抛出异常、支持泛型的返回值。需要借助FutureTask类

  4. 同步机制优先使用顺序:Lock  同步代码块  同步方法

    1. Lock是显式锁(手动开启和关闭锁,别忘记关闭锁),synchronized是
      隐式锁,出了作用域自动释放

    2. Lock只有代码块锁,synchronized有代码块锁和方法锁

    3. 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有
      更好的扩展性(提供更多的子类)

    4. synchronized 的锁是什么 ?
       任意对象都可以作为同步锁。所有对象都自动含有单一的锁(监视器)。
       同步方法的锁:静态方法(类名.class)、非静态方法(this)
       同步代码块:自己指定,很多时候也是指定为this或类名.class

  5. 线程的通信

    wait() 方法
    使当前线程进入等待(某对象)状态 ,直到另一线程对该对象发出 notify(或notifyAll) 为止。
    调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)。调用此方法后,当前线程将释放对象监控权

    notify()/notifyAll()
    功能:唤醒等待该对象监控权的一个/所有线程。
    调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)

    1. wait的两个方法都需要注意中断的问题,wait中断是从语句处中断并且释放锁,当再次获得锁时是从中断处继续向下执行。(从外部看起来就像锁一直都在一样)
    2. notify 和 notifyAll是延迟通的,必须等待当前线程体执行完所有的同步方法/代码块中的语句退出释放锁才通知wait线程(从等待队列转移到同步队列)。
  6. 经典例题:生产者/ 消费者问题

第11章_Java集合

  1. 数组在存储数据方面的弊端:长度就不可变、面向过程的产物
  2. 集合框架概述
    1. Collection
      1. List:ArrayList、LinkedList
      2. Set:HashSet》LinkedHashSet、TreeSet
    2. Map:HashMap》LinkedHashMap、TreeMap、Hashtable》Properties
    3. Iterator迭代器接口
    4. Collections容器工具类:算法+同步包装
    5. 对象排序接口Comparable、Comparator。用于Tree*
    6. 复写equals方法的时候一般都需要同时复写hashCode方法。相等的对象必须具有相等的散列码,用于Hash*

第13章_IO流

  1. File 类
  2. IO流分类:输入流、输出流、字节流、字符流、节点流、处理流
  3. 缓冲流分为:BufferedInputStream 、 BufferedOutputStream、BufferedReader、BufferedWriter
  4. 两个转换流:
     InputStreamReader :将InputStream 转换为Reader
     OutputStreamWriter :将Writer 转换为OutputStream
  5. 标准输入System.in、输出流System.out
  6. 打印流:PrintStream和PrintWriter
  7. 数据流有两个类:(用于读取和写出基本数据类型、String类的数据) DataInputStream 和 DataOutputStream
  8. 对象流:ObjectInputStream 和OjbectOutputSteam用于存储和读取 基本数据类型数据或 对象的处理流。
  9. 随机存取文件流RandomAccessFile
  10. Java NIO
  11. NIO.2 中Path 、Paths 、Files

第14章_网络编程

  1. 网络通信要素: IP和端口号、网络通信协议
  2. 基于Socket 的TCP 编程
  3. 基于 UDP 协议网络程序
  4. URL网络编程
    1. URL的基本结构由5部分组成:< 传输协议>://< 主机名>:< 端口号>/< 文件名># 片段名? 参数列表

Java高级

第10章_注解

在编译时进行格式查 检查(JDK 内置的三个基本注解)

  • 自定义注解必须配上注解的信息处理流程才有意义。》反射

JDK 中的元注解:@Retention、@Target

第12章_泛型

  1. 泛型在继承上的体现
  2. 通配符》有限制的通配符 上限extends、下限super

第15章_Java反射机制

  1. Java不是动态语言,可以“准动态语言”。利用反射机制、字节码操作获得类似动态语言的特性。

  2. 类的加载与ClassLoader

  3. 反射相关的主要API 》获取运行时类的完整结构》调用运行时类的指定结构

     java.lang.Class: 代表一 个 类
     java.lang.reflect.Method: 代表类 的 方法
     java.lang.reflect.Field: 代表类的 成员 变量
     java.lang.reflect.Constructor: 代表类 的 构造

  4. 动态代理相比于静态代理的优点 》 反射的应用:动态代理

  5. 动态代理步骤

    1.创建一个实现接口InvocationHandler的类

    2.创建被代理的类以及接口

    3.通过Proxy的静态方法创建接口代理

    4.通过代理调用方法

Java新特性

第16章_Java8的其它新特性

  1. Lambda 表达式

    1. 本质:Lambda表达式就是一个函数式接口的实例
    2. 语法:参数->体
    3. Java 内置四大核心函数式接口:消费型、供给型、函数型、断定型
    4. 方法引用与构造器引用、三种主要使用情况:
       对象:: 实例方法名
       类:: 静态方法名
       类:: 实例方法名 (参数列表的第一个参数调用实例方法)
  2. Stream API

    1. Stream 和 Collection 集合的区别:Collection 是一种静态的内存数据
      结构,而 Stream 是有关计算的。注意:
      ①Stream 自己不会存储元素。
      ②Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。
      ③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。

    2. Stream 的操作三个步骤
       1- 创建 Stream:一个数据源(如:集合、数组),获取一个流
       2- 中间操作:一个中间操作链,对数据源的数据进行处理:1- 筛选与切片limit skip filter distinct、2-映射map flatMap、3-排序sort

       3- 终止操作:1- 匹配与查找match find、统计min max count、迭代forEach 2- 归约 reduce 3- 收集collect

      ​ Collector 接口中方法的实现决定了如何对流执行收集的操作(如收集到 List、Set、Map)。

    3. Optional 避免空指针异常

  3. 便于并行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值