【Java学习笔记】13:查漏补缺1

时常查漏补缺,可以避免用同一种学习方法、读屈指可数的几本书造成知识的不全面甚至遗漏。本次查漏补缺用的书是黑皮《Java语言导学》。


Java中基本数据类型:

①byte表示8位带符号二进制补码整数

②short表示16位带符号二进制补码整数

③int表示32位带符号二进制补码整数

④long表示64位带符号二进制补码整数(其值后应带一个L)

⑤float表示单精度32位IEEE754浮点数(其值后应带一个F)

⑥double表示双精度64位IEEE754浮点数(其值后应带一个D)

⑦boolean只有两个逻辑值true和false

⑧char表示16位Unicode字符,最小值\u0000(或0),最大值\uffff(或65535)

除了以上8种外,Java还对Java.lang.String类作了特殊支持,就技术而言它并不是一种基本数据类型。String对象一旦创建,其值就不能改变了。

 

创建一个数组:

float[] anArray;也可以写成float anArray[];的形式,但尽量用前者,方括号表示数组的类型,应该和类型标记符写在一起。

 

数组的几个相关属性和方法:

获取数组大小:anArray.length

复制数组:System.arraycopy(copyFrom,2,copyTo,0,7);五个参数分别为源数组、源数组起始位置、目标数组、目标数组起始位置、待复制的元素个数。


*增强的for循环(for-each循环)

package day13;
public class foreach {
	public static void main(String[] args)
	{
		int[][] arr2 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} ; 
        for(int[] row : arr2)
        {
            for(int element : row)
            {
                System.out.println(element);
            }
        }
	}
}

运行结果:

1

2

3

4

5

6

7

8

9

可以说for-each循环简化了集合的遍历,但是也带来了一个缺点,就是丢掉了索引信息。


再谈嵌套类:

嵌套类即是在类内部再定义另一个类,嵌套类有两种类型,静态和非静态。用static修饰符声明的嵌套类成为静态嵌套类,非静态嵌套类称为内部类。

package day13;
class OuterClass {
	static class StaticNestedClass//静态嵌套类
	{
		//...
	}
	class InnerClass//非静态嵌套类(内部类)
	{
		//...
	}
}

使用嵌套类的原因如下:

①类的逻辑分类:如果一个类只对其他一个类有用,就可以将前者逻辑嵌套入到后者,保持包的线性结构。

②提高封装度:假设两个顶层类A和B,而B要访问A的私有成员。将B嵌入到A中,A的成员可用private声明,而B能访问这些成员,并且B对外界是隐藏的。

③提高代码的可读性和可维护性:将小型的类嵌套在顶层类中的做法可以就近放置待用的代码。

静态嵌套类要用外部类名访问,如要创建静态嵌套类对象:

OuterClass.StaticNestedClass nestedObject=new OuterClass.StaticNestedClass();

要实例化内部类,必须先实例化外部类:

OuterClass outerObject=new OuterClass();

然后在外部对象中用下述语法创建内部对象:

OuterClass.InnerClass innerObject=outerObject.new InnerClass();

接口继承接口有什么用:

对于你提供的一个接口,如果你想在接口中添加一个方法,那么之前使用这个接口的程序员就都不能用这个旧接口了(所以不建议直接修改原来的接口)。因此可以创建一个新的接口,继承原来的接口,只要显示地写上新的方法即可。程序员可以选择使用旧的接口或是更新使用新的接口。

 

汇总从Object类继承而来的方法:

①protected Object clone() throws CloneNotSupportedException——创建和返回该对象的副本

②public Boolean equals(Object obj)——测试其他对象是否等于该对象

③protected void finalize() throws Throwable——当垃圾收集器确定该对象没有被引用时,它会调用该方法。Object类实现的finalize()方法不做任何操作,可以覆盖该方法做一些清理工作如释放资源。

④public final Class getClass()——返回对象的运行时类

⑤public int hashCode()——返回对象的hash码

⑥public String toString()——返回对象的字符串表示

另外还有notify(),notifyAll(),wait()等方法主要用于同步各个运行线程的活动,暂不研究。

 

参考书籍:黑皮《Java语言导学》,亦是笔记来源。









评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值