![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java进阶
文章平均质量分 55
deelless
韶光易逝,劝君惜取少年时
展开
-
并发编程详解
eg:和其他系统集成,某个接口执行完需要10分钟,其他系统不关心执行过程,只关心结果,不希望等10分钟,想立即拿到结果(实际上是一个同步转异步),怎么处理?eg:货车拉来了一批货,需要尽快卸货,如果1个工人搬运,需要花费10个小时,如果请10个工人同时搬运,理论上只要1个小时。线程1进来拿到ticket 值为2,进入了休眠,线程2同时进来也拿到了ticket 值也为2,再自减就打印了1。分析:创建了5个线程来消费ticket这个公共资源,循环5次,每次自减1,结果应该是0,为啥会打印的结果实1?原创 2023-04-02 12:11:21 · 1079 阅读 · 1 评论 -
Java 常用设计模式——单例模式
适⽤于⼀些重量级的对象,在计算机系统中,线程池、连接池、缓存、⽇志对象、对话 框、打印机、显卡的驱动程序对象常被设计成单例。单例模式确保某个类只有⼀个实例,⽽且⾃⾏实例化并向整个系统提供这个实例。只⽤在使⽤的时候才会创建实例对象。类加载的时候就创建好实例对象。原创 2023-03-08 17:36:19 · 91 阅读 · 0 评论 -
SQL 中的笛卡尔积
进一步可以发现笛卡尔积和内连接的sql语句可以相互转化,这对我们理解内连接的本质和笛卡尔积的查询条件很重要内连接不加关联条件的结果就是笛卡尔积笛卡尔积在表数据量大的情况下查询结果会倍增,实际应用中一般会加查询条件过滤数据怎么理解迪卡儿积中的查询条件,可以将笛卡尔积sql转化成内连接sql去理解。原创 2022-12-01 15:22:05 · 25191 阅读 · 1 评论 -
SpringBoot+JPA框架 配置多数据源
【代码】SpringBoot+JPA框架 配置多数据源。原创 2022-09-02 17:45:46 · 1895 阅读 · 0 评论 -
Spark简介及linux环境搭建(local本地模式)
Spark是用于大规模数据处理的统一分析引擎。原创 2022-08-04 11:18:00 · 1350 阅读 · 0 评论 -
SpringBoot 集成 Spark demo
测试类中一共有写了四个测试方法,包含分析txt文件,csv文件,json数据处理,直连mysql数据库,方法都经过测试,可以正常打印结果,特别是jdbc 直连mysql可以直接写sql语句,很方便。原创 2022-08-04 11:30:20 · 2190 阅读 · 0 评论 -
java进阶之路——番外篇
引子写了一些java基础,也沉淀了好久(好久没有更新),下一阶段准备写写进阶篇,今天突发奇想,写一篇java番外篇java的晋级之路,就像打怪升级,初遇问题,就像遇到巨无霸的怪兽,好恐怖,好厉害呀,各种办法试过了还是不能打败怪兽。但问题总要解决,不管你找各种资料,还是请人助攻,怪兽终归不能战胜正义,死在光明之下。有趣的是,下次又遇到这个怪兽,一刀灭之,不费吹灰之力,念叨一声,哪里来的野怪怪兽变弱了吗,不,是我们变强了阿里、腾讯等大厂都有自己的职级体系,以管理岗位P1-P9/技术岗位L1-L9为例原创 2022-05-27 18:21:34 · 1442 阅读 · 0 评论 -
国际版时区问题解决方案之:mysql函数
背景数据库存的是东八区时间,需要根据用户时区时间按 天,周,月统计数据分析将用户时区时间转化为东八区查数据库,查到结果再转化为用户时区但这里涉及到用户时间分组,若分组的维度是东八区,那根据东八区聚合会导致数据计算错误。需要按用户时区分组想过一种方案是将 数据库关于统计相关表加上时区字段,每条记录根据24个时区生成24条记录。这样会产生大量冗余数据(原来1万条,现在24万),影响数据库性能后来找到更优方案使用mysql函数,将数据库中原来东八区数据计算为用户时区时间,根据计算后的时间查询e原创 2020-12-17 18:19:53 · 836 阅读 · 0 评论 -
国际化项目时区问题解决方案
一:背景1.mysql数据库中存储时间的时区:东八区2.web端用户设置的时区3.pc端系统时区二:pc端时区会影响时间戳的转化同一个时间戳,改变pc端系统时区,得到的格式化时间会 变解决:不返回时间戳,返回格式化后的字符串三:方案一使用Spring AOP统一修改(点击此标题,查看详情)优点:代码量小缺点: 不适合复杂统计(用户时区天,星期,月)四:方案二:sql语句中时区函数和子查询将源数据中东八区时间,改为用户时区时间优点:数据库层面做的时区转换,适用范围广,适合复杂原创 2020-12-16 11:50:59 · 3798 阅读 · 0 评论 -
Spring AOP实际应用之:根据时区全局修改用户时间
背景国际版项目,每个用户有自己的时区,数据库存储的时间固定是东八区,现在需要根据用户设置的时区显示时间解决方案很多,这里的方案是 实体类增加时间格式化属性(赋值,前端显示),使用 Spring AOP 全局修改返回对象属性值实体类可以不加属性,直接修改原来的Date有个问题是Date类型的数据以时间戳的形式返回给前端,时间戳会根据浏览器客户端时区的改变而改变所以需要后端定义一个String类型格式化时间,前端显示String一:实体类增加格式化属性二:自定义注解package com.s原创 2020-12-11 18:22:52 · 1298 阅读 · 2 评论