您的位置:首页 > 编程语言 > Java开发

Java基础学习记录

2014-09-24 23:53 225 查看
找工作告一段落了,不管如何,向前看。本来学的是C++,但因为将来工作需要,开始学Java,记录点基础知识点,方便自己回顾。

1. 位运算符:

>>> : 使用 0 填充高位 (*)

>>   :使用符号位填充高位

<<< :Java 没有这个运算符

2. 检查字符串是否相等:

s.equals( t ):s、t 可以使字符串变量,也可以是常量( “Hello”.equals(greeting);   OK)

“ == ” :确定两个字符串是否放在同一个位置上;因为只有常量字符串是共享的,而 + 或 substring 等操作会生成新的字符串,

所以不可以使用 == 判断字符串是否相等

3. 空串 和 null 串

null 串:表明没有任何对象与该String变量关联;使用 if(str == null) 判断是否为空

空串: 是一个长度为 0 的字符串,空串是一个Java对象,有自己的长度(0)和内容(空),判断空串  if(str.length() == 0) if(str.equals(""))

注:检查一个字符串既不是null 也不是 空串: if(str != null  &&  str.length() != 0)首先检查str不为null,然后才可以调用方法,null调用方法会出错。

4. 数组

int[] array = new int[100];  

获得数组中元素的个数  array.length,注意 没有“()”小括号,不是方法

多维数组 : double[][] balances = new double
[M];

可以单独存取数组的某一行,所以可以让两行交换

double[] temp = balances[i];

balances[i] = balances[i + 1];

balances[i + 1] = temp;

5. 类之间关系   


依赖  use-a:一个类的方法操纵另一个类对象
聚合  has-a:类A 的对象包含类B 的对象             
继承  is-a: 表特殊与一般的关系

6.对象与对象变量

所有Java对象都存储在
new Date()  构造了一个Date类型对象,并且它的值是对新创建对象的引用
Date deadline; 定义了一个对象变量,它可以引用一个Date类型的对象

     ※
变量deadline不是一个对象,它只是可以引用一个对象(并没有包含一个对象)

     ※ 如果deadline 没有引用对象(未初始化),则不能将任何Date方法应用于这个变量

Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用
可以显示地将对象变量设置为null,将方法应用于值为null的对象会产生 runtime error
局部变量不会自动初始化为null,必须通过调用 new  或 将 他们设置为 null 进行初始化

7. 时间、日历类(Date、GregorianCalendar)

Date类表示一个时间点,精确到毫秒数;GregorianCalendar表示日历
Date获取年、月、日的方法不鼓励使用,可以使用before(after)方法比较一个时间点是否早于(晚于)另一个时间点
GregorianCalendar有多个构造器 

new GregorianCalendar()
new GregorianCalendar(1999, 11, 31)     // 月份从0开始,11 表示十二月
new GregorianCalendar(1999,Calendar.DECEMBER, 31)     // 月份使用常量,更清晰
new GregorianCalendar(1999, Calendar.DECEMBER, 31, 23, 59, 59)   // 设置具体时间

GregorianCalendar 的get 方法、set 方法

GregorianCalendar now = new GregorianCalendar();

int month = now.get(Calendar.MONTH);     // 获取月份

now.set(Calendar.MONTH,  Calendar.OCTOBER);  // 设置月份

// 其他类似

GregorianCalendar 的 add 方法

now.add(Calendar.MONTH,3);   // 将 now 表示的日期增加 3个月

  如果传递的数值是负数,日期就向前移

GregorianCalendar 的 getTime、setTime 方法实现 与 Date 类之间的转换

Date time = calendar.getTime();    // Calendar 类转 Date

calendar.setTime(time);// Date 类转Calendar

补充:http://blog.csdn.net/shibenjie/article/details/4263912

8. 构造器

Java中的构造器,C++中的构造函数。
所有Java对象都是在堆中构造的,所以Java构造器总是和 new 操作符一起使用;C++可以在堆、栈上构造对象

Employee number007("James Bond", 100000, 1950, 1, 1);     // C++, not  Java 

不要在构造器中定义与实例域重名的局部变量(在所有的方法中不要命名与实例域同名的变量)

9. 类与方法

C++中方法可以定义在类的外部,如果在类的内部定义方法,则自动成为 内联(inline)方法
Java中的方法必须定义在类的内部,但并不表示它们是内联方法。是否将某个方法设置为内联方法是 JAVA 虚拟机的任务。
不要编写返回 引用可变对象 的访问器方法,否则 对类外部对象变量 调用更改器 就可以更改原对象内部的私有成员变量,破坏类的封装。如果需要返回一个可变对象的引用,应该首先对它进行克隆,对象 clone 是指存放在另一个位置上的对象副本。

class Employee {

public Date getHireDay() {

return hireDay.clone();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 基础知识