java
xxzblog
这个作者很懒,什么都没留下…
展开
-
Github贡献PR六部曲
Github贡献PR三部曲。原创 2023-09-27 13:09:09 · 663 阅读 · 0 评论 -
如何检查项目中用到的License
检查项目中用到的License。原创 2023-09-27 22:44:12 · 218 阅读 · 0 评论 -
深入理解计算机浮点数存储
根据IEEE 754 浮点标准。根据十进制数计算二进制。根据二进制计算十进制数。原创 2022-09-24 18:22:55 · 144 阅读 · 0 评论 -
Spring解决RocketMQ发消息与MySQL事务一致性
Spring解决RocketMQ发消息与MySQL事务一致性原创 2022-09-23 09:45:47 · 529 阅读 · 0 评论 -
G1 垃圾收集器
Garbage-First (G1) 收集器是一种服务器式垃圾收集器,针对具有大内存的多处理器机器。它以高概率满足垃圾收集 (GC) 暂停时间目标,同时实现高吞吐量。原创 2022-07-23 15:47:06 · 469 阅读 · 0 评论 -
Java垃圾回收基础
本教程介绍垃圾收集如何与 Hotspot JVM 配合使用的基础知识。了解垃圾收集器的功能后,了解如何使用 Visual VM 监控垃圾收集过程。最后,了解 Java SE 7 Hotspot JVM 中可用的垃圾收集器。原创 2022-07-22 16:38:04 · 390 阅读 · 0 评论 -
ubuntu 20.04 编译openjdk8
ubuntu 20.04 构建openjdk8更换源(可选)sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakcd /etc/apt/sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.listsudo sed -i "s@http://.*security.ubuntu.com@http://repo.h原创 2021-09-29 13:48:26 · 456 阅读 · 0 评论 -
selenium淘宝阿里妈妈分析
selenium启动参数配置List<String> list = new ArrayList<>();// 无界面浏览器// list.add("--headless");list.add("--disable-gpu");list.add("--no-sandbox");list.add("--disable-dev-shm-usage");list.add("--disable-cache");// 禁止window.navigator.webdriver检测原创 2020-07-31 11:27:00 · 509 阅读 · 0 评论 -
AbstractQueuedSynchronizer详解
原文链接:https://uyiplus.com/2020/aqs-01AbstractQueuedSynchronizer提供一个框架,用于实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关的同步器(semaphores(信号量),events(事件)等)。这个类旨在为大多数依赖单个原子int值表示state的同步器提供有用的基础。子类必须定义更改此state的protected方法,并定义该state对于获取或释放此对象而言意味着什么。鉴于这些,此类中的其他方法将执行所有排队和阻塞机制。子类可以原创 2020-06-15 11:29:59 · 320 阅读 · 0 评论 -
mybatis3.5.x源码系列(1)
首先我们了解一下mybatis中的几个核心概念Configuration 配置,可以理解为mybatis的大管家,管理一切Environment 环境,这个主要负责数据源,事务管理器MappedStatement mapper.xml对应的声明类,定义mapper中所有的标签,属性MapperRegistry Mapper注册器,管理编写的mapper类和mapper.xmlInt...原创 2020-03-25 13:53:21 · 323 阅读 · 0 评论 -
Spring Boot大纲
一、Spring Boot hello worldSpring Boot环境搭建,代码结构,运行方式以及创建简单rest服务。二、Web篇(上)静态内容:传统Web Server,Java Web Server以及Spring Boot处理静态内容。动态内容:介绍传统Servlet容器以及Spring Boot是如何处理动态内容的。模板引擎:介绍老(JSP),中(Velocity),新(Thy转载 2017-07-06 20:19:10 · 853 阅读 · 0 评论 -
httpclient使用cookie
这篇文章主要讲解 httpclient如何使用cookie我们在使用httpclient模拟登陆时,要保留登陆时服务器返回的cookie,这时我们要使用BasicCookieStore maven 配置<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactI原创 2017-11-19 15:35:53 · 1554 阅读 · 0 评论 -
Java 启动参数
这篇文章主要讲解 Java 启动参数 在linux用jmeter做压力测试的时候,发现jmeter启动参数,记录一下:java -server -XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20 -Djava.security.原创 2017-11-19 15:26:10 · 1369 阅读 · 0 评论 -
RocketMQ 入门
本文讲解前不久进入apache顶级项目的RocketMQ,几个简单的例子讲解如何搭建RocketMQ,以及发送消息,接受消息。RocketMQ安装RocketMQ的安装需要自行编译,接下来编译源码(本文下载源码放在windows系统D:\softwares\目录下)下载源码git clone -b develop https://github.com/apache/rocketmq.git编译c原创 2017-11-19 15:42:40 · 445 阅读 · 0 评论 -
如何从数据库加载1000w数据
这篇文章主要讲解 如何从数据库加载1000w数据加载大量数据例子:将1000w的数据从数据库导入到redis中在mysql中的实现方法:1、limit 分页 2、游标 limit 分页问题:当offset很大时,mysql需要做大量的文件排序操作,很影响性能。可以加上合适的 order by 子句,效率会有所改善。游标问题:默认mysql驱动加载游标数据是一次性把所有数据cache到java内存中原创 2017-11-19 15:40:33 · 1784 阅读 · 0 评论 -
linux重启java程序
这篇文章主要讲解 linux重启java程序#!/bin/shjarname='test-1.0'pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`echo $pidkill -9 $pidnohup java -jar $jarname.jar --spring.profiles.active=test -serv原创 2017-10-23 22:05:26 · 10664 阅读 · 2 评论 -
spring boot 发送邮件
spring boot 发送邮件发送邮件是一个很常用的功能,比如线上故障告警,验证码等功能都会用到,下面我们来看看用spring mail 来实现发送邮件原创 2017-09-02 18:30:42 · 2274 阅读 · 0 评论 -
谈谈spring-data-redis遇到的问题
谈谈spring-data-redis遇到的问题描述使用spring-data-redis中的redisTemplate存储key-value,然后使用redis-cli去查询时查询不到相应的key。使用keys *时发现redis中key的前缀多了一些16进制的字符\xac\xed\x00\x05t\x00\x0e问题关键使用spring-data-redis,默认情况下使用的是org.sprin原创 2017-07-20 21:02:14 · 956 阅读 · 0 评论 -
Java BIO, NIO, AIO 总结
BIO(同步阻塞式IO)由服务器提供ip port,客户端通过连接操作向服务端发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行相应的逻辑处理。处理完成后,通过输出流返回应答给客户端,线程销毁。即典型的一原创 2017-07-07 23:39:18 · 381 阅读 · 0 评论 -
rocketmq集群搭建
上一章讲解了rocketmq的消息发送与接收,那么这篇文章讲解如何安装rocketmq单机搭建1. 安装包准备上传apache-rocketmq.tar.gz至/opt目录机器ip:192.168.1.1012. 安装cd /opttar -xzf apache-rocketmq.tar.gzmv apache-rocketmq rocketmqmkdir /opt/rocketmq/logs原创 2017-11-19 15:47:57 · 791 阅读 · 0 评论 -
SSH文档整理
引导语:很多男士在外奔波,辛苦劳累,但是其实女人也不容易,女人的爱是一种大爱,对于丈夫,家人,孩子都要面面俱到,其实女人们要的不多,只是一些细腻的感情,男士们,小编为你们罗列了很简单的十句话,尽量让自己做个老公吧! 一、一辈子我只喜欢吃你做的饭菜 女人的一生很多时间都是在厨房和菜市场里忙碌着,这绝对是嫁为人妻的重点部分。当然了,每个人不吃饭肯定是不行的,可贵原创 2014-04-29 11:13:57 · 768 阅读 · 0 评论 -
Seata客户端使用配置中心
客户端启动过程分析1. 加载registry配置transactionServiceGroup默认为${spring.application.name}-fescar-service-group可以通过spring.cloud.alibaba.seata.txServiceGroup指定加载registry(环境隔离)先从System.getProperty读取seata.con...原创 2019-09-28 09:42:39 · 11024 阅读 · 8 评论 -
canal 快速开始
canal 快速开始服务端服务端ip:192.168.1.101下载canal 到/opt/softwareswget https://github.com/alibaba/canal/releases/download/canal-1.0.26-preview-2/canal.deployer-1.0.26-SNAPSHOT.tar.gz解压缩mkdir /opt/c...原创 2018-07-06 14:27:21 · 445 阅读 · 0 评论 -
java agent开发
java agent介绍java agent是jvm插件或者叫做代理,她是运行在main方法之前,她内定的方法名称叫premain。java agent 概述接下来我们进行开发实现premain方法package org.xxz;public class AgentMain { public static void premain(String args, In...原创 2018-04-04 22:03:51 · 1305 阅读 · 1 评论 -
spring定时任务调度
本文将告诉你如何使用spring的任务调度。主要使用@Scheduled注解 需要会使用maven第一步 pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3...原创 2018-04-04 22:02:10 · 272 阅读 · 1 评论 -
记一次lombok的问题
一、案发现场此问题的案发现场是测试环境,为了减少不必要的类,我们这里用一个简单的例子进行模拟。lombok version:1.16.14jdk version:1.8上代码: ├─src│ ├─main│ │ ├─java│ │ │ └─org│ │ │ └─jsbxyyx│ │ │ └─util│ │ │...原创 2018-04-04 21:51:15 · 1148 阅读 · 1 评论 -
maven 打包可执行jar
这篇文章主要讲解 maven打包可执行jar配置原创 2017-11-27 22:29:20 · 504 阅读 · 0 评论 -
模仿qq空间评论以及回复
先看需求是怎么样的:再看评论表结构的设计:create table t_comment( id varchar(32) primary key, #主键Id customer_id varchar(32) not null, #用户Id parent_comment_id varchar(32) not null, #父评论Id content_id varc...原创 2014-12-18 22:48:24 · 14289 阅读 · 26 评论 -
Redis总结
redis优势速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)支持丰富数据类型,支持string,list,set,sorted set,hash支持事务,但是对事务的支持不够好,如果在一个事务中执行多少操作,有一个操作失败,不会回滚丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除redis性能问题与解决方案原创 2017-06-16 10:12:22 · 963 阅读 · 0 评论 -
秒杀系统架构与实战
1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:转载 2016-12-24 13:05:58 · 737 阅读 · 0 评论 -
spring-cloud 构建一个restful的web服务
构建一个restful的web服务这篇文章告诉你如何通过spring创建一个”hello world”的restful的web服务你会建立什么你会建立一个接受HTTP GET请求的服务:http://localhost:8080/greeting 问候语以JSON的形式响应:{"id":1,"content":"Hello, World!"}你可以自定义问候语与一个可选 name 参数的查询字符串:原创 2016-12-24 13:04:17 · 10970 阅读 · 0 评论 -
html5 audio读取文件流播放音频
最近要解决一个html5 播放音频的问题,在前台地址中不能直接写原创 2014-11-20 14:21:37 · 17720 阅读 · 1 评论 -
spring mail发送邮件
在网站注册时,我们有时候会需要进行激活。以发送邮件的形式来原创 2014-11-24 13:18:04 · 659 阅读 · 0 评论 -
java验证码--待抽象
package org.xxz.checkcode;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import j原创 2014-11-18 16:12:22 · 2237 阅读 · 0 评论 -
MD5乱码问题
在Java中默认的md5加密采用的是MessageDigest原创 2014-10-28 16:36:05 · 5257 阅读 · 0 评论 -
Java对List进行排序
昨天遇到了一个问题,从数据库中获取的数据虽然是经过排序了的,但是到了访问层的时候,又变换了一次格式,是数据的格式固定了。当时想到了一个就是对返回的集合进行排序,引发了下面的问题,怎么对集合进行排序呢。当时想到的第一个方法就是Collections.sort(list)这个方法还有一个重载的方法Collections.sort(list, comparator)首先要么这个list实现C原创 2014-08-20 15:22:53 · 657 阅读 · 0 评论 -
springmvc时间格式处理
由于项目比较赶时间,所以对于springmvc时间注入这块一直都没有改,没有花时间去研究这个东西,今天有时间看看这块的知识,发现还是很简单的。以前时间转换总是不成功,解决办法是采用的是声明一个临时变量,然后解析成java.util.Date对象,然后手动set到对象中。现在不需要了,在spring中提供了一个注解@DateTimeFormat,在使用这个注解时,需要添加joda-time-原创 2014-08-20 15:09:33 · 851 阅读 · 0 评论 -
spring与mybatis整合
由于项目需求,要使用spring+springmvc原创 2014-05-28 10:05:51 · 526 阅读 · 0 评论 -
pager-lib实现分页
这里只写出部分的代码(这里不能用于ajax异步处理数据)除了迭代处的代码是要修改的,其余的全部都不用修改。首先是action的代码: public class TAction {@Resourceprivate TDao tDao;public String findAll(){List ts = tDao.findAll();ActionContext原创 2014-05-12 16:56:55 · 557 阅读 · 0 评论 -
Java调用脚本语言(JavaScript)
在jdk1.6之后就支持了调用脚本语言,比如PHP,Ruby,Groovy,JavaScript脚本语言优点: 灵活:脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,也可以在运行期改变类型。 便捷:脚本语言是一种解释型语言,不需要编译成二进制代码。一些易变业务可以使用脚本语言编写。下面给出一个例子程序:demo.jsfunction formula(原创 2013-08-25 14:25:12 · 1209 阅读 · 0 评论