
java
文章平均质量分 57
镜水灵动
读万卷书、行万里路、阅人无数、高人指路、贵人相助和自己去悟。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
通过中序遍历和前序遍历,后续遍历来构建二叉树
通过前序遍历和中序遍历构建二叉树,前提树节点值不重复原创 2022-07-12 19:31:26 · 337 阅读 · 0 评论 -
java事务研究(实战篇)
一、本文主要说明(1)springboot默认使用cglib动态代理。(2)springboot默认情况下,同一个Service类内部调用有事务的方法,事物是不生效的。(3)对于异步处理逻辑,而且要保证事物,怎么做。二、代码@RestController@RequestMapping("/test")public class TestController { @Autowired private TestService testService; @PostMapp原创 2022-03-21 20:34:12 · 934 阅读 · 0 评论 -
BeanValidator校验
import com.google.common.base.Preconditions;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import org.apache.commons.collections4.MapUtils;import javax.validation.ConstraintViolation;import javax.validation.Validation;i原创 2021-11-25 17:35:40 · 565 阅读 · 0 评论 -
算法刷题java
一、基础运算1.1 pow 计算x的n次幂private static int simpleN(int i, int n) { int res = 1; int absN = Math.abs (n); while(absN > 0){ res *= i; absN--; } return n > 0 ? res : 1 / res;}public static double powFast(double x, in原创 2021-08-11 19:30:02 · 644 阅读 · 0 评论 -
虚引用与堆外内存研究(基于DirectByteBuffer源码)
(1)堆内存ByteBuffer buffer = ByteBuffer.allocate(1024);字节数组保存数据HeapByteBuffer (2)堆外内存ByteBuffer directByteBuffer = ByteBuffer.allocateDirect(1024);Buffer类有个:long address;用于保存堆外空间地址unsafe来分配以及最后回收空间构建Cleaner对象,继承虚引用,将当前堆外内存以及垃圾清理线程对象传递过去,GC发生后,调用Deal..原创 2021-01-23 18:55:50 · 648 阅读 · 0 评论 -
springboot常用总结(持续更新)
一、异步线程池1.1 Springboot自定义异步线程池以及异常捕获处理器import lombok.extern.slf4j.Slf4j;import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annota原创 2020-11-28 11:08:18 · 696 阅读 · 1 评论 -
NIO 代码总结
import cn.hutool.core.util.StrUtil;import lombok.extern.slf4j.Slf4j;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;@Slf4jpublic class ServerDemo { public.原创 2020-11-22 17:13:58 · 224 阅读 · 0 评论 -
常用工具积累java(持续更新)
1.ListToMap 将用户集合中的每个用户的id和username放到map中Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getUsername));Map<Integer, TrainNumberDetail> trainNumberDetailMap = trainNumberDetailListRestRes.getResult (.原创 2020-09-20 10:07:39 · 332 阅读 · 1 评论 -
final关键字解析
final可以修饰变量,方法,类。 final修饰变量这个变量不可变。这个不可变是引用不可变,对象内部可以修改。 public static void main(String[] args) { final Person p = new Person(); p.setName("123"); p.setId(1L); System.out.println(p); } final修饰方法,不可以修饰构造...原创 2020-06-28 22:36:21 · 1271 阅读 · 0 评论 -
hadoop3.1.3-spark-2.4.6-bin-hadoop2.7-hive-3.1.2单机版本安装
环境:centos7.4vim /etc/profileexport JAVA_HOME=/usr/java/java8export JRE_HOME=/usr/java/java8/jreexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport HIVE_HOME=/usr/java/hiveexport HBASE_HOME=/usr/java/hb原创 2020-06-27 11:31:23 · 1788 阅读 · 0 评论 -
一个对象最小占用内存多少?
1. 我们首先引用一个jar包,JOL全称为Java Object Layout,是分析JVM中对象布局的工具。<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependen...原创 2020-05-24 08:42:06 · 917 阅读 · 0 评论 -
canal构建实时索引(两种方式adapter与springboot)
一.canal概述与安装1.1 简述canal模拟mysql slave交互协议,伪装成mysql一个从节点,向mysql master发送dump协议,mysql master收到dump请求之后,开始推送binary log 给slave。canal解析binary log对象即byte流。1.2 安装1.2.1 canal.deployer安装(1)开启mysql bi...原创 2020-02-01 20:28:43 · 2122 阅读 · 0 评论 -
springboot整合prometheus,grafana实现服务指标监控
1.依赖的jar包<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.3.3</version></de...原创 2020-01-26 19:15:24 · 1538 阅读 · 1 评论 -
druid连接超时时间20分钟引起的血案
1.问题描述生产环境当数据量大的时候有时就会出现挂批问题。(默认3分钟定时任务调度一次,可是有时候定时任务启动了,但是业务数据没有处理)。挂批就造成大量业务挤压,没有处理。这时候就需要人手工处理。2.问题分析2.1 bug 反思路分析JobDetail#execute/**这段代码中首先判断一下批次的状态是否是running,若是running那么直接返回,不调用处理业务逻辑代...原创 2020-01-12 15:37:52 · 15076 阅读 · 1 评论 -
springboot整合ELK---分两种直接使用logstash,另外一种整合kafka
环境说明:springBoot2.1.3,logback,es6.8.2当我们服务节点特别多的时候,我们就需要考虑将日志统一放到ELK中去高效查找定位日志,不用去服务器一个一个找。同时整合分布式链路追踪打印日志。这里提供两种springboot整合ELK的方式。1.第一种springboot-logstash环境搭建1.1 添加maven <dependenc...原创 2020-01-08 00:40:32 · 1140 阅读 · 0 评论 -
spring junit测试找不到SpringJUnit4ClassRunner.class
pom.xml配置如下: 4.0.0 com.lai.aop aop 0.0.1-SNAPSHOT junit junit 4.11 test org.slf4j slf4j-log4j12 1.6.4 org.springfr原创 2017-08-05 11:25:55 · 34928 阅读 · 4 评论 -
pinyin4j demo
import java.util.Arrays;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat原创 2017-08-07 12:34:26 · 529 阅读 · 0 评论 -
性能优化(1)
1. 当对象在JVM运行期间无法通过根集合rootset到达,这个对象被标记为垃圾对象。根集合是由类中得静态引用域与本地引用域组成。2. JVM管理两种内存:Heap堆堆存,stack栈内存。堆内存用来存储运行时创建得对象或实例化得内存与变量。例如new user();栈内存用来存储程序代码中声明为静态或非静态得方法。堆内存在jvm启动时创建,其中对象可被GC回收,不能通过其他手段回收堆内原创 2017-09-02 23:20:54 · 273 阅读 · 0 评论 -
Tomcat 优化前后的性能对比
我估计有的程序员一辈子都不会做这个事,有的程序员遇到TOMCAT的问题会去百度一下,改改参数试试看。我这里给大家一个参考值,让大家有一个感性的认识,修改了这几个参数会有什么的变化,也许你以后会用得到。Tomcat 7估计是日常开发、测试、生产环境都会使用到,但对于大部分开发人员来说,对其性能还是没有多大了解。本文就对它做一次性能测试,对比优化前后的性能区别。一、运行环境转载 2017-09-05 22:10:32 · 695 阅读 · 0 评论 -
32位UUID需要注意"-"
UUID.randomUUID().toString().replace("-", "");原创 2017-09-10 21:58:20 · 2267 阅读 · 0 评论 -
springmvc配置全局日期转换器
package com.lai.boss.common.utils;public class CustomDateEdtor implements WebBindingInitializer{ public void initBinder(WebDataBinder binder, WebRequest request) { DateFormat dateTimeFormat = new原创 2017-09-21 07:27:11 · 431 阅读 · 0 评论 -
Mybatis批量删除
delete from mmall_cart where user_id = #{userId} and product_id in #{item} public int deleteByUserIdProductIds(@param("userId") Integer userId,@param("productIdList")List productIdLi转载 2017-11-04 08:24:03 · 243 阅读 · 0 评论 -
double,float浮点型精确运算
源文件Arith.java:import java.math.BigDecimal;/*** 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精* 确的浮点数运算,包括加减乘除和四舍五入。*/public class Arith{ //默认除法运算精度 private static final int D转载 2017-09-29 22:03:28 · 641 阅读 · 0 评论 -
List-mybatis批量插入数据(id自增/非自增)
<insert id="batchInsert" parameterType="list"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> SELECT LAST_INSERT_ID() </selectK原创 2017-11-20 22:28:13 · 2920 阅读 · 0 评论 -
mysql 批量更新 update foreach
update tb_thread set isDelete=0 where threadId in ( #{item.threadId} ) 注意 需要在数据库添加 &allowMultiQueries=true jdbc:mysql://192.168.1.109:3306/healthmana转载 2017-12-09 11:21:36 · 1020 阅读 · 0 评论 -
spring总容器
原创 2017-12-02 08:58:22 · 150 阅读 · 0 评论 -
遍历Map
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("通过Map.key转载 2017-11-22 22:53:33 · 133 阅读 · 0 评论 -
中国省市区三级联动实例(AJAX实现)
中国省市区三级联动 ----省---- GetAreas(Element('province'),'province'); ----市---- ----区(县)---- /** * Function: Fetch areas with ajax. * Author: Yannis Zhao * Date: 2014-11-0转载 2017-11-24 10:44:43 · 677 阅读 · 0 评论 -
ecilpse配置jvm内存大小
-Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m原创 2017-12-15 22:10:29 · 251 阅读 · 0 评论 -
fastdfg安装
一、理论基础FastDFS比较适合以中小文件为载体的在线服务,比如跟NGINX(APACHE)配合搭建图片服务器。分布式文件系统FastDFSFastDFS是纯C语言实现,只支持Linux、FreeBSD等UNIX系统。FastDFS的两个核心概念分别是:Tracker(跟踪器)、Storage(存储节点) 跟踪器Tracker主要转载 2017-12-31 23:08:24 · 236 阅读 · 0 评论 -
springboot工程创建-eclipse
1.创建一个pom的maven工程。2.点击pom maven工程。新建 module.3.加入maven依赖:注意:Cannot determine embedded database driver class for database type NONEapplication.properties: 需要添加spring.datasource1.springboot原创 2018-02-02 00:34:00 · 309 阅读 · 0 评论 -
最全面的常用正则表达式大全
源文链接:http://javatech.wang/index.php/archives/48/很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$转载 2018-01-28 19:49:50 · 357 阅读 · 0 评论 -
eclipse从高版本JDK换成低版本JDK报的一些错误总结
①:Stanford Parser demo错误:Unsupported major.minor version 52.0 error②:运行时:Project facet Java version 1.8 not supported本人电脑原先用的jdk1.8,后来在学习javaee各框架整合时,发现用jdk1.8比较蛋疼,后改回了1.7版本。改了后运行项目发现了以上一些问题。转载 2018-01-30 15:55:06 · 1118 阅读 · 0 评论 -
大型电商项目演进
高大上的淘宝架构我们以淘宝架构为例,了解下大型的电商项目的服务端的架构是怎样,如图所示上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。最下面呢,是中间件服务,如MQS即队列服务,OCS即缓存服务等。图中也有一些看不到,例如高可用的一个体现,...转载 2018-02-22 09:53:28 · 316 阅读 · 0 评论 -
http请求监听
1.实现ApplicationContextAware。同时交给spring管理,这样在系统启动的时候将ApplicationContext对象赋值给我们自己定义的对象。<bean class="com.mmall.common.ApplicationContextHelper" lazy-init="false" />2.通过ApplicationContext上下文拿到对应的spr...原创 2018-03-09 19:43:23 · 2685 阅读 · 0 评论 -
linux下实时查看tomcat运行日志
1、先切换到:cd usr/local/tomcat8/logs2、tail -f catalina.out原创 2018-03-09 19:56:01 · 152 阅读 · 0 评论 -
springMVC全局异常以及拦截器,过滤器不能拿到请求的方法
一、springMVC全局异常有点 若有很多异常没有被包装,那么我们项目的类,包名,sql语句,数据库ip等关键信息都会暴露。二、spring以及springMVC包扫描进行隔离。 1.springMVC应该扫描controller,spring扫描其他bean 2.coding:spring配置文件:排除controller注解<contex...原创 2018-02-23 19:56:51 · 4716 阅读 · 0 评论 -
树形结构设计总结,对于像部门,权限这样
1.树形结构三要素:parentId:父节点id;level:设计模式父节点的id+level。顶级节点的level默认值0;seq:同一层级排序。2.遍历:主要思路:同一层级的节点保存在key为level的map结构中。这样就可以通过level拿到所有的子节点。3.树形结构修改1是root节点,1下有两个节点2,3。2下有一个节点4。4下有一个节点5.那么修改规则如下:将4放到3下面。同时更新4...原创 2018-03-04 17:40:03 · 3516 阅读 · 2 评论 -
dubbo 监控平台以及管理控制平台安装
1.git clone https://github.com/dangdangdotcom/dubboxcd dubbox2.mvn install -Dmaven.test.skip=true3.mvn deploy -Dmaven.test.skip=true4.将dubbo-admin-2.8.4.war 放到tomcatwebapps文件中mv dubbo-admin-2.8.4.war ...原创 2018-03-25 18:32:10 · 220 阅读 · 0 评论 -
多个tomcat安装配置
后台服务工具tomcat:安装以及使用,同服务器多tomcat端口配置tomcat下载地址:http://tomcat.apache.org/download-70.cgi同一服务器部署多个tomcat时,存在端口号冲突的问题,所以需要修改tomcat配置文件server.xml。首先了解下tomcat的几个主要端口:<Connector port="8080"protocol="HTTP/...原创 2018-03-26 11:24:29 · 205 阅读 · 0 评论