`
22cgreen
  • 浏览: 55173 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

类的代码块研究

阅读更多
代码块实例:

测试发现:
1)代码块是在类初始化前执行的。
2)用java.lang.Class.forName("com.chen.test.One");只会加载类,并不会执行构造方法。
3)用java.lang.Class.forName("com.chen.test.One");会执行代码块。
4)如果实例化One one = new One(),会先执行代码块,然后再执行构造方法,
总结:代码块是在类加载时执行的,而构造方法是在类加载后,再进行实例化执行的。

如此可以明白为什么加载驱动时,如:
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@"+this.getHostIp()+":"+this.getPort()+":"+this.getSid();
Connection con = DriverManager.getConnection(url,this.getUserName(),this.getPassWord());

为什么Class.forName("oracle.jdbc.driver.OracleDriver");没有返回值,后面的代码怎么使用呢,
原来在驱动中oracle.jdbc.driver.OracleDriver中有一个代码块用于注删自己(驱动)的,而DriverManager中的方法都是静态多法和属性,
因此注册后,线程可以共享DriverManager中的属性。
-----------------------------------------------------One.java
package com.chen.test;

public class One {
static{
System.out.println("--------------block");
}
public One()
{
System.out.println("--------------One");
}
}

-------------------------------------------------------Main.java
package com.chen.test;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
try {
java.lang.Class.forName("com.chen.test.One");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

0
1
分享到:
评论

相关推荐

    记录C、C++语言中,可借鉴的代码块.zip

    在C和C++编程语言中,有很多值得借鉴的代码块,它们可以帮助我们更好地理解和使用这两种强大的编程工具。这里,我们将探讨一些关键的概念和技巧,这些都可在提供的压缩包"记录C、C++语言中,可借鉴的代码块.zip"中...

    rehype-prism:rehype插件使用Prism突出显示HTML中的代码块(通过折射器)

    (如果您想强调的代码块 ,相反,检查出)。 最适合在Node中使用。 如果您想在浏览器中执行语法高亮显示,则应该研究。安装npm install @mapbox/rehype-prism原料药rehype().use(rehypePrism, [options]) 语法突出...

    面向对象进阶综合练习里面的源代码(包括类代码,测试类)

    本资源提供了面向对象进阶的综合练习源代码,包括类代码和测试类,对于学习和提升OOP技能具有很高的价值。 1. **类代码**: 类是面向对象编程的基础,它定义了一组相关属性(数据成员)和行为(成员函数)。在这些...

    网页代码高亮插件

    网页代码高亮插件是一种用于增强网页中代码展示效果的工具,它能够使得代码段更加易于阅读和理解。...通过分析提供的压缩包文件,我们可以深入研究这些技术如何结合,以创建一个高效且美观的代码高亮解决方案。

    Java 类和继承相关代码集

    Java 类和继承是面向对象编程的核心概念,它们构成了Java程序设计的基础。在这个代码集中,我们很显然会看到一系列关于如何...通过研究这些代码,你可以加深对Java面向对象编程的理解,并能够更好地应用到实际项目中。

    Cocos2d-x_v3.2《别踩白块儿》源码

    在《别踩白块儿》中,源代码可能包括以下部分: 1. 场景(Scene)类:定义游戏的主要逻辑和流程,比如主菜单、游戏界面和得分显示等。 2. 层(Layer)类:管理游戏的特定区域,如游戏板,可能包含游戏逻辑和用户...

    VC USB HID使用与研究源代码

    本资料“VC USB HID使用与研究源代码”主要探讨了如何在VC环境下实现USB HID设备的编程。 在VC环境中,开发者通常会使用WinUSB或HID类驱动来与USB HID设备进行通信。WinUSB是一个通用的USB驱动,适用于所有类型的...

    深入研究Java的类加载机制.pdf

    初始化阶段:在初始化阶段,Java虚拟机将类的静态变量和静态代码块进行初始化。这是类加载机制的第三阶段。 类加载器: 类加载器是Java虚拟机中的一个重要组件,负责将.class文件加载到内存中,并将其转换为机器可...

    java中所有类的源代码

    Java是一种广泛使用的面向对象的...深入研究这些源代码有助于理解Java的工作机制,包括类加载、内存管理、异常处理、并发编程等高级主题。对于开发者来说,阅读和理解这些源代码是提升技能、解决实际问题的重要途径。

    寻呼机代码块

    在C++这个编程语言环境下,我们可以探讨如何实现这类代码块以及它可能涉及的关键概念。 1. **C++基础**:C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、游戏开发、服务器端编程等领域。它的核心特性...

    Java内部类在JDBC中的应用研究.pdf

    通过使用内部类,可以将JDBC编程中的try-catch-finally语句块提取出来,封装成一个单独的方法,从而避免代码的重复书写,提高代码的可维护性。 内部类的优点 使用内部类可以带来以下几点优点: 1. 提高代码的...

    展示屏代码集合前端页面

    首先,我们需要理解“物流类”的可视化大屏是什么。在物流行业中,可视化大屏通常用于实时监控货物的运输状态、仓库库存、订单处理情况等关键业务指标。通过将这些数据以图表、地图、仪表盘等形式展示出来,管理人员...

    Java内部类的研究及应用.

    ### Java内部类的研究及应用 #### 1. 引言 内部类是Java语言中一个重要的概念,它允许开发者在类或接口内部定义其他类。内部类不仅可以提高代码的封装性和可读性,还能增强程序的功能性和灵活性。本文将详细介绍...

    Only,:buquet:在android上,一种简单的持久化和运行块代码的方法。.zip

    1. **CodeBlock类**:这是一个可能的核心类,代表了一个可存储和执行的代码块对象。它可能包含了代码的字符串表示以及执行上下文。 2. **持久化存储接口**:项目可能定义了一个接口,用于保存和加载CodeBlock实例,...

    java代码初始化流程研究

    静态变量的初始化顺序按照它们在源代码中的出现顺序进行,而静态块则是在类加载时按顺序执行的。例如,在`JvmTest.java`和`JvmTest1.java`中,如果有静态变量和静态初始化块,它们的执行顺序将体现在`<clinit>`方法...

    页面显示器代码效果

    【标题】"页面显示器代码效果"涉及到的是在网页中展示代码块的相关技术,这通常用于技术博客、在线文档或者教程中,以便清晰地呈现编程语言的代码片段。这样的功能能够帮助读者更好地理解和学习编程概念。 【描述】...

    164个完整的Java源程序代码

    对象是类的实例,而方法是执行特定任务的代码块。变量则用来存储数据。 其次,可能会涉及到控制流程语句,如条件语句(if-else)、循环(for, while, do-while)和switch语句。这些是编程中决策和重复执行的关键...

    Java经典代码 Java经典代码

    经典代码可能包括如何使用try-catch-finally语句块,以及自定义异常类的实现。 3. **集合框架**:Java集合框架提供了丰富的数据结构,如ArrayList、LinkedList、HashMap等。经典代码可能包含这些集合的使用,如遍历...

    标签内JavaScript代码的高亮显示插件

    这类插件通过解析`<pre>`标签内的代码,对关键字、变量、函数等进行不同颜色的标记,使得代码结构清晰,易于阅读。例如,JavaScript中的关键字(如`function`、`if`、`else`)可能会被设置为蓝色,字符串则可能是...

    php源代码包(各类代码11组)

    4. 函数:PHP中的函数可以封装可重用的代码块。通过查看源码,我们可以学习如何定义函数、传递参数以及如何调用预定义的PHP内置函数。 5. 输入输出:PHP提供了一系列函数来处理HTTP请求和响应,如`$_GET`、`$_POST`...

Global site tag (gtag.js) - Google Analytics