- 博客(49)
- 收藏
- 关注
原创 23种设计模式
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。:抽象角色会使用接口或抽象类解决,真实角色是被代理的角色,代理角色代理真实角色后会有一些附加的操作,好处是可以使真实角色操作更加纯粹,不用关注一些公共的业务,公共交给代理角色,实现业务的分工,公共业务在扩展时,方便集中管理,缺点是一个真实的角色会产生一个代理角色,代码量会翻倍。:底层是反射机制,动态和静态代理角色一样,动态代理的代理是动态生成的,不是我们直接写好的,分为基于接口的动态代理和基于类的动态代理。
2022-08-22 16:44:52 271 1
原创 通信网络面试题
一般来说不会发生什么问题,但是还是有特殊情况出现:假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中,这些延迟数据在建立新连接之后才到达主机2,由于新连接和老连接的端口号是一样的,TCP协议就认为那个延迟的数据是属于新连接的,这样就和真正的新连接的数据包发生混淆了。互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层,基于TCP/IP的参考模型将协议分成四个层次,下图表示TCP/IP模型与OSI模型各层的对照关系。
2022-08-22 16:30:22 358
原创 JUC编程
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、 阻塞(Blocked)和死亡(Dead)5 种状态1.新建状态(NEW) :当程序使用 new 关键字创建了一个线程之后,该线程就处于新建状态,此时仅由 JVM为其分配内存,并初始化其成员变量的值2.就绪状态(RUNNABLE):当线程对象调用了 start()方法之后,该线程处于就绪状态。Java 虚拟机会为其创建方法调用栈和程
2022-08-22 16:13:04 233
原创 JVM面试
自定义的类加载器只需要继承ClassLoader,并覆盖findClass方法。CMS是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM 的参数加上“- XX:+UseConcMarkSweepGC”来指定使用 CMS 垃圾回收器。CMS 使用的是标记-清除的算法实现的, 所以在 gc的时候回产生大量的内存碎片,当剩余内存不能满足程序运行要求时,系统将会出现。............
2022-08-22 15:19:44 270
原创 JavaWeb相关
1.为保证服务器安全,上传文件应该放置在外界无法访问的目录下,比如web-INF目录2.为了防止文件覆盖现象发生,要为文件上传产生一个唯一的文件名(-uuid-时间戳-mds-位运算法)3.限制上传文件的最大值4.可以限制上传文件的类型,在收到上传文件名时,判断后缀是否合法.mp4,.txt,.jpg等。
2022-08-22 14:42:32 216
原创 经典排序算法
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。如果第一个比第二个大,就交换它们两个;这样共需要比较length-1轮,两两相比每一轮比较length-1-i次,每次比较出最大数。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
2022-08-22 13:48:36 78
原创 CentOS7下完全卸载RabbitMQ
依次删除对应目录:rm -rf 路径。查看rabbitmq安装的相关列表。查找并删除rabbitmq相关目录。查看erlang安装的相关列表。1、停止rabbitmq服务。卸载rabbitmq所有内容。卸载erlang所有内容。3、卸载rabbitmq。2、卸载erlang。删除erlang目录。...
2022-08-18 14:41:09 1934 1
原创 Nginx
公司产品出现瓶颈?我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。............
2022-08-09 15:58:20 76
原创 ShardingJdbc
httphttpshttps以下来自官网的原话ApacheShardingSphere是一套开源的分布式数据库解决方案组成的生态圈,它由JDBC、Proxy和Sidecar(规划中)这3款既能够独立部署,又支持混合部署配合使用的产品组成。它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。复制是异步的从站不需要永久连接以接收来自主站的更新。......
2022-08-01 18:23:17 1749
原创 消息队列-RabbitMQ笔记02
使用springboot完成rabbitmq的消费模式-Fanout1:创建生产者工程:sspringboot-rabbitmq-fanout-producer2:创建消费者工程:springboot-rabbitmq-fanout-consumer3:引入spring-boot-rabbitmq的依赖4:进行消息的分发和测试5:查看和观察web控制台的状况具体实现1、创建生产者工程:sspringboot-rabbitmq-fanout-producer2、在pom.xml中引入依赖3、在
2022-08-01 17:00:54 129
原创 消息队列-RabbitMQ笔记01
1.1、中间件简介我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,一个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境。现在的问题是,如何把这些信息系统结合成一个有机地协同工作的整体,真正实现企业跨平台、分布式应用。中间件便是解决之道,它用自己的复杂换取了企业应用的简单。中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。知识图谱1。.....
2022-08-01 15:54:34 145
原创 RabbitMQ-消息队列
RabbitMQ是基于AMQP协议的一款消息管理系统,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一官网http官方教程httpAMQP(advancedmessagequeuingprotocol)在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互问题。顾名思义,AMQP是一种协议,更准确的说是一种binarywire-levelprotocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。总结。......
2022-08-01 13:40:21 134
原创 Xshell保持会话连接
去掉#表示开启。意为每60S向客户端发送消息回复则保持连接不回复超过三次则断开连接命令检查ssh安装有没有安装,如果查询出来有就表示安装了,否则反之通过 命令来安装输入开启sshd服务检查sshd 服务是否启动,输入,如下图属性–连接–重新连接–连接异常关闭时自动重新连接间隔20S属性–连接–保持活动状态从60S改为30S编辑–虚拟网络编辑器–VMnet8–NAT设置—UDI超时从30S改为0S...
2022-07-13 16:36:11 1137
原创 linux中vim: command not found
bash vim: command not found1.查看系统是否安装完整vim2.安装vim3. 我的解决过程解决问题步骤:1.查看系统是否安装完整vim执行一下命令:如果已经正确安装的话,会显示如下三行:2.安装vim如果少了其中的某一条,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 来安裝:如果上面的三条一条都沒有返回, 可以直接用 yum -y install vim* 命令3.我的解决过程我只查看只有一行,我直接执行了
2022-07-08 13:46:09 22933 1
原创 使用Xshell远程连接Centos
进入Centos系统,用xshell远程连接一般大家都会下载个远程连接工具,使用我们安装好的系统,因为在本机上或虚拟机上操作太麻烦了。1.进入系统,选择第一个(默认选中的)2.然后输入root账号和密码 登入进去就可以操作系统了3.查看ip输入命令上图可以看到我们的ip,我们就可以拿取这个ip去我们的远程连接工具中连接。有些人可能没有,那我们就需要去配置。(如果有就忽略配置静态ip这一步!)1.进入网络配置的文件目录,找到一个格式大概是这样的ifcfg-xxxxx,我这里是ifcfg-eng3
2022-07-07 19:32:02 1314
原创 Docker基础
Docker的思想来自于集装箱;JRE – 多个应用(端口冲突)-- 原来都是交叉的!隔离 : Docker核心思想,打包装箱,每个箱子是互相隔离的。Docker通过隔离机制,可以将服务器利用到极致!Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。之前的虚拟机技术虚拟机技术的缺点:容器化技术不是模拟一个完整的操作系统比较Docker和虚拟机技术的不同:应用更快速的交付和
2022-06-30 14:34:19 205
原创 Redis笔记
为什么使用Nosql90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率!优化过程经历了以下几个过程: 如今信息量井喷式增长,各种各样的数据出现(用户定位数据,图片数据等),大数据的背景下关系型数据库(RDBMS)无法满足大量数据要求。Nosql数据库就能轻松解决这些问题。目前一个基本的互联网项目为什么要用NoSQL ?用户的个人信息,社交网
2022-06-30 12:42:57 169
原创 SpringCloud
给大家看下多个服务跑起来后的内存开销图:Spring Cloud 五大组件:2.1 什么是微服务?什么是微服务?微服务(Microservice Architecture) 是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。究竟什么是微服务呢?我们在此引用ThoughtWorks 公司的首席科学家 Martin Fowler 于2014年提出的一段话:原文:https://martinfowler.com/articles/microservices.html汉化:https://www.cnbl
2022-06-29 18:00:15 160
原创 SpringBoot03_聊聊现在和未来
回顾以前,架构(架构就是为了解耦合)2.开发架构:3.随着公司体系越来越大,用户越来越多!微服务架构—>新架构4.解决方案:SpringCloudSpringCloud,是一套生态,就是来解决以上分布式架构的4个问题想使用SpringCloud,必须要掌握SpringBoot,因为SpringCloud是基于SpringBoot;2018年年底,NetFlix宣布无限期停止维护。生态不再维护,就会脱节。所以不完善,Dubbo.以上4种,就是解决:1.API网关,服务路由问题2.HTTP
2022-06-29 15:37:27 235
原创 SpringBoot02
官网阅读在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。只有把这些都搞清楚了,我们在之后使用才会更加得心应手。途径一:源码分析,途径二:官方文档!地址 :https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration我们来仔细对照,看一下它怎么实
2022-06-29 14:43:31 373
原创 MybatisPlus
它可以使CRUD代码自动完成,使用mybatis-plus 可以节省我们大量的代码,它有点像我们java中的JPA ,tk-mapper通用mapper,现在开源项目的话用tk-mapper比较多,要是你用springboot的话JPA比较多,尽量不要同时导入mybatis 和mybatis-plus ! 版本的差异!使用第三方组件∶1.创建数据库mybatis_plus2.创建user表其对应的数据库 Data 脚本如下:3.编写项目,初始化项目!使用SpringBoot初始化!4.导入依赖5、
2022-06-28 20:38:00 65
原创 springboot员工系统
导入lombok依赖1.2、模拟数据库数据在pojo目录下新建Department,Employee两个类Department类:Employee类在dao目录下新建DepartmentDao类和public class EmployeeDao类EmployeeDao:DepartmentDao:1.3、导入静态资源,static文件下的,还有templates文件下的html文件2、首页实现我们启动主程序访问测试一下,访问localhost:8080/或者locahost:8080
2022-06-22 17:20:13 329
原创 SpringBoot初建项目问题
①查看依赖管理先介绍两个快捷键:ctrl:按住ctrl可以点击查看IDEA中的类、接口、注解以及依赖的源码。ctrl+f:在该文件内进行搜索。spring-boot-starter-parent的父依赖是spring-boot-dependences,里面管理了所有需要的默认的依赖版本。点进去得到下图,需要先把这个版本给注释掉,然后再改pom.xml文件中的版本,才有用的问题描述:提示:刚创建好的maven项目怎么会报错呢:原因分析:不难发现每个依赖都会有版本号,而这个没有解决方案:根据自
2022-06-16 14:44:45 90
原创 服务器购买及宝塔部署环境说明
服务器相关知识在阿里云上购买,官网链接:https://cn.aliyun.com/尽量趁打折,购买,便宜一般新用户注册的时候有优惠.大家可以这个时候购买.学生机:链接:https://www.aliyun.com/activity/promotion/campus2018学生或24岁以下的可以购买学生机,100多元一年香港服务器可以避免备案,但是尽量不要自己挂vpn,会被封优惠活动,建议购买下图这个,用来学习够了:只要是新用户就可以,链接为:https://www.aliyun.com
2022-06-14 15:15:53 372
原创 CentOS7安装教程
CentOS7最小化安装教程如下:本文CentOS7安装在VMware Workstation虚拟机软件,故安装前请自行安装该软件。VMware Workstation官网链接:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.htmlCentOS7下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/1、打开VMware Workstation,
2022-06-14 11:54:10 129
原创 Java面试_se基础
1、八大基本数据类型byte,short,int,long,float,double,char,boolean银行不使用浮点型,float是有限的离散的,要使用BigDecimal计算2、拆装箱问题(强制类型转化内存溢出问题)装箱:基本类型包装成引用类型拆箱:将包装类型转换为基本数据类型;int和Integer区别Java5开始引入了自动装拆箱的机制,在-128~127之间自动装箱时不会new新的integer对象,而是直接引用常量池中的integer对象,超过范围为false3、常量和变量
2022-05-30 21:26:27 80
原创 Java基础笔记
1、预科1.1、什么是计算机名称:Computer,全称电子计算机,俗称电脑。定义:能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。组成:由硬件和软件组成。形式:常见显示有台式计算机、笔记本计算机、大型计算机等。应用:科学计算、数据处理、自动控制、计算机辅助设计、人工智能、网络等领域。1.2、硬件及冯诺依曼结构计算机硬件组成:cpu,主板,内存,电源,主机箱,硬盘,显卡,键盘、鼠标,显示器。冯诺依曼结构1.3、软件及软件开发计算机软件计算机软件按照其
2022-05-27 17:55:52 146
原创 IDEA入门配置
1、IDEA的介绍、安装以及汉化1.1、简介首先是百度百科对于IDEA的介绍IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版
2022-05-27 10:43:06 84
原创 SpringBoot01
1、SpringBoot简介1.1、回顾什么是SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring是如何简化Java开发的?为了降低Java开发的复杂性,Spring采用了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;2、通过IOC,依赖注入(DI)和面向接口实现松耦合;3、基于切面(AOP)和惯例进行声明式编
2022-05-20 15:43:48 112
原创 SpringMVC
1、回顾MVC1.1、什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)
2022-05-19 20:14:57 142
原创 mybatis与Spring的整合
mybatis与Spring的整合1. 创建com.Wang的包在该包下分别创建mapper pojo 的包框架大致为:2. 创建User实体类package com.Wang.pojo;import lombok.Data;@Datapublic class User { private int id; private String name; private String pwd;}3.配置mybatis.xml<?xml version="1.
2022-05-19 17:36:55 59
原创 Spring
1、Spring1.1、简介Spring:春天----->给软件行业带来了春天!2002,首次推出了Spring框架的雏形: interface21框架!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。Rod Johnson , Spring Framework创始人,著名作者。很难想象Rod Johnson的学历,真的让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。spring理念
2022-05-19 16:57:15 127
原创 Mybatis
环境说明:JDK1.8Mysql 5.7maven 3.6.1IDEA学习前需要掌握:JDBCMySQLJava 基础MavenJunit1、简介1.1、什么是MybatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射.
2022-05-19 11:35:04 231
原创 MySql
1、初识MySQLJavaEE: 企业级]ava开发Web前端((页面:展示,数据!)后台((连接点:连接数据库JDBC,链接前端(控制,控制视图跳转,和给前端传递数据))数据库(存数据,Txt,Excel,word)只会写代码,学好数据库,基本混饭吃! 操作系统,数据结构与算法!当一个不错的程序猿!离散数学,数字电路,体系结构,编译原理。+实战经验,高级程序猿优秀的程序猿1.1、为什么学习数据库1、岗位需求2、现在的世界,大数据时代~,得数据库者得天下。3、被迫需求:存数据4、数据库
2022-05-13 20:59:33 69
原创 JaveWeb笔记
JavaWeb1、基本概念1.1、前言web开发:. web,网页的意思,静态webhtml,csS提供给所有人看的数据始终不会发生变化!动态web淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!。技术栈: Servlet/SP,ASP,PHP在Java中,动态web资源开发的技术统称为lavaWeb;1.2、web应用程序web应用程序:可以提供浏览器访问的程序;a.html.b.htm.……多个web
2022-05-12 19:10:04 117
原创 JDK开发环境安装
1.如果系统已经安装完毕java,需要删除①找到高级系统变量,把JAVA_HOME,以及Path中的JAVA_HOME删除!②删除我们对应的安装的文件夹③cmd命令提示输入java,查看是否删除成功2.安装JDK(以java8为例子)①百度搜索jdk8下载,打开Oracle的网址②找到对应的下载文件,安装即可配置环境变量①在高级系统设置中找到环境变量,在系统变量中新建JAVA_HOME②在高级系统设置中找到环境变量,在系统变量中找到Path,新建两个值!分别为引用jdk的bin以及j
2022-05-12 15:43:41 195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人