
Java
文章平均质量分 85
fggsgnhz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021-04-03 狂神说Java之 rabbitmq学习
中间件及单体架构消息中间件在实际的项目中,大部分的企业项目开发中,在早期都采用的是单体的架构模式单体架构把所有的业务和模块、源代码、静态资源文件等都放在一个工程中,如果其中的一个模块升级或迭代发生一个很小的变动都会重新编译和重新部署项目。(耦合度高)这种的架构存在的问题就是:耦合度太高运维的成本过高不易维护服务器的成本高(服务器资源的浪费)以及升级架构的复杂度也会增大(局限性)这样就有后续的分布式架构系统分布式架构单体架构一个请求由一个系统共同完成,分布式架构系统就是一个请原创 2021-04-06 14:51:52 · 2632 阅读 · 2 评论 -
2021-04-03 Windows 安装Rabbitmq
1、下载并安装OTP由于RabbitMQ使用Erlang技术开发,所以需要先安装Erlang运行环境后,才能安装消息队列服务到http://www.erlang.org/downloads下载相应版本的安装包,如OTP 22.0 Windows 64-bit Binary File双击,点next就可以安装完后配置一下系统的环境变量此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量变量名:ERLANG_HOME(变量值就是刚才erlang原创 2021-04-03 09:58:31 · 365 阅读 · 0 评论 -
狂神说Java之设计模式
设计模式概述设计模式:是一套用来提高代码可复用性,可维护性、可读性、稳健型以及安全性的解决方案设计模式的本质:是面向对象设计原则的实际运用,是对类的封装、继承、多态以及类的关联关系和组合关系的充分理解。设计模式的的基本要素:模式名称、问题、解决方案、效果分类创建型模式:(描述怎样去创建一个对象,创建和使用分离)单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式结构型模式:(描述如何将类或对象安装某种类型组成更大的结构)适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式原创 2021-03-31 22:26:44 · 1550 阅读 · 4 评论 -
2021-03-31 Springboot 整合 retry重试机制
在项目开发过程中,经常会有这样的情况:第一次执行一个操作不成功,考虑到可能是网络原因造成,就多执行几次操作,直到得到想要的结果为止,这就是重试机制。spring支持重试机制使用1、在pom文件中添加依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version&.原创 2021-03-31 10:13:57 · 202 阅读 · 0 评论 -
2021-3-27 狂神说java 之 多线程详解
线程简介进程(process)和线程(Thread)程序:是指令和数据的有序集合,本身没有任何运行的含义,是一个静态概念进程:是执行程序的一次执行过程,他是个动态的概念。是系统资源分配的单位线程:通常在一个进程中可以包含若干个线程,线程之间互相不影响,线程是CPU调度和执行的单位(main函数,就是主线程)多线程:很多多线程是模拟出来的,真正的多线程是指多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同原创 2021-03-30 22:55:55 · 214 阅读 · 0 评论 -
2021-03-25 狂神说Java之 JavaSE学习
常见的DOS命令打开CMD的方式1、开始+系统+命令提示符2、win + R 输入cmd 打开控制台3、在任意文件夹下面,按住 shift +鼠标右键点击,在此处打开命令行窗口4、资源管理器的地址栏前面加上 cmd 路径管理员方式运行:选择以管理员运行的 方式(可以得到最高权限)关于目录切换命令:# 盘符切换C:\Users\XXX> D:D:\># 常看当前目录下的所有文件D:\> dir 驱动器 D 中的卷没有标签。 卷的序列号是 9E77-CA9C原创 2021-03-27 22:55:36 · 936 阅读 · 1 评论 -
2021-3-20 狂神说java之 redis学习
分布式锁分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某一个资源时,往往通过互斥来防止彼此干扰分布式锁设计目的可以保证在分布式部署的应用集群中,同一个方法的同一操作只被同一台机器上的一个线程执行。...原创 2021-03-21 23:41:20 · 528 阅读 · 1 评论 -
2021-3-18 MAC如何下载和安装mysql
安装打开官网 : http://www.mysql.com/downloads/ 进入, 点击下方的DOWNLOADS : MySQL Community Server2. 选择dmg文件下载3. 选择选择不登录,直接下载4. 解压并且打开安装包5.下载完成后,双击打开一路确定,但是当弹出一个MYSQL Installer提示框的时候一定打开备忘录复制粘贴记下弹出框的密码(或是弹出框自己设置初始密码)打开MySQL服务正常情况下,安装成功。配置1、 进入系统偏好设置2、原创 2021-03-19 09:57:36 · 747 阅读 · 0 评论 -
2021-3-18 学习redis之浅谈mysql数据库表设计的几个要点
mysql数据库表设计的几个要点1、表设计过程中应该注意的点:数据类型1)更小的通常更好控制字节长度(长的会浪费内存)2)使用合适的数据类型例如:1)增加status字段最好用tinyint(只占8个字节,所占的字节内存更小,更省空间),2)char(1024)与varchar(1024)的对比:char就会指定1024个内存空间进行分配,varchar是可变长的,char用于定长数据存储会比varchar节省空间,例如:uuid(32)可以用char(32)3) 尽量避免使用null 要使原创 2021-03-18 16:12:17 · 182 阅读 · 0 评论 -
2021-3-16 JSONObject转换成集合
案例一{ "code":"123", "data": { "userid":"123", "adds":[{ ``` }] }}JSONObject jsonResult = JSONObject.parseObject(JSON.toJSONString(result.getData()));String jsonObjString = jsonResult.getString("apps");List<JSONObject> purchaseOrde原创 2021-03-16 13:00:07 · 899 阅读 · 0 评论 -
System.out.println与System.err.println
区别一System.in(标准输入流),System.out(标准输出流),System.err(标准错误输出流)err是运行期异常和错误反馈的输出流的方向区别二在语言层面的实现三个文件描述符都是可以重定向的在unix shell或windows command line中使用管道或重定向,则只是针对标准输入和输出System.out.println 能重定向到别的输出流,...原创 2020-03-19 09:21:04 · 514 阅读 · 0 评论 -
接口跟抽象类的区别
1.一个类可以实现多个接口,但只能继承一个抽象类。2.接口中只能定义方法而不能有方法的实现,而抽象类可以选择是否实现抽象方法。3.接口中所有的方法都是抽象的,但抽象类可以拥有非抽象方法。4.接口中的基本数据类型都是static修饰的,而抽象类不是。5.接口不能包含静态代码块和静态方法,而抽象类可以。...原创 2020-01-26 23:26:47 · 104 阅读 · 0 评论 -
20191230-wait和sleep的区别
sleep()方法是属于Thread类中的,而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。所以在调用sleep()方法的过程中,线程不会释放对象锁。调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()...原创 2019-12-30 14:01:12 · 80 阅读 · 0 评论 -
20191230-String,StringBuffer和StringBuilder的区别
运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String。线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的适用场景:String:适用于少量的字符串操作的情况StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况StringBuffer:适...原创 2019-12-30 13:59:40 · 104 阅读 · 0 评论 -
20191230-常问集合比较
Arraylist与LinkedList的比较ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,Lin...原创 2019-12-30 13:58:24 · 129 阅读 · 1 评论 -
20191230-Java内部类
内部类可以将一个类的定义放在里另一个类的内部(所谓的内部类的概念只是出现在编译阶段,对于jvm层是没有内部类这个概念的)内部类是可以访问外部类的私有字段和私有方法的用处:类的单继承问题,外部类不能再继承的类可以交给内部类继承可以通过定义内部类来实现一个类私属于一个类,实现更好的封装性代码优化:它需要更少的代码分类:静态内部类非静态内部类(成员内部类、方法内部类、匿名内部类)...原创 2019-12-30 13:36:35 · 103 阅读 · 0 评论 -
课堂随笔
equals等于true时hashcode一定相同;hashcode相同时equals不一定等于true原创 2019-12-28 19:35:59 · 115 阅读 · 0 评论 -
20191227-java中的自动拆装箱
基本数据类型内置类型,是Java中不同于类(Class)的特殊类型Java基本类型共有八种,基本类型可以分为三类:字符类型char布尔类型boolean整数类型btype\short\int\long浮点数类型float\doubleJava中还存在另外一种基本类型void对应的包装类 java.lang.Void,不过我们无法直接对它们进行...原创 2019-12-27 17:29:21 · 230 阅读 · 0 评论 -
20191226-TCP的三次握手和四次挥手
在浏览器中的地址栏内输入URL,就可以看到Web页面,即是客户端在浏览器地址内输入URL之后,信息会被送到某处,然后从某处获得的回复,内容就会显示在Web页面上客户端:像这种通过发送请求获取服务器资源的Web浏览器等就叫做客户端-----》简单来说,客户端就是个人使用的电脑,而服务器就是服务器,通过电脑访问服务器上的资源,用的就是HTTP网络协议Web页面是根据你在Web浏览器地址栏指定...原创 2019-12-26 14:27:04 · 173 阅读 · 1 评论 -
20191214-二叉查找树(BST)
二叉查找树(BST)定义:二叉查找树(Binary Search Tree),又被称为二叉搜索树。设x为二叉查找树中的一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] <= key[x];如果y是x的右子树的一个结点,则key[y] >= key[x]特性:1、 左 子树上所有结点的值均 小于或等于 它的根结点...原创 2019-12-15 15:19:35 · 183 阅读 · 0 评论 -
20191213-Stream
什么是Streamstream并不是某种数据结构,它只是数据源(数据源可以是一个数组,Java容器或I/O channel等)的一种视图。常见的stream接口继承关系stream接口继承自BaseStream,其中IntStream, LongStream, DoubleStream对应三种基本类型(int, long, double,注意不是包装类型),Stream对应所有剩余类型的s...原创 2019-12-14 15:10:07 · 342 阅读 · 0 评论 -
20191213-Lambda
Lambda表达式Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。Java Lambda表达式的一个重要用法是简化某些 匿名内部类(Anonymous Classes)的写法 。实际上Lambda表达式并 不仅仅...原创 2019-12-14 15:07:51 · 121 阅读 · 0 评论 -
20191211-缓存穿透、缓存击穿、缓存雪崩
缓存处理流程使用缓存通常的操作是,请求先访问缓存数据,如果缓存中不存在的话,就会回源到数据库中然后将数据写入到缓存中;如果存在的话就直接返回数据。缓存穿透现象: 每次请求直接穿透缓存层,直接回源到数据库中,给数据库带来了巨大访问压力,甚至宕机。(宕机:操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象)原因: 访问数据会先访...原创 2019-12-14 15:05:22 · 280 阅读 · 0 评论 -
Day13 httpServlet 与java继承
一、httpServlet1.导包//找包 通过搜索 maven servlet(类名) 到pom.xml导包<dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mys...原创 2019-07-21 09:14:00 · 208 阅读 · 0 评论 -
Day 12 java随机数 时间戳
Random生成随机数1.java.lang.Math.Random语法static double random()参数这是一个默认方法,不接受任何参数。返回值此方法返回一个double值。2.java.util.RandomRandom():创建一个新的随机数生成器,默认当前系统时间的毫秒数作为种子数。生成整型随机数Random r=new Random(); int...原创 2019-07-20 14:21:10 · 355 阅读 · 0 评论 -
Day19 servlet文件上传
jsp部分<form action="FileUploadDemo1Servlet" method="post" enctype="multipart/form-data"> <p>默认上传文件样式:</p> <input type="file" id="myFile" name="filename2"> <div clas...原创 2019-07-29 14:55:31 · 98 阅读 · 0 评论 -
Day15 java.sql.date与java.util.date
区别Date 的类型转换:java.util.Date 为 java.sql.Date的父类图片来自:https://blog.youkuaiyun.com/cherry_xiu/article/details/81543104共同点:都有getTime方法返回毫秒数,可以直接构建不同点:1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,P...原创 2019-07-24 14:45:53 · 107 阅读 · 0 评论 -
Day 10 JDBC
一、Java JDBC连接jdbc: Java DataBase Connectivity,java数据库连接用途: 与数据库建立连接、发送 操作数据库的语句并处理结果。Connection con = DriverManager.getConnection(“jdbc:odbc:wombat”,“login”,“password”);Statement stmt = con.creat...原创 2019-07-17 11:58:22 · 171 阅读 · 0 评论 -
Day 11 JDBC2 和Java static
一、JDBC对产品表进行增删改查21.1增加(// @param product)PreparedStatement实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号**(“?”)作为占位符**。每个问...原创 2019-07-19 09:40:41 · 126 阅读 · 0 评论 -
Day16 HttpSession的使用
HttpSession概念:HttpSession 是服务器端的技术,服务器会为每一个用户创建一个独立的Session。 属于回话的之一。Session的工作原理:当用户第一次访问servlet时服务器会给该用户创建一个独立的Session,并且生成一个独立的SessionID,这个sessionId在响应浏览器时会被装进cookie中,同时被保存到浏览器中,当用户下一次访问Servlet...原创 2019-07-26 09:58:53 · 147 阅读 · 0 评论 -
Day 23 java接口 SpringBoot基础一
一、java接口接口 关键字:interface接口里面的方法是抽象方法,没有方法体package com.base.day22;public interface InterfaceDemo { public String getName(); }实现一个接口 关键字:implements实现了一个接口,必须要实现接口里面的方法package com.base....原创 2019-08-04 09:24:49 · 112 阅读 · 0 评论 -
Day17jQuery 基础一
关于jQuery :是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一...原创 2019-07-27 11:07:24 · 131 阅读 · 0 评论 -
Day18 Servlet请求转发和请求重定向 Session和request
一、Servlet请求转发和请求重定向1.1使用格式1.1.1 请求转发:(1) 使用requestDispatcher对象:转发格式:request.getRequestDispatcher(“path”).forward(request,response)(2) 使用jsp动作元素:<jsp:forward page=""/>1.1.2. 请求重定向:使用respo...原创 2019-07-28 12:18:27 · 457 阅读 · 0 评论 -
Day 25 SpringBoot基础3 集成JPA
Spring IOC控制反转 管理对象IOC( Inversion of Control)控制反转/DI依赖注入(Dependency Injection)service 类上加注解 @Service@Service:声明此类是一个业务处理类Controller类使用的时候,通过注解@Resource注意:@Resource注解与@Autowired注解一样,都可以用来自动...原创 2019-08-07 15:50:25 · 241 阅读 · 0 评论 -
Day 33 POI-HSSF/XSSF
区别POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为....原创 2019-08-28 11:20:06 · 449 阅读 · 0 评论 -
Day 34 Springboot基础11统一异常处理
异常处理异常(exception) 是程序运行过程中发生的事件, 该事件可以中断程序指令的正常执行流程.1当Java程序运行时出现问题时,系统会自动检测到该错误,并立即生成一个与该错误对应的异常对象2:然后把该异常对象提交给JAVA虚拟机3:JAVA虚拟机会自动寻找相应的处理代码来处理这个异常,如果没有找到,则程序终止4:程序员可以自己编写代码来扑捉可能出现的异常,并编写代码来处理相应的...原创 2019-09-04 00:04:05 · 140 阅读 · 0 评论 -
Day 38 java提高篇 集合
常用集合分类Collection(接口) ------存储一个元素集合List(接口)ArrayList(接口实现类)LinkedList(接口实现类)vector (接口实现类)Stack (vector接口的实现类)set (接口)EnumSet(接口实现类)TreeSet(接口实现类)HashSet(接口实现类)LinkedHashSet...原创 2019-09-25 10:01:03 · 163 阅读 · 0 评论 -
Day8 Java基础—HashMap与集合的各自特点
HashMap的特点:1、存储结构是key-value形式2、HashMap集合里面的数据是无序的,数组和list都是有序的3、key是不可以重复的,value可以重复 HashMap map=new HashMap(); map.put("aa", 11);//map存储数据的格式:key,value map.put("bb", "你好"); map.put("cc",...原创 2019-07-14 09:55:23 · 254 阅读 · 0 评论