java重要的笔记,java学习笔记

一.原理、概念

1.面相对象语言的三个核心本质:数据抽象化(data abstraction)、继承(inheritance)、多态(polymorphism也叫动态绑定dynamic binding)。覆写(overriding)和重载(overloading),覆写是子类的方法名、参数与父类的一样,覆写引发多态;重载是同一类中相同的函数名,不同的参数(包括个数、类型、位置)

2.static,final,abstract说明:

static用来修饰变量(类变量)。方法(类方法),他们是静态的、只需加载一次、类公用,类变量定义如用到方法只能是类方法,类方法内用到的变量只能是类变量,因为他们被初始化时成员变量和成员方法还没有初始化。

final用来修饰变量(不能改变)、方法(不能重载)、类(不能继承)。

abstract用来修饰方法(只能被重载)、类(只能被继承),抽象类不一定含有抽象发放;但含有抽象方法的一定为抽象类。

3.在一个文件夹内的两个.java文件如果没设package,则编译器会将两个文件隶属的文件夹视为default package,因此他们互为friendly。

4.类无构造函数可自动产生一无参构造函数(default constructor);当有任何构造函数时都不会有default constructor。构造函数调用其他构造函数只能在第一行,故无法调用两个构造函数(包括父类和子类其他的构造函数)。

5.类的装载时间:生成一个对象时(装载整个类);取类变量或类方法时(装载静态部分)。

6.生成对象,实现接口。生成对象包括:声明、实例化、初始化。

二.语法

1.java's lable:仔细看一下文档你就会发现,JAVA里的标号只能定义循环语句。

label1: for (.....) 是合法的。

break label1;

continue label2;

label2: if (...) 是非法的。

2.转义字符  转义字符的意义

\n      换行

\t      横向跳到下一制表位置

\v      竖向跳格

\b      退格

\r      回车

\f      走纸换页

\\      反斜线符"\"

\'      单引号符

\a      鸣铃

\u****     1~4位十六进制数所代表的unicode字符(java)

\***     1~3位八进制数所代表的ASCII字符(c)

\x**     1~2位十六进制数所代表的ASCII字符(c)

3.三种常用进制表示:0123——八进制 123——十进制 0x123——十六进制。

4.length & length():length使数组的一个变量;length()是String类的一个方法。

5.throw & throws:throw在方法体内引发异常;throws在方法参数表后向上级抛出异常。

6.无限循环:for(;;) 和 while(true){} ,得用break离开。

三.类库

1.java随机数:首先利用random()获得一个随机浮点数,然后乘以你希望得到的整数的最大值,最后对得到的结果取整。例如你希望得到的整数的最大值是1000,那么你就可以这么写: int rand = (int) (1000 * Math.random());//Math.random()的输出范围是[0,1)。

2.数组的相关操作

a)array的充填

Java标准程序库中的Arrays中有fill(),将单一数值复制到每个位置

b)array的复制

Java标准程序库中提供System.arraycopy()的static函数

c)array的比较

Arrays提供重载版的equals(),藉以比较两个arrays是否相等,能够处理object和所有基本型别,两个arrays必须拥有相同个数的元素,而有所有对应元素必须两两相等。

d)array元素的比较

有两种方法:a)【java编程思想e2 P310】实现java.lang.Comparable接口,Comparable只有一个compareTo()方法,覆写它:x大返回-1

,相等返回0,x小返回1。b)【java编程思想e2 P311】实现java.util.Comparator接口,此接口有compare()和equals()方法,如无必要无需覆

写equals()方法。

e)array的排序

利用内置的sort函数,可以针对任何primitives array或objects array进行排序。

f)在已排序的array中进行查找

array排序完毕后,可以使用Arrays.binarySearch()快速查找某个元素,在未经排序的array上不能使用binarySearch(),否则结果完全无

法预测,如果array内含多个相同元素,查找动作不保证会搜出其中哪一个元素。

3.容器(containers)

java.lang.Object -> java.util.AbstractCollection & AbstractMap

AbstractCollection -> AbstractList & AbstractQueue & AbstractSet

sop(AbstractCollection);//打印[dog, cat, bird]

sop(AbstractMap);//打印{first=dog, second=cat, third=bird}

四.经验

1.Java是面向对象的语言,操作几乎都是在对象之间进行的,一个类的实例如果是(null)的话则不能调用这个实例的方法,否则就会出java.lang.NullPointException错误。确定它肯定是不为null的。对于String的这种equals或equalsIgnoreCase的操作常常还可以用下面的方法进行安全操作:用一个确定的不为null的String去与未知的String进行比较。

String str = null;

if (“Hello”.equals(str))

{ System.out.println(“str is Hello”); }

3.java中+用于字符串连接和算术运算,char类型在做运算时会先转换成int类型,所以System.out.println('H'+'a');输出169。

如果你真想把char连接起来,要怎么办呢?

1。用Stringbuffer。

StringBuffer buf = new StringBuffer();

buf.append(`H`);

buf.append(`a`);

System.out.println(buf);

2。按照对付int的方法来处理,利用String重载+运算符的特性。

System.out.println("" + `H` + `a`);

3。在JDK5.0里,还可以用格式化输出。

System.out.println("%c%c", `H`,`a`);

System.out.println(""+'a'+'b'+'c');//前面加一个空串就都按字符串处理。

posted on 2006-06-01 14:42 保尔任 阅读(165) 评论(0)  编辑  收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值