<p>类装入器是分层的。类被引入到 JVM 中,因为它们在已经在 JVM 中运行的类中被名称引用。</p> <p><strong>第一个类是如何加载的?</strong><br> 如何在 MySQL 上获得两个日期之间的天数差异?

第一个类是在类中声明的 static main()方法的帮助下加载的。随后加载的所有类都由已经加载并运行的类加载。

我需要在 MySQL 上获得几个日期中包含的天数。

例如:

  • 入住日期是 12-04-2010
  • 查看日期 15-04-2010

类装入器创建命名空间。所有 JVM都包含至少一个嵌入在 JVM 中的类装入器,称为 原始的(或自举的)类装入器。这是一回事,我们将研究非原始类装入器。JVM 中有钩子,允许用户定义的类装入器代替原始类装入器。下面是由 JVM 创建的类装入器。

日差是3。

234879 次浏览
以天为单位表示 日期到另一个

在 Java 中,ClassLoader是一个用于加载 Java 中的类文件的类。Java 代码由 javac编译器编译成类文件,JVM 通过执行类文件中编写的字节码执行 Java 程序。

是日期或日期和时间的表达方式。 只有值的日期部分是 用于计算


ClassLoader 负责从文件系统、网络或任何其他源加载类文件。Java 中有三种默认的类装入器,鞋带分机系统或应用程式类装入器。

ClassLoader


How ClassLoader works

在你的情况下,你会使用:

mysql> select datediff('2010-04-15', '2010-04-12');
+--------------------------------------+
| datediff('2010-04-15', '2010-04-12') |
+--------------------------------------+
|                                    3 |
+--------------------------------------+
1 row in set (0,00 sec)

# # ClassLoader 与 JVM 的交互 enter image description here

但是请注意,日期应该写为 YYYY-MM-DD,而不是像你发布的 DD-MM-YYYY

C = “ https://i.stack.imgur.com/thcxo.gif”alt = “输入图片描述”>

更多@: How-classloader-works-in-java. html

使用 DATEDIFF()函数。

文档中的例子:

SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1

我更喜欢 (时间),因为你可以很容易地改变单位,如果需要的话。

希望它能对某些人有所帮助,因为一开始并不明显为什么 datediff 会返回看起来出乎意料或错误的值。

. 应用程序类装入器负责装入类

当您问为什么存在 ClassLoader 类时,原因很简单——它是负责 在运行时查找和加载类文件的类。

在 java.class.path 系统属性中提到的文件。

我们来详细说明一下。

还需要注意的是,可以覆盖默认的 ClassLoader 实现,使您能够以有用和有趣的方式定制 JVM,从而允许您完全重新定义如何将类文件引入系统。

enter image description here

在 JVM 中,每个类都由 java.lang.ClassLoader的某个实例加载。

点击这里了解更多关于 Java 类装入器的信息。

每当通常的 Java 程序启动 java <classname>命令启动一个新的 JVM 时,第一步是加载内存中正常工作所需的所有关键类,如 java.lang.Object和其他运行时类(rt.jar)。

获取当前日期到目标日期之间的天数

 SELECT DATEDIFF('2019-04-12', CURDATE()) AS days;

现在,ClassLoader 实际上有3个部分:

    输出

    几天

     335
    
SELECT md.*, DATEDIFF(md.end_date, md.start_date) AS days FROM  membership_dates md
  • BootstrapClassLoader负责生成这些类

    产出:

    id  entity_id    start_date            end_date             days
    
    
    1   1236      2018-01-16 00:00:00     2018-08-31 00:00:00    227
    2   2876      2015-06-26 00:00:00     2019-06-30 00:00:00   1465
    3   3880      1990-06-05 00:00:00     2018-07-04 00:00:00   10256
    4   3882      1993-07-05 00:00:00     2018-07-04 00:00:00   9130
    
  • 例如,在内存中加载这些类。

    如果你想要一个比四舍五入的天数更精确的数值:

    select timestampdiff(minute, min(date_col), max(date_col))/1440 from table
    
        TIMESTAMPDIFF(DAY,STR_TO_DATE(date_format('2018-01-01', '%d-%m-%YYYY'),'%d-%m-%YYYY'), '2020-01-01') TOTAL_DAYS
    
  • 下一个任务是将任何外部库/JAR 加载到

    总计 _ 天数: 730天