jAVA
每天都要加加油王得坤
于微小出见精神
展开
-
算法学习思路
1删除有重复数据的有序数组,给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。如[0,0,1,1,2,3,]===》[0,1,2,3] 思路原地算法:双指针就可以做到2买股票算法(贪心算法) 思路:便利,如果后面的大于前面的就计算差加入结果,依次来就好了给定一个数组 prices ,其中prices[i] 是一支给...原创 2021-05-01 23:53:09 · 164 阅读 · 0 评论 -
java访问Hadoop报错集锦
关于java.io.IOException: HADOOP_HOME or hadoop.home.dir areunset.的问题记住需要在bin文件夹加一个文件原创 2019-12-03 21:28:15 · 439 阅读 · 0 评论 -
自旋锁的原理及使用
什么是自旋锁是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,...转载 2019-10-14 16:17:37 · 4503 阅读 · 1 评论 -
多线程上下文切换
首先我们需要了解cpu时间片,cpu时间片指的是cpu分配给每个线程的执行时间段,称作他的时间片,cpu的时间片一般是几十毫秒上下文切换概念:cpu通过时间片段的算法来循环执行线程任务,而循环执行即每个线程允许允许运行的时间后的切换,而这种循环的切换是各个程序从表面上看起来是同时进行的。而切换时会保存之前的线程任务状态,当切换到该线程的任务的时候,会重新加载该线程的任务状态,而这个从保存到加载...转载 2019-10-14 15:55:05 · 144 阅读 · 0 评论 -
线程连接池
第一种:Executors.newCacheThreadPool():可缓存线程池,先查看池中有没有以前建立的线程,如果有,就直接使用。如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务package testfordemo;import java.util.concurrent.ExecutorService;import java.util.con...转载 2019-10-14 15:26:56 · 398 阅读 · 0 评论 -
OutOfMemoryError 和 StackOverflowError 错误有什么区别?
OutOfMemoryError内存不足错误和 StackOverflowError堆栈溢出错误如果一个线程方法中不允许有更大的本地方法栈,那么jvm就会抛出stackoverflowerror,如果本地方法栈可以动态的扩展,并且本地方法栈尝试过扩展了,但是没有足够的内存分配给他,再或者没有足够的内存为线程初始化本地方法栈,那么jvm会抛出OutOfMemoryErrorStackOv...原创 2019-10-13 14:18:48 · 161 阅读 · 0 评论 -
mybatis第五天(源码)
掌握sqlsession执行的源码分析掌握参数设置的源码分析掌握结果集映射的源码分析学会如何设计一个框架学会如何手写mybatis框架.RowBounds.DEFAULT mybatis的逻辑分页,讲数据库中的数据加载到jvm中,进行分页...原创 2019-07-05 23:54:03 · 83 阅读 · 0 评论 -
线程
runnable实参类对象不是线程对象,他只不过实现了rrunnable接口而已,只有Thread对象的子类才是线程对象为什么要把runnable实现类的对象作为实参传递给thread对象这是为了把runnable类的run方法作为thread线程类的run方法的任务代码去执行wait与notify用法的注意事项1wait与notify方法是属于obje...原创 2019-07-23 23:58:50 · 73 阅读 · 0 评论 -
linklist特点
原创 2019-07-29 21:55:03 · 532 阅读 · 0 评论 -
微服务项目
register-with-eureka: false 告诉eureka不要注册自己lease-renewal-interval-in-seconds: 30 每隔30s发起一次心跳lease-expiration-duration-in-seconds: 90 如果90s没有发起心跳那么就代表挂了eviction-interval-timer-in-ms: 60000...原创 2019-08-08 12:30:03 · 106 阅读 · 0 评论 -
springcloud熔断FeignClient报错连接超时原因
网上查了,大概是时间问题,下面是复制别人的回答Feign接口调用分两层,Ribbon的调用和Hystrix调用,理论上设置Ribbon的时间即可,但是Ribbon的超时时间和Hystrix的超时时间需要结合起来,按照木桶原则最低的就是Feign的超时时间,建议最好配置超时时间一致。经过配置一下application设置后,完美解决了问题。因为第三方接口中需要3~20秒不等的时间,所以这个数值也...转载 2019-08-08 23:24:37 · 846 阅读 · 0 评论 -
zuul网管配置跨域域名并进行配置
跨域报错信息如下可以加一个如下的配置文件解决(最近在看网上的乐优商场看到的)package com.leyou.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.spr...原创 2019-08-21 17:31:49 · 1224 阅读 · 0 评论 -
序列化初步了解(参考别人的这里只是作为笔记)
1实现序列化: ①让类实现Serializable接口,该接口是一个标志性接口,该标注类是可以被序列化的 ②然后让一个输出流来构造一个对象输出流并且通过writeObect(object) 方法就可以将实现对象写出 ③如果需要反序列化,则可以用一个输入流建立对象输入流,然后通过readObject方法从流中读取对象2作用①序列化就是一种用来处理对象流的机制,...原创 2019-08-27 16:47:19 · 99 阅读 · 0 评论 -
redis缓存
缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。代码流程参数传入对象主键ID根据key从缓存中获取对象如果对象不为空,直接返回如果对象为空,进行数据库查询如果从数据库查询出的对象不为空,则放入缓存(设定过期时间...原创 2019-08-27 17:49:08 · 94 阅读 · 0 评论 -
线程生命周期图
原创 2019-07-05 13:28:35 · 539 阅读 · 0 评论 -
mybatis第四天(源码)
cacheRefElement(context.evalNode("cache-ref"));cacheElement(context.evalNode("cache"));这2个和二级缓存有关mybatis从整体横观可以分为配置文件加载和sqlsession的执行配置文件加载:全局和映射文件加载加载全局配置文件--XMLConfigBuilder:用来...原创 2019-07-05 00:05:33 · 92 阅读 · 0 评论 -
mybatis学习第三天
1 延迟加载:懒加载,减轻数据库压力,发生在关联查询,在mybatis中只有resultMap标签才可以完成懒加载(collection和association)(嵌套查询嵌套结果)2 延迟加载分类:A --直接加载:执行完主加载对象的查询后,马上就会执行关联对象的select查询 B --侵入式延迟:执行对主加载对象进行查询时,不会执行对关联对象的查询,但当...原创 2019-07-04 18:40:18 · 157 阅读 · 0 评论 -
使用ftp服务修改删除重命名以及创建文件存取数据
1删除:String ftpPath = "/var/ftp/pub/images/"; //下载 //String localPath = "/home/wang/下载/two15392444531.rar"; //上传 String localPath = "/home/wang/下载/"; String f...原创 2019-01-10 23:26:45 · 4478 阅读 · 0 评论 -
java生成excel并转成字节流(需要为mysql中字段解码)
package com.mall.common.utils;import com.mall.common.entities.ViewTradeRecordsEntity;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.a...原创 2019-01-09 18:39:50 · 841 阅读 · 0 评论 -
使用ftp服务上传文件(亲测上传好使,网上代码很多,我也是直接拿的,哈哈)
1安装vsftp : yum -y install vsftpd 2修改配置文件 : vi /etc/vsftpd/vsftpd.confanonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES这三个设置为YES3设置开机启动 : systemctl enable vsftpd.ser...原创 2019-01-10 01:13:13 · 466 阅读 · 0 评论 -
java中Double类型失去精度该怎么做
1定义变量Double A=0.00;(A可能会失去精度)DecimalFormat dcmFmt = new DecimalFormat("0.00");dcmFmt.format(A)原创 2019-03-04 22:12:13 · 244 阅读 · 0 评论 -
Excel复合表头问题的解决
先上图由于公司需求,我需要上传这种具有多表头的excel,之前也没做过,看网上得demo有一点点问题,在这里我把我查看好几个人得到的结果搬过来,谢谢很多大佬哈。1正常生成excel,这里代码我之前写过,就不复制了,可以产看https://blog.csdn.net/qq_39004307/article/details/861698792我们需要多级表头,以我这边为例,首先我们声明...原创 2019-03-12 16:05:09 · 685 阅读 · 0 评论 -
idea启动java项目卡住问题
当遇到 Method breakpoints may dramatically slow down debugging时这时有可能可以进行下面步骤解决Ctrl - Shift -F8 (打开Breakpoints面板)然后可以测试是否可行...原创 2019-04-04 15:49:33 · 4684 阅读 · 1 评论 -
mybatis深入学习第一天
1 如果xml中的parameterType是简单类型(8种基本类型或者string类型 #{}中的参数名称可以随便写)<select id="selectByNameAndPassWord" parameterType="java.lang.String" resultMap="BaseResultMap">SELELCT * FROM USER WHERE id = # {...原创 2019-04-16 19:24:47 · 118 阅读 · 0 评论 -
mybatis深入学习第二天
mybatis架构接口层;对外提供增删改查接口数据处理层:入参映射(java类型映射成sql需要的jdbc类型,并设置参数),sql解析,执行sql,结果映射基础支承层:连接管理,事务管理,配置加载,缓存处理XMLConfigBuilder这是一个专门用来创建configuration对象的工具类 XMLConfigBuilder调用构造方法实例化congiguartio...原创 2019-04-18 14:29:36 · 160 阅读 · 0 评论 -
通过java实现微信公众号发送微信消息
(感谢好多老哥提供的文档,哈哈,这里我就只是代码贴出来,方便以后copy)1获取tokenString token = Wechat.getAccess_token(appId, appSecret).getString("access_token"); public static JSONObject getAccess_token(String appId, Str...原创 2019-05-10 15:07:18 · 8237 阅读 · 12 评论 -
发送微信消息安卓正常接收通知,苹果收到空消息问题
1先上图 安卓设备苹果设备2 原因,网上看了,是因为我颜色用的#FFF,这个颜色在安卓是可以正常显示微信消息,苹果却不可以,最后换了#173177蓝色才在苹果手机正常显示。记录下这个坑,防止以后掉坑。...原创 2019-06-20 15:00:04 · 1262 阅读 · 0 评论 -
基于java+js实现微信支付功能
1业务需求 公司的电商项目最近开展到了支付环节,所以老板给了一个第三方支付文档,让我完成支付功能。2支付文档 先上支付文档url https://open.swiftpass.cn/openapi必填参数:①body商品描述 ②total_fee 消费金额,这里是以分为单位,即数值为1就是1分,且不能有再小的单位,不能写成带小数的数值 ③sub_openid 这个是用户微信...原创 2019-06-20 16:00:41 · 958 阅读 · 0 评论 -
mybatis采坑日记
mybatis一对多查询,用户对应多个订单,可是查询出来发现用户下的订单只有第一条记录,这是由于用户表的主键和订单表的主键id同名导致的,可以改名或者起别名解决...原创 2019-07-03 19:00:50 · 104 阅读 · 0 评论