- 博客(47)
- 收藏
- 关注
原创 Mysql的存储引擎、事务及隔离级别
MySQL 基础关系型数据库介绍顾名思义,关系型数据库就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。 关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行就存放着一条数据(比如一个用户的信息)。大部分关系型数据库都使用 SQL 来操作数据库中的数据。并且,大部分关系型数据库都支持事务的四大特性(ACID)。常见的关系型数据库MySQL、PostgreSQL、Oracle、SQL Server、SQLite(微
2022-02-12 15:28:24
551
原创 Mybatis入门
mybatis是什么,有什么特点Mybatis是面向sql的持久层框架,他封装了jdbc访问数据库的过程,我们开发,只需专注于sql语句本身的拼装,其它复杂的过程全部可以交给mybatis去完成。它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低什么是ORM?Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java
2022-02-11 14:32:51
501
转载 Java中的栈内存和堆内存
共两篇文章第一篇1.Java中对象都是分配在heap(堆)中。从heap中分配内存所消耗的时间远远大于从stack产生存储空间所需的时间。(1)每个应用程序运行时,都有属于自己的一段内存空间,用于存放临时变量、参数传递、函数调用时的PC值的保存。这叫stack。(2)所有的应用可以从一个系统共用的空间中申请供自己使用的内存,这个共用的空间叫heap。(3)stack中的对象或变量只要定义好就可使用了,应用程序结束时会自动释放。(4)而要使用heap中申请的变量或对象只能定义变量指针,并要求在运行
2022-02-09 22:03:28
3535
原创 Java中迭代,迭代器
迭代是什么,迭代器是什么迭代通俗点说 叫 一个个数过去,实现这样一个个数过去功能的东西,叫迭代器。Iterator(迭代器) 接口提供遍历任何 Collection 的接口。我们可以从一个 Collection中使用迭代器方法来获取迭代器实例。迭代器取代了 Java 集合框架中的 Enumeration,迭代器允许调用者在迭代过程中移除元素。java迭代器 较多使用在容器中,如数组链表 ArrayList(反正就是能装东西的玩意儿)举个例子:#我们先往链表中装东西ArrayList a
2022-02-08 23:46:53
1113
原创 Java容器
容器的概念在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体.ArrayList的实现用的是数组,LinkedList是基于链表,ArrayList适合查找,LinkedList适合增删HashMap的原理 所周知,HashMap是用来存储Key-Value键值对的一种集合,这个键值对也叫做Entry,而每个Entry都是存储在数组当中,因此这个数组就是HashMap的主干。 HashMap数组中的每一
2022-02-08 23:29:20
642
原创 Java中的关键词(不断补充更新)
finalfinal 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。final 修饰的类叫最终类,该类不能被继承。final 修饰的方法不能被重写。1.修饰变量凡是对成员变量或者局部变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量。final变量经常和static关键字一起使用,作为常量。final修饰基本数据类型的变量时,必须赋予初始值且不能被改变,修饰引用变量时,该引用变量不能再指向其他对象当final修饰基本数据类型变量时不赋予初始
2022-02-07 20:33:14
195
原创 hashcode详解
看面试题,看到了关于hashcode方面的问题,给我整蒙了,就搜了搜相关博客整理了一下,希望能帮到有缘人。hashcode是什么?1.hash和hash表是什么?想要知道这个hashcode,首先得知道hash,百度一下:hash是一个函数,该函数中的实现就是一种算法,就是通过一系列的算法来得到一个hash值,这个时候,我们就需要知道另一个东西,hash表,通过hash算法得到的hash值就在这张hash表中,也就是说,hash表就是所有的hash值组成的,有很多种hash函数,也就代表着有很多
2022-02-07 18:44:56
442
原创 SpringMVC(二)解释各个模块的作用
SpringMVC前端控制器(DispatcherServlet)的作用SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控
2022-02-07 13:33:52
611
原创 SpringMVC
JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架。为什么要使用SpringMVC?优势在哪里?很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对象更改都有高度敏感性。而且,当多个视图依赖于同一个业务对象时是没有灵活性的。SpringMVC是一种基于Java,
2022-02-07 13:17:00
165
原创 Spring IOC三种注入方式以及注入不同数据类型
Spring IOC(依赖注入的三种方式):1.Setter方法注入package com.jpeony.spring.setter;import com.jpeony.spring.common.HelloServiceImpl;public class HelloWord {private HelloService helloService; // setter方式注入Bean public void setHelloService(HelloService helloServ
2022-02-06 21:08:06
486
原创 Spring基础篇02
1、解释整合Servlet的背后细节1.1 为什么要在web.xml中配置listener?a. 这个listener是实现了ServletContextListener , 只要项目一发布,就会得到通知。b. 因为它要感知到项目到底有没有发布, 以便我们能够立即创建出来工厂。public class ContextLoaderListener extends ContextLoader implements ServletContextListener {1.2 为什么要在web.xml中配
2022-02-05 11:38:10
294
原创 警告:Spring ApplicationContext - Resource leak: ‘context‘ is never closed的处理
代码片:解决办法1.import org.springframework.context.ConfigurableApplicationContext;2.((ConfigurableApplicationContext)applicationContext).close();
2022-02-04 23:04:15
397
原创 Spring基础篇01
1. Spring概述1.1 什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由RodJohnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由E
2022-02-04 22:59:43
419
原创 WebService
1.webService概述1.1 引出webservice先来看两种类型的网络应用1.简单的网络应用简单的网络应用使用单一语言写成,它的唯一外部程序就是它所依赖的数据库。2.复杂的网络应用更为复杂的应用除了自己内部调用之外有可能还会对外部程序提供服务,更或是调用其他应用。1.2 webService是什么?WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用. Web service是一个平台独立的,低耦合的
2022-02-03 23:30:37
487
原创 在tomcat中运行servlet程序时报405的问题
问题描述:在tomcat中发布servlet程序时通过浏览器访问当前servlet程序时报405错误解决办法问题原因下面是HttpServlet的部分源码: protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String protocol = req.getProtocol();
2022-02-03 11:31:23
2147
原创 JDBC基础
一,JDBC概述1. JDBC的概念1.1 什么是JDBCJDBC: Java Database Connectivity sun公司为了简化和统一java连接数据库,定义的一套规范2.2 JDBC和数据库驱动的关系接口(JDBC)与实现(驱动jar包)的关系2. 为什么要使用JDBC为了能够让我们使用java编程语言操作数据库1.1没有JDBC1.2有了JDBC后二,开发环境准备1.环境的准备调出java视图设置编码为utf-8调整字体大小[外链图
2022-02-01 16:56:45
600
原创 JDBC连接池&DBUtils
1.使用连接池重写工具类1.1 连接池概念、原理及其使用1.11 什么是连接池数据库连接池是负责分配、管理、和释放数据库连接的;它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。1.12 连接池的原理1.13 连接池的使用为什么要用连接池数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能。如何使用连接池建一个类,实现接口 定义三个方法init()初始化资源,
2022-02-01 13:48:09
122
原创 Mysql
1.学习MySql,完成单表增删改查1.1 需求分析学习MySQL单表的增删改查操作1.2 数据库回顾1.2.1 数据库概述什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增加,修改,删除及查询操作。存储、维护和管理数据的集合。数据库和表数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库(DB:文件系统),对数据
2022-01-31 23:16:39
1934
原创 接口多态以及接口中的转型问题
1.接口多态接口部分(父类):package com.cao._接口多态;public interface Phone { //打电话 public abstract void call(); //发信息 public abstract void sendMessage();}子类1package com.cao._接口多态;public class Nokia implements Phone { @Override public void call() { //
2021-07-28 18:07:41
156
转载 Idea中Vue的安装和使用
一.准备工作 Vue是前端开发框架。搭建框架,首先要搭建环境。搭建Vue的环境工具:node.js(JavaScript的运行环境),然后再用nodejs里面的npm(包管理和分发工具)来安装依赖包。 二.安装node.js 下载地址:https://nodejs.org/zh-cn/ 最好下载稳定版本:下载完之后(安装程序可以直接next step) 三....
2021-07-14 21:11:33
4759
转载 Java多线程(并发,并行,同步)
并行和并发: 引子:前面讲到程序的运行流程的时候,说程序在没有流程控制前提下,代码都是从上而下逐行执行的。 需求:现在需要设计一个程序想要完成边运行游戏,边播放歌的功能,怎么设计? 要解决上述问题,咱们得使用多进程或者多线程来解决. 并发和并行是即相似又有区别(微观概念): 并行:指两个或多个事件在同一时刻点发生; 并发:指两个或多个事件在同一时间段内发生。 在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单CPU系...
2021-06-06 20:43:36
494
转载 Java异常处理
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的。 比如: 客户输入数据的格式, 读取文件是否存在, 网络是否始终保持通畅等等。 异常:在Java语言中, 将程序执行中发生的不正常情况称为“异常” 。 (开发过程中的语法错误和逻辑错误不是异常)...
2021-06-06 20:41:13
68
原创 ElasticSearch
1.引出ElasticSearch思考:大规模数据如何检索?如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:1)用什么数据库好?(mysql、sybase、oracle、达梦、神通、mongodb、hbase…)2)如何解决单点故障;(lvs、F5、A10、Zookeep、MQ)3)如何保证数据安全性;(热备、冷备、异地多活)4)如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)5)如何解决统计分析问
2021-06-04 20:47:25
256
2
转载 5种分布式事务解决方案对比
背景 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。 ACID 指数据库事务正确执行的四个基本要素: 原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原.
2021-05-30 14:27:07
357
转载 基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战
1 极速了解MQ 介绍Rabbitmg用于解决分布式事务必须掌握的5个核心概念 一款分布式消息中间件,基于erlang语言开发, 具备语言级别的高并发处理能力。和Spring框架是同一家公司。 支持持久化、高可用 核心5个概念: Queue: 真正存储数据的地方Ex...
2021-05-30 14:23:43
433
转载 分布式事务,高并发下分布式事务的解决方案
1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 2、分布式事务的产生的原因 2.1、数据库...
2021-05-30 14:20:15
1514
原创 分布式缓存中间件:Redis
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。Redis作为当下最为流行的分布式缓存中间件,其应用可以说是非常广泛的,也是我非常喜欢使用的一种分布式缓存中间件。其是一个开源的,C语言编写的,基于内存,支持持久化的日志型,KV型的网络程序。1. 分布式缓存的基本概念1.1 分布式缓存的发展1)
2021-05-23 09:31:35
1171
1
原创 Kafka详解
1. 概念理解Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。1.1 产生背景当今社会各种应用系
2021-05-08 08:21:53
244
原创 面试整理
Java面试总结汇总 序号内容链接地址1Java基础知识面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/1043906122Java集合容器面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/1045885513Java异常面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/1043906894并发编程面试
2021-05-06 11:18:34
74
转载 Netty
1. Netty是什么Netty是一个NIO网络编程框架,快速开发高性能、高可靠性的网络服务器/客户端程序。 极大地简化了TCP和UDP等网络编程。是一个异步事件驱动的网络框架。重点是NIO、快速、高性能。2.Netty 常见使用场景?RPC(pigeon、dubbo、HSF)Hadoop、SparkMQ(swallow、RocketMQ)Zookeeper等1)互联网行业:在分布式系统中,各个节点之间需要远程服务调用,高性能的 RPC 框架必不可少,Netty作为异步高性能的通信框架,往往作为
2021-05-06 08:55:29
319
原创 TCP/IP协议HTTP协议和Socket的关系
1.IP(Internet Protocol)网际协议IP(Internet Protocol) 网际协议位于网络层,几乎所有使用网络的系统都会用到IP协议。IP协议的作用是把各种数据包传送给对方。为了保证传输的可靠性,我们需要IP地址和MAC地址。IP地址指明了节点被分配到的地址,MAC地址是网卡所属的固定地址。IP地址可变换,MAC地址基本不会更改,两者之间可以配对IP间的通讯依赖于MAC地址。在网络上,通信的双方都在同一局域网内的情况是十分少见的,通常是经过多台计算机和网络设备进行中转才能连接
2021-05-05 10:02:51
1608
2
原创 Nginx
1.Nginx是什么?Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2.Nginx能做什么?2.1 、静态HTTP服务器首先,Nginx是一个HTTP服务器
2021-03-09 22:37:02
63
原创 Maven
1、什么是Maven?Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。二、Maven是干什么的?它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。例如:两个项目A B,项目A需要依赖一些jar包,项目B也需要依赖这些jar包,那么此时如果都把jar包引入到项目中,就是在重复造轮子,我们应该把这些所有的jar包放到
2021-02-24 23:47:11
129
原创 P2P借贷系统
1.登录控制和大多数的网站一样,在用户没有登录的时候,也是可以看到很多内容的,但是有很多操作是不能操作的,比如标的这块,如果没有登录也是能够看到标的信息的,但是不能之心投标的操作;像首页,投标列表这些页面,都是不登录也是能看到的;但是另外一些页面,比如个人中心,就必须是登录用户才能看到的,所以在网站中一般登录的控制不会像pss那样固定,需要做的更灵活**想法:**1.以前做过登录控制就是加一个拦截器,登录页面这些不需要进行拦截,其他页面都是需要拦截的,所以只要登录的逻辑需要拦截其他的逻辑不需要拦截,如果
2021-02-01 01:40:07
770
原创 Spring02
1.配置文件篇1.2 spring的XML约束详细说明这里总结关于Spring的XML约束+Schema约束。以后不管是仅使用ioc功能还是aop,把全部的约束引入即可<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i
2021-01-18 06:27:34
107
原创 Java线程详解
1.程序,进程,线程区别+并行与并发区别1.1 什么是程序?程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。1.2 什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器等等。即是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。-------生命周期1.3 什么是线程?线程:进程中要同时干几件事时,每一件事的执行路径成为线程,即进程可进一
2021-01-17 22:46:20
166
原创 垃圾回收机制
对于任何一门语言而言,在运行过程中都会创建许多对象,继而需要为这些对象分配内存地址,当这些对象不需要使用的时候,需要释放其占用的内存地址,以供新的对象使用。关于对象内存释放的这一机制就叫做垃圾回收机制(GC)。Java中垃圾回收是自动化的,但其可控性差,内存容易溢出。内存溢出是因为JVM内存分配的对象过多,这些对象所需内存超出了JVM内存大小。虽然Java中是自动的。但是程序员仍可调用System.gc( )来进行手动回收,调用此方法会尝试释放被丢弃的对象占用的内存,但结果无法保证,因此附带一个免责声明。
2021-01-09 16:25:23
2500
原创 常用软件安装及配置
等号左边自动补齐快捷键自此,快捷键设置已成功。在代码里操作时,可以先输入代码右边的内容。然后按快捷键“Ctrl+Alt+/”,等号左边自动补齐。
2021-01-06 22:35:50
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人