- 博客(45)
- 收藏
- 关注
转载 java加载顺序
普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定–“先出现先执行”构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
2024-05-05 17:37:43 101
转载 初始Servlet
Servlet的全称是 Server Applet,顾名思义,就是用 Java 编写的服务器端程序。Servlet 是一个 Java Web开发标准,狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
2024-03-17 00:22:26 45
转载 JSP简介
由于 JSP 只在客户端第一次请求时被编译,所以第一次请求 JSP 时会感觉比较慢。JSP 也是一种 Servlet,运行时只有一个实例,它也有生命周期。Java Web 整合开发。
2024-03-16 23:56:41 70
原创 HTTP状态
原文转载:https://gitee.com/gpc12138/LearningNotes/blob/master/JAVA%E6%A0%B8%E5%BF%83%E9%9D%A2%E8%AF%95%E7%9F%A5%E8%AF%86.pdf
2021-10-24 20:13:38 132
原创 redis基本数据类型
原文转载:https://gitee.com/gpc12138/LearningNotes/blob/master/%E5%A4%A7%E5%8E%82%E9%9D%A2%E8%AF%95%E7%AC%AC%E4%B8%89%E5%AD%A3/11_redis/%E7%AC%AC%205%20%E7%AB%A0%20Redis.md原文视频:https://www.bilibili.com/video/BV1Hy4y1B78T?p=421,8 大类型以前是 5 种数据类型,现在是 8 种啦~Stri
2021-10-24 19:55:12 239
原创 分布式事务
1,基础概念1.1.本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。回顾一下数据库事务的四大特性 ACID:A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向
2021-10-24 18:49:35 282
原创 mq消息常见问题及解决办法
原文转载:https://www.cnblogs.com/fengyun2050/articles/12246669.html1,mq消息堆积处理1.1.临时扩容,以更快的速度去消费数据解决方案:”这种时候只能操作临时扩容,以更快的速度去消费数据了。具体操作步骤和思路如下:①先修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停掉。②临时建立好原先10倍或者20倍的queue数量(新建一个topic,partition是原来的10倍)。③然后写一个临时分发
2021-10-22 14:45:39 2073
原创 Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
原文链接:https://blog.csdn.net/yunfeng482/article/details/72856762简介KafkaKafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。无消息确认机制。RabbitMQRabbitMQ是
2021-10-22 14:15:55 126
原创 Spring事务失效的几种情况
原文链接:https://blog.csdn.net/hzj_java/article/details/1130986311. 底层数据库引擎不支持事务以MySQL为例,它有多种引擎,MyISAM引擎不支持事务操作,InnoDB引擎支持事务,MySQL从5.5.5开始默认的引擎是InnoDB,之前的版本默认的都是MyISAM,所以说如果是非常老的项目,这个需要考虑下。2. 被@Transactional 注解修饰的方法为非public类型如果被@Transactional注解修饰的方法,修饰符非pu
2021-10-21 18:52:33 877
原创 Linux常用指令
clear:清除黑窗口桌面ll:显示当前目录文件名文件操作指令vi/vim 文件名.后缀:新建或编辑文件i:文件从正常模式变成插入模式ESC:退出插入模式/命令模式,进入正常模式':':文件从正常模式变成命令模式正常模式下指令 命令行不显示 ‘yy’:拷贝当前行,拷贝当前行向下5行(5yy) ‘P’:粘贴 ‘dd’:删除当前行,删除当前行向下的5行(5dd) ’G‘:光标跳到文件最末行 ’gg‘:光标跳到文件最首行 ’u‘:撤销,回到上一个动作 ’shift+g‘:光标跳转到
2021-10-21 13:17:54 170
原创 Activiti 工作流2
原文转载:https://blog.csdn.net/c1225992531/article/details/81181017https://blog.csdn.net/Cs_hnu_scw/article/details/79059965一、管理流程定义涉及的对象及表对象: ProcessEngine 、RepositoryService、Deployment 、ProcessDefinition表:act_re_deployment:部署对象表act_re_procdef:流程定义表
2021-10-14 22:48:48 134
原创 Activiti工作流3
原文转载:https://blog.csdn.net/c1225992531/article/details/81181017https://blog.csdn.net/Cs_hnu_scw/article/details/790599651,工作流的生命周期:定义,发布,执行,监控(审批),优化2,activiti的ORM框架MyBatis3,支持spring和restful3,分配任务的三种方式:1,直接给值,在XXX.bpmn文件中指定,不够灵活2,流程变量3,使用类 监听这个类(实
2021-10-14 22:46:38 189
原创 Activiti工作流学习要点
1个插件在Eclipse中安装Activity插件,让你可以在Eclipse中绘制Activity工作流图1个引擎ProcessEngine对象,Activity工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();1个配置文件activiti.cf
2021-10-14 22:29:01 181
原创 Activiti 工作流1
https://blog.csdn.net/c1225992531/article/details/81181017https://blog.csdn.net/Cs_hnu_scw/article/details/790599651,工作流的生命周期:定义,发布,执行,监控(审批),优化2,BPMN:业务流程图3,activiti的ORM框架MyBatis3,支持spring和restful4,activiti工作流排他网关:连线设置流程变量,判断执行,类似于if,注:只能执行其中一个流程并行
2021-10-14 22:19:17 102
原创 SpringCloud-服务降级
1,Hystrix服务降级1.1,hystrix简介1.2,hystrix作用服务降级比如当某个服务繁忙,不能让客户端的请求一直等待,应该立刻返回给客户端一个备选方案服务熔断当某个服务出现问题,卡死了,不能让用户一直等待,需要关闭所有对此服务的访问,然后调用服务降级服务限流限流,比如秒杀场景,不能访问用户瞬间都访问服务器,限制一次只可以有多少请求1.3,使用hystrix,服务降级一般服务降级,都是放在客户端1.3.1,pom文件feign依赖自带了hystrix
2021-10-13 23:45:54 354
原创 SpringCloud-服务调用
原文视频链接:https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=11303564036825263144springCloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.mdspringCloud中文网:https://www.springcloud.cc1,Ribbon负载均衡1.1,负载均衡LB分类负载均衡LB分为进程内LB(本地
2021-10-13 23:04:12 168
原创 SpringCloud-服务注册与发现
原文视频链接:https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=11303564036825263144springCloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.mdspringCloud中文网:https://www.springcloud.cc1,SpringCloud简介1.1,SpringCloud升级,部分组件停用说
2021-10-13 19:14:49 224
原创 mysql02-索引
1,mysql索引结构mysql采用的B+tree索引1.1,何为B+Tree索引B+Tree 索引是 B-Tree 的改进版本,同时也是数据库索引索引所采用的存储结构。数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都指向相邻的叶子节点的地址。相比 B-Tree 来说,进行范围查找时需要查找两个节点,进行遍历即可。而 B-Tree 需要获取所有节点,相比之下 B+Tree 效率更高。2,使用索引的的细节问题【须知】索引不会包含有NULL值的列只要列中包含有NULL值都将不会被包含在
2021-10-13 16:10:05 60
原创 mysql01
一,基础查询1),查询表中字段2),查询常量值,例如:SELECT 100,字段名和字段值都是1003),查询表达式,例如:SELECT 100%98,字段名100%98,字段值24),查询函数,例如:SELECT VERSION(),字段名VERSION(),字段值函数返回值二,关键字1),别名(AS):使用AS或者空格,别名建议使用双引号“”,避免一些关键字2),去重(DISTINCT):SELECT DISTINCT id FROM employees3),+号(只有一个功能运算
2021-10-13 15:58:39 173
原创 Nginx
一、安装Nginx略二、Nginx常用命令查看 nginx 版本号./nginx -v启动 nginx./nginx停止 nginx./nginx -s stop重新加载 nginx./nginx -s reload三、nginx.conf配置文件位置:vim /usr/local/nginx/conf/nginx.conf配置文件中的内容(包含三部分)(1)全局块设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成
2021-10-13 15:28:35 73
原创 Windows鼠标右键新建中增加新建md文件
Windows鼠标右键新建中增加新建md文件1、新建一个文本文件,拷贝一下内容到其中:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.md\ShellNew]"NullFile"="""FileName"="template.md"2、另存为reg文件注意:编码选择Unicode编码。3、双击运行这个r...
2021-10-13 15:26:34 198
原创 获取配置文件属性
获取默认配置文件application.yml属性第一种java代码实现: 实现接口EnvironmentAware获取environment environment.resolvePlaceholders("${java.home:dev}")或者environment.getProperty("java.home")第二种注解实现: @Value("${ps.getbooking.wsAddress}")底层也是通过environment 或者@EnableConfigurationProp
2021-10-13 15:22:27 558
原创 常用工具包
Ioc容器(典型的Spring)负责创建并管理对象之间的依赖关系以及生命周期,甚至还可以支持某种程度上受管对象与容器之间的交互(这需要受管对象的定义类实现容器相关的接口),spring借助对象作用域(singleton、prototype、request、session等)的概念支持在不同层次上缓存受管对象。 但是从本质上来说容器对受管对象的缓存与池的行为是不同的,一般来说池需要区分其管辖的对象在某一特定时刻是否是空闲的,以保证当客户端向池索取对象时得到的总是空闲可用的对象,而一般来讲容器不需要也没必要
2021-10-08 14:43:17 171
转载 springMVC中的各路径符号含义/、/*、/**、classpath*
总结:classpath:只会到你的class路径中查找找文件;classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找自己稍微深度理解:A–>B–>C 在B中没有配置文件的情况下A中classpath* 加载到jar包B中的配置文件,C加载自己配置文件要用classpath* 否则A中加载配置文件无法加载到C中的配置文件原文链接:https://blog.csdn.net/weixin_43993993/article/details/8763587
2021-10-08 10:25:24 773
原创 线程ThreadLocal
1,ThreadLocal特点一个线程可以声明多个ThreadLocal,存在ThreadLocalMap中。ThreadLocal和Synchronized都是为了解决多线程中相同变量的访问冲突问题,不同的点是Synchronized是通过线程等待,牺牲时间来解决访问冲突ThreadLocal是通过每个线程单独一份存储空间,牺牲空间来解决冲突,并且相比于Synchronized,ThreadLocal具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问到想要的值。2,Thre
2021-09-24 10:56:35 2850
原创 java守护线程
守护线程与用户线程用户线程:我们平常创建的普通线程。守护线程:用来服务于用户线程;不需要上层逻辑介入,守护着最后一个用户线程,如果没有用户线程了,他也没作用了。总结:非守护线程其实就是守护线程的氧气,如果氧气没了,守护线程也会跟着死掉。使用守护线程注意点thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。线程池可以重写java.util.co
2021-09-22 17:26:59 96
原创 spring注解
1,@Primary在spring 中使用注解,常使用**@Autowired, 默认是根据类型Type来自动注入的**。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary 的作用就出来了。如多数据源使用例子说明链接:https://blog.csdn.net/qq_16055765/article/details/78833260说明:1)实现同一接口的不同实现类如果spring包能扫到都会注入到spring容器中2)@Autowired
2021-09-18 14:36:12 79
原创 FreeMarker
1,servlet略2,springMVC2.1,运行原理2.2,springMVC整合FreeMarker2.2.1,导入依赖2.2.2,配置配置freemarker.properties2.2.3,注入springMVC
2021-09-12 18:00:34 242
原创 Mybatis
1,ORM框架1.1,什么是ORM1.2,Mybatis2,springboot整合mybatis2.1,导入依赖2.2,配置2.3,注入spring
2021-09-12 17:52:58 62
原创 常用java网站
1,免费在线作图:https://www.processon.com/2,中国大学学习视频网站:https://www.icourse163.org/https://www.xuetangx.com/3,国外大学学习视频网站:https://www.edx.org/https://www.coursera.org/4,学习语言:https://www.duolingo.cn/...
2021-09-12 16:58:22 570
转载 jasypt对配置信息进行加密
转载:https://www.cnblogs.com/lz2017/p/13283138.html?utm_source=tuicoolhttps://www.cnblogs.com/softidea/p/5841042.html详细配置见jasypt官网或者jasypt-spring-boot的GitHub地址
2021-09-02 14:01:08 72
原创 Telnet协议
什么是Telnet?Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具。Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务
2021-08-25 15:29:21 945
原创 JMS简介
JMS简介JMS是什么?JMS即Java消息服务(Java Message Service,由Sun开发的)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,是Java平台上有关面向消息中间件(MOM)的技术规范,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS优点提供消息灵活性松散耦合由于MOM的存在,各个应用程序只关心和MOM之间如何进行消息的接收与发送,而无需关注
2021-08-23 17:19:49 302
原创 Spring boot 配置文件
SpringBoot默认支持properties和YAML两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用YAML格式。SpringBoot支持自动加载约定名称的配置文件,如:bootstrap.yml(bootstrap.properties)、application.yml(application.properties)一、bootstrap.yml(bootstrap.properties)与application.yml(application.properties
2021-08-23 15:17:53 174
原创 Java设计模式(九)之外观模式
在这个对象图中,出现了两个角色:● 门面(Facade)角色 :客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。● 子系统(SubSystem)角色 :可以同时有一个或者多个子系统。每个子系统都不是一个单独的类,而是一个类的集合(如上面的子系统就是由ModuleA、ModuleB、ModuleC三个类组合而成)。每个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对.
2021-05-13 17:49:26 78
原创 Java设计模式(八)之代理模式
public interface Sourceable { public void method();}public class Source implements Sourceable { @Override public void method() { System.out.println("the original method!"); }}public class Proxy implements Sourceable { private Source sourc.
2021-05-13 17:36:15 76
原创 Java设计模式(七)之装饰者模式
装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method();}public class Source implements Sourceable { @Override public void method() {
2021-05-13 17:16:32 105
原创 Java设计模式(六)之适配器模式
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。// 已存在的、具有特殊功能、但不符合我们既有的标准接口的类class Adaptee { public void specificRequest() { System.out.println("被适配类具有 特殊功能..."); }} // 目标接口,或称为标准接口interface Target { public
2021-05-11 17:52:29 83
原创 Java设计模式(五)之原型模式
该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。在Java中,复制对象是通过clone()实现的,先创建一个原型类:public class Prototype implements Cloneable { public Object clone() throws CloneNotSupportedException { Prototype proto = (Prototype) super.clone(); return proto; }}原
2021-05-11 17:33:31 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人