需求,把一个对象复制一份新的,实现深拷贝,也就是说新旧对象的属性改变完全互不影响。 原理就是将这个Object实现Serializable接口,并实现deepClone方法,在方法里,对这个对象进行序列化和反序列化的操作,那么新对象肯定就是实现了深拷贝了,代码如下: Student.java public class Student implements Serializable { private int age; private String name; public Student(String name, …

2021-12-07 0条评论 633点热度 0人点赞 admin 阅读全文

今天启动一个交接的项目,发现启动报错,如下错误提示: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.Nati…

2021-12-01 5条评论 1295点热度 0人点赞 admin 阅读全文

JSK1.8以上的Java应用(如SpringBoot/SpringWeb等)连接MSSQL(也可能是MSSQL Server的版本比较旧),发现无法链接,报错如下: The server selected protocol version TLS10 is not accepted by client preferences TLS12 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全…

2021-11-25 0条评论 799点热度 0人点赞 admin 阅读全文

腾讯企业邮箱第三方发送邮件文档:https://open.work.weixin.qq.com/help?person_id=0&doc_id=423&helpType=exmail 发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465,所以如下代码配置各项属性: Properties props = new Properties(); props.put("mail.smtp.host", "smtp.exmail.qq.com"); props.put("mail.s…

2021-11-12 0条评论 1639点热度 0人点赞 admin 阅读全文

自动生成API文档,https://gitee.com/xiaoym/knife4j 这个还是挺好用的,需求希望在开发环境下启用API文档,而生产环境下则关闭API文档,我们可以在Knife4j的配置代码中,加入@ConditionalOnProperty来根据当前的环境判断是否使用Knife4j。 Knife4jConfig 生产环境禁用 @ConditionalOnProperty(name = "my.product-env", havingValue = "false") 意思是查看application.…

2021-11-08 0条评论 3402点热度 0人点赞 admin 阅读全文

SpringBoot的拦截器HandlerInterceptor下,我们在public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o)下进行了拦截,对不符合条件的请求,我们一般是返回一个非200的状态代码,例如: @Component public class PersonalInterceptor implements HandlerInterceptor { @Override publi…

2021-10-28 0条评论 1535点热度 0人点赞 admin 阅读全文

之前的文章有介绍如何利用正则表达式判断给定IP地址字符串是否是内网IP,详见:https://blog.terrynow.com/2021/10/24/java-regex-check-if-given-ip-is-inner-ip/,不过有个问题,类似0:0:0:0:0:0:0:1/::1这样的ipv6地址,需要重新写正则表达式。 Java里有一个InetAddress,可以不用正则表达式,利用直接进行判断: public static boolean isInnerIp(String ipAddress) { …

2021-10-25 0条评论 1335点热度 0人点赞 admin 阅读全文

利用正则表达式判断给定IP地址是否是内网IP。 利用InetAddress全面判断给定IP是否是内网IP(支持IPv6) 详见https://blog.terrynow.com/2021/10/25/java-inetaddress-check-given-ip-is-local-address-support-ipv6/ 说明下,内网IP一般是这么几个地址段: 10.0.0.0/8 10.0.0.0--10.255.255.255 172.16.0.0/12 172.16.0.0--172.31.255.255 …

2021-10-24 0条评论 2966点热度 0人点赞 admin 阅读全文

数字分钟转成多少小时多少分钟,例如 1 -> 1分钟 59 -> 59分钟 60 -> 1小时 61 -> 1小时1分钟 180 -> 3小时 239 -> 3小时59分钟 可以利用取余数、取模操作: public static void main(String[] args) { System.out.println(getTimeDesc(0)); //0分钟 System.out.println(getTimeDesc(59));//59分钟 System.out.prin…

2021-10-19 0条评论 604点热度 0人点赞 admin 阅读全文

如题,原生代码,使用HttpURLConnection请求时候,获取302 Follow Redirect重定向时候,获取需要重定向的地址。 注意需要加上这句 connection.setInstanceFollowRedirects(false); 否则会抛出java.net.SocketException: Unexpected end of file from server,而获取不到重定向地址。 String url = "http://www.example.com"; String postConten…

2021-10-16 0条评论 1016点热度 0人点赞 admin 阅读全文
18910111220