6 liuhmmjj

尚未进行身份认证

我要认证

对计算机编程很有兴趣

等级
TA的排名 1k+

Java利用反射进行对象深拷贝与类型转换

Java利用反射进行对象赋值与类型转换首先利用反射创建目标类对象,获取当前对象以及目标类所有的成员,然后对这些属性双层循环遍历比较变量名,变量名称相等则进行赋值。获取成员属性时注意点:class.getDeclaredFields()能获取所有属性(public、protected、default、private),但不包括父类属性,相对的class.getFields() 获取类的属性(public),包括父类;这两者并不能满足我们的需求,我们需要的是要获取到子类以及父类的所有权限属性(pub

2020-06-04 16:10:31

BigDecimal格式化与工具类

由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比。例子:import java.math.BigDe

2020-06-04 11:25:59

mysql的聚簇索引与非聚簇索引

在mysql数据库中,myisam引擎和innodb引擎使用的索引类型不同,myisam对应的是非聚簇索引,而innodb对应的是聚簇索引。聚簇索引所谓聚簇索引,就是指主索引文件和数据文件为同一份文件,聚簇索引主要用在Innodb存储引擎中。在该索引实现方式中B+Tree的叶子节点上的data就是数据本身,key为主键,如果是一般索引的话,data便会指向对应的主索引。innodb中,没有主见索引,则会使用unique索引,没有unique索引,则会使用数据库内部的一个行的id来当作主键索引。

2020-05-28 16:26:06

springboot mybatis druid配置多数据源

1.项目代码结构:2,导入基本依赖:记得需要导入mysql驱动mysql-connector-java<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <depen

2020-05-16 08:59:01

用BigDecimal解决doule类型相减时可能存在的误差

double类型的两个数相减可能存在误差,比如System.out.println(2099 - 1999.9);的结果为99.09999999999991可以用BigDecimal解决:public class TestDouble { //两个Double数相减 public static Double sub(Double d1, Double d2) { if (d1 == null || d2 == null) { return n

2020-05-14 10:56:38

Java中finally和return执行顺序

总结: 1 finally语句在return语句执行之后return返回之前执行的 2 finally块中的return语句会覆盖try块中的return返回 3 如果finally语句中没有return语句覆盖返回值,那么原来的返回值可能因为finally里的修改而改变也可能不变 4 try块里的return语句在异常的情况下不会被执行,这样具体返回哪个看情况 5 当发生异常后,catch中的return执行情况与未发生异常时try中return的执行情况完全

2020-05-11 11:57:35

Java 通过BufferedImage缩放和裁剪图片

通过BufferedImage对图片进行缩放和裁剪读取图片//读取图片 通过JAVA自带的ImageIO里面的read方法BufferedImage bufImage = ImageIO.read(File input);BufferedImage bufImage = ImageIO.read(URL input);BufferedImage bufImage = ImageIO.read(InputStream input);BufferedImage bufImage = Imag

2020-05-11 11:10:18

Netty接收数据流程(源码)

Netty接收数据主线:多路复用器(Selector)接收到OP_READ事件处理OP_READ事件:NioSocketChannel.NioSocketChannelUnsafe.read() 分配一个初始1024字节的byte buffer来接收数据 从Channel接收数据到byte buffer 记录实际接收数据大小,调整下次分配byte buffer大小 触发pip...

2020-04-20 11:34:44

将本地代码上传到gitlab

1.新建一个文件夹:例:执行git init命令,此命令会在当前目录下创建一个.git文件夹,git init将项目的所有文件添加到仓库中,git add .这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。如果想添加某个特定的文件,只需把.换成特定的文件名即可.将add的文件commit到仓库,git commit -m "first comm...

2020-04-17 09:42:24

springboot集成redis (Lettuce)

目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列,所以今天使用的是Lettuce。关于jedis跟lettuce的区别:Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接...

2020-04-03 15:40:21

spring注入ApplicationContext对象的几种方式

@Configuration注解所注释的配置类可通过构造函数注入ApplicationContext代码:public interface AA { int f();}public class BB implements AA { @Override public int f() { return 6; }}@C...

2020-03-23 10:07:15

java 实现根据对象某属性对List中的对象元素去重

可以利用TreeSet与java8提供的stream filter对List进行去重代码:public class TestRemoveDup { /** * TreeSet的本质是一个"有序的,并且没有重复元素"的集合,它是通过TreeMap实现的。 * TreeSet注意事项: * 如果向TreeSet集合中添加元素的时...

2020-03-13 10:34:58

java 获取当前时间所在月份的每周日期区间

获取当前时间所在月份的每周日期区间(每周的起始日是周一,结束日期是周日)例子:假设当前时间是2020-03-04,那么这个月跨度有6周。第一周2020-03-01 ,2020-03-01)第二周 (2020-03-02,2020-03-08)第三周 (2020-03-09,2020-03-15)第四周 (2020-03-16,2020-03-22)第五周 (2020-03-...

2020-03-04 17:59:10

关于JDK lambda表达式与匿名内部类的等价实现却出现了截然不同的结果原因分析

发现了一个很奇怪的现象,先上代码:public interface A { int f(); default A cf(A other){ return new A(){ @Override public int f() { int i = this.f(); ...

2020-02-12 11:02:45

Dubbo同步调用和超时源码

同步调用同步调用是一种阻塞式的调用方式,即 Consumer 端代码一直阻塞等待,直到 Provider 端返回为止;dubbo默认的协议是netty,Netty 是NIO 异步通讯机制,那么服务调用是怎么转化为同步的呢?下面看源码:省略一部分调用链,最终会来到这里 DubboInvokerprotected Result doInvoke(final Invocation...

2020-02-07 16:12:17

JDK8 按List中元素对象的多字段对List进行排序

利用Java8按照元素对象的多字段对List进行排序实例对象public class WarningRule implements Serializable { private String hour; private String content; //类型排序字段 private Integer order; public WarningRu...

2020-02-06 15:59:11

MyBatis执行SQL查询,并将结果映射为java对象源码分析

MyBatis执行SQL查询,比将结果映射为java对象mybatis利用jdbc的PreparedStatement查询,是如何知道对查询结果ResultSet rs利用rs.getInt 还是用rs.getDate的呢先从SQL查询的// RoutingStatementHandler类开始进入@Overridepublic <E> List<E> qu...

2020-01-19 12:02:19

java计算两个字符串日期的相差天数

分别用jdk8和之前的版本进行计算public class Test { public static long dayDiff(String date1, String date2,String format) { if (null == date1 || null == date2) { return -1; } ...

2020-01-17 16:09:19

springboot1.X 和2.X 关于Bean名字相同时覆盖问题

在2版本之前的版本,项目中有两个相同名字的bean是可以启动成功的,但是会有覆盖问题但是在2.X版本的时候会报错:could not be registered. A bean with that name has already been defined in class path resource这时候解决办法可以在配置文件中添加:spring.main.allow-bean-...

2019-12-12 19:53:31

volatile关键字原理

volatile可以保证一定程度上有序性,即volatile前面的代码先于后面的代码先执行。但是前、后代码,各自里面的顺序性是无法保证的。volatile可以保证共享变量内存可见性:volatile变量修饰的共享变量在进行写操作的时候回多出一行汇编:0x01a3de1d:movb $0×0,0×1104800(%esi);0x01a3de24:lock addl $0×0,(%es...

2019-12-10 15:17:30

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。