- 浏览: 297558 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (272)
- java (42)
- c (49)
- 算法 (29)
- 汇编语言 (3)
- 字符集 (3)
- error (3)
- 搜索引擎 (2)
- 互联网 (18)
- linux (12)
- 网络 (20)
- VMWare (1)
- 面试 (7)
- c++ (55)
- 设计模式 (3)
- db (9)
- office (2)
- FS (1)
- rest (3)
- Ajax (2)
- Spring (2)
- Hibernate (3)
- matlab (1)
- load balancing (8)
- 分布式计算 (2)
- 易语言 (1)
- apache tomcat (1)
- 测试 (1)
- 数据结构 (5)
- 数学 (13)
- 服务器 (9)
- 读后感 (4)
- 好书介绍 (1)
- script (3)
- wordpress (2)
- delphi (21)
- pascal (8)
- xml (3)
- 趣味 (1)
- PHP (3)
- python (13)
- DLL (4)
- openGL (8)
- windows (2)
- QT (28)
- django (7)
- jquery (1)
- 数据挖掘 (7)
- nginx (1)
- js (1)
- mac (1)
- hadoop (3)
- 项目管理 (1)
- 推荐系统 (1)
- html (1)
最新评论
-
晴天1234:
related remove:attention.ibus和u ...
UBUNTU的默认root密码是多少,修改root密码 -
美丽的小岛:
美丽的小岛 写道如上配置好就得了。提示没有OpenGl.dll ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
如上配置好就得了。提示没有OpenGl.dll之类的,再增加入 ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
主要是理清哪两个对象之间的关系,是信号与所有槽的关系或者是槽与 ...
QT之DisConnect -
美丽的小岛:
LPCTSTR类型:L表示long指针 这是为了兼容Windo ...
QString与各种字符串之间的转化
当有时候回忆JAVA的基础的时候,有些东西一下子会变得十分的模糊,不是很清楚一个JAVA类从硬盘中怎么到内存,内存后又是怎样就得执行了。
今天理了一下思路:一个类经过加载,连接(检查、准备、解析),初始化。初始化后这个类就可以随便被使用了。使用也就是可以调用它的静态方法,创建它的实例。
不过,这里想思考一下初始化点,什么情况会被初始化,什么时候不会被初始化。
一般来讲,一个类被首次使用的时候会初始化,首次使用有6种情况(创建新例,调用类中声明的静态方法,操作类或接口中声明中声明的非常量静态字段,调用API中的特定反射方法,初始化一个类的子类,指定一个类作为java虚拟机启动的初始方法)。
看一个有不是首次使用的例子(读一读,看看输出是怎样的?):
interface tested{ String greeting = "tested" ; int a = T.show() ; } class P implements tested{ static{ System.out.println("p's static") ; } } class T{ static int i = 999 ; static final String greeting = "TTTTTTTT" ; static{ System.out.println("T's static") ; } static int show(){ System.out.println("show method") ; return 1 ; } } class Tson extends T{ static{ System.out.println("Tson's static") ; } } public class Test{ static{ System.out.println("Test's static") ; } public static void main(String arg[]){ System.out.println(tested.greeting) ; System.out.println(T.greeting) ; System.out.println(P.greeting) ; System.out.println(Tson.greeting) ; System.out.println(Tson.i) ; } }
输出结果为:
评论
2 楼
美丽的小岛
2012-10-07
w156445045 写道
问下博主 为什么调用
System.out.println(T.greeting) ;
T.greeting的时候,
class T{
12. static int i = 999 ;
13. static final String greeting = "TTTTTTTT" ;
14. static{
15. System.out.println("T's static") ;
16. }
17. static int show(){
18. System.out.println("show method") ;
19. return 1 ;
20. }
21.}
为什么不初始化
static {
syso("T's static");
}
呢?同理:System.out.println(Tson.greeting); 谢谢。
System.out.println(T.greeting) ;
T.greeting的时候,
class T{
12. static int i = 999 ;
13. static final String greeting = "TTTTTTTT" ;
14. static{
15. System.out.println("T's static") ;
16. }
17. static int show(){
18. System.out.println("show method") ;
19. return 1 ;
20. }
21.}
为什么不初始化
static {
syso("T's static");
}
呢?同理:System.out.println(Tson.greeting); 谢谢。
因为这里的greeting为常量静态字段,调用的时候类不会被初始化的。后面那个是一个子类调用父类的常量静态字段,也不会被初始化的。初始化是在首次调用的时候会被初始化(前面的6种情况),其它的情况不会。
1 楼
w156445045
2012-10-06
问下博主 为什么调用
System.out.println(T.greeting) ;
T.greeting的时候,
class T{
12. static int i = 999 ;
13. static final String greeting = "TTTTTTTT" ;
14. static{
15. System.out.println("T's static") ;
16. }
17. static int show(){
18. System.out.println("show method") ;
19. return 1 ;
20. }
21.}
为什么不初始化
static {
syso("T's static");
}
呢?同理:System.out.println(Tson.greeting); 谢谢。
System.out.println(T.greeting) ;
T.greeting的时候,
class T{
12. static int i = 999 ;
13. static final String greeting = "TTTTTTTT" ;
14. static{
15. System.out.println("T's static") ;
16. }
17. static int show(){
18. System.out.println("show method") ;
19. return 1 ;
20. }
21.}
为什么不初始化
static {
syso("T's static");
}
呢?同理:System.out.println(Tson.greeting); 谢谢。
发表评论
-
推荐!国外程序员整理的Java资源大全
2015-12-15 10:14 635本文由 ImportNew - 唐 ... -
jsoup select 选择器
2015-12-09 14:03 936问题 采用CSS或类似jquery 选择器(selecto ... -
xmlbeans问题(深刻)
2015-11-12 23:08 1153运行scomp,路径永远是一个问题; 1.Program ... -
spring配置一个简单的数据连接池(dbcp)
2015-11-12 14:16 7591.文件结构 2.包结构 3.spring.x ... -
java泛型之通配符的使用
2015-11-12 12:15 667转自: http://blog.csdn.net/lone ... -
Ubuntu下安装JDK
2015-05-02 18:42 525安装JDK: 1.下载 http://www ... -
Delphi开发DLL,Java调用DLL
2014-01-01 16:40 1291用一个小例子来示范一下,不写文件字。 第一步 第二步, ... -
如何在Java中调用DLL方法<转>
2013-12-30 13:36 692Java语言本 ... -
Java对存储过程的调用方法
2013-05-14 09:29 760//一:Java如何实现对存储过程的调用: // A ... -
谈谈对象和XML文件的转换 <转>
2013-04-12 14:18 1002很多时候,我们开发 ... -
详解Java解析XML的四种方法<转>
2013-04-12 14:01 909XML现在已经成为一种通用的数据交换格式,它的平台无关性, ... -
URLClassLoader例子
2012-11-22 15:22 1360学着写一个servlet服务器,里面对servlet的处理就得 ... -
关于JAVA配置文件的小记录
2012-11-20 15:16 965配置文件一般会为编写编程提供方便与灵活的特点,最近看tomca ... -
关于Channel学习
2012-10-07 15:12 1083java的新I/O流,有点意思,看看相关的类,其实就这几个就能 ... -
Buffer类与ByteBuffer类(来自JDK)
2012-10-07 10:10 11881. 类 Buffer(public abst ... -
运行控制台命令(java)
2012-10-07 08:30 2874有时候我们想用java去调用系统的命令实现一些功能,这个功能 ... -
匿名内部类是怎么回事
2012-10-05 13:12 1068匿名内部类真的很神秘的,不过,这种类就喜欢做一些神秘的东西。想 ... -
内部类链接到外部类
2012-10-05 10:45 695java中的内部类可以无条件地使用外部类的资源,这是怎么一回事 ... -
关于对象初始(java)
2012-10-04 20:31 1086有时,对JAVA实例化的顺序会忘记,现在记录一下。 1.调用 ... -
JVM指令集
2012-10-04 15:13 938指令码 助记符 功能描述 ...
相关推荐
引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 ...1.11 Java和因特网 ...1.13 Java还是C++?...附录E 关于垃圾收集的一些话 附录F 推荐读物
static 关键字 66 静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70...
2.1 回顾与思考 【例2-1】编写一个Java应用程序,根据所给圆的半径,计算并输出圆的周长。文件名为Example2_1.java,其代码如下。 《Java程序设计案例教程》教学课件02Java语言基础全文共48页,当前为第4页。 2.1 ...
本课程旨在帮助小学三年级学生提高写作能力,通过Java设计练习作文方案代码的方式,让学生在编程中学会思考和表达。 ## 课程目标 - 学习基本的Java语法和编程思想 - 掌握作文的基本要素:主题、结构、内容、语言和...
黑马课程,自学代码及思考 /* 方法:就是将一个功能抽取出来,把代码单独定义在一个大括号里,形参一个单独的功能。 格式: public static void 方法名() { 方法体 } public static是修饰符表示公共的静态 void...
思考Java 在 Java 笔记中思考示例。 Java 语言的重要例子。内容 01 - this - statement // how to use "this" in class02 - method - overloading // same method name in same class. Method overloading.03 - ...
安排本练习的主要目的理解面向对象、能够用面向对象的思路去思考问题,结合Swing和现成的知识完成本项目。 二、 实现要求 使用面向对象的方式,完成本项目。 三、 实现技术 a) 熟练使用if、for等语句进行逻辑操作。 ...
为了确定可以获取关于某类事件的哪些细节时,你应当查看java.awt.event包中合适的类文档。 9.5.3 多监听者 AWT事件监听框架事实上允许同一个组件带有多个监听者。一般地,如果你想写一个程序,它基于一个事件而...
【课前思考】 1) 什么是对象?什么是类? 2) 面向对象编程的四个基本机制是什么? 3) 你知道 java 语言在面向对象编程方面有何独特的特点吗? 1.1.1 面向对象技术基础 1、面向对象(OO)的基本概念 (1)面向对象的...
当然,我们可以使用Arrays.toList方法,但是如果没有慎重思考随便使用几乎肯定会产生令人讨厌的意外。考虑完下面这段程序并预测其输出你明白我的意思了: package com.wordpress.mlangc.arrays; import java.util....
5-1案例分析 交流与讨论 结合案例分析,思考一下几个问题: 开发人员——静态属性为姓名、工号、薪水,动态行为为工作 项目经理——静态属性为姓名、工号、薪水,奖金;行为为工作 地区经理——静态属性为姓名、工号...
static属性,static方法,static块 final属性,final方法,final类 三.面向对象的思考方式 将世界看成一个个对象,对象之间可以分类(包),可以相互有继承。面向对象推荐面向接口进行编程,面向接口的核心思想是抽象(只...
动物有许多种类别,但是都有一些公有的特征。 系统启动后,动物保护者可以随机发现动物(动物的种类可能不一样),加入动物园,由动物管理员进行照顾。招领所定期的将动物随机的交给领养者领养,领养后动物园动物减少。...
解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,书中搭配大量的插图(几乎每一页都有图),...
只能算是跟着代码走了一遍,基本上没思考,这次打算把代码再看看,看能不能多悟出点东西。 有一点需要声明,《深入剖析tomcat》是以tomcat4为样本进行分析的,版本老了一点,但大体的设计思想并不会有太大的变化。 ...
解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,书中搭配大量的插图(几乎每一页都有图),...
解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,书中搭配大量的插图(几乎每一页都有图),...