「学习笔记」Java基础--数据结构与算法入门

数据结构,它是储存数据的一种结构体,在此结构中储存一些数据,而这些数据之间有一定的关系。 算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。

1.Java数据结构(Data Structure)

1.1 数据结构

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 而各数据元素之间的相互关系,又包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 而一个数据结构的设计过程分成抽象层、数据结构层和实现层。

「学习笔记」Java基础--常用设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

1.常用的设计原则

  • 开闭原则:对扩展开放,对修改关闭
  • 里氏代换原则:任何父类出现的的地方,子类一定可以出现(多使用继承和多态)
  • 依赖倒转原则:尽量多依赖于抽象类或接口而不是具体实现类,对子类具有强制性和规范性
  • 接口隔离原则:尽量多依赖小接口而不是大接口
  • 迪米特法则(最少知道原则):一个实体应当少与其他实体之间发生相互作用,使系统功能模块相对独立。高内聚,低耦合。
  • 合成复用原则:尽量多使用合成/聚合的方式,而不是继承的方式。

2.设计模式分类

2.1 基本概念
  • 设计模式是一套被反复使用多数人知晓,经过分类编目,代码设计经验的总结。
  • 设计模式用来解决某些特定场景下的某一类问题–>通用的解决方案。
  • 设计模式可以让代码更容易被理解,确保了复用性、可靠性、可扩展性
2.2 具体分类
  1. 创建型模式用于对象创建的过程
  • 单例模式工厂方法模式、抽象工厂模式、建造者模式(生成器模式)、原型模式
  1. 结构型模式用于把类或对象通过某种形式结合在一起,构成某种复杂或合理的结构
  • 适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式(过滤器/标准模式)
  1. 行为型模式用于解决类或对象之间的交互,更合理的优化类或对象之间的关系
  • 责任链模式、命令模式、迭代子模式(迭代器模式)、观察者模式、中介者模式、解析器模式、状态模式、空对象模式、策略模式、模板模式、访问者模式、备忘录模式、
  1. JEE 设计模式
  • 数据访问对象模式

3.单例模式(Singleton)

3.1 实现流程:
  1. 私有的构造方法
  2. 私有的静态的当前类的对象作为属性
  3. 共有的静态方法返回当前对象
3.1 实现方式:
  1. 饿汉式:立即加载,对象启动时就加载
  2. 懒汉式:延迟加载,对象什么时候用到时才会加载
  3. 生命周期托管:单例对象交给别人处理

4.模板模式

在模板模式中,父抽象类公开几个抽象方法供子类实现。在父抽象类中有另一个方法或几个方法使用抽象方法来实现业务逻辑。

「学习笔记」Java基础--网络编程基础

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中的类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。

1. 网络编程常识

1.1 七层网络模型

为了保证数据传输的可靠和安全,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下7层:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

「学习笔记」Java基础--反射机制

反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 多数情况下反射是为了提高程序的灵活性,运行时动态加载需要加载的对象。

1. 基本概念

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

「学习笔记」Java基础--多线程

多线程的存在,不是提高程序的执行速度。其实是为了提高应用程序的使用率。 程序的执行其实都是在抢 CPU 的资源,CPU 的执行权。 多个进程是在抢这个资源,而其中的某一个进程如果执行路径(线程)比较多,就会有更高的几率抢到 CPU 的执行权。

1. 基本概念

  • 程序:数据结构 + 算法,主要指存放在硬盘上的可执行文件。
  • 进程:主要指运行在内存中的程序;每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含 n 个线程;(进程是系统进行资源分配和调度的一个独立单位)。
  • 线程:线程是进程的一个实体,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小;(线程是 cpu 调度和分派的最小单位)。
  • 多进程是指操作系统能同时运行多个任务(程序)。
  • 多线程是指在同一程序(一个进程)中有多个顺序流在执行。
  • 并行与并发:
    • 并行:多个 cpu 实例或者多台机器同时执行一段处理逻辑,是真正的同时。
    • 并发:通过 cpu 调度算法,让用户看上去同时执行,实际上从 cpu 操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用 TPS 或者 QPS 来反应这个系统的处理能力。
  • 线程和进程一样分为五个阶段:创建就绪状态执行状态等待/挂起/阻塞终止/异常/消亡

2. 实现线程的过程

java.lang.Thread 类主要用于描述线程,Java 虚拟机允许应用程序并发地运行多个执行线程。

0%