- 博客(105)
- 收藏
- 关注
原创 Java开发手册提炼
说明:大而全的常量类,杂乱无章,使用查找功能才能定位到修改的常量,不利于理解,也不利于维护。接口和实现类的命名有两套规则: 1)【强制】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别。【强制】在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字 混淆,造成误解。说明:Long a = 2l;2)【推荐】如果是形容能力的接口名称,取对应的形容词为接口名(通常是–able 的形容词)。...
2022-08-03 10:22:20 296 1
原创 MySQL中的锁
MySQL中的锁全局锁语法注意点和存在的问题表级锁表锁元数据锁(meta data lock,MDL)意向锁意向锁所解决的问题行级锁行锁锁是计算机协调多个进程或线程并发访问某一资源的机制。MySQL中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表。 表级锁:每次操作锁住整张表。 行级锁:每次操作锁住对应的行数据。全局锁典型的使用场景是做全库的逻辑备份,加锁后整个实例就处于只读状态,后续的DML的写语句,DD
2022-04-11 14:44:35 783
原创 CAS与synchronized
synchronized代表的是一种阻塞式的锁,得不到锁会进入阻塞队列,等待线程进行唤醒,有上下文切换的开销。原子变量是非阻塞式的,有冲突一直循环重试。public final int incrementAndGet() { for(;;) { int current = get(); int next = current + 1; if(compareAndSet(current, next)) return next; }}基于CAS可以实现乐观非阻塞式算法,还可以悲观阻塞式算法
2021-12-28 17:15:50 299
翻译 获取JSONObject中深层嵌套的key_value
//取出datas里的,data里的description JSONObject data = datas.getJSONObject("data"); String description = data.get("description").toString();//取出datas里的,data里的,creator里的nameJSONObject data = datas.getJSONObject("data");JSONObject creator = data.getJSONObj.
2021-09-10 19:14:47 3847
原创 结果集封装
@Datapublic class Result implements Serializable { private String code; private String msg; private Object data; public static Result succ(Object data) { Result m = new Result(); m.setCode("0"); m.setData(data);
2021-08-23 22:34:44 101
翻译 树
树 1、基本结构1、基本结构public class BinaryTree<Key extends Comparable<Key>, Value> { //记录根结点 private Node root; //记录树中元素的个数 private int N; private class Node { //存储键 public Key key; //存储值 private Va
2021-08-16 22:28:55 122
原创 自定义Spring IOC总结
自定义Spring IOC总结1、定义bean相关的pojo类1)PropertyValue类2)MutablePropertyValues类3)BeanDefinition类2、定义注册表相关类1)BeanDefinitionRegistry接口2)SimpleBeanDefinitionRegistry类3、定义解析器相关类1)BeanDefinitionReader接口2)XmlBeanDefinitionReader类4、IOC容器相关类1)BeanFactory接口2)ApplicationCon
2021-08-15 16:19:55 158
原创 一个事务与线程池线程的bug
创建一个线程池核心线程为比如4,用改线程池执行restTemplate远程调用接口获取返回结果,并保存再数据库中。将7个任务提交。此时,通过调用另一个方法 ,修改数据库里未执行的任务的状态,从而取消任务。改取消任务方法添加了@Transcationl事务注解。当执行取消任务时候,发现这种情况,提交的任务为7,线程池核心线程为4,这时候4个核心线程中有一个还没返回数据,就调用了下面的任务,下面没取消的任务,同样没返回结果。...
2021-08-13 17:24:36 285
原创 抽象类与final总结
抽象类与final总结一、抽象类1、为什么要用抽象类2、抽象类的基本原则二、final1、为什么要用final2、final的基本原则一、抽象类1、为什么要用抽象类 当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了。在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。2、抽象类的基本原则1)抽象类和抽象方法必须使用 abstract 关键字修饰2)抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类3)抽象类
2021-08-12 19:27:20 408
原创 配置不同环境多个application.properties或application.yml
【参考博客】【1】:profile根据不同环境打不同application.properties资源包
2021-08-11 17:46:33 591
原创 线程池参数配置与Linux CPU
1、线程池核心线程数配置1)核心线程计算计算密集型:cpu的个数+1。IO密集型:2*cpu个数 + 12)linux查看cpu核数 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq 逻辑CPU的个数 ,这个是我们的机器总的cpu的个数,也是设置线程池大小的时候考虑的cpu的
2021-08-11 10:36:32 616
原创 解决数据库存取时间的问题
参考博客【1】:将时间写入数据库时,秒带小数点问题【2】:@JsonFormat与@DateTimeFormat注解的使用
2021-08-10 18:19:03 104
原创 multiPartFile.transferTo(file) 第二次调用就报错FileNotFound-踩坑记录
今天写代码遇到一个坑,第一次调用multiPartFile.transferTo(file) 正常运行,第二次就报错FileNotFound。并指向了C盘一个很深的目录。看了很多博客的解决办法都不管用,最后找到解决方案如下:替换multiPartFile.transferTo(file)使用FileUtils.copyInputStreamToFile(multiPartFile.getInputStream(), file);将文件流复制到创建的file中需要导入包:<dependency
2021-08-09 12:43:40 2869 8
翻译 数据结构之符号表
符号表的基本结构基本结构有序符号表基本结构public class OrderSymbolTable<Key extends Comparable<Key>,Value> { //记录首结点 private Node head; //记录符号表中元素的个数 private int N; private class Node{ //键 public Key key; //值 pu
2021-08-08 23:55:42 164
翻译 结构型设计模式总结
结构型设计模式1、代理模式2、适配器模式3、装饰器模式4、桥接模式5、组外观模式6、组合模式1、代理模式2、适配器模式3、装饰器模式4、桥接模式5、组外观模式6、组合模式
2021-08-07 16:41:36 308
翻译 创建型设计模式总结
创建型设计模式1、单例模式1.1 饿汉式 (静态常量)1.2 饿汉式(静态代码块)1.3懒汉式 线程不安全1.4 懒汉式 线程安全,同步方法1.5 懒汉式 线程安全,同步代码块1.6 双重检查【推荐】1.7 静态内部类【推荐】1.8枚举【推荐】2、工厂模式(简单工厂、抽象工厂、工厂方法)1、单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个取得其对象实例的方法静态方法 。1.1 饿汉式 (静态常量) 结论:可用,类加载时创
2021-08-07 16:30:41 355
原创 Postman同时上传多个文件和数据
定义对象,对象重要包含数组,而不是写成List1、对象public class FileDataList(){ String names[]; String sizes[]; MultipartFile files[];}2、Controllerpublic void sendData(FileDataList filedatas){}3、postmanBody下的form-data传参数和文件,传多个参数和文件就往下面写每个key要一样,如:names 测试文件01si
2021-08-06 16:33:34 1461
原创 工作实际开发中用到的工厂模式形式
工作实际开发中用到的工厂模式形式1、定义配置文件2、改进工厂类3、通过工厂调用1、定义配置文件american=com.itheima.pattern.factory.config_factory.AmericanCoffeelatte=com.itheima.pattern.factory.config_factory.LatteCoffee2、改进工厂类public class CoffeeFactory { private static Map<String,Coffee&g
2021-08-04 22:36:14 158
原创 docker网络配置命令
1、查看网桥的配置docker network ls2、创建自定义网桥docker create emsdocker create -d bridge ems3、启动时指定网桥docker run -d -p 8080:8080 --network ems --name=mytomcat tomcat:84、删除网桥docker network rm aa5 、查看网桥网络配置信息docker inspect dangdang...
2021-07-31 21:43:36 132
原创 数据库分库分表
数据库分库分表1、数据库分表的基本介绍1.1 为什么分库分表1.2 数据库 库表的拆分方式1.3 分库分表的技术模式2、两种技术模式的基本介绍2.1 Sharding-JDBC2.2 MyCat3、数据库表结构的自动生成1、数据库分表的基本介绍1.1 为什么分库分表1.2 数据库 库表的拆分方式1.3 分库分表的技术模式2、两种技术模式的基本介绍2.1 Sharding-JDBC2.2 MyCat3、数据库表结构的自动生成...
2021-07-30 23:28:08 119
原创 Springboot事务不生效的几种情况
Springboot事务不生效的几种情况情况1:确认创建的mysql数据库表引擎是InnoDB,MyISAM不支持事务情况2:注解到protected,private 方法上,事务不生效,它也不会报错,不过事务设置不会起作用。情况3: 在业务层捕捉异常后未向上抛出,事务不生效。 原因:在业务层手工捕捉并处理了异常(try..catch)等于把异常“吃”掉了,Spring自然不知道这里有错,更不会主动去回滚数据。推荐做法是在业务层统一抛出异常,然后在控制层统一处理。情况4:遇到非检
2021-07-26 16:30:41 3281
原创 Java8新特性基本使用与应用场景
Java8新特性基本使用与应用场景一、基本使用1)Lamda2)Stream二、应用场景一、基本使用1)Lamda2)Stream二、应用场景
2021-07-26 14:39:27 503
原创 刷题-链表-API及套路总结
刷题-链表简单-API及套路总结1、链表-简单-约7题1)反转链表1、链表-简单-约7题1)反转链表【题目特点】: 【原理】: 递归和迭代(移动双指针)【复杂度】:时间复杂度为O(n),空间复杂度为O(1)....
2021-07-24 23:49:49 253 1
原创 springcloud基本使用总结
springcloud基本使用总结1、服务治理1)Eureka2)Consul3)Naco2、负载均衡1)Ribbon3、声明式服务调用1)Feign4、熔断器1)Hystrix5、网关1)geteway6、分布式配置中心1)Config6、消息总线1)Bus7、消息驱动1)Stream8、链路追踪1)Sleuth+Zipkin1、服务治理1)Eureka2)Consul3)Naco2、负载均衡1)Ribbon3、声明式服务调用1)Feign4、熔断器1)Hystrix5、网关1)g
2021-07-21 23:29:38 96
原创 Linux下 jdk/tomcat等应用安装配置
Linux下 jdk/tomcat等应用安装配置JDK安装配置tomcat安装配置JDK安装配置1、解压安装包 tar -zxvf jdk安装包.tar.gz 2、配置环境变量 vim /etc/profile 在最后复制粘贴如下: export JAVA_HOME=/usr/java/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$C
2021-07-19 15:56:01 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人