首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏BAT的乌托邦

    Java中创建对象的5种方式,你都知道几种?【享学Java】

    void main(String[] args) { Person person1 = new Person(); Person person2 = new Person("fsx (Reflection.java:102) at java.lang.Class.newInstance(Class.java:436) at com.fsx.maintest.Main.main( public static void main(String[] args) throws Exception { Person person = new Person("fsx ', age=18} Person{name='fsx', age=18} false 完成了内容的克隆,但是可以发现是个全新的对象。 ', age=18} Person{name='fsx', age=18} false 备注:JDK序列化、反序列化特别特别耗内存。

    23.9K63发布于 2019-09-03
  • 来自专栏不换的随想乐园

    不换的周刊 第33期

    2.fsx[3] 相关地址:https://github.com/humanwhocodes/fsx 一个现代化的 fs 系统: 读文件 // read plain text const text = await fsx.text("/path/to/file.txt"); // read JSON const json = await fsx.json("/path/to/file.json"); fsx.write("/path/to/file.txt", "Hello world!") buffer; // write a buffer await fsx.write("/path/to/file.txt", bytes); 检测 if (await fsx.isFile("/path tab=readme-ov-file#-table-of-contents [3] fsx: https://github.com/humanwhocodes/fsx [4] drawing.garden

    17710编辑于 2024-04-30
  • 来自专栏BAT的乌托邦

    HandlerMethodArgumentResolver(四):自定参数解析器处理特定应用场景,介绍PropertyNamingStrategy的使用【享学Spring MVC】

    currUser=fsx。 ","demo_name_and_age":"fsx18"} 反序列化json到vo -> Main.DemoVo(demoName=fsx, demoAge=18, demoNameAndAge=fsx18 若使用另外三种,我把结果摘录如下: CamelCase: 序列化vo对象到json -> {"demoAge":18,"demoName":"fsx","demoNameAndAge":"fsx18"} -> {"DemoAge":18,"DemoName":"fsx","DemoNameAndAge":"fsx18"} 反序列化json到vo -> Main.DemoVo(demoName=fsx, ":"fsx18"} 反序列化json到vo -> Main.DemoVo(demoName=fsx, demoAge=18, demoNameAndAge=fsx18) FastJson默认使用CamelCase

    12.4K73发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家Spring】Spring AOP中@Pointcut切入点表达式最全面使用介绍

    //表示匹配com.fsx.run.UserService中所有的公有方法 2)execution(public * com.fsx.run.UserService.*(..)) //表示匹配com.fsx.run包及其子包下的所有方法 3)execution(* com.fsx.run..*.*(..)) Pointcut定义时,还可以使用&&、||、! 这三个运算。 进行逻辑运算 // 签名:消息发送切面 @Pointcut("execution(* com.fsx.run.MessageSender.*(..))") private void logSender( ){} // 签名:消息接收切面 @Pointcut("execution(* com.fsx.run.MessageReceiver.*(..))") private void logReceiver “@within(com.fsx.run.anno.MyAnno)”匹配被调用的方法声明的类上拥有MyAnno注解的情况。

    26.8K32发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    Java单例模式的7种写法中,为何用Enum枚举实现被认为是最好的方式?【享学Java】

    @1f32e575 System.out.println(sReflection); //com.fsx.bean.Singleton@279f2327 System.out.println (s == sReflection); // false } } 运行输出: com.fsx.bean.Singleton@1f32e575 com.fsx.bean.Singleton@279f2327 @452b3a41 com.fsx.bean.Singleton@6193b845 false 可以看出,序列化前后两个对象并不相等。 @1f32e575 System.out.println(sReflection); //com.fsx.bean.Singleton@279f2327 System.out.println (s == sReflection); // false } } 运行打印: 拿到了构造器:private com.fsx.bean.EnumSingleton(java.lang.String

    14.4K107发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    异步事务?关于异步@Async + 事务@Transactional的结合使用问题分析【享学Spring MVC】

    -1 play线程:fsx-Executor-2 这里我用一个比较极端的案例来说明问题:主线程调用异步线程,异步线程里继续调用异步线程的case。 System.out.println("enter的线程:" + Thread.currentThread().getName()); String name = "fsx (HelloServiceImpl.java:34) eat的线程:fsx-Executor-1 java.lang.RuntimeException: eat抛出运行异常 at com.fsx.service.HelloServiceImpl.eat System.out.println("enter的线程:" + Thread.currentThread().getName()); String name = "fsx System.out.println("enter的线程:" + Thread.currentThread().getName()); String name = "fsx

    10.6K42发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    @Qualifier高级应用---按类别批量依赖注入(QualifierAnnotationAutowireCandidateResolver原理详解)【享学Spring】

    ", 16); } @Bean public Person person2() { return new Person("fsx02", 18); } } ", 16); } @MyAnno @Bean public Person person2() { return new Person("fsx02", , age=16), Person(name=fsx02, age=18)],符合预期。 ", 18); } @Qualifier @Bean public Person person3() { return new Person("fsx03 ", 20); } } 运行的最终结果是: [Person(name=fsx01, age=16), Person(name=fsx02, age=18)] 它把@Qualifier指定的value

    1.6K20发布于 2019-09-18
  • 来自专栏BAT的乌托邦

    【小家Java】聊聊Java中的比较器(排序):Comparable和Comparator;Spring中的Comparators和AnnotationAwareOrderComparator

    测试 public static void main(String[] args) { Person[] people = new Person[]{new Person("fsx Demo public static void main(String[] args) { Person[] people = new Person[]{new Person("fsx Demo: public static void main(String[] args) { Person[] people = new Person[]{new Person("fsx 排序后:" + StringUtils.arrayToCommaDelimitedString(people)); } // 结果 把null放在了第一位 排序前:Person{name='fsx ', age=18},null,Person{name='dy', age=15} 排序后:null,Person{name='dy', age=15},Person{name='fsx', age=18

    3.1K11发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    Spring中PropertySource属性源配置文件的优先级、顺序问题大解析(加载流程)【享学Spring】

    是可以被spring应用识别的特定格式 System.out.println(ArrayUtils.toString(args)); // {--server.port=8080,fsx 比如我上面写成--server.port=9090 fsx最终的结果如下(非选项参数是个List装载的) ? ] INFO com.fsx.boot1demo1.maintest.Main - random int(0,1):0 17:31:56.651 [main] INFO com.fsx.boot1demo1 .maintest.Main - random int(1,3):1 17:31:56.651 [main] INFO com.fsx.boot1demo1.maintest.Main - random [main] INFO com.fsx.boot1demo1.maintest.Main - random int(5,6):5 17:31:56.652 [main] INFO com.fsx.boot1demo1

    7.9K32发布于 2019-09-03
  • 来自专栏机器人课程与技术

    免费的开源飞行规划软件Little Navmap

    Little Navmap支持FSXFSX Steam Edition,Prepar3d版本2,3,4和X-Plane --------------------------------------- 如果安装其他模拟器而不是FSX SP2,请参阅联机手册。 我建议在安装新版本之前删除以前Little Navmap版本的所有已安装文件。 --------------------- 根据下载的版本,该实验可以包含两个附加程序: Little Navconnect ================= 连接Little Navmap和FSX

    1.5K10编辑于 2022-04-29
  • 来自专栏存储公众号:王知鱼

    【存储100问】智能数据分层:场景、价值与实现

    DRA 允许 FSx for Lustre 文件系统与一个或多个 S3 存储桶或前缀自动同步数据。 FSx for Lustre 文件系统中“逐出”(evict)。 此操作仅删除 FSx for Lustre 上的文件副本,S3 中的数据不受影响,从而释放 FSx for Lustre 上的存储容量以供更热的数据使用 14。 Amazon FSx for Lustre 智能分层架构图 下图概念性地展示了 Amazon FSx for Lustre 智能分层的架构: FSx for Lustre 智能分层通过其内部多级自动分层以及与 Amazon FSx for Lustre for ML/HPC: FSx for Lustre 常用于高性能计算和机器学习的数据暂存和 I/O 管理,提供类似本地集群文件系统的访问体验 37。

    11510编辑于 2026-03-09
  • 来自专栏BAT的乌托邦

    从原理层面掌握@RequestAttribute、@SessionAttribute的使用【享学Spring MVC】

    Person personModelAttr(HttpServletRequest request) { request.setAttribute("myApplicationName", "fsx-application , HttpServletRequest request, ModelMap modelMap) { System.out.println(myApplicationName); //fsx-application // 从request里获取 System.out.println(request.getAttribute("myApplicationName")); //fsx-application fsx-application null Person(name=非功能方法, age=50) 这里务必注意:@RequestAttribute("myApplicationName")注解如果省略, forward请求转发带过来 形如这样: request.setAttribute("myApplicationName", "fsx-application"); request.getRequestDispatcher

    3.5K20发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家java】Java中5种创建对象的方法,你知道几种?

    Employee emp1 = new Employee(); 字节码: 0: new #19 // class com/fsx/demo/Employee 3: dup 4: invokespecial #21 // Method com/fsx/demo/Employee."":()V 2.使用Class类的newInstance方法 这个方法创建对象其实我们用得也比较多 所以类必须有public无参构造函数才行 Employee emp2 = (Employee) Class.forName("com.fsx.demo.mployee").newInstance(); Employee emp4 = (Employee) emp2.clone(); 字节码: 162: invokevirtual #87 // Method com/fsx/demo//Employee.clone

    95821发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家Spring】SpEL你感兴趣的实现原理浅析spring-expression~(SpelExpressionParser、EvaluationContext、rootObject)

    ', age=30} System.out.println(parser.parseExpression("#myPerson.name").getValue(ctx)); //fsx ', age=18} System.out.println(parser.parseExpression("#root.name").getValue(context)); //fsx '").getValue(context)); //true System.out.println(parser.parseExpression("#root.name=='fsx'") .getValue(context)); //true System.out.println(parser.parseExpression("name.equals('fsx')"). BeanFactoryAccessor生效,输出:person-->Person{name='fsx', age=18} @RunWith(SpringJUnit4ClassRunner.class)

    10.1K55发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?【享学Spring】

    age" value="18"/> </bean> 可以看到此xml配置Bean中使用了占位符:${diy.name}来引用下面属性文件的属性值~ my.properties: diy.name = fsx-fsx System.out.println(environment.getProperty("diy.name")); } } 打印结果为: Person{name='${diy.name}', age=18} fsx-fsx ClassPathResource("my.properties")); // 加载指定的属性文件 return configurer; } 再次运行,打印如下: Person{name='fsx-fsx ', age=18} fsx-fsx 完美~ 关于xml配置Bean处理占位符问题,为了加深理解,亦可参考:【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给 ,此时运行输出如下: Person{name='fsx-fsx', age=18} null 会发现environment.getProperty("diy.name")为null,也就是说该属性值并不会存在应用的环境内了

    2.2K30发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    聊聊Spring中的数据绑定 --- BeanWrapper以及Java内省Introspector和PropertyDescriptor【享学Spring】

    ()] java.beans.MethodDescriptor[name=setAge; method=public void com.fsx.bean.Child.setAge(java.lang.Integer )] java.beans.MethodDescriptor[name=setName; method=public void com.fsx.bean.Child.setName(java.lang.String )] java.beans.MethodDescriptor[name=getAge; method=public java.lang.Integer com.fsx.bean.Child.getAge (); writeMethod=public void com.fsx.bean.Child.setAge(java.lang.Integer)] java.beans.PropertyDescriptor (); writeMethod=public void com.fsx.bean.Child.setName(java.lang.String)] ---------------------------

    1.9K40发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家Spring】探讨注解驱动Spring应用的机制,详解ServiceLoader、SpringFactoriesLoader的使用(以JDBC、spring.factories为例介绍SPI)

    com.fsx.serviceloader.MyIService // 注意这个是接口 com.fsx.serviceloader.HDFSService com.fsx.serviceloader.LocalService 注意到上面说了唯一一个强制要求,就是必须能够实例化(有空的构造函数) 因此做修改如下(只写实现类): com.fsx.serviceloader.HDFSService com.fsx.serviceloader.LocalService ,com.fsx.serviceloader.LocalService // 若有非常多个需要换行 可以这么写 // 前面是否顶头没关系(Spring在4.x版本修复了这个bug) com.fsx.serviceloader.IService =\ com.fsx.serviceloader.HDFSService,\ com.fsx.serviceloader.LocalService 我们这么测试一下即可: public , com.fsx.serviceloader.LocalService] System.out.println(services); //[com.fsx.serviceloader.HDFSService

    2.1K42发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家Spring】资源访问利器---Spring提供的Resource接口以及它的常用子类源码分析

    ,下面的例子基于:spring.properties在类路径下(也就是maven工程的resources目录下) demo.properties位于maven工程的java目录下,包名为:com/fsx /等 // 这里Main所在包为:com.fsx.maintest 因此最终找的文件地址为:com/fsx/maintest/demo.properties 会去这里找文件 所以它这里需要把路径写全了:com/fsx/maintest/demo.properties // 需要注意的是,因为它没有对路径处理的,所以不支持 `/`打头的这种绝对路径 获取类路径的地址 InputStream systemResourceAsStream = ClassLoader.getSystemResourceAsStream("com/fsx /demo-war/target/classes/com/fsx/maintest/demo.properties"); System.out.println(file.exists()

    1.8K20发布于 2019-09-03
  • 来自专栏BAT的乌托邦

    【小家Spring】详解Spring AOP的底层代理JdkDynamicAopProxy和ObjenesisCglibAopProxy的源码分析(介绍CGLIB使用中的坑)

    show demo.hello(); System.out.println(proxyFactory.getTargetClass()); //class com.fsx.maintest.Demo 它也不符合切点表达式的要求啊 看下面的解释吧 // 你被拦截了:方法名为:hello 参数为--[] // com.fsx.maintest.Demo@643b1d11 这里是要求必须有空的构造函数的 MyDemo myDemo = (MyDemo) enhancer.create(new Class[]{String.class}, new Object[]{"fsx $$EnhancerByCGLIB$$b07b3819@7960847b fsx 这样我们就简单的实现了,对一个对象进行增强。 $Proxy0 cannot be cast to com.fsx.maintest.Demo //Demo demo = (Demo) proxyFactory.getProxy();

    3.5K52发布于 2019-09-03
  • 来自专栏Java学习专栏博客

    pycharm激活码永久2023最新有效pycharm激活方法

    WwveWcqGppaHVvLmxpdmUiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IkRHIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7fX0seyJjb2RlIjoiRFMiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6ZmFsc2UsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJHTyIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7fX0seyJjb2RlIjoiUFMiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6ZmFsc2UsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJQQyIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7fX0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6ZmFsc2UsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IkRNIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7fX0seyJjb2RlIjoiREIiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6ZmFsc2UsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IlJTMCIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IlJTVSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSIsImV4dGVuZGVkIjpmYWxzZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IlJDIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7fX0seyJjb2RlIjoiUERCIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOnRydWUsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJQU0kiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6dHJ1ZSwicHJvcGVydGllcyI6e319LHsiY29kZSI6IlBDV01QIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIiwiZXh0ZW5kZWQiOnRydWUsInByb3BlcnRpZXMiOnt9fSx7ImNvZGUiOiJQU0VRVUVOQ0VESUFHUkEiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEiLCJleHRlbmRlZCI6dHJ1ZSwicHJvcGVydGllcyI6e319XSwibWV0YWRhdGEiOiIwMTIwMjMwNTExUFNBTjAwMDAwNSIsImhhc2giOiJUUklBTDotNDAzMDMzMDU1IiwiZ3JhY2VQZXJpb2REYXlzIjozLCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9

    41.7K00编辑于 2023-07-16
领券