Java
文章平均质量分 77
落叶飘零z
路漫漫其修远兮,不积跬步无以至千里,不积小流无以成江河。
展开
-
Java开发学习路线
Java开发学习路线原创 2023-01-05 11:30:24 · 139 阅读 · 0 评论 -
java虚拟机之垃圾回收机制
java虚拟机之垃圾回收机制原创 2023-01-04 18:19:29 · 792 阅读 · 0 评论 -
Java堆空间(Heap Space)
Java堆空间(Heap Space)原创 2023-01-04 17:28:58 · 1292 阅读 · 0 评论 -
搭建Prometheus监控系统
1、概述Prometheus 是一款基于时序数据库的开源监控告警系统,Prometheus 生态系统包含了几个关键的组件:Prometheus server、Pushgateway、Alertmanager、Web UI 等,但是大多数组件都不是必需的,其中最核心的组件当然是 Prometheus server,它负责收集和存储指标数据,支持表达式查询,和告警的生成。接下来我们就来安装 Prometheus server。2 安装PrometheusPrometheus 可以支持多种安装方式,包原创 2021-09-15 14:13:11 · 439 阅读 · 0 评论 -
java线程池常用参数设置
ThreadPoolExecutor的重要参数1.corePoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行。当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理。设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭。2.queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时,新任务会放在队列中排队等待执行。3.maxPoolSize:最大线程数当线程数>=corePo原创 2021-02-03 17:06:44 · 1379 阅读 · 1 评论 -
使用weixin-java-mp-demo-springboot-master框架微信公众号开发
1、natapp外网映射工具官网地址:https://natapp.cn/login映射到本地8080端口,并启动2、微信开发接口框架微信开发的框架:weixin-java-mp下载链接:https://pan.baidu.com/s/1gyGWJK2D5kI8pDG6c-DSog提取码:rsts解压之后导入idea,把application.yml.template复制为application.yml,修改配置文件成如下appId,secret,token,从第三步获..原创 2021-01-21 18:38:01 · 1443 阅读 · 0 评论 -
Spring4之@Conditional注解详细讲解及示例
前言@Conditional是Spring4新提供的注解,它的作用是按照条件进行判断,满足条件给容器注册bean。@Conditional的定义:从代码中可以看到,需要传入一个Class数组,并且需要继承Condition接口:Condition是个接口,需要实现matches方法,重写这个方法返回true则注入bean,false则不注入。示例:首先,创建User类:import lombok.AllArgsConstructor;import lombok.Da.原创 2021-01-20 11:01:18 · 397 阅读 · 0 评论 -
HashMap JDK7源码分析
概述HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ,key唯一的value可以重复,允许存储null 键null 值,元素无序。哈希表数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组原创 2020-12-25 12:00:36 · 132 阅读 · 1 评论 -
HashMap JDK8 源码分析
概述HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ,key唯一的value可以重复,允许存储null 键null 值,元素无序。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证顺序。值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap。原创 2020-12-24 18:42:59 · 242 阅读 · 1 评论 -
Oauth2.0的使用微信登录
注意:这个地方域名必须要改成redirect_uri的域名一致第一步:用户同意授权,获取code参数 是否必须 说明 appid 是 公众号的唯一标识 redirect_uri 是 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理 response_type 是 返回类型,请填写code sc...原创 2020-04-22 17:15:54 · 871 阅读 · 0 评论 -
Oauth2.0的使用QQ互联登录
1、根据appid和appkey 拼接授权链接参数 是否必须 含义 response_type 必须 授权类型,此值固定为“code”。 client_id 必须 申请QQ登录成功后,分配给应用的appid。 redirect_uri 必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用...原创 2020-04-20 17:33:10 · 1798 阅读 · 0 评论 -
xxl-job引入实际项目中
源码下载地址:https://gitee.com/xuxueli0323/xxl-job1、下载好之后解压本地目录,到入项目到idea中2、执行sql文件:/xxl-job/doc/db/tables_xxl_job.sql3、修改xxl-job-admin的配置文件:/xxl-job-admin/src/main/resources/xxl-job-admin.pr...原创 2020-04-20 16:30:08 · 5880 阅读 · 0 评论 -
微信公众号开发
1.外网映射工具natapp微信公众号测试平台https://mp.weixin.qq.com/登陆之后找到左菜单的【开发者工具】--【公众平台测试账号】微信开发接口框架微信开发的框架:weixin-java-mp链接:https://pan.baidu.com/s/1BpH1MBWpU4-4cA2JdtrZVg提取码:2f9k相关技术文档:htt...原创 2020-04-02 12:54:01 · 222 阅读 · 0 评论 -
Java项目经验相关常见面试题
1.如何学习一项新技术,比如如何学习Java的,重点学习什么?首先不通阶段,学习Java方向也是不同的如果是工作1-3年,注重做项目,提高自身的编码能力,基本的熟悉常用的框架的使用如果是工作3年以上,注重团队管理和整体技术的架构。重点:目前行业流行微服务技术,SpringBoot/SpringCloud等,应该学习框架的思想,而不是如何使用。只有理解框架的思想,从而能提高整体...原创 2018-10-17 22:50:58 · 4023 阅读 · 0 评论 -
Mybatis配置generator代码生成器插件
1.新建Mavne项目,pom.xml加入如下代码: <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46原创 2018-10-17 23:10:24 · 333 阅读 · 0 评论 -
Java二维码的生成与下载
1.新增Maven项目(spring-boot项目),pom加入如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2...原创 2018-10-19 22:42:26 · 1340 阅读 · 1 评论 -
spring-session解决session一致性问题
1.新建Maven项目,pom.xml加入如下:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE<...原创 2018-10-19 23:00:25 · 2536 阅读 · 0 评论 -
MD5加密解密工具类
MD5加密解密工具类原创 2018-10-17 15:27:12 · 8469 阅读 · 4 评论 -
docker compose安装oracle
安装docker环境 yum install -y epel-releaseyum install -y docker-io启动docker服务service docker start查看版本:docker version或者docker info 安装docker compose插件,用于docker容器里面部署应用sudo curl -L ht...原创 2018-10-22 13:33:39 · 5800 阅读 · 0 评论 -
解决8080端口被占用
1.window下关闭8080端口win+R:输入cmd,回车在黑窗口中输入指令:netstat -ano | findstr 8080 指令的意思是找出占用8080端口的进程pid此时发现8080端口号的pid是7244(pid是会变化的)再次输入指令:taskkill -pid 7244 -f,回车 2.Linux下关闭8080端口:找到端口对应的进...原创 2018-10-20 10:41:26 · 60431 阅读 · 0 评论 -
JSP九大内置对象与四大域对象
一,什么是内置对象?在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.在servl...原创 2018-10-20 14:52:13 · 155 阅读 · 0 评论 -
nignx 负载均衡的几种算法介绍
一、Nginx负载均衡算法 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。 2、weight(轮询权值) weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。 ...原创 2018-10-20 15:03:02 · 156 阅读 · 0 评论 -
nginx与lvs的区别
原创 2018-10-28 11:20:00 · 871 阅读 · 0 评论 -
linux安装consul
1.下载consul_0.7.5_linux_amd64.zipwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip2.解压consul_0.7.5_linux_amd64.zipunzip consul_0.7.5_linux_amd64.zip解决办法-bash: un...原创 2018-10-21 11:27:07 · 16985 阅读 · 1 评论 -
SSO单点登录
转载一篇不错的文章:https://www.cnblogs.com/ywlaker/p/6113927.html转载 2018-10-28 22:26:18 · 93 阅读 · 0 评论 -
Nginx + Consul + Upsync实现动态负载均衡
各组件作用:ConsulWeb:Consul的客户端可视化界面,管理负载均衡配置的信息ConsulServer:Consul服务端,用于存放负载均衡配置Nginx:以间隔时间动态读取ConsulServer配置Upsync:新浪微博开源的基于Nginx实现动态配置的三方模块。Nginx-Upsync-Module的功能是拉取Consul的后端server的列表,并动态更新Nginx...原创 2018-10-21 15:22:31 · 1785 阅读 · 0 评论 -
长连接和短连接区别和优缺点
TCP与UDP udp:面向无连接的通信协议,数据包括目的端口信息和源端口信息优点:面向无连接,操作简单,要求系统资源较少,速度快,由于不需要连接,可进行广播发送缺点:发送数据之前不需要与对方建立连接,接收到数据时也不需要发送确认信号,发送端不知道接收端是否正确接接收,不会重发,不可靠。tcp:面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手断开连接优点:在数据传输时...原创 2018-10-30 11:37:08 · 17104 阅读 · 1 评论 -
fastjson常用API
maven中的依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.21</version></dependency><!-...原创 2018-11-04 13:45:37 · 570 阅读 · 0 评论 -
kafka集群环境搭建
服务器环境准备使用vm虚拟三个linux主机:192.168.128.139,192.168.128.140,192.168.128.141Zookeeper集群环境搭建1.每台服务器节点上安装jdk1.8环境使用javaversion命令测试2.每台服务器节点上安装Zookeeper参考https://blog.csdn.net/qq_38270106/article...原创 2018-11-04 22:37:02 · 683 阅读 · 0 评论 -
有趣的代码注释
```/*** * 瓦瓦 十 * 十齱龠己 亅瓦車己 * 乙龍龠毋日丶 丶乙己毋毋丶 * 十龠馬鬼車瓦 己十瓦毋毋 ...原创 2018-11-13 10:10:55 · 283 阅读 · 0 评论 -
SpringBoot整合kafka
Maven依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> &l...原创 2018-11-05 20:49:34 · 1687 阅读 · 0 评论 -
使用Docker安装部署RabbitMQ
docker search rabbitmq:managementdocker pull rabbitmq:management注意:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq. docker images开始创建rabbi...原创 2018-11-13 11:28:22 · 6857 阅读 · 3 评论 -
使用docker安装部署redis主从复制
1.拉取镜像docker pullredis:4.0.112.创建挂载目录mkdir -p /docker/data/redis/{conf,data}3.编写Redis配置文件cd /docker/data/redis/confviredis.conf找一个对应版本的reidis.conf复制内容进来将 bind 127.0.0.1注释,daemo...原创 2018-11-13 11:50:06 · 518 阅读 · 0 评论 -
apollo分布式配置中心环境搭建
我本地IP地址:192.168.1.104服务器IP地址:192.168.1.1091.下载aploll配置中心 https://github.com/nobodyiam/apollo-build-scripts2.配置数据库参数配置本地解压zip压缩包之后,Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB执行apollo-bu...原创 2018-11-05 21:56:24 · 3540 阅读 · 0 评论 -
客户端集成apollo配置中心
Maven依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> &原创 2018-11-05 22:24:12 · 1034 阅读 · 0 评论 -
前后端常见的几种鉴权方式
写的不错,转载一篇https://blog.csdn.net/wang839305939/article/details/78713124/转载 2018-11-13 15:33:09 · 596 阅读 · 0 评论 -
ElasticSearch环境搭建
下载压缩包elasticsearch-6.4.3.tar.gzrz命令上传到/usr/local路径,解压cd /usr/localtar -zxvf elasticsearch-6.4.3.tar.gz 修改elasticsearch.ymlcd /usr/local/elasticsearch-6.4.3/configvi elasticsearch.yml删...原创 2018-11-20 22:23:04 · 181 阅读 · 0 评论 -
Kibana环境搭建
Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询...原创 2018-11-20 22:41:13 · 1047 阅读 · 0 评论 -
JAVA锁机制
乐观锁总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取versio...原创 2018-11-23 23:09:59 · 1206 阅读 · 0 评论 -
什么是CAS
什么是CASCAS:Compare and Swap,即比较再交换。jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。CAS算法理解(1)与锁相比,使用比较交换(下文简称CAS)会使程序...原创 2018-11-23 23:10:40 · 899 阅读 · 0 评论