喜欢猪猪
阿里云博客专家、腾讯云博客优秀作者、CSDN博客专家,软件设计师、软件分析师在考,博客分享一些学习整理的资料、面试宝典、工作中遇到问题的解决方案,欢迎大家交流学习.
展开
-
实现优雅的并行程序的策略:
利用现代编程语言提供的并行编程库,如 C++ 的 OpenMP、Java 的并发工具包、Python 的 multiprocessing 和 concurrent.futures 等,可以简化并行编程的复杂性。总结来说,设计并行程序时,要从多个角度综合考虑,包括任务分解、数据同步、资源管理和错误处理等,以实现程序的高效和正确性。通过这些方法的综合应用,可以有效提升并行程序的性能和稳定性,实现优雅的并行解决方案。实施全面的单元测试和集成测试,并使用专门的工具来检测并发程序中的死锁和竞争条件。原创 2024-04-13 21:20:58 · 53 阅读 · 0 评论 -
java ftputils 模拟测试方法 有效
最近需要开发相关ftp内进行文件的上传与下载的操作,需要使用java来实现,需要开发一个工具类进行处理;原创 2023-10-07 17:03:27 · 226 阅读 · 0 评论 -
Java时间格式工具类
在开发的过程中会遇到返回不同时间格式的问题,比如说yyyyMM、yyyyMMdd、yyyy-MM-dd、yyyy-MM-dd HH:mm、sss、yyyy/MM、yyyy/MM/dd等等,这些问题每次遇到都做一个方法,很浪费时间,不如直接写一个工具类,所有的时间操作都在工具类里面定义好,使用的话,直接调用就可以了。原创 2023-09-08 11:52:49 · 243 阅读 · 0 评论 -
七牛云OSS存储
七牛云的存储项目的附件,需要开发一套七牛云的工具类,可以使用该工具类进行七牛云服务器进行文件的上传与下载操作;原创 2023-08-30 17:00:24 · 192 阅读 · 0 评论 -
Java实现数学计算的集合类
提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。* @return double 两个参数的商。* @return double 两个参数的商。* @return double 两个参数的商。* @return double 两个参数的商。原创 2023-08-18 08:58:32 · 164 阅读 · 0 评论 -
IDEA 运行Application时出错,命令行过长
第三步:选择JAR清单。原创 2023-08-17 15:54:59 · 513 阅读 · 0 评论 -
springboot关于spire.doc.free的使用详情
最近需要做一个word下载的功能,平时都是excel的下载,做word导出的时候还是遇到了一些坑的。原创 2022-11-02 18:17:29 · 1296 阅读 · 0 评论 -
细读源码之Java String (一)
Java中的String类绝对是使用最广泛的类,本文就带着大家细读一下JDK8下的String源码,主要包含以下几个方面的内容:一.String不可变特性二.String核心字段分析三.String常见方法分析四.String在Jdk1.6和1.8版本的差异一.String的不可变特性1.什么是不可变对象?如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。2.String设计成不可变的好处A.只有当字符串是不可变的,字符...原创 2021-05-22 16:41:02 · 186 阅读 · 0 评论 -
SpringBoot基础学习文章
目录Java环境变量配置Maven介绍Spring Boot介绍Java环境变量配置JAVA_HOME:实际的安装路径(比如:C:\Program Files\Java\jdk-8)Path:后面添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;Classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(1.5之后可以不设置该变量)Maven介绍图是一个典型的mave项目的.原创 2021-01-29 13:48:40 · 231 阅读 · 2 评论 -
反射机制的概念
目录前言反射机制的作用IOC容器的技术剖析前言考虑一个场景,在程序运行时,一个对象想要检查自己所拥有的成员变量属性,该如何操作?另外一个场景,想要在运行期获得某个类的Class信息如它的属性、构造方法、一般方法后再考虑是否创建它的对象,这种情况就需要用到反射!1)java文件在编译后会变成.Class文件,这就像是个镜面,本身是.Java,在镜中是.Class,他们其实是一样的;同理,看到镜子的反射是.Class,就能通过反编译,了解到.Java文件的本来面目。2)对..原创 2020-12-25 14:44:10 · 301 阅读 · 0 评论 -
spring-boot-devtools在Idea中热部署
目录引入依赖更改Idea依赖引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 --...原创 2020-12-22 17:36:22 · 208 阅读 · 0 评论 -
项目中测试MM提了一个bug,总结出来的比较标准的问题定位步骤:
定位问题的步骤:1. 确认刚才是否有过代码变更和部署,因为有比较高的概率是刚才变更的代码又搞坏了……2. 追踪链路日志看链路是否有异常;3. 通过RPC的控制台调用看接口输入输出是否符合预期;4. 追踪关键方法的入参和出参,看是否有问题;5. 定位到方法细节后,推理逻辑是否有问题;6. 如果无法通过推理,那就最后一招,回放异常流量debug,这样肯定能够找到原因。某个链路耗时比较长,需要进行性能优化,分析步骤是:1. 通过实际流量制造一个耗时较高的trace;2. 进行trace原创 2020-11-26 09:07:07 · 306 阅读 · 0 评论 -
解决idea使用maven管理项目时资源文件无法部署到target下的classes文件夹中
1.查看子maven工程里面有没有这样的代码:<packaging>pom</packaging>,需求删除这句代码,否则会认为是父maven工程,target里面不会生成配置资源xml文件原创 2020-11-18 13:45:47 · 989 阅读 · 4 评论 -
如何在遍历的同时删除ArrayList 中的元素
目录1、直接使用普通for 循环进行操作2、直接使用Iterator 进行操作3、使用Java 8 中提供的filter 过滤4、使用增强for 循环其实也可以5、直接使用fail-safe 的集合类1、直接使用普通for 循环进行操作我们说不能在foreach 中进行,但是使用普通的for 循环还是可以的,因为普通for循环并没有用到Iterator 的遍历,所以压根就没有进行fail-fast 的检验。List<String> userNames = .原创 2020-11-13 14:02:45 · 423 阅读 · 0 评论 -
OkHttpUtils 关于response.body().byteStream()的坑
起因:OkHttpUtils类使用遇到的一个坑记录,在使用流文件的时候,不能进行两次的response.body().byteStream(),否则第二次调用该方法的时候流是关闭的,不能进行使用了;/*** post请求,返回InputStream** @param url* @param json* @return* @throws IOException*/public InputStream postInputStream(String url, String json) thro原创 2020-10-30 16:05:34 · 4147 阅读 · 0 评论 -
Java项目mysql数据库表插入表情包字符串异常
java.sql.SQLException: Unsupported character encoding 'utf8mb4'. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) ~[mysql-connector-java-5.1.38.jar:5.1.38]原创 2020-10-19 14:33:32 · 692 阅读 · 0 评论 -
关于获取的方法的私有变量的时候,避免Redis的GetValue的洞穿
前言,最近在做一个通过redis字典表保存的数据,外部是访问频率比较高的查询,这个时候出现获取超时的问题,经过检查发现redis的GetValue超时导致的,具体的代码是这段代码。例如:在一个公共的获取用户信息的方法里面解决方案:经过定义一个私有属性private,或者protected的属性进行内存的访问,减轻Redis的访问超时的问题;总结:在开发的前期都是一些逻辑问题,或者业务流程的问题,开发的后期都是遇到的性能的问题或者并发的问题,这个时候才是一个多年开发工程师真正要解决的问题;...原创 2020-10-13 10:50:35 · 118 阅读 · 0 评论 -
订单取号器的机制,百万级、千万级、上亿级订单号不重复的问题
目录前言:设计理念:总结:前言:作为一个从事旅游行业的人员,会遇到订单号自动生成的问题,这个时候会遇到并发产生订单号的问题,比如说重复号、产生并发超时等等;设计理念:设计一个数据库表,用于生成100万条数据,去重产生数据,随机生成处理,最好是写一个程序来生成出来;叫做取号表;事例:100000100001100002。。。等设计一个数据库表,用于记录当前使用的订单号的位置,每次取号都进行取号主键的+1操作,用于记录当前取号的位置,再定义一个自动..原创 2020-10-10 10:30:48 · 527 阅读 · 0 评论 -
MyBatis Plus selectone 源码分析以及异常的处理
目录前言:最近项目中MyBatis Plus 使用 selectone的过程中异常的分析1.源码分析,具体如下:源码解释分析:前言:最近项目中MyBatis Plus 使用 selectone的过程中异常的分析1.源码分析,具体如下:public <T> T selectOne(String statement, Object parameter) { // Popular vote was to return null on 0 results an...原创 2020-09-25 13:43:58 · 2099 阅读 · 0 评论 -
多线程的使用,避免ExecutorService 的创建处理
前言:代码:package com.ly.tcgl.sellservice.web.controller;import com.google.common.util.concurrent.ThreadFactoryBuilder;import org.apache.tomcat.util.threads.ThreadPoolExecutor;import java.util.concurrent.*;/** * @title: 多线程的使用方式,遵守阿里巴巴的规则,否则的话容易产.原创 2020-09-11 15:10:06 · 685 阅读 · 0 评论 -
LogInterceptor 面向切面编程进行记录每个请求方法的响应时间
前言:最近在搭建一个api的项目,由于在是由于的过程中,遇到cpu时间过高以及接口需要响应时间优化的问题,特意做了 一下时间统计的日志代码/*** @title: LogInterceptor* @Author like.ma* @Date: 2020-08-13 11:54* @Version 1.0*/@Aspect@Componentpublic class LogInterceptor { /** * 环绕切面,记录service.impl下的所有...原创 2020-08-13 13:59:40 · 1307 阅读 · 0 评论 -
Java BigDecimal和double lambda表达式求和 踩坑精度问题
踩坑前戏,关于使用double产生精度问题的坑实例1:可以看出来直接这样赋值是存在问题的事例二:在赋值BigDecimal的时候,要使用字符串的类型,否则会自动把赋值的数据转换为doubel赋值给BigDecimal的,从而产生的精度丢失问题;实例三,关于labdom表达式进行list的相加sum的问题...原创 2020-08-12 11:11:49 · 2618 阅读 · 0 评论 -
QueryWarpper的使用方法,MyBatics Plus的查询方法处理
目录#AbstractWrapper#allEq#eq#ne#gt#ge#lt#le#between#notBetween#like#notLike#likeLeft#likeRight#isNull#isNotNull#in#notIn#inSql#notInSql#groupBy#orderByAsc#orderByDesc#orderBy#havi...原创 2020-07-16 16:11:48 · 6868 阅读 · 1 评论 -
JAVA springboot 添加全局异常的处理
目录前言技术方案具体代码使用异常代码运行结果前言最近搭建java项目需要进行全局异常的捕获,用于在没有进行异常处理的时候,进行异常报警的处理。技术方案使用shiro框架的全局异常处理,前置请求处理adviceRequest;具体代码/** * * 全局异常处理器 * * @author like.ma */@RestControllerAdvicepublic class GlobalExceptionHandler{ /** .原创 2020-07-14 11:31:55 · 508 阅读 · 0 评论 -
IDEA 使用fastjson解决乱码 swagger访问接口正常,直接访问浏览器接口返回乱码
目录原因:解决代码:原因:最近遇到的问题,重新搭建java项目的时候没有发现这个问题,同事使用的时候发现的问题,现在记录一下解决的过程解决代码:@Configurationpublic class FastJsonConfig { @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { //用字段名作为序列化和反序列化的key值 TypeUtil.原创 2020-07-02 16:38:52 · 610 阅读 · 0 评论 -
解决 413 Request Entity Too Large
前台js提交springboot进行前端文件上传的时候,遇到问题,其实springboot项目也做了文件大小的设置。但是部署到服务器的时候,进行文件的上传还是报错,经过联系运维,发现是Nigex的设置问题,现在做一个解决方案的记录问题:413 Request Entity Too Large记录一次413 Request Entity Too Large解决的问题1.对于有经验的开发着看见这个错误第一反应就是服务器的上传大小设置的不对那么修改服务器上传大小对于nginx的配置有三个地方可以原创 2020-05-13 16:06:41 · 1239 阅读 · 0 评论 -
springboot 配置上传文件的限制 针对js上传文件报错net::ERR_CONNECTION_ABORTED
1.最近在java开发的时候,遇到了上传限制问题,前台报错net::ERR_CONNECTION_ABORTED解决方法:第一在yml进行配置:http: multipart: maxFileSize: 20MB maxRequestSize: 100MB第二在Java配置bean里面进行处理 /** * 配置上传文件大小的配置 * * @return */ @Bean public MultipartConfi原创 2020-05-12 16:06:26 · 2067 阅读 · 0 评论 -
Java反射的学习备份
概述定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。用途在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方...原创 2020-04-29 16:05:03 · 198 阅读 · 1 评论 -
MyBatis面试整理内容
什么是MyBatis? MyBatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL本身,不需要花费精力去处理加载驱动,创建连接、创建statement等复杂的过程,程序员直接编写原生态SQL,可以严格控制sql执行性能,灵活度高。Mybatis可以使用xml或者注解来配置和映射原生信息,将pojo映射成数据库中记录,避免了几乎所有的JDBC代码和手动设置参数以...原创 2020-04-22 21:00:31 · 306 阅读 · 0 评论 -
技术沉淀相关书籍介绍,java技术
计算机基础入门推荐:《程序是怎样跑起来的》、《网络是怎样连接的》、《计算机是怎样跑起来的的》进一步认识计算机网络:《计算机网络:自顶向下》、《图解http》数据结构+算法入门:《大话数据结构》、《阿哈算法》算法进阶:《算法第四版》、《编程珠玑》由于我是 Java 技术栈的,顺便推荐几本 Java 的书籍,从左到由的顺序看到Java:《Java核心技术卷1》、《编程思想》、《深入...原创 2020-04-14 12:33:02 · 234 阅读 · 0 评论 -
springboot IDEA 过滤器全局赋值的操作使用流程
1.最近在开发一个项目 ,需要进行一个全局拦截器的处理,进行拦截所有的get、post请求的操作;避免所有的方法都进行该用户名、工号的赋值,减少重复工作,这个找了许多的案例,最后还是调试出来了,现在做一个分享,避免相关小伙伴遇到同样的问题。@Componentpublic class HttpServletFilter implements Filter { @Override...原创 2020-04-13 17:30:12 · 366 阅读 · 0 评论 -
IDEA报错java.net.SocketTimeoutException:Read timed out
最新在写java页面的时候,由于接口返回的时间较长,遇到了这个问题IDEA报错java.net.SocketTimeoutException:Read timed out解决方案:发现post请求使用了String resStr = "";//创建OkHttpClient对象。OkHttpClient client = new OkHttpClient().newBuilder(...原创 2020-03-24 17:51:43 · 4855 阅读 · 1 评论