分享
 
 
 

java的一些基本概念

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

最近想看看书,了解一下java的基本概念,其实以前也看过,但是囫囵吞枣,实在有愧.然而温故以知新,学习本应就是理解深化的过程.

主要看的书是《Java 2 参考大全》和《Java 2 核心技术:原理》

Java基本概念

一.字符类型

主要重温了一下各种字符类型占据的字节数。

short 短整型 16位 2字节

int 整型 32位 4字节

long 长整型 64位 8字节

浮点分单精度float和双精度double

float 单精度 32位 4字节

double双精度 64位 8字节

char 这一点比较特殊,java使用的不是ascii字符,也不是扩展的8位字符集,而是unicode字符集,unicode字符占据16位,2字节,可以表示人类所有发现的字符,也因为如此java可以比较方便的进行国际化,不知这个理解有无问题。

实际上char的值是个整数(0-65536),因此我们给char赋值可以用整数或者用单引号括起来的字符

顺便就看了一下UTF(unicode text format)格式,它是这样出来16位的unicode字符

前九位为0的unicode字符:一个字节

前五位为0的unicode字符:两个字节

其它:三个字节

对应的前缀编码:

0xxxxxxx Ascii码

10xxxxxx 第二或者第三个字节

110xxxxx 两字节序列中的第一个字节

1110xxxx 三字节序列中的第一个字节

二.类

类与对象:类是一个逻辑结构,对象拥有物理实体.也就是说类不占据内存空间,对象占据一定的内存空间.可以从类对象的获取说明这个问题。

Box aBox=new Box();

实际上这个过程分两步

Box aBox;

aBox=new Box();

第一步是创建一个对象,返回的aBox是一个对象的引用。

第二步才是调用构造函数,为对象分配内存空间,返回的是这个内存地址的引用,这个引用被赋给了aBox。

构造函数是如何工作的呢?

构造函数没有返回值,是因为其隐含的返回类型是类本身。

默认的构造函数自动将所有的实例变量初始化为0。

实例变量即是一个类中定义的数据或变量,类的成员是指类中定义的方法和变量。

引用是个很有意思的东西。

Box a=new Box();

Box b=new Box();

这个时候a和b对应各自的内存地址,如果

a=b;

这个时候a,b均指向同一个内存地址即b的内存地址。也就是说现在你更改a中的成员变量的值b的变量的值也随之改变;如果改变b中成员变量的值,a的对应变量也随之改变。引用只是一个内存的地址。

类中有个词语叫做抽象类,抽象类有很多含义和细节需要注意:

1。包含抽象方法的类必须声明为抽象类

2。抽象类的方法在子类中必须被覆盖,否则子类也必须声明为抽象类

3。抽象类不能有对象,不能new一个抽象类将其实例化

4。抽象类可以有抽象方法也可以有具体实现了的方法

5。抽象类可以创建对象引用

第五条非常有用,可以实现多态。李乾师兄曾讲解的设计模式中的工厂方法也就是抽象类的超类变量引用不同的子类对象。

由于接口都没有实现自身的方法,如果一个类没有实现接口中的方法,也必须定义为抽象类。

三.接口

接口只定义方法名,但是不实现方法。

接口可以声明变量,但是这些变量将是隐含的、最终的、静态的,不能由实现接口的类来改变。因此可以将共享常量在接口中定义,然后导入到多个类中。

可以使用接口引用来调用实现,这是什么意思呢?

inerface callback()

{

public void call(int p)

{

}

}

class client implements callback

{

public void call(int p)

{

}

}

public static void (String arg[])

{

<b>callback c=new client();</b>

c.call(1);

}

注意上面黑体字部分callback c=new client(), 创建了一个client对象,却声明为接口类型,这其中的意思就是c只是知道接口callback中方法,至于实现这个接口的client类还有什么其它的方法,c一概不知。这有些类似超类引用子类对象,很有用处的地方就是实现多态,很多实现这个接口的类可以用同一个接口的引用来调用。

四. 访问控制

五. 一些保留字的含义和运用

static:一般修饰类的成员,使该类成员独立于类的任何对象,使用类名即可调用。

使用static要注意:

1.static 方法仅可调用其它的static方法

2.只能访问static数据

3.不能以任何方式调用this或者super。(还不明白为什么)

this:在任何方法中都可以使用this来调用当前的对象,this总是当前对象的一个引用。

this可以用于实例变量隐藏

所谓实例变量隐藏,就是说当一个本地变量和一个实例变量同名时,实例变量就被隐藏了。比如Box的构造函数

Box( double aWidth,double aHeight , double aDepth )

{

width=aWidth;

height=aHeight ;

depth=aDepth;

}

如果这时候参数是 width,height,depth,则这些本地的变量就会和类的成员变量同名,这时候就会发生实例变量被隐藏的现象。但是this可以避免这种情况。

Box( double width,double height , double depth )

{

this.width=width;

this.height=height ;

this.depth=depth;

}

this直接引用对象,可以解决名字空间的问题,即本地变量和类的实例变量同名的问题。(这个需要再想想)

super:主要有两种用法

1。super(parameter_list)调用超类的构造函数,但是这必须是子类构造函数的第一条语句。这里有趣的事情是子类构造函数调用超类构造函数时,过程是怎么样的;实际上是按照类的派生顺序调用构造函数。

2。super.member 这时候作为超类对象的引用调用超类的方法或者实例变量

final:可修饰变量,方法和类。

final 变量:变量的内容不能被修改

final 方法:方法不能被重载

final 类 :类不能被继承

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有