写代码的一些技巧

本文介绍了如何利用消息队列解决系统双端性能差异问题,提升查询效率。同时,讲解了面向对象编程的五个基本原则,并提供了时间戳转换为日期格式的示例。此外,还分享了生成随机数、MySQL时间操作以及统计存在条数的方法。通过这些技术,可以有效优化系统性能和数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入消息队列解决双端性能差异问题
增加缓存层提高查询效率

面向对象的五个基本原则

  • 单一职责原则;
  • 开放封闭原则;
  • 依赖倒置原则;
  • 接口隔离原则;
  • 合成复用原则;

反射类时需要的是类的全路径

时间戳转成 yyyy-MM-dd HH:mm:ss

//必须是long类型 如果是10位时间戳的话需要在数后面*1000
 long a = (long)(1620000000 + (random.nextInt(9999999)))*1000;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Timestamp ts = new Timestamp(a);
            System.out.println(sdf.format(ts));

取某个范围内的随机数

 Random random = new Random();
 //1000000到9999999范围内的随机数
 random.nextInt(8999999) + 1000000

mysql 取7天时间

SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 6 DAY),'%Y-%m-%d') AS day_show UNION
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 5 DAY),'%Y-%m-%d') UNION
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 4 DAY),'%Y-%m-%d') UNION
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 3 DAY),'%Y-%m-%d') UNION
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 DAY),'%Y-%m-%d') UNION
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d') UNION
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d')

mysql 时间戳转 年月日

FROM_UNIXTIME('要转的时间戳','%Y-%m-%d')

年月日转时间戳

UNIX_TIMESTAMP(DATE_FORMAT(NOW(),'%Y-%m-%d'))

存在条数统计

SUM(CASE WHEN ? IS NULL THEN 0 ELSE 1 END)

获取CPU核数


//      获取CPU核数
    System.out.println(Runtime.getRuntime().availableProcessors());

处理字符串的一些操作

1.字符串去除某些字符

 String regEx="[这里面写要去处的字符]";
 String aa = "";//这里是将特殊字符换为aa字符串," "代表直接去掉
 Pattern p= Pattern.compile(regEx);
 Matcher m = p.matcher(//这里把想要替换的字符串传进来//);
 String newString = m.replaceAll(aa).trim();

2.字符串替换

 String replace = newString.replace("被替换的字段", "替换字段"); 

3.// 替换字符串第一个匹配给定的正则表达式的子字符串

 replaceFirst()

4.字符串分割

 String[] split = replace.split("要根据什么来分割,如",","-"等等特殊字符需要转义");

oracle findinset

INSTR(字符串, 列名)>0  = 0  = 1

oracle的分页

1.无ORDER BY排序的写法。(效率最高)

 SELECT * 
  FROM (SELECT ROWNUM AS rowno, t.* FROM emp t 
  WHERE ROWNUM <= 20) table_alias 
  WHERE table_alias.rowno >= 10;

2.有ORDER BY排序的写法。(效率较高)

SELECT * FROM (SELECT tt.*, ROWNUM AS rowno 
         FROM (SELECT t.* FROM emp t WHERE  1 = 1
               ORDER BY create_time DESC) tt 
         WHERE ROWNUM <= 20) table_alias 
         WHERE table_alias.rowno >= 10; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿烂人丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值