java基础
caibixyy
年薪百万好不好
展开
-
spring aop底层原理
使用的有jdk动态代理和cglib代理 使用代理取决于代理的对象的是类还是接口, 如果是接口-----》cglib代理 如果是类------》jdk动态代理原创 2020-09-14 14:57:45 · 195 阅读 · 0 评论 -
base64 单文件上传,多文件上传
import org.springframework.web.multipart.MultipartFile; import sun.misc.BASE64Decoder; import java.io.*; public class BASE64DecodedMultipartFile implements MultipartFile { private final byte[] imgContent; private final String header; public.原创 2020-08-26 13:27:07 · 377 阅读 · 0 评论 -
单文件上传,多文件上传
需要导入相关的上传文件的依赖包 相关工具类和自定义异常在下方 import java.io.File; import java.io.IOException; StringUtils; import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; FileNameLengthLimitExceededException;自定义异常 FileSizeLimitExceede原创 2020-08-24 14:20:22 · 323 阅读 · 0 评论 -
设计模式之单例模式
饿汉式,静态变量 //饿汉式,静态变量 class S1{ private S1(){ } public final static S1 s = new S1(); public static S1 returnS1(){ return s; } } 饿汉式,静态代码块 class S1{ static { instance = new S1(); ; } private static S1 ins.原创 2020-07-23 17:26:06 · 114 阅读 · 0 评论 -
jconsole监控java进程配置,内存使用图形化界面,
win+r打开cmd窗口,输入jconsole 远程java服务启动命令: 关闭防火墙 连接成功原创 2020-05-12 16:51:57 · 245 阅读 · 0 评论 -
JVM 学习详解和调优
Java运行时数据区: JMM Java内存模型: 堆的内存划分: GC垃圾回收: HotSpot 虚拟机详解: JVM优化: 类加载机制: Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的...转载 2020-03-23 15:21:00 · 109 阅读 · 0 评论 -
FastJson对象转成json字符串,字符串转对象的使用
1.对象转换成字符串存入nosql,以redis为例 redisTemplate.set(key,JSON.toJSONString(A)); 2.在重新转换成对象 A a = JSON.toJavaObject(JSON.parseObject(redisTemplate.get(key)), A.class); 此方法返回值就是你转换成的对象了。 亲测可用 ...原创 2020-03-04 11:13:12 · 899 阅读 · 0 评论 -
时间工具类,各种日期格式转换
public class DateUtils { // ==格式到年== public static final String DATE_FORMAT_YYYY = "yyyy"; // ==格式到年月 == public static final String DATE_FORMAT_YYYYMM = "yyyyMM"; /** *...原创 2020-03-03 17:32:31 · 458 阅读 · 0 评论 -
一些常用的字符工具类方法
生成md5 public static String getMD5(String str) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = md.digest(str.getBytes()); String md5 = bytes....原创 2020-03-03 17:24:09 · 184 阅读 · 0 评论 -
java并发编程知识(二)
所有的并发问题,都可以归结为如何协调对并发状态的访问,可变状态越少,就越容易确保线程安全性 尽量将域声明为final类型,除非他们是可变的 不可变对象一定是线程安全的, 不可变对象能极大地降低并发编程的复杂性,他们更为简单和安全,可以任意共享而无需使用加锁,或保护性复制等机制 封装有助于管理复杂性 在编写线程安全的程序时,虽然可以将所有数据保存到全局变量中,但为什么要这样做?将数据封装在对象中,更...原创 2019-12-26 11:48:37 · 118 阅读 · 0 评论 -
java 并发编程知识(一)
在构建稳定的并发程序时,必须正确地使用线程和锁,但这些终究是一些机制,要编写线程安全的代码,其核心在于要对状态访问操作进程管理,特别是共享的和可变的状态访问。 ’共享‘意味着变量可以由多个线程同时访问,而‘可变’则意味着变量的值在其生命周期内可以发生变化。 一个对象是否是线程安全的,取决于它是否被多个线程访问,这指的是程序中访问的方式,而不是对象要实现的方式。要使得对象线程安全,...原创 2019-12-25 16:34:33 · 97 阅读 · 1 评论