
Java/JavaEE
文章平均质量分 64
Java
brucelwl
负责公司Java基础框架开发,Spring/SpringBoot/Netty/Dubbo/MyBatis/gRPC/Sentinel
展开
-
jdk21 虚拟线程原理及使用分享
jdk21已于北京时间9月19日21点正式发布, 其中引人注目的就是虚拟线程(Virtual Thread)随之正式发布, 不再是此前jdk19、jdk20中的预览版本。:java传统的线程是对系统线程的包装,为了区别于虚拟线程,因此将通过传统方式实现的线程叫做平台线程(Platform Thread):虚拟线程是由JDK内部实现的轻量级线程,不依赖于操作系统,可以显著减少编写、维护和观察高吞吐量并发应用程序的工作量。原创 2023-11-12 15:56:50 · 5543 阅读 · 0 评论 -
升级JDK17问题记录
Jdk9模块后, 有些类访问, 需要通过如下配置打开访问权限。原创 2023-07-26 01:26:42 · 1887 阅读 · 0 评论 -
java开启远程debug竟有两种参数!!!
java 开启远程debug原创 2023-06-30 00:49:39 · 622 阅读 · 0 评论 -
java获取文件的inode标识符
java获取文件的inode标识符,如果文件被删除或者重命名,inode的值会发生变更,因此可以在第一次加载File之后记录inode,后续校验inode的值来判断文件是否被删除、重命名或重新创建等。原创 2022-04-01 03:57:43 · 790 阅读 · 0 评论 -
java高效简洁编码
基于java8高效简洁编码避免未使用变量的定义,减小变量作用域避免无效对象的创建避免频繁创建大对象,大对象容易进入老年代,频繁创建容易导致老年代频繁GC(例如数据库连接)线程中执行定时任务,需要try-catch,否则一旦出现异常,则定时任务不可用最小化变量作用域带有返回值的方法,不应该在方法体内对成员变量修改利用链式编程优化前代码StringBuilder builder = new StringBuilder(96);builder.append("select id, nam原创 2022-02-27 14:11:57 · 693 阅读 · 0 评论 -
java8中值得优化的地方
如果还有其它类似值得优化的注意点,欢迎评论留言,多多交流!!!原创 2022-02-27 03:46:01 · 446 阅读 · 0 评论 -
ScheduledThreadPoolExecutor定时任务
scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)任务完成之后延时指定时间,再执行下一个任务。如果任务执行过程中发生异常将会终止后续定时任务。scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)每隔period时间执行一次任务如果指定period内,上原创 2022-02-07 21:50:28 · 996 阅读 · 0 评论 -
java原生和SpringBoot读取jar包中MANIFEST.MF的方式
java原生和SpringBoot读取jar包中MANIFEST.MF的方式原创 2022-01-20 22:45:31 · 6315 阅读 · 0 评论 -
java获取子类继承的泛型接口方法上具体的参数类型
假设有个泛型接口或类,方法上的参数是一个泛型,或者返回值是泛型。然后子类实现了泛型接口,或继承了泛型类。子类指定了具体的泛型类型。在子类没有重写父类方法的情况下,我们通过Method对象是无法反射拿到具体的方法参数或者返回值的,那么如何才能获取到呢?原创 2021-08-12 12:06:30 · 2886 阅读 · 0 评论 -
Jdk动态代理如何处理java8接口的default方法
Jdk动态代理如何处理java8接口的default方法:参考我的另一篇博客: java8中实现调用对象的父类方法原创 2020-10-17 12:17:58 · 1740 阅读 · 9 评论 -
java8中实现调用对象的父类方法
public class GrandFather { protected void thinking() { System.out.println("I 'm grandFather!"); }}public class Father extends GrandFather { @Override protected void thinking() { System.out.println("I 'm father!"); }原创 2020-09-19 22:54:26 · 2949 阅读 · 0 评论 -
通过Java7方法句柄实现高性能的BeanCopyUtil
public static <T> T copy(Object source, T target) { List<GetSetMethodHandle> getSetMethodHandles = methodHandleCache.computeIfAbsent((new CacheKey(source.getClass(), target.getCla...原创 2020-04-26 23:21:25 · 1114 阅读 · 0 评论 -
详解Java8中如何通过方法引用获取属性名
在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点。1、编码效率低:因为要硬编码写属性名,很可能写错,需要非常小心,时间浪费在了不必要的检查上。2、容易让开发人员踩坑:例如有一天发现实体类中Field Name定义的不够明确,希望换一个Field Name...原创 2020-04-26 23:07:34 · 13851 阅读 · 20 评论 -
Java8中的可重复注解@Repeatable和可继承标记注解@Inherited组合使用注意细节
被标记@Inherited注解的注解,子类可以继承该注解,注解继承规则: 1 类注解会被继承,子类有相同注解将覆盖父类注解,其他父类注解仍然继承 2 子类从写方法,方法注解不会被继承 3 接口上的注解不被继承 根据这个规则也可以理解Spring aop中被jdk动态的代理的类无法直接获取到注解,因为jdk的动态代理是基于实现接口的代理,而cglib是...原创 2018-12-22 18:05:28 · 1970 阅读 · 0 评论 -
No ‘Access-Control-Allow-Origin‘ header is present之 为什么会跨域及解决方案
1 浏览器的限制2 跨域3 浏览器发送的是 XHR (XMLHttpRequest)请求当以上三个条件都满足时浏览器会抛出跨域请求异常(记住是浏览器抛出的异常,和服务端没太大关系),在讲跨域请求解决方案前先了解几个问题。1 http请求中,哪些是常见的简单请求,哪些是非简单请求常见的简单请求:请求方法为:GET ,HEAD,POST,请求header里面无自定义头,Conten...原创 2018-08-12 19:06:30 · 96226 阅读 · 12 评论 -
Lombok 工具中@Data注解生成hashCode()可能导致StackOverflowError情况
看了大学一位同学博客,写了内容大致就是对于一个类中出现了该类的集合,通过Lombok的@Data注解生成class文件,当创建两个这个类的对象并且互相之间引用的时候,就出现了StackOverflowError异常,即栈溢出,或者叫超出栈深度. 在Java虚拟机内存区域分为两种一种是线程共享区域,另一种是线程私有区域,而虚拟机栈就处在线程私有区域中,虚...原创 2018-05-19 01:08:58 · 10704 阅读 · 3 评论 -
修改protostuff-runtime源码排序实体类字段,解决安卓和java服务器序列化不一致
github 源码地址 https://github.com/brucelwl/protostuff-runtime-bruce-1.1.3.gitProtobuf是Google开源的高效,跨平台的序列化工具,而protostuff是一个基于protobuf实现的序列化工具, 它较于protobuf最明显的好处是,在几乎不损耗性能的情况下做到了不用我们写.proto文件来实现序列化. 由于prot...原创 2018-02-03 11:44:59 · 1073 阅读 · 0 评论 -
protostuff-runtime服务端和安卓端编解码字段顺序不一致
解决protostuff-runtime服务端和安卓端编码/解码字段顺序不一致问题因为fill方法的参数fieldMap是LinkedHashMap实现的,所以会保存存入数据的顺序,为了使字段顺序相同,可以更改RuntimeSchema类中的fill方法,使用可排序TreeMap根据key将Map排序,最后再存入fieldMap即可实现服务端和Android端保存的顺序是相同的。static vo原创 2017-02-12 23:19:49 · 1367 阅读 · 0 评论 -
javaWeb自定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题
com.lwl.anno注释类型 WebFilterSort需要用的jar不知道怎么上传,需要的请留下邮箱用该注解注册的Filter默认在部署描述符中的过滤器加载后加载,可以使用isMatchAfter更改加载顺序为Filter排序注解,排序从1开始,1优先级最高以url-pattern 过滤的最先执行,以servlet-name 过滤的在全部url-pattern执行后执行在web.xml中设置参原创 2016-02-14 13:04:04 · 3300 阅读 · 3 评论