JavaLearn
文章平均质量分 94
Java相关知识的学习
LRcoding
Change the world by coding.
展开
-
【JavaLearn】#(31)SpringMVC原理图及使用、单元方法、restful请求、编码过滤器、静态资源放行、响应、SSM框架、作用域对象、处理Ajax请求、自定义视图解析器、上传、拦截器
SpringMVC原理图、基本使用、单元方法获取请求数据、restful请求格式、编码过滤器、静态资源放行、响应、SSM框架搭建、作用域对象、处理Ajax请求、自定义视图解析器、上传、拦截器原创 2024-07-18 22:31:23 · 719 阅读 · 0 评论 -
【JavaLearn】#(30)框架引入、Spring框架、Spring IOC的基本使用、常用注解(IoC)、Spring整合Mybatis、Spring AOP内容、代理设计模式、SpringTX
框架引入、Spring框架、Spring IOC的基本使用、常用注解(IoC)、Spring整合Mybatis、Spring AOP内容、代理设计模式、SpringTX原创 2024-02-20 22:51:32 · 830 阅读 · 0 评论 -
【JavaLearn】#(29)Maven引入、Maven项目类型、Maven安装与配置、Maven项目的创建和使用、pom配置文件介绍
Maven引入、Maven项目类型、Maven安装与配置、Maven项目的创建和使用、pom配置文件介绍原创 2024-01-28 17:58:13 · 1533 阅读 · 0 评论 -
【JavaLearn】#(28)MyBatis高级:无级联查询、级联查询(立即加载、结果映射、延迟加载)、多表连接查询、MyBatis注解、MyBatis运行原理、面试题
1. 多表查询前面的操作(MyBatis进阶),不管是用 SqlSession还是 Mapper代理,都是对单个数据库表的操作在实际开发中,经常会将来自多张表的数据在一个位置显示,比如查询并显示员工信息时,需要展示部门表的部门名称,岗位表的岗位名称等。这就要求 Employee中,要包含部门 Dept、岗位 Position的信息MyBatis是如何实现对多表的查询并组装数据呢?(此时没有DML的事)方式1:无级联查询——开发者手动完成多表数据的组装,需要执行多条 SQL语句方式2:级联查询——原创 2022-05-18 19:58:35 · 496 阅读 · 0 评论 -
【JavaLearn】#(27)MyBatis进阶:Mapper代理(接口绑定)、多参数传递、模糊查询、分页、自增主键回填、动态SQL、一级缓存、二级缓存
1. Mapper代理 (接口绑定)之前已经使用 MyBatis完成了对 emp表的 CRUD操作(MyBatis基础),都是由 SqlSession调用自身的方法发送 SQL命令,并得到结果缺点:不管是 selectList()、selectOne(),都只能提供一个查询参数,如果需要多个,就需要封装到 JavaBean中方法的返回值类型比较固定只提供了映射文件,没有提供数据库操作的接口,不利于后期维护基于此,MyBatis提供了一种叫 **Mapper代理(接口绑定)**的操作方式 --原创 2022-05-03 10:24:41 · 666 阅读 · 0 评论 -
【JavaLearn】#(26)MyBatis基础:认识框架、MyBatis环境搭建、基本CRUD、配置文件、日志管理、别名、属性文件、ThreadLocal保存sqlSession、本地DTD、模板
1. MyBatis入门是一个基于 Java 的持久层框架,将接口和 Java的 POJOs(Plain Ordinary Java Object,普通的Java对象)映射成数据库中的记录 【ORM】1.1 认识框架框架(Framework)是一个框子—约束性,也是一个架子—支撑性。框架类似于一个毛坯房,由开发人员在毛坯房基础上进行装修使用框架可以减少开发时间、降低开发难度、保证设计质量,还可以起到约束,可以降低程序员之间沟通和日后维护的成本1.2 ORMJDBC缺点:需要手动的完成面向对象的J原创 2022-05-01 17:45:03 · 463 阅读 · 0 评论 -
【JavaLearn】#(25)Ajax相关知识、三级联动案例、Bootstrap入门、栅格系统、排版、表格、字体图标等简单概述
1. 原生Ajax异步访问,局部刷新。Ajax 为异步操作,使用 Ajax代表摒弃了 JavaEE的转发与重定向操作Ajax的关键技术:使用CSS构建用户界面样式,负责页面排版和美工使用DOM进行动态显示和交互,对页面进行局部修改使用XMLHttpRequest异步获取数据使用JavaScript将所有元素绑定在一起Ajax简单概述1.1 原生Ajax使用步骤创建 XMLHttpRequest 对象function createXMLHttpRequest() { if原创 2022-04-30 17:28:21 · 1460 阅读 · 0 评论 -
【JavaLearn】#(24)Session、Cookie、ServletContext、MVC开发模式、JSP九大内建对象及四个作用域、JSTL及EL表达式、过滤器、监听器
1. session和cookie1.1 session和cookie原理HTTP协议是无状态的协议,客户每次读取 web 页面,服务器都会打开新的连接,而且服务器也不会自动维护客户的上下文信息。如何在多次请求之间共享信息呢? 服务器端如何判断一个分时段的连接是不是属于同一个客户呢?Session 和 Cookie 就是为解决 HTTP协议的无状态采用的两种解决方案Cookie:将信息保存在客户端解决Session:将信息保存在服务器端解决1.2 cookie—实现10天免登录重定向:原创 2022-04-17 12:21:32 · 726 阅读 · 0 评论 -
【JavaLearn】#(23)JSP相关语法、HTTP协议、Servlet介绍、Servlet生命周期、请求和响应、相对路径、转发和重定向
1. JSP简单内容1.1 JavaEEJavaEE 包含JSPJavaEE是一个开发分布式企业级应用的规范和标准。JavaEE包含之前学过的所有内容(JavaSE)真正开发中,很少使用JavaEE的原生内容,都是用 SSM 框架进行快速开发1.2 部署web项目到服务器简单的总体流程,先看一下效果。安装服务器软件Tomcat,下载解压即可创建Web项目(使用IDEA创建Java Enterprise项目),开发静态页面新版 IDEA 没有JavaEE的选项,可以在项目中按Alt原创 2022-04-05 17:22:08 · 3874 阅读 · 0 评论 -
【JavaLearn】#(22)jQuery介绍、选择器、事件、动画、DOM编程、操作CSS、表单验证
1. jQuery定义和特点1.1 jQuery 入门对 JavaScript 进行了封装,降低了使用JavaScript的难度,可以大幅提高开发效率(Write less, do more)jQuery 广泛使用的是 1.x 版本,兼容 ie678jQuery 实例:隔行变色(页面结构)<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></tit原创 2022-04-04 12:18:57 · 1823 阅读 · 0 评论 -
【JavaLearn】#(21)JavaScript入门、基本语法、函数、基本对象、数组、事件、DOM和BOM
1. JavaScript入门静态网页技术HTML:超文本标记语言 显示内容CSS:层叠样式表 美化页面JavaScript:页面动态交互和特效DHTML = HTML + CSS + JavaScript,动态HTML,只是动态效果,不是动态数据jQuery:对 JavaScript 的封装EasyUI:在 jQuery 基础上对 HTML 和 CSS 的封装对于一个网页,HTML定义网页的结构,CSS描述网页的样子,JavaSc原创 2022-03-27 18:54:36 · 2279 阅读 · 0 评论 -
【JavaLearn】#(20)注解、元注解、模拟MyBatis注解、JDK新特性、数据库建模、UML建模
1. 注解1.1 认识注解Annotation,JDK1.5 提供的新技术作用:编译检查:比如 @SuppressWarnings, @Deprecated 和 @Override,分别代表压制警告信息、定义方法或类为过时的、重写标记替换配置文件:使用反射来读取注解信息目前大部分框架(如Spring)都使用了注解简化代码并提高编码的效率(使用注解之前使用的是xml进行配置)@SuppressWarnings("all") // 压制警告信息public class Student原创 2022-03-23 13:58:45 · 2664 阅读 · 0 评论 -
【JavaLearn】#(19)反射、Class类、使用反射创建对象-操作属性-执行方法、泛型与反射、反射案例
1. 反射1.1 反射引入编译时,知道类或对象的具体信息,此时直接对类和对象进行操作即可编译时不知道类或对象的具体信息,只有运行时知道,需要使用反射来实现 ==> 比如驱动的类的名称放在 XML 文件中,属性和属性值也放在XML文件中,需要在运行时读取XML文件,动态获取类的信息// 编码、编译时知道要创建哪个类的对象Dog dog = new Dog(); // 创建对象dog.age = 12; // 操作属性dog.eat();原创 2022-03-19 22:41:15 · 1529 阅读 · 0 评论 -
【JavaLearn】#(18)JDBC基本操作(CRUD)、使用PreparedStatement、JDBC事务、员工管理系统、Properties类、log4j框架、数据库连接池
1. JDBC 基本操作1.1 JDBC 概述是一种用于执行 SQL 语句的 Java API,为多种关系型数据库提供统一访问SUN公司制定了规范JDBCDriverManager 类:管理各种不同的 JDBC 驱动Connection 接口:连接数据库用Statement 接口和 PreparedStatement 接口:发送SQL请求ResultSet 接口:接收返回值JDBC访问数据库的步骤:加载一个 Driver 驱动创建数据库连接 (Connection)创原创 2022-01-08 21:32:34 · 2138 阅读 · 0 评论 -
【JavaLearn】#(17)MySQL基础知识、DML及DDL语句、外键及非外键约束、外键策略、DQL语句(单表、多表)、连接查询、子查询、索引、事务、视图、存储过程、用户权限及角色管理
1. 基础知识1.1 数据库基础知识数据:计算机可以处理的数据,字母、文字、文本、图形、音频、视频等数据库:Database,以一定格式存放数据,能够实现多个用户共享,与应用程序彼此独立的数据集合数据库管理系统:DBMS,用来定义和管理数据的软件,MySQL、Oracle、SQL server等数据库应用系统:在数据库管理系统的基础上,使用数据库管理系统的语法,开发的直接面对最终用户的应用程序,学生管理系统等数据库管理员:DBA,是指对数据库管理系统进行操作的人员最终用原创 2021-12-26 21:11:50 · 1710 阅读 · 0 评论 -
【JavaLearn】#(16)多线程提升训练:生产者和消费者问题、Lock锁、ReadWriteLock、BlockingQueue、volatile、线程池、线程同步练习
1. 生产者消费者扩展1.1 多个生产者、多个消费者由一个生产者、一个消费者、一个商品 ==》 扩展为多个生产者、多个消费者、多个商品最多有 10 个商品,最少有 0 个商品已经有 10 个商品后,生产者就不再生产,还要通知消费者进行消费没有商品时,消费者不再消费,还要通知生产者进行生产生产者线程(任务)ProduceRunnablepublic class ProduceRunnable implements Runnable{ private ProductFactory原创 2021-12-18 17:51:32 · 1376 阅读 · 0 评论 -
【JavaLearn】#(15)集合提升训练:手写ArrayList、单链表、LinkedList、HashMap、HashSet、新一代并发集合类
1. 手写ArrayList1.1 ArrayList 底层原理细节底层结构是一个长度可以动态增长的数组(顺序表)// 指向数组的引用transient Object[] elementData; // transient修饰的变量,不参与序列化数组特点:在内存中分配连续的空间,只存储数据,不存储地址信息节省存储空间(无需存储地址和数据间的关系)、索引查询效率高(其它地址可以通过首地址计算得到)插入和删除效率低,必须提前分配固定数量的空间,可能会导致空闲浪费,按照内容查询效率低原创 2021-12-12 23:02:01 · 1699 阅读 · 0 评论 -
【JavaLearn】 #(14)网络及分类、TCP、UDP协议、IP、Socket、TCP编程、UDP编程
1. 网络基本概念1.1 计算机网络定义:是指将地理位置不同的具有独立功能(没有网络可以独立存在的)的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统主干:计算机网络是计算机系统网络功能:资源共享、信息传递网络组成网络硬件:计算机、外部设备、通信连接网络软件:网络操作系统、网络管理软件、网络通信协议分类–按照规模:局域网 LAN城域网 MAN广域网 WAN分类–按照传输介质:原创 2021-09-17 23:45:54 · 3130 阅读 · 0 评论 -
【JavaLearn】# (13)多线程:线程生命周期、线程控制、线程同步、线程通信、线程池、ForkJoin框架
1. 进程和线程程序:一段静态的代码,是应用程序执行的蓝本进程:指一种正在运行的程序,有自己的地址空间动态性(正在运行的程序)并发性(同时运行)独立性(QQ 和 微信互不干扰)并发和并行的区别并行(parallel):多个 CPU 同时执行多个任务,宏观和微观来看,都是同时执行并发(concurrency):一个 CPU 同时执行多个任务(采用时间片轮转,A执行一段时间,B再执行一段时间)线程进程内部的一个执行单元,它是程序中一个单一的顺序控制流程,又被称为轻原创 2021-09-05 16:31:46 · 2427 阅读 · 0 评论 -
【JavaLearn】# (12)IO流、文件字节(符)流、缓冲字节(符)流、数据流、对象流、序列化
1. IO流概述在Java中,数据的输入/输出操作,以”流“(stream)方式进行,一般位于 java.io 包中数据源(data source)提供原始数据的原始媒介:数据库、文件、其他程序、内存、网络连接、IO设备流是一个抽象、动态的概念,是一连串连续动态的数据集合从源文件到目的文件,中间必须经过中转(把源数据读到程序中,再从程序输出到目的)1.1 IO流分类按流的方向(输入,输入是相对于程序(中转站)来说的)输入流:从数据源到程序(InputStream、Reader 结尾)原创 2021-08-22 23:07:57 · 2432 阅读 · 0 评论 -
【JavaLearn】#(11)Map、Iterator迭代器、Collections、集合总结、泛型
1. Map概述存储的键值对映射关系,根据 key 找到value1.1 HashMap采用 哈希表 (hashtable)存储结构查询、存储、删除速度快key无序key 和 value 都可以为 null1.2 LinkedHashMap采用 哈希表 存储结构,同时用链表维护次序key 有序(添加顺序)key 和 value 都可以为 null1.3 TreeMap采用红黑树的存储结构key有序(自然顺序),查询速度比 List 快,没有 HashSet 快key原创 2021-08-15 17:09:24 · 2495 阅读 · 0 评论 -
【JavaLearn】 # (10)集合、List、栈、队列、Set、外部比较器、哈希表
1. 引入集合1.1 集合的使用场合需要将一些相同结构的个体整合在一起时,可以使用集合。1.2 集合和数组的区别相同:都可以存储多个对象(集合的元素,必须是对象类型,不能是基本类型),对外作为一个整体存在不同:数组长度必须在初始化时指定,且固定不变数组存储时采用连续的空间,删除和添加效率低下数组无法直接保存映射关系数组缺乏封装,操作繁琐1.3 集合框架Java 提供了一套使用方便、性能优良的接口和类,位于 java.util 包中集合架构:Collection 接口原创 2021-08-08 22:05:27 · 2286 阅读 · 2 评论 -
【JavaLearn】 # (9)数据结构和算法
1. 数据结构1.1 数据结构概述数据结构:相互间存在一种或多种特定关系的数据元素的集合。是组织并存储数据以便能够有效使用的一种专门格式。反映一个数据的内部构成:一个数据由哪些成分数据构成,以什么方式构成,是什么结构。逻辑结构:线性结构(一对一)、树状结构(一对多)、网状(图)结构(多对多)存储结构:顺序存储、链式存储、索引存储、散列存储顺序存储结构:数组,一块连续的存储空间链式存储结构:不连续的存储空间,每个结点由数据域和指针域组成索引存储结构:除建立存储结点信息外,还建立附加原创 2021-07-10 16:41:16 · 2402 阅读 · 0 评论 -
【JavaLearn】 # (8)Java的常用类:包装类、String类、日期类
1. 包装类1.1 引入包装类我们经常使用的基本数据类型并不是对象,有时为了业务需求,需要将基本数据类型转换成对象。Java对每个基本类型都设计了一个对应的包装类(Wrapper Class)byte(Byte)、boolean(Boolean)、short(Short)、char(Character)、int(Integer)、long(Long)、float(Float)、double(Double)优点:某些方法的参数必须是对象。为了让基本数据类型的数据能作为参数,提供包装类还可以提供原创 2021-06-10 21:31:51 · 2235 阅读 · 1 评论 -
【JavaLearn】 # (7)面向对象案例:猜丁壳
1. 案例设计最终的运行效果:类的设计:【常量类 和 工具类 在开发中应该必须定义】游戏的核心业务: 对战一局用户玩家出手电脑玩家出手输出两方的出手裁判判断谁赢谁输根据结果修改赢家的 winCount输出本局结果判断游戏是否结束2. 搭建案例框架com.lwclick.entity :存放实体类com.lwclick.service :存放业务代码com.lwclick.test : 存放测试类com.lwclick.util : 存放常量类和工具类3. 开发工原创 2021-06-10 21:28:13 · 1778 阅读 · 1 评论 -
【JavaLearn】 # (6)异常
1. 异常异常,总会发生的情况,异常处理完,代码要继续执行例如:除数为 0 ,或者不为数字。面对异常该怎么办呢?由开发者通过 if-else 来解决 ==》 代码臃肿,对程序员要求较高Java本身的异常处理机制,我们只需要捕捉,处理异常即可,处理完程序继续执行异常处理过程:捕获异常:try:内含可能产生异常的代码catch:捕获异常finally:无论是否发生异常,程序都需要执行的代码声明异常(有异常,自己不处理):throws:声明方法可能要抛出的各种异常抛出原创 2021-05-19 19:55:59 · 1868 阅读 · 0 评论 -
【JavaLearn】 # (5)final关键字、抽象类、接口、内部类、虚拟机内存结构、垃圾回收
1. final 关键字修饰变量:使用 final 修饰后,变量的值不可改变,就成了常量修饰基本数据类型时:值只能赋值一次,后续不能再赋值 final int NUM = 5;修饰引用类型时:引用变量的值(地址) 不能变,但是对象的属性可以改变修饰方法:不能被子类重写,但可以重载修饰类:不能被继承常用的 final 类:System, Math, Stringpublic final class Maths { public static final double PI原创 2021-05-17 21:34:39 · 1622 阅读 · 3 评论 -
【JavaLearn】 # (4)Object类、组合、多态性、设计模式、三大特征综合练习
1. 认识Object类Object 类是所有类的基类,也就意味着所有的类,都具有Object类的属性和方法。1.1 Object 类的常用方法Object obj = new Object;// ===================== public方法 ==========================obj.toString(); // 将一个对象的内容转换为字符串obj.equals(""); // 判断两个对象的内容是否相同,默认比较两个对象的 ha原创 2021-05-11 21:40:08 · 1693 阅读 · 2 评论 -
【JavaLearn】 # (3)static关键字、package/import、注释、封装性、继承性
1. static关键字一个类的成员包括变量、方法、构造方法、代码块和内部类。static 可以修饰除了构造方法以外的所有成员。使用 static 修饰的成员是静态成员,属于某个类的,一个类只有一份,不使用 static 修饰的成员为实例成员,属于类的每个对象,被所有的对象共享1.1 static 变量非静态方法可以访问静态变量、非静态变量静态方法只能访问静态变量public class Student { int sno; String name; int age;原创 2021-04-25 22:08:09 · 1853 阅读 · 0 评论 -
【JavaLearn】 # (2)类和对象、变量、构造方法、普通方法、this关键字
1. 类和对象1.1 面向过程和面向对象面向过程和面向对象都是对软件分析、设计和开发的一种思想。机器语言汇编语言高级语言面向过程:C、Fortran。。。面向对象:C++、Java、C#先有面向过程的思想,随着软件规模扩大,问题复杂性的提高,出现了面向对象的思想。软件的分析、设计、开发就演化成了面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)示例1:开车和造车① 面向过程思想:首先要思考”怎么按步骤实现?“,将步骤对应方法,一步一步,最终实现(重点关注如何原创 2021-04-19 20:55:52 · 1883 阅读 · 0 评论 -
【JavaLearn】 # (1) JavaSE查漏补缺
1. Java跨平台原理概述说明总Java最大的优点就是跨平台(一次编译,到处运行),主要是指字节码文件可以在任何(具有Java虚拟机的)计算机或者电子设备上运行。分Java的执行过程:1. Java程序的运行要经过:编辑、编译、解释并执行2. Java源代码经过编译后生成字节码文件(.class),字节码文件与平台无关,只面向虚拟机3. 字节码文件需要通过Java虚拟机(JVM)再解释成 相应平台的机器码 并运行。Java虚拟机是可运行Java字节码文件的虚拟计算机。Jav原创 2021-03-31 21:28:31 · 2183 阅读 · 2 评论