工作中java开发积累

在当前时间的基础上加一年加一天,加一个月

//获取当前日期
Date date = new Date();
//创建Calendar实例
Calendar cal = Calendar.getInstance();
cal.setTime(date);   //设置当前时间
cal.add(Calendar.YEAR, 1);  //在当前时间基础上加一年
//将时间格式化成yyyy-MM-dd HH:mm:ss的格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(cal.getTime()));
//同理增加一个月和一天的方法:
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY, 1);

数据库存的userId是long类型返回前端失真解决

**@JsonSerialize(using = ToStringSerializer.class)
 private Long userId;**

数据库的v_switch_id要求vSwitchId格式但是mybatis匹配出的是vswitchId解决

@JsonProperty(value = "vSwitchId")
 private String vSwitchId;

1.集合比较并排序

list.sort(Comparator.comparing(BatteryGroupCount::getStatus));

2.jdk1.8流的使用(从集合列表中选择对象的某些信息,整合成新的集合.比如在SQL里,你可以从表中选择一列,Stream API也通过map和flatMap提供了类似的方法

List<Dish> menu =  
List<String> collect = menu.stream().map(Dish::getName).collect(Collectors.toList())

将集合取出某一列属性并将其转换成以逗号分割的字符串

List<Model> fromData = getModelList();
String ids= fromData.stream().map(m -> m.id()).collect(Collectors.joining(","));

3.类型转化(将String转化为集合)

List<String> list = Arrays.asList(DDD_MAPPING.split(","));

#RPC(之get请求)

用流将集合进行分组求和(BigDecimal )

BigDecimal cpuUseRds = rdsModelList.stream().map(y -> y.getCpuUseRate().multiply(new BigDecimal(y.getCpu()))).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
                BigDecimal cpuUseRateRds = cpuUseRds.divide(new BigDecimal(cpuRds), 2, BigDecimal.ROUND_CEILING);
                Integer memoryRds = rdsModelList.stream().map(BaseUseRateEntity::getMemory).reduce(Integer::sum).get();
                BigDecimal memoryUseRds = rdsModelList.stream().map(y -> y.getMemoryUseRate().multiply(new BigDecimal(y.getMemory()))).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
                BigDecimal memoryUseRateRds = memoryUseRds.divide(new BigDecimal(memoryRds), 2, BigDecimal.ROUND_CEILING);

int类型求和

int sum = nums.stream().reduce(0, Integer::sum);
此外reduce还有还有一个重载的方法,它没有初始值,使用Optional接收结果:

List<Integer> nums = Arrays.asList(1,2,3,4,5,6,7);
Optional<Integer> optional = nums.stream().reduce(Integer::sum);
System.out.println(optional.get());//28

最大值和最小值

    Optional<Integer> optional = nums.stream().reduce(Integer::max);
    System.out.println(optional.get());
    Optional<Integer> optional2 = nums.stream().reduce(Integer::min);
    System.out.println(optional2.get());

4.drop、delete 与 truncate 区别?

用法不同
drop(丢弃数据): drop table 表名 ,直接将表都删除掉,在删除表的时候使用。
truncate (清空数据) : truncate table 表名 ,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数据的时候使用。
delete(删除数据) : delete from 表名 where 列名=值,删除某一列的数据,如果不加 where 子句和truncate table 表名作用类似。
truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除,也就是执行 drop 之后对应的表不复存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值