Java
文章平均质量分 63
Java学习
Geek Li
不想掉头发的程序员
展开
-
JavaEE——Spring框架(1)
目录1.Spring的概念2.Spring Framework 的特点3.Spring体系结构3.1. Data Access/Integration(数据访问/集成)3.2. Web 模块3.3.Core Container(Spring 的核心容器)3.4. AOP、Aspects、Instrumentation 和 Messaging3.5. Test 模块4.Spring开发环境搭建5.IOC5.1 依赖注入(DI)5.2 IoC 的工作原理5.3 IoC 容器的两种实现6.Spring Bean定原创 2022-03-29 00:32:36 · 2119 阅读 · 0 评论 -
Spring-SpringMVC-MyBaits三大框架整合
目录1.创建工程2.引入相关依赖3. 相关的配置3.1 web.xml的相关配置3.2 springmvc.xml文件的相关配置3.3 dbdata.properties文件的相关配置3.4 mybatis-config.xml文件的相关配置3.5 log4j2.xml1.创建工程打开IDEA,创建一个如下的工程2.引入相关依赖pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven原创 2022-03-29 00:18:52 · 692 阅读 · 0 评论 -
JavaEE——MyBaits的关联查询和缓存
目录1. 订单数据模型分析2.一对一关联查询2.1 方法一:使用扩展 VO 类实现一对一2.2 方法二:使用扩展实体的 POJO 类实现一对一3.一对多关联查询4.多对多关联查询5.关联查询总结5.1 resultType:5.2 resultMap:6.懒加载6.1 启动懒加载6.2 懒加载示例6.3 懒加载总结7.缓存7.1为什么使用缓存7.2 一级缓存7.2.1 一级缓存介绍7.2.2 测试一级缓存 17.2.3 测试一级缓存 27.3 二级缓存7.3.1 二级缓存原理介绍7.3.2 配置二级原创 2022-03-24 16:00:00 · 401 阅读 · 0 评论 -
JavaEE——从零开始上手Maven项目
目录一、为什么使用Maven二、Maven仓库三、Maven的安装配置更改本地仓库路径、中央仓库四、常用的Maven命令五、依赖的作用域六、写一个maven+ssm 核心文件配置一、为什么使用Maven你是否遇到过下面的这些情况:使用一个框架(如spring),需要依赖的jar包太多太杂,每次要找到整理好保存在磁盘中的jar包文件夹,把所有jar导进项目。在IDE中因为缺失jar包或版本问题,各种小红叹号导入别人的项目,又是各种小红叹号好不容易百度解决了叹号,运行时tomcat又出现问题正常原创 2022-03-20 16:58:18 · 690 阅读 · 0 评论 -
JavaWeb——过滤器和监听器
目录1. 过滤器1.1 开发过滤器1.2 开发过滤器链1.3 使用过滤器实现汉字编码过滤器2. 监听器2.1 统计在线人数1. 过滤器在 JSP 的 Web 应用程序中,过滤器是一种在服务端运行的 Web 组件程序,它可以截取客户端给服务器发的请求,也可以截取服务器给客户端的响应,如图 1 所示。 那么过滤器在什么地方使用呢?下面列举了 5 个过滤器使用的场景。 1:在网上的一些评论中经常看到不文明的词汇会被*所代替,这种功能的实现就是在用户提交评论时,评论内容先先经过过滤器,过滤器将不原创 2022-03-20 15:16:05 · 1692 阅读 · 1 评论 -
JavaWeb——EL表达式、JSTL标签
1.前言在 JavaWeb 开发模式中,JSP 作为界面用于实现输入和输出。输入是通过表单实现的,输出是通过 JSP 的内置对象 out 或表达式<%=%>实现的。被输出的数据通常存储到四个作用域中,而向界面输出数据通常使用 EL 和 JSTL 实现。使用 EL 可以代替<%=%>,使用 JSTL 可以代替 java 语言中的定义变量、if 语句等,实现在界面上不出现 Java 代码,只有标签,使得前端开发人员与后端开发人员高效协同开发软件。2.EL表达式EL 表达式又称为表达原创 2022-03-20 14:47:39 · 3701 阅读 · 0 评论 -
JavaWeb——Session入门
目录1.什么是session2.session共享数据3.session是私有的4.session常用的方法5.Session的生命周期6.Session的有效期7.实例任务:登录与退出8.session与Cookie的区别9.会话跟踪技术都有哪些?除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。1.什么是sessionsession对象是JSP内置对象原创 2022-03-14 23:57:17 · 631 阅读 · 0 评论 -
JavaWeb——Cookie入门
1.会话跟踪什么是会话呢?从用户进入一个网站浏览开始,到关闭浏览器为止称为一次会话。会话包含以下意思:会话是一段时间,这段时间默认从打开浏览器开始到关闭浏览器为止。一次会话可以包含多次请求与响应。而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的原创 2022-03-14 23:46:29 · 1201 阅读 · 1 评论 -
JavaWeb——servlet的应用
目录生成验证码实现登录功能生成验证码package com.xawl.util;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.s原创 2022-03-11 00:02:31 · 945 阅读 · 0 评论 -
Java——开发中的MVC模式
简介MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。Model(模型) :就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。View(视图):视图(View)代表用户交互界面,对于Web应用来说,可以概括为H原创 2022-03-07 19:06:30 · 961 阅读 · 0 评论 -
JavaWeb——Servlet
目录1.Servlet相关概念2.servlet的三种创建方式3.映射路径配置4.生命周期5.servlet执行流程6.servlet加载7.处理乱码问题8.servlet读取外部的配置参数9.servlet是单例模式1.Servlet相关概念Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者原创 2022-03-07 18:55:56 · 179 阅读 · 0 评论 -
JavaWeb——Tomcat的基本使用
目录1.Web的基础知识2.TomcatTomcat安装和配置Tomcat目录结构Web项目的目录结构3.常见的项目发布方式1.Web的基础知识什么是Web应用 B/S使用浏览器进行访问的应用程序,我们可以称作为Web应用,Web应用的特点就是无需额外安装客户端.比如我们经常访问的淘宝,京东,网易等这些都是属于Web应用什么是JavaWeb就是使用Java语言开发web应用程序Web程序采用的是B/S架构所谓的B/S 就是浏览器跟服务器进行数据交互的方式 数据传输的方式 采用的是HTTP原创 2022-03-04 18:24:49 · 296 阅读 · 0 评论 -
JDBC——连接池
1.连接池的概念为什么要有连接池?由于建立数据库连接是一种非常耗时、耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,使用完毕后再归还到连接池中。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。连接池基本的思想是在系统初始化的时候,将数据原创 2022-02-28 22:45:36 · 240 阅读 · 0 评论 -
MYSQL中的事务
1.1事务的特性ACID 原子性:事务里面的操作单元不可切割,要么全部成功,要么全部失败 一致性:事务执行前后,业务状态和其他业务状态保持一致. 隔离性:一个事务执行的时候最好不要受到其他事务的影响 持久性:一旦事务提交或者回滚.这个状态都要持久化到数据库中1.2不考虑隔离性会出现的问题脏读:在一个事务中读取到另一个事务没有提交的数据不可重复读:在一个事务中,两次查询的结果不一致(针对的update操作) 不可重复读,是指在数据库访问中,一个事务范围内两个相同的查询却返回原创 2022-02-28 22:24:11 · 86 阅读 · 0 评论 -
JDBC——JDBC连接数据库快速入门
目录1.JDBC快速入门2.JDBC连接介绍3.使用JDBC查询数据,并封装到对象中4.SQL注入风险5.防止SQL注入6.创建JDBC工具类连接数据库7.批处理添加用户8.在Java程序中调用存储过程9.Java中调用数据库的内置函数10.自增长键1.JDBC快速入门 JDBC: Java连接数据库, 他是一个规范,也就是说Java提供的一套接口 JDBC:Java DataBase Connectivity Java 连接数据库 JDBC,其实就是Java定义的一套原创 2022-02-23 21:41:38 · 574 阅读 · 0 评论 -
JavaWeb——Java中JSON字符串与Java对象的互转
JSON数据和Java对象的相互转换JSON解析器: 常见的解析器:Jsonlib,Gson,fastjson,jackson 1. Java对象转换JSON 1. 使用步骤: 1. 导入jackson的相关jar包 2. 创建Jackson核心对象 ObjectMapper 3. 调用ObjectMapper的相关方法进行转换 1. 转换方法: writeValue(参数1,obj): 参数1:原创 2022-01-23 22:47:18 · 949 阅读 · 0 评论 -
web基础——CSS层叠样式表
目录CSS的作用:基本语法选择器1.类选择器2.id选择器3.标签选择器4.包含选择器5.伪类选择器的优先级子选择器相邻选择器 div +p相邻所有选择器 div ~p属性选择器 input[type=“password”]过滤选择器CSS的作用:实现了样式和html的代码分离弥补html对属性的控制不足精确的控制页面的布局可以提高页面的执行效率css有特殊的功能特性:继承性,层叠性基本语法<style type="text/css">选择器{ 属性1原创 2021-12-28 20:21:17 · 3914 阅读 · 0 评论 -
Web基础——Html基础
1.初识HtmlHTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)html作用:网页是由网页元素组成的 , 这些元素是利用html标签描述出来,然后通过浏览器解析,就可以显示给用户了。所谓超文本,有2层含义:因为它可以加入图片、声音、动画、多媒体等内容( 超越文本限制 )不仅如此,它还可以从一个文原创 2021-12-26 17:20:57 · 4284 阅读 · 0 评论 -
Java基础——Lambda表达式、函数式接口
Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。...原创 2021-12-23 14:23:37 · 367 阅读 · 0 评论 -
Java基础——Stream API
Stream API(java.util.stream.*) Stream 是 Java8 中处理集合的关键抽象概念, 它可以指定你希望对集合进行的操作, 可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。 简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。创建Stream的方式 Stream 的中间操作 Stream 的终止操作原创 2021-12-18 16:14:00 · 126 阅读 · 0 评论 -
JDK1.8新特性—— 新增的日期时间API
LocalDate、 LocalTime、 LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。注: ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法这些新增的日期时间API都在 java.time包下获取对象的方法 方式1通过静态方法 now(); 例如:LocalDateTime ldt = LocalDateTime.n原创 2021-12-18 15:16:25 · 732 阅读 · 0 评论 -
Java基础——类加载器、反射、动态代理
类加载器,反射,动态代理,枚举原创 2021-12-16 14:47:03 · 195 阅读 · 0 评论 -
Java——TCP案例演示
客户端键盘录入服务器控制台输出,客户端键盘录入服务器写到文本文件,客户端读取文本文件服务器控制台输出,TCP协议上传文本文件(客户端读取文本文件发送数据到服务器端,服务器端读取数据存储到文本文件中),TCP上传文本文件并给出反馈,多客户端上传文件,多线程改进。原创 2021-12-16 11:29:09 · 1388 阅读 · 0 评论 -
Java基础——计算机网络、网络编程
Java之网络编程,TCP UDP接收发送数据原创 2021-12-16 11:09:23 · 1849 阅读 · 0 评论 -
Java——多线程实现聊天室程序
Java——多线程实现聊天室程序原创 2021-12-16 10:53:35 · 1327 阅读 · 0 评论 -
Java基础——几种常用设计模式
1.概述设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编写、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性以及代码的结构更加清晰。设计模式分类创建型模式(创建对象的): 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。行为型模式(对象的功能): 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。结构型模式(对象的组成): 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式原创 2021-12-14 22:03:09 · 323 阅读 · 0 评论 -
Java基础——设计原则
1.概述设计模式,不是一种新的语言,也不是什么新的API,也不是什么新的语法设计模式,是前辈们,不断总结,不断打磨出的一种经验的总结,不同的设计模式适用不同的场景。设计模式,公认的有23种设计模式,分别对应不同的场景,这些设计模式是经过长期实践总结而留存下来的。千万不要认为有任何一种设计模式,能够解决任何问题。每一种设计模式只能用于使用的场景。而不是万能的。设计模式有优点也有缺点。我们不要为了适用设计模式而使用设计模式,切记设计模式的滥用,23中设计模式的背后,其实是7大设计原则,也就是说每个设原创 2021-12-14 21:45:43 · 347 阅读 · 0 评论 -
Java基础——线程池、定时器
1.为什么要使用线程池在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个jvm里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足。为了防止资源不足,服务器应用程序需要采取一些办法来限制任何给定时刻处理的请求数目,尽可能减少创建和销毁线程的次数,特别是一些资源耗费比较大原创 2021-12-09 15:02:46 · 388 阅读 · 0 评论 -
Java基础——多线程之等待唤醒机制和状态
1.线程间的等待唤醒机制Object 类中 void wait () 在其他线程调用此对象的 notify () 方法或 notifyAll () 方法前,导致当前线程等待。 void wait (long timeout) 在其他线程调用此对象的 notify () 方法或 notifyAll () 方法,或者超过指定的时间量前,导致当前线程等待。 void notify () 唤醒在此对象监视器上等待的单个线程,随机唤醒。 void notifyAll原创 2021-12-09 13:34:11 · 1529 阅读 · 0 评论 -
Java基础——多线程之线程安全
线程安全问题引入:需求:某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计一个程序模拟该电影院售票。 通过实现Runnable接口实现TicketSalesRunnablepublic class TicketSalesRunnable implements Runnable { static int piao = 100; @Override public void run() { while (true) {原创 2021-12-07 12:30:27 · 241 阅读 · 0 评论 -
Java基础——多线程(1)
1.进程概述及多进程的意义线程和进程?要想说线程,首先必须得聊聊进程,因为线程是依赖于进程存在的。进程概述 什么是进程呢?通过任务管理器我们就可以看到进程的存在。 概念:进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。 每一个进程都有它自己的内存空间和系统资源。多进程的意义 单进程计算机只能做一件事情。而我们现在的计算机都可以一边玩游戏(游戏进程),一边听音乐(音乐进程), 所以我们常见的操作系统都是多进程操作系统。比如:Windows,Mac和Linux等,能在同原创 2021-12-06 21:34:21 · 369 阅读 · 0 评论 -
Java用户线程和守护线程
1.用户线程和守护线程的区别 用户线程和守护线程都是线程,区别是Java虚拟机在所有用户线程dead后,程序就会结束。而不管是否还有守护线程还在运行,若守护线程还在运行,则会马上结束。很好理解,守护线程是用来辅助用户线程的,如公司的保安和员工,各司其职,当员工都离开后,保安自然下班了。 2.用户线程和守护线程的适用场景 由两者的区别及dead时间点可知,守护线程不适合用于输入输出或计算等操作,因为用户线程执行完毕,程序就dead了,适用于辅助用户线程的场景,如JVM的垃圾回收,内...原创 2021-12-06 21:16:18 · 162 阅读 · 0 评论 -
Java基础——IO流中的其他输入输出流
1.数据输入输出流数据输入流: DataInputStream数据输出流: DataOutputStream特点: 可以写基本数据类型,可以读取基本数据类型原创 2021-12-06 20:40:18 · 385 阅读 · 0 评论 -
Java基础——字符流
1.字符流字符流出现的原因:由于字节流操作中文不是特别方便,所以,java就提供了字符流。字符流: 字符流 = 字节流 + 编码表2.String类中的编码和解码问题编码: 就是把字符串转换成字节数组把一个字符串转换成一个字节数组 public byte[] getBytes();使用平台的默认字符集将此 String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 public byte[] getBytes(String charsetName) 使用指定的字符集将此原创 2021-12-02 15:14:12 · 1890 阅读 · 0 评论 -
Java基础——IO流
1.IO流概述及其分类IO流概述: IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 java.ioIO流分类: a:按照数据流向 站在内存角度 输入流 读入数据 输出流 写出数据 b:按照数据类型 字节流 可以读写任何类型的文件 比如音频 视频 文本文件 字符流 只能读写文本文件 什么情况下使用哪种流呢? 如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。原创 2021-12-02 12:31:50 · 175 阅读 · 0 评论 -
Java基础——File类
File类文件和目录路径名的抽象表示形式 这个File类可以用来表示文件,也可以用来表示目录原创 2021-12-02 10:34:51 · 1363 阅读 · 0 评论 -
Java基础——IO流概述、异常
1.IO流IO流用来处理设备之间的数据传输 上传文件和下载文件,复制文件 学习IO流之前为什么先学习异常和File类呢? 因为File表示的是IO流将来要操作的文件,所以我们需要学习File类。 而常见操作文件无非就是上传文件和下载文件,在这个操作的过程中可能出现问题, 出现问题后,我们需要对对应的代码进行处理。2.异常异常就是Java程序在运行过程中出现的错误。异常的分类:编译时异常、运行时异常异常的继承体系 异常的基类: Throwable 严重问题: Error原创 2021-12-02 09:58:02 · 431 阅读 · 0 评论 -
Java基础——Map集合、HashMap、LinkedHashMap、TreeMap、Collections工具类
1.Map集合Map接口概述: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效Map集合的功能概述 a:添加功能 V put(K key,V value):添加元素。这个其实还有另一个功能,替换 如果键是第一次原创 2021-11-28 21:03:57 · 117 阅读 · 0 评论 -
Java基础——Set、HashSet、LinkedHashSet 、TreeSet
1.HashSetSet:无序(存储和取出的顺序)和唯一。HashSet 底层数据结构是哈希表. HashSet 不是线程安全的 集合元素可以是 null哈希表:是一个元素为链表的数组,综合了数组和链表的优点当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根据 hashCode 值决定该对象在 HashSet 中的存储位置。HashSet 集合判断两个元素相等的标准:两个对象通过 hashCod原创 2021-11-25 11:56:12 · 792 阅读 · 0 评论 -
Java基础——ArrayList、Vector、LinkedList 、泛型
1.ArrayList的遍历除了迭代器和普通for循环可以遍历ArrayList外,JDK1.8新增的一个方法也能遍历集合;void forEach(Consumer<? super E> action) 执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常 。自定义Student对象package com.xawl.demo;/** * @Author:liger * @Description:爱学Java */public class Stud原创 2021-11-25 10:11:15 · 327 阅读 · 0 评论