java基础
来源:互联网 发布:淘宝网童装购物街 编辑:程序博客网 时间:2024/06/05 06:02
基本数据类型
- 整数类型:byte(1字节),short(2字节),int(4字节),long(8字节)
- 浮点类型:float,double
- 字符类型:char(2字节)
- 布尔类型:boolean
注:在java中小数默认是double类型的
string不是基本数据类型,它是一个类
不同精度数据运算时低精度数据会自动向高精度转换
分支控制
switch(条件表达式){
case 常量1:语句;break;
case 常量2:语句;break;
...
default:语句;break;
}
注:条件表达式数据类型应和case后的常量类型一致
switch中可用的数据类型主要是:byte,short,int,char,enum
面向对象
概念:
- 定义一个类:类名的首字母一般大写
- 引用类型:指向一个对象,不是原始值,指向对象的变量是引用变量
- 构造方法:
方法名和类名相同;
没有返回值;
一般用于初始化对象
一个类可以有多个不同的构造放法
每个类都有自己的默认构造方法,当用户定义自己的构造方法后,默认构造方法会被覆盖而失效
- 特征:抽象,封装,继承,多态
- this:java虚拟机会给每个对象分配this,代表当前对象。只能在类定义的方法中使用,不能在外部使用
- 类变量:一个类所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的方法去修改它时,修改的也是同一个变量
定义语法:访问修饰符 static 数据类型 变量名
访问类变量:类名 . 类变量名 或 对象名 . 类变量名
package demo1;
public class test_static
{
/**
* @param args
*/
static int i = 1;
static {
//该静态区域块存在于代码区,在类定义的时候就会执行,并且只执行一次
i++;
}
public test_static() {
i++;
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
test_static teStatic1 = new test_static();
System.out.println(teStatic1.i); //输出为 3
test_static teStatic2 = new test_static();
System.out.println(teStatic2.i); //输出为 4
}
}
- 类方法:属于一个类的
形式:访问修饰符 static 数据返回值类型 方法名(){}
使用:类名 . 类方法名 或 对象名 . 方法名
注:类方法中不能访问非静态变量(类变量)
- 访问控制修饰符
- 方法重载:类的同一种功能的多种实现方式,到底采用哪种方式取决于调研者给出的参数
注:方法名要相同
方法的参数类型,个数,顺序至少有一项不同
方法返回值类型可以不同(如果只是返回值类型不同,不能构成重载)
方法的修饰符可以不同 (如果只是访问修饰符不同,不能构成重载)
- 方法覆盖:子类有一个方法和父类的某个方法的名称,返回类型,参数一样,那么就说子类的这个方法覆盖了父类的那个方法
注:子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全相同
子类方法不能缩小父类方法的访问权限
- 多态:通过指向父类的引用调用的它不同子类的方法
注:父类的引用变量可以指向它的子类的实例对象 如:Animal animal = new Cat();这种转换是自动完成的
- 接口:接口不能被实例化
接口中所有的方法都不能有主体
一个类可以实现多个接口
接口中可以有变量,但变量不能用private 和 protected 修饰
接口中的变量,本质上是static 的,不管你加不加static修饰符,而且是final类型的,必须初始化
在java开发中,经常把常用的变量定义在接口中,作为全局变量使用 访问形式:接口名 .变量名
一个接口不能继承其他的类,但可以继承别的接口
- final:可以修饰变量或者方法
当不希望父类的某个方法被子类覆盖时,可以用 final 关键字修饰
当不希望类的某个变量被修改,可以用 final 修饰,如果一个变量是 final 类型的,定义的时候必须赋初值
当不希望类被继承时,可以用 final 修饰
集合
- List结构:ArrayList类,LinkedList类,Vector类,Stack类
Map结构:HashMap类,Hashtable类
Set结构:HashSet类,TreeSet类
Queue结构:Queue接口
- HashMap
遍历:
//Iterator 迭代器
Iterator it = map.keySet().iterator();
while(it.hasNext())
{
String key = it.next().toString();
Emp emp = (Emp)map.get(key);
}
- HashMap 和 Hashtable 的区别
Hashtable 是基于Dictionary 类的, HashMap 是基于Map 接口的
Hashtable 是同步的,这个类的一些方法保证了Hashtable 中的对象时线程安全的。 而 HashMap 是异步的,因此HashMap 中的对象并不是线程安全的。
HashMap 可以将空值作为一个表的条目的 key 或 value , 但是Hashtable 是不能放入空值(null)的。
- ArrayList 和 Vector 的区别
Vector 是同步的,ArrayList 是异步的
数据增长时,Vector 自动增长原来一倍的数组长度,ArrayList 是原来的一半,所以保持大量数据时,Vector更有优
- Java基础01:基础
- Java基础:基础加强
- Java基础-基础
- java基础的基础
- JAVA基础---基础常识
- Java基础:基础加强
- [Java 基础]基础语法
- Java基础
- java基础
- java 基础
- java基础
- Java基础
- Java基础
- Java基础
- JAVA基础
- JAVA基础
- JAVA基础
- java基础
- nutch 1.7 导入 eclipse 其他版本亦可参考。
- Algorithm学习笔记 --- 编写程序怎么让cpu的使用率为50%(编程之美)
- adb 相关命令
- Mule ESB 学习笔记(1)
- Flash Platform的性能优化——节省内存
- java基础
- C++的异常[转载]
- 软件测试用例编写规范总结
- os.pipe learning tips
- springMVC工作原理
- C++系列--异常处理
- DevExpress GridView FindPanel 设置 修改 FindText
- 线程安全1:定义及例子
- android打开各种文件的intent