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;
依赖 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();
}
}
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培训、Android培训_Java 学习过程记录_语言基础2
- java基础学习记录之for嵌套学习与练习三
- Java基础学习记录--Collections框架
- Java学习记录--java基础语法
- Java基础:hashCode与equals个人学习记录
- Java基础知识学习记录
- 黑马程序员Java培训、Android培训-Java 学习过程记录_语言基础3
- 7月18日Java基础:本人为新手正在学习Java中把每天学的东西晚上都会在博客记录希望大神可以指点 不足在此谢过。
- Java快排、冒泡、选择最基础的学习记录
- java基础学习记录之for嵌套学习与练习一
- java基础学习记录之利用数组查表法进行进制转换的学习与练习六
- java基础学习记录之数组选择排序的学习与练习二
- Java基础部分个人学习记录
- Java Media Framework 基础教程(学习JMF中,看到好的中文教程,在这里记录下来)
- java基础学习记录之for嵌套学习与练习二
- java基础学习记录之数组折半查找的学习与练习四
- java基础学习记录之利用数组进行进制转换的学习与练习五
- 记录java基础学习1
- 1109学习记录 java script 基础知识实例
- 我的java基础学习记录