oldmanpushcart个人页面-阿里云开发者社区

个人头像照片 oldmanpushcart TA的个人档案
4
11

个人介绍

追求性能极限的人

擅长的技术

  • Java
获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 高分内容
  • 最新动态
  • 文章
  • 问答
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 发表了文章 2018-03-12

    JVM-SANDBOX模块编写EXAMPLE

  • 发表了文章 2016-01-15

    远程接口设计经验分享

  • 发表了文章 2016-01-06

    Greys Java在线问题诊断工具

  • 发表了文章 2015-12-08

    JVM飙高排查脚本-结构分析

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2019-07-17

    [@倚贤][¥20]线程有哪几种状态

    我不是专家,但我是知识的搬运工:https://blog.csdn.net/pange1991/article/details/53860651/

    踩0 评论0
  • 回答了问题 2019-07-17

    [@墨玖tao][¥20]jsp程序的运行和普通Java程序有什么不同

    JSP本质上是一种解析式运行的语言,JSP第一次运行的时候会被编译成对应的Servlet,然后再运行。而Servlet必须跑在符合Servlet规范的容器中,这个Servlet容器也就是大家喜闻乐见的Tomcat、Jetty之类。

    所以我们在说Java服务器,其实大部分人说的都只是Servlet容器而已,真正的JavaEE企业级容器WebLogic等很多人平时都是用不全。

    普通的Java程序并没有这些约束,所以普通的Java容器可以不依赖于任何容器而直接运行。BTW,Tomcat本质上就是一个普通的Java程序

    踩0 评论0
  • 回答了问题 2019-07-17

    [@饭娱咖啡][¥20]Spring支持哪些依赖注入的方式?有什么区别?

    我不是专家,我只是专家的搬运工,嘎嘎嘎:https://blog.csdn.net/a909301740/article/details/78379720

    踩0 评论0
  • 回答了问题 2019-07-17

    [@项籍][¥20]如何合理地估算线程池大小?

    亲,这篇文章不错,可以参考:https://blog.csdn.net/u011519624/article/details/69263460/

    踩0 评论0
  • 回答了问题 2019-07-17

    [@倚贤][¥20] 泛型常用特点,List<String>能否转为List<Object>

    Java中泛型是类型擦除的实现方式,所以List、List

    踩0 评论0
  • 回答了问题 2019-07-17

    [@饭娱咖啡][¥20]大佬,我现在用的是JDK8,想换掉,是先JDK9然后JDK10再到JDK11,还是直接跳JDK11?

    JDK8好好的,有什么理由一定要用到JDK9/10/11的特性?如果没有,推荐用好JDK8,很多框架、工具都比较难接受JDK9的特性。
    如果你只是好奇想用JDK11,OK,那就直接用11

    踩0 评论0
  • 回答了问题 2019-07-17

    [@墨玖tao][¥20]什么时候用assert

    assert是Java1.4版本引入的关键词,一般我会在写测试用例的时候会用assert,当然了,我更喜欢用JUnit。我也见过有的框架用assert关键词来做入参校验,纯属蛋疼,不推荐。

    踩0 评论0
  • 回答了问题 2019-07-17

    [@墨玖tao][¥20]建不建议在java类的get方法里面对变量对象进行实例化操作?

    不明白究竟是想对那个变量对象进行实例化,所以索性把两种可能都回答了

    一:对对象的成员变量进行实例化:相当不建议,因为很容易会出现并发问题,你永远无法判断别人是在什么场合去调用你的get方法。甚至你都不知道别人会重复调用你多少次。

    二:对本地变量进行实例化:当然可以

    踩0 评论0
  • 回答了问题 2019-07-17

    [@墨玖tao][¥20]error和exception有什么区别呢。

    Error和Exception的联系

    • 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。
    • Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。

    Error和Exception的区别

    • Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。对于这类错误,Java编译器不去检查他们。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。
    • Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
    踩0 评论0
  • 回答了问题 2019-07-17

    [@倚贤][¥20]当一个线程进入一个对象的一个synchronized方法后,其它线程是否可以进入对象的其他方法。

    当然可以,当然了。这个对象的其他方法不能被synchronized的同一个对象所lock

    踩0 评论0
  • 回答了问题 2019-07-17

    [@饭娱咖啡][¥20]try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

    答案

    finally{}的code会被执行,会在RETURN之前执行;

    解析

    • 原代码

      public class Test {
      
         public static void main(String... args) {
            try {
               System.out.println("FROM:BEFORE");
               return;
            } finally {
               System.out.println("FROM:FINALLY");
            }
         }
      }
    • 编译后运行

      FROM:BEFORE
      FROM:FINALLY
    • 原因

    为了更好的解析运行后的结果,以及挣这20块钱,我们深入解答下:JVM中是怎么执行TRY...CATCH语句的。

    16:return是我们真正即将要return的地方,注意看11~13行和21~23行,javac在编译的时候会将finally语句块的代码copy到return之前,所以finaly的code一定会在return之前执行

    如果TRY...CATCH块中有多个return,那么每个return前边都会被copy了finally块的代码。

    这里也不一定是绝对,不同版本的JVM有不同的优化策略,这里只是从更底层来证明:FINALLY一定会被运行,而且是在RETURN之前

    public static void main(java.lang.String...);
      descriptor: ([Ljava/lang/String;)V
      flags: ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
      Code:
        stack=2, locals=2, args_size=1
           0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
           3: ldc           #3                  // String FROM:BEFORE
           5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
           8: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
          11: ldc           #5                  // String FROM:FINALLY
          13: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          16: return
          17: astore_1
          18: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
          21: ldc           #5                  // String FROM:FINALLY
          23: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          26: aload_1
          27: athrow
        Exception table:
           from    to  target type
               0     8    17   any
        LineNumberTable:
          line 5: 0
          line 8: 8
          line 6: 16
          line 8: 17
        StackMapTable: number_of_entries = 1
          frame_type = 81 /* same_locals_1_stack_item */
            stack = [ class java/lang/Throwable ]
    }
    
    踩0 评论0
正在加载, 请稍后...
滑动查看更多