java
文章平均质量分 74
17号技师
这个作者很懒,什么都没留下…
展开
-
springboot的@Cacheable不起作用
@Cacheable使用// 这个原本想要达到的结果是返回结果不为null就缓存起来,但是这样根本没有缓存,这是为什么呢?@Cacheable(condition = "#result != null ", key = "key")debug发现的问题上面是debug的情况,结论也在上面结论condition只判断一次,也就是第一次方法调用的使用// 这样就能实现了@Cacheable(key = "key", unless = "#result == null")...原创 2020-12-15 17:24:49 · 1093 阅读 · 0 评论 -
springboot REST client(携带token)请求头转发
官方文档import feign.Logger;import feign.RequestInterceptor;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration原创 2020-08-18 09:56:42 · 2051 阅读 · 0 评论 -
动态生成java类与对象
依赖 <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.25.0-GA</version></dependency>代码import javassist.*;import javassist.byt原创 2020-07-15 19:50:35 · 478 阅读 · 0 评论 -
tomcat源码阅读(一) 源码下载 启动
下载源码https://tomcat.apache.org/download-80.cgi解压解压以及创建必要目录和配置解压、新建catalina-home目录,同时将目录中的conf和webapps文件夹复制到catalina-home目录中在根目录新建pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns原创 2020-07-12 22:30:54 · 236 阅读 · 0 评论 -
java.util.UnknownFormatConversionException: Conversion = ‘;‘
使用String.format()出错,这是因为字符串中有些地方只用了%但是不是替代的内容解决 str.replace("%", “%%”)原创 2020-07-12 16:57:46 · 620 阅读 · 0 评论 -
spring 使用java发送企业邮件
import javax.mail.*;import javax.mail.Message.RecipientType;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Date;import java.util.Properties;/** * @description: * @author: Seldom * @time: 2020/7原创 2020-07-12 16:40:24 · 785 阅读 · 0 评论 -
springboot swagger鉴权
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>配置文件import org.springframework.beans.factory.annotation.Value;i原创 2020-07-08 12:56:56 · 1733 阅读 · 1 评论 -
Java 外部传参方式
main 方法的 args测试代码public class Test { public static void main(String[] args) { for (String arg : args) { System.out.println(arg); } }}都一种通过IDEA:如果使用的是IDEA或者myeclipse通过设置Arguments,此处以IDEA为例输出第二种通过命令行:javac Tes原创 2020-07-05 15:24:32 · 1258 阅读 · 0 评论 -
springboot jpa 连接mongo时候
org.springframework.beans.factory.BeanCreationException: Errorcreating bean with name ‘mongoUtils’: Invocation of init methodfailed; nested exception isorg.springframework.data.mongodb.UncategorizedMongoDbException:Exception authenticating MongoCreden.原创 2020-07-03 09:13:04 · 349 阅读 · 0 评论 -
.gitlab-ci.yml制作镜像推送到私仓的脚本(maven工程)
注意 根目录下需要有 dockerFile 文件before_script: - echo "before_script..." - docker version # DOCKER_USER DOCKER_PASSWORD DOCKER_REGISTRY 这些变量需要在gitlab上有 - docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD} ${DOCKER_REGISTRY} -stages: - test - buil原创 2020-06-15 23:05:04 · 1393 阅读 · 0 评论 -
centos7 下 后台运行 jar
普通运行 jarjava -jar xxx .jar当前 shell 窗口的后台运行java -jar xxx .jar &关闭 shell 后依然运行(信息会在当前目录下的nohup.out)nohup java -jar xxx.jar &原创 2020-05-23 23:36:02 · 364 阅读 · 0 评论 -
JVM学习笔记之十(synchronized)
5. synchronized 优化Java HotSpot 虚拟机中,每个对象都有对象头(包括 class 指针和 Mark Word)。Mark Word 平时存储这个对象的 哈希码、分代年龄,当加锁时,这些信息就根据情况被替换为 标记位、线程锁记录指针、重量级锁指针、线程ID 等内容对象头存储内容图例,引用|---------------------------------...原创 2020-05-01 15:14:51 · 156 阅读 · 0 评论 -
JVM学习笔记之九(CAS)
4. CAS 与原子操作4.1 CASCAS 即 Compare and Swap ,它体现的一种乐观锁的思想,比如多个线程要对一个共享的整型变量执行 +1 操作:public class Main { public static void main(String[] args) { // 需要不断尝试 while (true) { ...原创 2020-05-01 12:11:44 · 256 阅读 · 0 评论 -
JVM学习笔记之八(JMM)
内存模型(JMM)原创 2020-05-01 10:56:42 · 164 阅读 · 0 评论 -
java 深clone与浅clone
java 深clone与浅clone上图来自https://baijiahao.baidu.com/s?id=1639373055719110771&wfr=spider&for=pc上图来自https://blog.csdn.net/houwanle/article/details/82218174浅复制只是复制引用的地址深复制把都对象复制两份java中原生的...原创 2020-04-27 23:01:20 · 192 阅读 · 0 评论 -
JVM学习笔记之七
6. 运行期优化6.1 即时编译分层编译(TieredCompilation)先看看一个例子public class JIT1 { public static void main(String[] args) { for (int i = 0; i < 200; i++) { long star = System.nanoTime(...原创 2020-04-25 21:47:32 · 224 阅读 · 0 评论 -
JVM学习笔记之六
5. 类加载器以 JDK 8 为例Bootstrap ClassLoader 启动类加载器Extension ClassLoader扩展类加载器Application ClassLoader应用程序类加载器5.1 启动类加载器(Bootstrap ClassLoader )public class F { static { System.out.pri...原创 2020-04-25 17:11:35 · 132 阅读 · 0 评论 -
JDK8并发编程之并发包概览
JDK8并发包概览以下信息依据 openjdk8描述:java.util.concurrent 直接包里面包含 59 个类或者接口。java.util.concurrent.atomic 里面包含18个类或者接口。java.util.concurrent.locks 里面包含11个类或者接口。原子类(atomic包)说明,原子类或者说CAS操作都依赖于Unsafe类,所以这个类也需要了...原创 2020-04-25 13:42:52 · 840 阅读 · 0 评论 -
System.getProperty 用法
System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); // Java提供商名称 System.out.println(...原创 2020-04-25 12:49:01 · 177 阅读 · 0 评论 -
JVM学习笔记之五
4. 类加载阶段4.1 加载将类的字节码载入方法区中,内部采用C++的instanceKlass描述java类,它的重要field有:_java_mirror即 java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露给 java 使用_super 即父类_methods 即方法constants 即常量池class_load...原创 2020-04-25 11:08:11 · 343 阅读 · 0 评论 -
JVM学习笔记之四
02_07异常处理public class Demo17 { public static void main(String[] args) { Object lock = new Object(); synchronized (lock){ System.out.println("ok"); } }}=...原创 2020-04-24 22:33:42 · 153 阅读 · 0 评论 -
JVM学习笔记之三
02字节码指令02_01字节码指令-init字节码指令-main02_02javap使用public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld"); }}D:\jvm\out\production\view...原创 2020-04-23 11:37:26 · 366 阅读 · 0 评论 -
JVM学习笔记之二
JVM学习笔记4 GC调优掌握GC相关的JVM参数,会基本的空间调整掌握相关工具重点:调优与应用和环境有关,没有统一的规则查看虚拟机运行参数“jdk下bin目录下java命令的绝对地址” -XX:+PrintFlagFinal -version | findstr “GC”我的是 “E:\Java\jdk1.8.0_191\bin\java” -XX:+PrintFlagsFin...转载 2020-04-22 21:21:29 · 224 阅读 · 0 评论 -
Gson
这是我使用的Gson包版本下面是官方介绍GsonGson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. ...原创 2020-04-22 13:55:05 · 2604 阅读 · 0 评论 -
pring MVC 的MultipartFile转File
今天项目要求后端读取csv文件进行处理,这里就记录一下首先我们知道mvc接受的文件是MultipartFile fileBufferedReader reader = new BufferedReader(new InputStreamReader(file.getInputStream())); reader.readLine();//读一行标题 String line = ...原创 2020-04-16 17:40:38 · 128 阅读 · 0 评论 -
禁止延迟开启偏向锁jvm参数
jdk6默认开启偏向锁,但是是输入延时开启,也就是说,程序刚启动创建的对象是不会开启偏向锁的,几秒后后创建的对象才会开启偏向锁的-XX:BiasedLockingStartupDelay=0验证引入依赖包<!--可以查看mark word--> <!-- https://mvnrepository.com/artifact/org.openjdk.j...原创 2020-03-14 20:51:13 · 3385 阅读 · 15 评论 -
线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors返回的线程池对象的弊端如下: 1)FixedThreadPool和SingleThreadPool: 允许的请求队列长度为Integer.MAX_VALUE...原创 2020-02-18 11:21:15 · 451 阅读 · 0 评论 -
springboot webScoket
依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>配置类 W...原创 2020-02-08 19:53:20 · 146 阅读 · 0 评论 -
安装可视化elasticsearch kibana插件
下载curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gz解压tar -zxvf kibana-7.3.0-linux-x86_64.tar.gz启动(注意,不要使用root启动,使用其他用户启动,并且要赋予用户权限 chown -R username /usr/...原创 2020-02-05 15:30:17 · 110 阅读 · 0 评论 -
Centos 安装 Elasticsearch 7.5.0 以及遇到的问题
安装jdk(这个就略过)安装Elasticsearch 7.3.0下载(在/user/local/elasticsearch下面)curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz解压tar -xzvf elasticsearch-...原创 2020-02-05 13:51:55 · 468 阅读 · 0 评论 -
灯泡关闭
初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。示例:输入: 3输出: 1 解释: 初始时, 灯泡状态 [关闭, 关闭, 关闭].第一轮后, 灯泡...原创 2019-12-28 10:46:59 · 315 阅读 · 0 评论 -
java中Pair
java中Pair参考博客https://blog.csdn.net/yaomingyang/article/details/79304840https://blog.csdn.net/neweastsun/article/details/80294811在这篇文章中,我们讨论了一个非常有用的编程概念,配对(Pair)。配对提供了一种方便方式来处理简单的键值关联,当我们想从方法返回两个值...原创 2019-12-16 10:09:20 · 2199 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
本文链接:https://blog.csdn.net/weixin_41101173/article/details/79677982一、Java String 类——String字符串常量字符串广泛应用 在Java 编程中,在 Java 中字符串属于对****象,Java 提供了 String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作...转载 2019-11-24 10:40:59 · 78 阅读 · 0 评论 -
java 文件追加
public class AppendToFile { /** * A方法追加文件:使用RandomAccessFile */ public static void appendMethodA(String fileName, String content) { try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new ...转载 2019-11-24 10:37:23 · 221 阅读 · 0 评论