![](https://img-blog.csdnimg.cn/312d9f6fafa24679bb78b057052d6cf6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA基础知识体系
文章平均质量分 89
目标:达到java中级工程师基础要求
课程大纲:Java基础知识、JavaWeb、JS、JavaEE、微服务等
老李头喽
这个作者很懒,什么都没留下…
展开
-
4.7 AOP底层源码&原理
言简意赅,该文重点讲解AOP的底层源码,从启动类开始逐步深入讲解,让阅读者可以系统的了解AOP机制,知道代理的各个过程。原创 2023-04-09 18:41:00 · 414 阅读 · 0 评论 -
7.1 微服务-SpringCloud(二)
SpringCloud组件使用套路,三步走引入组件的启动器覆盖默认配置在引导类上添加注解,开发相关组件重点理解SpringCloud这些组件的使用细节,知道每个阶段出现的注解,它们的顺序以及具体功能Hystrix,,英文意思是豪猪,是一种保护机制。Hystrix也是Netflix公司的一款组件。Hystix作用:Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。Fein ,[feɪn],假装,伪装。原创 2023-02-09 20:43:31 · 1065 阅读 · 2 评论 -
7.1 微服务-SpringCloud
Java架构的演变_想了好久才取了这的博客-CSDN博客SpringCloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-cloud/Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现。原创 2023-02-08 11:42:12 · 681 阅读 · 2 评论 -
6.5 工具-ElasticSearch(二)
analysis(只是一个概念),文本分析是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticsearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入的时候将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。1. Character Filter: 将文本中html标签剔除掉。2. Tokenizer: 按照规则进行分词,在英文中按照空格分词。原创 2023-02-05 15:18:17 · 438 阅读 · 0 评论 -
前言
本专栏将会持续更新java初级和中级知识体系。方便学习自学者建立健全的Java知识体系。方便有基础者回顾java体系知识。原创 2022-09-30 08:59:29 · 359 阅读 · 0 评论 -
1.1Java-JDK、JVM、数据类型等基础理论
JDK与JRE、JVM概述、JVM执行程序的过程、JVM的生命周期、守护线程和非守护线程JVM内存模型new关键字、基本数据类型和引用数据类型、基本数据类型的底层原理包装类原创 2022-11-08 22:06:58 · 240 阅读 · 0 评论 -
1.2Java-面向对象
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,使用此思想去设计程序。泛指现实中一切事物,每种事物都具备自己的和。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。就是将现实世界中具体存在的事物称之为对象,简称万物皆对象简单来说:面向:拿,找对象:能干活的东西面向对象编程:拿东西过来做对应的事情。原创 2022-10-14 21:51:15 · 178 阅读 · 0 评论 -
1.3Java-封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种,在java中通过关键字private,protected和public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。原创 2022-10-15 20:16:28 · 121 阅读 · 0 评论 -
1.4Java-继承
比如Student{}Teacher{}里面有大量重复的,我们把这些重复的抽象出来Person{name age gender address 爸爸/父类}} }这个就是继承。多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可,继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。原创 2022-10-16 15:50:14 · 240 阅读 · 0 评论 -
1.5Java-多态
定义:同类型的对象,表现出来的不同形态太抽象?那我们简单举个例子。大学里有教务系统吧,学生和教师,管理员,都是在教务系统登录界面通过输入账号密码来登录教务系统。管理员,教师,学生都是在同一个地方提交并登录的,那么代码里的Login是Student类?还是Admin类?还是Teacher类?如果是Student student = new Student();那么登录方法里面就是和学生表有关联,之后的方法也都是学生类相应的方法,但是如果是教师登录呢?怎么办?教师登录也用学生表和学生方法??显然不对。原创 2022-10-16 18:22:26 · 123 阅读 · 0 评论 -
1.6Java-接口、抽象类
狗:吃,睡,游泳青蛙:吃,睡,游泳兔子,吃,睡如果父类的动物定义吃,睡,游泳,兔子继承动物,就代表兔子也可以调用游泳,这个显然不对,因为兔子根本不能游泳。为了解决这类问题,引入了接口,可以理解:接口是一种行为(规则)接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法(功能),包含抽象方法 (JDK7及以前) , 默认方法和静态方法(JDK8)私有方法(JDK9)。接口用关键字interface修饰。原创 2022-10-17 21:18:49 · 181 阅读 · 0 评论 -
1.7Java-内部类
静态内部类只能访问外部类中的静态变量和静态方法,如果想要访问非静态的需要创建外部类的对象。是局部内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的子类对象。开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作,1. 定义子类2. 重写接口中的方法3. 创建子类对象4. 调用重写后的方法我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。原创 2022-10-18 16:38:46 · 403 阅读 · 0 评论 -
1.8Java-final、权限修饰符、static、静态代码块
学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了final关键字,用于修饰不可改变内容。在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,public : 公共的protected :受保护的: 默认的private : 私有的静态方法。原创 2022-10-18 22:48:37 · 257 阅读 · 0 评论 -
1.9Java-API、Object类、String类、StringBuffer、StringBilder、日期与时间
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给我们使用的类的说明文档。java.lang.Object类是Java语言中的根类,即所有类的父类。在API中有很多Object类的方法,我们这里主要讲解toString,equal方法String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例。String类 中包括用于检查各个字符串的方法,比如用于比原创 2022-10-19 21:07:58 · 445 阅读 · 0 评论 -
1.10Java-异常
指的是程序在执行过程中,出现的不正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。原创 2022-10-19 22:33:25 · 137 阅读 · 0 评论 -
1.12Java-集合
在java中我们可以使用数组来保存多个对象,但是数组的长度不可变。如果需要保存数量变化的数据,数据就不太合适了。为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java 提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类集合:集合是java中提供的一种容器,可以用来存储多个数据,并且可以存储任意类型的数据Collection是所有单列集合的父接口,Collection中定义了单列集合(List、Set)通用的一些方法,这些方法可用于操作所有的单列集合。原创 2022-10-21 21:23:54 · 613 阅读 · 0 评论 -
1.11Java-数据结构
现实世界中,客观事物都是相互联系的,所以数据之间也必然存在着联系。数据结构(Data Structure)就是指数据元素及其相互之间的关系。数据元素之间的相互联系称为数据的逻辑结构。根据数据元素之间关系的不同特性,数据结构可以分为集合、线性结构、树型结构、图结构4类基本结构。(1)集合:数据元素间的关系同属一个集合,除此之外,别无其它关系。(2)线性结构:结构中的元素间存在一对一的关系。(3)树型结构:结构中的元素间存在一对多的关系。(4)图(网状)结构:结构中的元素间存在多对多的关系。原创 2022-10-21 21:20:03 · 445 阅读 · 0 评论 -
1.13Java-Iterator迭代器、增强for、迭代、递归
对于遍历,JDK专门提供了一个接口。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。原创 2022-10-22 16:41:42 · 422 阅读 · 0 评论 -
1.14Java-泛型
集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。//集合没有限定,任何类型都可存放//需要打印每个字符串的长度,就要把迭代出来的对象转成String类型}}}但是程序会出现,为什么会这样?因为collection.add(23);我们存入的是int,根据类型转换兼容,int与String是转型不兼容的,因此会抛出类转换异常。为了解决这个问题,我们可以使用泛型(Generic。原创 2022-10-23 19:23:24 · 404 阅读 · 0 评论 -
1.15-Java-File类
java.io.File类:文件和目录路径名的抽象表示形式。可以理解为把我们电脑中的文件以及路径封装成一个类,这个类就叫File。原创 2022-10-23 19:53:41 · 84 阅读 · 0 评论 -
1.16Java-IO流、字节流、字符流
IO流根据数据的流向分为:输入流和输出流。输入流 :把数据从其他设备上读取到内存中的流。输出流 :把数据从内存 中写出到其他设备上的流。根据数据的类型分为:字节流和字符流。字节流 :以字节为单位,读写数据的流。字符流 :以字符为单位,读写数据的流。字节流:文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形字符流:使用字节流读取文本文件时,遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。于是Java提供字符流类,以字符为单位读写数据,处理文本文件。原创 2022-10-26 22:11:13 · 160 阅读 · 0 评论 -
1.17Java-缓冲流、转换流、序列化流、打印流
Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。原创 2022-10-27 22:09:25 · 543 阅读 · 0 评论 -
1.18Java-线程、锁、线程间通信、volatlie
程序:完成特定任务、用某种语言编写的一组指令的集合。进程:是程序的一次执行过程。程序是静态的,进程是动态的,进程作为资源分配的单位, 系统在运行时会为每个进程分配不同的内存区域。线程:它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流 ●线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器 ( pc) ●多个线程,共享同一个进程中的结构:方法区、堆。原创 2022-10-29 11:25:13 · 800 阅读 · 0 评论 -
1.19Java设计模式
设计模式(Design pattern)代表了最佳的实践 ,可以理解为非常好用的套路。设计模式本身是一种思想,用于解决某些简单常用需求的固定思路或代码,称之为设计模式。原创 2022-10-29 11:44:31 · 463 阅读 · 0 评论 -
1.20Java-网络编程
UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。其中,0~1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号。网络的通信,本质上是两个进程(应用程序)的通信。三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法。原创 2022-10-30 14:56:05 · 460 阅读 · 0 评论 -
1.22Java-反射
栈内存:存放基本类型数据和对象的引用变量,数据可以直接拿来访问,速度比堆快。堆内存:存放创建的对象和数组,会由java虚拟机的自动垃圾回收来管理(GC),创建一个对象放入堆内的同时也会在栈中创建一个指向该对象堆内存中的地址引用变量,下面说的对象就是存在该内存中。一个java文件会在编译期间被初始化生成.class字节码文件,这个文件后面会被类加载器加载到内存。类加载器ClassLoader加载class文件时,会把类里的一些数值常量、方法、类信息等加载到内存中,称之为类的元数据,最终目的原创 2022-11-04 21:03:02 · 336 阅读 · 0 评论 -
1.21Java-类加载与类加载器
本章节和《1.22Java-反射》是java的重点难点,涉及到底层,属于中高级范畴,初学者可选择性学习。在类“加载”阶段,通过一个类的全限定名来获取描述该类的二进制字节流的这个动作的“代码”被称为“类加载器”(Class Loader),这个动作是可以自定义实现的.类加载器就是把class的字节码文件读取到JVM内存中,本质是程序或代码,由C语言或者java语言编写。原创 2022-11-04 20:54:33 · 538 阅读 · 0 评论 -
1.24Java-JDK新特性、表达式、XML解析
1.24.3XML、1.24.3.1什么是XML、1.24.3.1.1作用、1.24.3.1.2XML基础语法、1.24.3.2XML组成、文档声明、指、标签、文本、1.24.3.3XML约束1.24.3.3约束的分类1.24.3.3.1DTD约束1.24.3.3.2Schema约束1.24.3.4XML解析1.24.3.4.1sax解析1.24.3.4.2dom解析1.24.3.4.3jdom解析1.24.3.4.4dom4j解析原创 2022-11-05 17:39:51 · 422 阅读 · 0 评论 -
2.1数据库-MySQL
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。SQL (发音sequel):结构化查询语言(Structured Query Language)。SQL语句就是对数据库进行操作的一种语言。SQL是一套标准,所有的数据库厂商都实现了此标准;但是各自厂商在此标准上增加了特有的语句,这部分内容我们称为方言。这就是一个视图视图,就是让你看的见,方便查看的一张虚拟表。原创 2022-11-08 16:54:06 · 1530 阅读 · 0 评论 -
2.2 数据库-JDBC
Java DataBase Connectivity Java 数据库连接技术。sun公司定义的一套操作所有关系型数据库的规则(接口)。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,运行时的代码其实是驱动jar包中的实现类。原创 2022-11-09 20:52:49 · 528 阅读 · 0 评论 -
4.2 JavaEE-MyBatis
ORM(Object-Relationship-Mapping):是对象关系映射的意思,它是一种思想,是指将数据库中的每一行数据用对象的形式表现出来。简单来说就是,student表中列有id(类型int),name(类型String),age(类型int)。ORM思想就是创建student的javabean类,student类属性有int id;int age;原创 2022-11-17 11:31:49 · 871 阅读 · 0 评论 -
3.1 JavaWeb-HTML
本系列重点为后端,所以前端内容可参考专业的网站进行学习。原创 2022-11-12 10:27:41 · 106 阅读 · 0 评论 -
3.2JavaWeb-CSS
由于本系列重点为后端,所以前端内容可参考专业的网站进行学习:CSS 简介 | 菜鸟教程CSS 参考手册_w3cschool原创 2022-11-12 14:16:59 · 214 阅读 · 0 评论 -
3.3 JavaWeb-JavaScript
JavaScript与Java的关系可谓是,雷锋与雷峰塔——毫无关系。JavaScript 是 Web 的编程语言,JavaScript是一种面向对象思想的脚本语言,通过JavaScript可以实现用户与静态网页之间的交互,也称为动态网页技术(JavaScript+HTML+CSS)。HTML定义了网页的内容CSS描述了网页的布局JavaScript控制了网页的行为JavaScript 对象 | 菜鸟教程。原创 2022-11-19 18:11:59 · 24757 阅读 · 0 评论 -
4.1JavaEE-工具
Git:分布式版本控制系统(Distributed Version Control System,简称 DVCS),分布式版本管理工具。本地仓库:是在开发人员自己电脑上的Git仓库远程仓库:是在远程服务器上的Git仓库。原创 2022-11-20 11:42:24 · 259 阅读 · 0 评论 -
4.3 JavaEE-Spring和IOC
Spring框架是轻量级的JavaEE框架。可以整合很多第三方框架和类库目前是最主流的的Java EE 企业应用开源框架。IOC和Aop(1)IOC:控制反转,把创建对象的过程交给Spring进行管理(2)Aop:面向切面,不修改源代码进行功能增强方便解耦,简化开发Aop变成支持方便程序测试方便和其他框架进行整合方便进行事物操作降低API开发难度IOC:Inversion of Control ,控制反转。是一种设计思想,将对象交给容器控制,而非对象内部直接new。原创 2022-11-24 20:03:55 · 726 阅读 · 0 评论 -
4.4 JavaEE-Spring-AOP
AOP,Aspect Oriented Programming ,面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。原创 2022-11-25 11:40:38 · 454 阅读 · 0 评论 -
4.5 JavaEE-SpringTemplate与Spring、MyBatis整合
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作,持久层框架4.5.2.1.1详细事务知识点 【点击跳转 《2.1数据库-MySQL》】Spring 支持两种事务方式,分别是编程式事务和声明式事务,常使用声明式事务(注解方式)Spring通过事务管理器、事务管理类的实现类来管理事务Spring的事务是一个统一的模型(1)指定要使用的事务管理器实现类,使用(2)指定哪些类,哪些方法需要加入事务的功能。原创 2022-11-29 20:34:19 · 518 阅读 · 0 评论 -
4.7 深入理解Spring
BeanDefinition是相当重要的BeanDefinition:封装了bean的定义信息,决定一个bean是怎么生产的,一个bean对应一个BeanDefinition那么这个BeanDefinition是怎么来的呢?当我们new ApplicationContext时会传入一个xml文件。不同的sapring上下文会传入不同的,读取bean定义的过程是有些不同的,但也有相同的地方。方式一:ClassPathXmlApplicationContext(xml);原创 2022-12-25 10:48:26 · 2256 阅读 · 3 评论 -
4.6JavaEE-SpringMVC
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。SpringMVC 已经成为目前最主流的MVC框架之一。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。原创 2022-12-01 20:27:35 · 570 阅读 · 0 评论