自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (24)
  • 收藏
  • 关注

原创 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal使用示例

1.ThreadLocalThreadLocal用于保存线程线程本地变量,访问这个变量的每个线程都会有这个变量的一个本地副本,多个线程同时对这个变量进行读写操时,实际上操作的是线程自己本地内存中的变量,从而避免了线程安全的问题。public class ThreadLocalTest { private static ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static v

2022-06-05 19:16:26 534

原创 Future和FutureTask简单使用

Future、FutureTask

2022-06-04 13:02:54 479 1

原创 线程的创建、生命周期、执行顺序

进程是系统中正在运行的程序实例。进程是系统资源分配的独立实体,每个进程都有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,进程间如果想通信,需要通过管道、套接字等。线程是比进程更小的独立运行的基本单位,同时也是操作系统能够进行运算调度的最小单位。包含在进程中,是进程实际运作的单位。多线程可以理解为在一个进程中同时运行多个不同的线程来执行不同的任务,这些线程可以同时利用CPU的多个核心运行。多线程编程能够最大限度的利用CPU的资源,例如当一个线程的处理不需要占用CPU资源时(例如IO线程),可以使

2022-06-03 15:48:21 524

原创 telnet调用dubbo服务命令小全

telnet调用dubbo服务,简单快速,基础命令值得掌握

2022-06-02 11:35:41 2063

原创 SimpleDateFormat的线程安全问题及解决办法

SimpleDateFormat的线程安全问题及解决办法

2022-05-04 00:00:26 680

原创 idea程序参数program arguments,vm arguments,Environment variable

Java启动命令可选项(options)大致可分为标准和非标准两种,非标准的可选项不保证在所有平台上都实现,并且未来的版本中可能会被修改且不告知,是不稳定的(Unstable)。标准可选项(Standard options) 使用最多的就是 -Dkey=value 设定系统属性值 。可以设定一些系统使用的属性,也可以用来传递自定义的参数。 可以通过System.getProperty("keyName") 来获取属性。非标准可选项(Nonstandard Options)主要是设置一些虚拟机的参

2022-02-12 13:48:56 5646

原创 redis CROSSSLOT Keys in request don‘t hash to the same slot

BITOP operation destkey key [key ...]对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上执行命令和结果如下:> 127.0.0.1@6001 connected!> BITOP AND key1 key2CROSSSLOT Keys in request don't hash to the same slot> BITOP AND {key}1 {key}20报错的含义:请求的Key键没

2022-02-12 11:46:02 1315

原创 RocketMQ知识总结

持续更新...一、消息队列“消息”是在两台计算机间传送的数据单位。消息可以是简单的字符串,也可以是复杂对象。“消息队列”就是在消息的传输过程中保存消息的容器。消息队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。1.应用场景异步减少调用链路,缩短接口整体的响应时间。解耦易于系统扩展,如果在后续中增加其它业务处理,都可以通过独立的服务订阅mq来进行处理。削峰当流量激增,服务器、数据库等无法在短时间..

2021-08-01 13:03:21 519

原创 RocketMQ面试题

1.MQ如何集群化部署来支撑高并发访问?RocketMQ单机可以支撑10万+的并发访问,集群部署可以让流量分散在多台机器上来支撑高并发。2.MQ如果要存储海量消息应该怎么做?MQ会收到大量的消息,并不是立马就会被所有的消费方获取过去消费的,所以一般MQ都得把消息在自己本地磁盘存储起来,然后等待消费方获取消息去处理。本质上RocketMQ存储海量消息的机制就是分布式的存储。所谓分布式存储,就是把数据分散在多台机器上来存储,每台机器存储一部分消息,这样多台机器加起来就可以存储海量消息了3.如何

2021-07-31 09:14:19 844

原创 消息队列基础

1.消息中间件的使用场景异步处理、业务解耦、削峰填谷异步处理场景:购卡系统:购卡订单支付成功,需要更新订单状态,通知发票系统记录信息,通知财务系统记录信息。假如每一步需要100ms,共300ms。而通过发送消息到消息队列中,由发票系统和财务系统进行订阅消息处理,假如发送消息队列需要50ms,共150ms,整体缩短了接口的响应时间。业务解耦在后续中如果产品提出其它业务处理,比如短信通知等,都可以通过独立的服务订阅mq来进行处理,防止业务代码耦合在一起。削峰填...

2021-06-05 16:02:06 121 1

原创 Dubbo基本介绍

Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源 Java 服务框架提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。官网:http://dubbo.apache.org/1.基本概念服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时.

2021-04-05 13:15:33 779 1

原创 SpringBoot devtools热部署

devtools热部署基本原理:devtools由两个不同的classloader进行类的加载,第一个加载依赖的jar包并且重启不会重新加载这些jar包;第二个加载工程的类,restart classLoader,会重新加载工程的class文件。重新加载按钮,会加载所有的class,所以加载的速度会慢一些;而devtools因为加载类的数量少,所以速度快。1.增加依赖以gradle为例dependencies { compile ( "org.sprin

2020-05-24 10:01:21 269

原创 windows下RocketMQ部署安装

1.下载1.1地址http://rocketmq.apache.org/release_notes/release-notes-4.7.0/1.2选择binary下载1.3解压包2.配置环境变量3.启动3.1启动nameserver进入bin目录下执行start mqnamesrv.cmd,启动NAMESERVER。成功后会弹出提示框,不要关闭。3....

2020-04-29 21:51:59 428

原创 RocketMQ RemotingTooMuchRequestException: sendDefaultImpl call timeout

windows本地环境执行官网提供的例子:public class AsyncProducer { public static void main(String[] args) throws Exception { //Instantiate with a producer group name. DefaultMQProducer producer = ...

2020-04-28 22:56:10 535

原创 Java 实现栈、队列、背包

1、栈是一种后进先出策略的集合类型/** * 通用节点 */public class Node<T> { private T item; private Node<T> next; public Node(T item) { this.item = item; } public T getItem(...

2020-04-01 21:49:06 248

原创 JDBC实现的服务提供者框架

1.框架介绍服务提供者框架是指这样一个系统:多个服务提供者实现一个服务,系统为服务提供者的客服端提供多个实现,并把他们从多个实现中解耦出来。服务框架中有四个组件:服务接口:用来提供者实现的提供者注册API:系统用来注册实现,让客服端访问它们服务访问API:客户端用来获取服务的实例服务提供者接口(可选):负责创建其服务实现的实例2.JDBC的实现JDBC连接数据库重要的两步就是加...

2020-03-01 18:57:03 599

原创 idea terminal配置git bash

1.指定git bash路径2.指定编码防止中文乱码在git安装目录下找到etc/bash.bashrc文件,在文件的最后添加:export LANG="zh_CN.UTF-8"export LC_ALL="zh_CN.UTF-8"

2020-02-18 10:41:03 493

原创 git tag标签管理

Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。一个轻量标签只是一个特定的提交引用,而附件标签是存储在git中的完整对象。其中包含打标签者的名字、电子邮件、时间,还有标签信息。通常建议创建附件标签。创建标签--轻量标签git tag v1.0 --附件标签git tag -a v1.1 -m 'version 1.1'查看标签g...

2020-02-15 22:19:39 470

原创 Github git push Connection reset by 52.74.223.119 port 22

问题描述:windows环境下,在git bash中执行命令 git push origin master:向远程git仓库ssh地址推送的时候,提示错误Connection reset by 52.74.223.119 port 22解决方法:window防火墙设置22端口1.windows防火墙->高级设置2.入栈规则->新建规则3.输入端口号->下一步4...

2020-02-13 19:50:54 1059

原创 git reset版本回退

环境准备创建一个文件,提交四次,每次输入一行信息:git reset --hard HEAD^ 回退上一个版本 ^表示版本个数git reset --hard HEAD~1 回退指定的前几个版本git reset --hard commit_id 回退指定的版本号git reflog 查看所有操作日志git log 查看commit日志git log --graph --pretty...

2020-02-09 23:39:01 164

原创 git忽略文件 .gitignore

在开发过程中有些文件无需纳入Git的管理,同时不希望它们出现在跟踪文件列表中,这种情况下我们可以在项目的根目录下创建.gitignore文件,列出要忽略的文件模式。文件 .gitignore 的格式规范如下:• 所有空行或者以 # 开头的行都会被 Git 忽略。• 可以使用标准的 glob 模式匹配。• 匹配模式可以以(/)开头防止递归。• 匹配模式可以以(/)结尾指定目录。• 要忽略...

2020-02-09 14:19:53 146

原创 windows下安装配置TortoiseGit

1.下载对应的安装包和语言包,地址:https://tortoisegit.org/download/2、先安装TortoiseGit程序包,一直点击下一步,可以根据自身需求是否更改安装目录3、安装语言包,一直点击下一步即可4.、配置选择语言打开PuttyGen生成秘钥拷贝公钥粘贴到Git服务器比如github、保存私钥到本地路径配置Pageant,选择本地保存的私钥即...

2020-02-05 16:56:10 203

原创 windows下安装NodeJS和yarn

一、下载安装包地址:https://nodejs.org/en/download/二、安装双击安装包,一直点击下一步就可以,默认安装目录是c盘,这里我改成了D:\Program Files\nodejs安装完成后在cmd窗口执行命令node -v、npm -version 如果显示版本号则表示已经安装成功新版Node.js已自带npm,安装Node时会一起安装,所以...

2020-02-03 15:53:04 2000

原创 JVM类加载器、双亲委托机制及命名空间

类加载器主要分为以下四种Bootstrap ClassLoader/根类加载器 $JAVA_HOME中jre/lib/rt.jar里所有的class,由c++实现,不是ClassLoader的子类 Extension ClassLoader/扩展类加载器 负责加载java平台中扩展的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指...

2020-01-15 23:56:27 251

原创 四分位数计算方法总结

总结一个小知识,仅供参考。1、数列项为奇数时:3、5、9、11、17、19、35先计算位置,在通过位置计算对应的数值Q1:(n+1)*0.25=2Q2:(n+1)*0.5=4Q3:(n+1)*0.75=6当下标正好为整数时,对应的数值为Q1=5、Q2=11、Q3=193、5、9、11、17Q1:(n+1)*0.25=1.5Q2:(n+1)*...

2019-12-21 20:16:54 42341 14

原创 JVM类初始化的时机

当Java虚拟机初始化一个类时,要求它的所有父类有已经被初始化,但是这条规则并不适用于接口在初始化一个类时,并不会先初始化它所有实现的接口;在初始化一个接口时,并不会先初始化它的父接口;因为一个父接口并不会因为它的子接口或者实现类的初始化而初始化,只有当程序首次使用特定接口的静态变量时,才会导致该接口的初始化。/** * 1.对于静态字段来说,只有定义了该字段的类才会被初始化; * 当...

2019-12-15 22:33:34 299

原创 JVM对类的加载、连接、初始化总结

类加载:在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的。提供了更大灵活性的同时,也增加了更多的可能性。加载:把二进制形式的Java类型读入java虚拟机中连接验证:确保被加载类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值。在到达初始化之前,类变量都没有初始化为真正的初始值解析:解释过程就是在类型的常量池中寻找类、接口、字段和方法的符号引用,把这些...

2019-12-15 20:40:31 121

原创 wait、sleep、notify、notifyAll方法总结

wait和sleep方法区别wait方法位于Object类中,sleep方法位于Thread类中 在调用wait方法时,线程必须持有被调用对象的锁,当调用wait方法后,线程就会释放掉该对象的锁(monitor);sleep方法不会释放对象锁 wait方法需要在同步方法或者代码块中执行,sleep没有限制 wait方法执行后唤醒需要等待其他线程调用对象的notify或者notifyAll...

2019-11-23 23:30:56 424

原创 微服务及其优缺点

Martin Fowler提出的微服务概念:微服务是一种架构风格,是以一组小型服务的方式来开发一个独立的系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制进行独立部署。这些服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务只需要做最低限度的集中管理。微服务的主要特点:...

2019-10-28 23:06:19 377

原创 mysql datetime类型设置默认值current_timestamp报错

本地库执行开发库的创建表脚本,报错Invalid default value for 'create_time',本以为是sql_mode设置的问题,按照开发库设置了一遍还是报错,最后查了下才想到可能是版本的问题,本地数据库版本号5.5,开发库是5.7,而使用current_timestamp作为datetime的默认值,只有在5.6之后的版本才支持。坑的一笔,有时候问题可能是一个很简单的原因,但...

2019-05-27 19:48:17 15408 3

原创 xxl-job中异常邮件的发送 SMTPSendFailedException: 554 DT:SPM

问题描述:xxlJob配置163邮箱发送邮件,配置简单如下,发生问题SMTPSendFailedException: 554 DT:SPM ### xxl-job emailxxl.job.mail.host=smtp.163.comxxl.job.mail.port=25xxl.job.mail.ssl=falsexxl.job.mail.username=m15311687811...

2019-02-13 16:35:53 4771

原创 String split 对空字符的处理

开发时做字符串分割为数组时遇到这样的问题,分割符后是空串,没有作为元素存到数组中,如下:String name = "a,b,c,r,,,,";String[] names1 = name.split(",");期待得到的数组长度是8,结果得到的长度是4,因为结尾的空字符串都被丢弃了。后来查到该方法还有一个重载,split(String regex, int limit) 可以解决...

2019-01-12 15:55:24 1586

原创 intellij idea设置tab键为4个空格

代码规范会要求编程时使用4个空格缩进而不是tab,因为不同编辑器下4个空格的宽度看起来是一致的,而tab则长短可能会不一致。1、打开File-&gt;Setting(Project Settings)-&gt;Code Style-&gt;General Use tab character不要选,然后indent设置为4,代表按一个tab为4个空格2、设置完成观察是否成功,选中缩进...

2018-12-26 10:03:28 25655 2

原创 Mybatis 查询返回类型为Map 空值字段不显示

项目使用的SpringBoot、Mybatis-plus问题描述如题:执行sql:select userId,name,address,mobile from user当address为空时,返回结果map中只有三个字段,userId、name、address解决方法:修改yml文件中Mybatis的配置,设置call-setters-on-nulls为true即可myb...

2018-12-01 16:19:52 1769

原创 mybatis group by substr函数传参报错

报异常:### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式SELECT SUBSTR( region_code, 1,#{ queryMap.groupCodeLength, jdbcType = INTEGER } ) AS "region_code", count( CASE WHEN T...

2018-12-01 15:52:31 2855 1

原创 ExtJS4获取当前光标位置插入文本内容

Ext textarea在光标选中处插入文本内容var paramsField = form.getForm().findField('params');//追加内容控件var contentField = form.getForm().findField('content');//textarea控件var start = contentField.inputEl.dom.selection...

2018-04-10 11:35:26 786

原创 SpringBoot javax.management.InstanceNotFoundException

异常描述javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerIntercep...

2018-02-13 16:09:17 13794 7

原创 Spring @Autowire、@Qualifier和@Resource注解

场景:当一个接口有多个实现类时,Spring的Bean注入需要指定继承类,主要有以下两种方式: 1、@Resource是JDK提供的注解,默认就是按照byName的方式寻找bean,一般一个name对应一个bean,当找不到与名称匹配的bean才会按照类型装配(byType) 2、@Autowire + @Qualifier @Autowire注解按照类型,即注解的字段的类型寻找该类型的实例b

2017-12-29 11:40:23 2747

原创 Guava-流式风格比较器Ordering

Ordering是Guava流畅风格比较器[Comparator]的实现,它可以用来为构建复杂的比较器,以完成集合排序的功能。从实现上说,Ordering实例就是一个特殊的Comparator实例。Ordering把很多基于Comparator的静态方法包装为自己的实例方法,并且提供了链式调用方法,来定制和增强现有的比较器。 创建排序器:natural() 对可排序类型做自然排序,如数字按大

2017-12-13 11:20:57 1027

原创 Guava 避免null-Optional的使用方法

Guava Optional和java.util.Optional起到的作用效果一致,都是为了避免出现null。Guava用Optional表示可能为null的T类型引用。一个Optional实例可能包含非null的引用,也可能什么也不包括。它从不说包含的是null值,而是用存在或缺失来表示。但Optional从不会包含null值引用。Optional<Integer> possible = Opt

2017-12-12 16:25:44 916

SQLyog-8.7.1破解版

主要是一个mysql的一个图形管理页面,在公司的项目开发中经常会用到,附带注册码。

2014-11-22

学生成绩管理系统论文

1)系统功能分析 系统功能分析阶段的任务就是确定该系统所要解决的问题及其具体要求。学生成绩管理系统需要完成的主要功能如下: (1) 班级信息的输入和存储,包括班级编号、班级名称、所属专业、入学时间和学制等。 (2) 对已经输入的班级信息的修改、查询。 (3) 学生基本信息的输入和存储、包括学号、姓名、性别、出生日期、班级等。 (4) 学生基本信息的修改和查询。 (5) 每学期初各班所开设课程的输入,包括课程名、学期、学时等。 (6) 各班所开设课程信息的修改和查询。 (7) 学期末输入每个学生的考试成绩。 (8) 学生成绩的修改。 (9) 查询某个学生。 (10) 查询并打印某班某学期所有学生的各科成绩。 (11) 查询并打印某班某学期某课成绩。 (12) 系统具有用户和密码的管理。 2)系统功能模块分析 通过上面各项功能的分析、分类、综合,按照模块化程序设计的要求,得到它的模块结构: (1)系统管理 它包括密码修改,用户管理,登录控制。 (2)班级信息管理 它包括班级信息修改,班级信息查询,班级信息输入。 (2)学生基本信息管理 包括学生基本信息查询,学生基本信息修改,学生基本信息输入。 (3)课程信息管理 包括课程信息查询修改,课程信息输入。 (4)成绩信息管理 包括成绩查询,成绩修改,成绩输入。

2013-04-24

旅馆管理系统论文

系统,是提高竞争旅馆竞争实力和服务水平的重要途径。 本文所叙述的旅馆管理系统使用的开发工具是PowerBuilder 9.0和Mircrosoft SQL Server 2000。其主要实现日常业务中较常用的功能,如:客房预定、住宿查询、客房查询、退房结账等。本系统在开发过程中,在PowerBuilder 9.0开发平台基础上应用PowerScript编程语言实现系统界面的设计和功能模块的开发,数据库采用Mircrosoft SQL Server 2000实现数据构架和存储。 本文包括项目的需求分析、概要设计和数据构架等几部分。其中,对业务逻辑与界面分离的实现部分有较为详细的论述。

2013-04-23

图书管理系统的毕业论文

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,企业要生存要发展,要高效率地把企业活动有机地组织起来,就必须加强企业管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统。

2013-04-23

基于Tomcat的数据库连接池配置和测试 的三种方法

数据连接池的工作机制:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。

2013-04-23

基于java在线选课系统的毕业设计论文

这是一个完整的基于java在线选课系统的毕业设计论文!!!

2013-04-23

java开发案例以及适用自学的例子

java开发案例详解 自学java例子 详细的源码

2013-04-15

java数据结构与算法

经典数据结构与算法的教程,基于java的开发方向,利于java开发程序员的学习和使用。

2013-04-15

jsp+Servlet+JavaBean分页的两种写法

jsp+Servlet+JavaBean分页的两种写法

2012-10-18

java景点面试题

java经典的面试题,其中对一些基础知识都有讲解!!!

2012-10-18

jsp选择日历控件(输入日期)

用javascript和css样式完成对日期的输入,点击的时候会显示成一个日历的样子,用在需要注册日期的地方会很方便也很炫!

2012-10-16

java聊天系统

简单的实现聊天通信,可以实现私聊和公聊,希望对你有所帮助///

2012-08-23

匿名类的特点

简单的讲述匿名类的特点,帮助大家区分和使用

2012-08-23

Excel VBA开发技术大全

使用Excel 进行开发,在一定的情况下会用的到,需要掌握一下

2012-04-25

JavaScript开发技术大全

详细叙述了,javascript脚本语言的开发技术

2012-04-25

Javaweb开发技术大全

包含了Javaweb开发中所常用的一些技术和方法

2012-04-25

SQL Server数据库技术大全

包含了SQL server数据库使用中所需要的主要技术

2012-04-25

C#开发技术大全

涵盖了常用的C#语言所需要的技术,值得一看。

2012-04-25

Struts2 帮助文档

根据struts2的类通过Myeclipse生成的帮助文档,方便在调用一些类的时候可以进行参考使用。

2012-04-25

thinking in java

thinging in java 是一本关于java很好的书,适合初学者好好看看了解一下,我上传的是中文版的,希望对你有用!

2011-10-16

java常用的算法

算法是编程中十分重要的一个部分,大家不可忽视!

2011-10-16

JDK的安装和系统变量的配置

JDK在windows系统下的安装与使用

2011-04-11

java语言学习精品课件

java学习中不可或缺的学习课件,希望对大家有用!

2011-04-05

Java程序设计——房产中介管理系统

利用Java技术编程和oracle数据库来实现简单的房产中介系统。

2011-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除