`
giraffeql
  • 浏览: 16748 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java基础知识复习

阅读更多

一、
1.非基本数据类型数据中定义基本数据类型,该基本数据类型会进行默认初始化
2.基本数据类型参数是值的传递,非基本数据类型参数传递的是指针或引用
3.参数数组传递的是引用
4.main(String[] args),主函数调用时,可直接传递参数,例:
	d:\>java Test Red Green Blue 
5.函数:是为了实现某一特定功能而封装起来的一些语句,具有很强的复用性。
6.定义数据
	long型数据定义: long l=123L;
	float型数据定义: float f=1.23f;
二、
1.八进制:0开头
2.十六进制:0x开头
3.数据类型
	|-基本数据类型
		|-数据型
			|-整数类型(byte, short, int ,long)
			|-浮点类型(float, double)
		|-字符型(char)
		|-布尔型(boolean)
	|-引用数据类型
		|-类(class)
		|-接口(interface)
		|-数组([])
	注:
		1.整数默认 int 
			(char 加'', short 直接定义, long 加l)
		2.小数默认 double 
			(float 加f)
		3.short
			short s = 1;
			s += 1;		// 正确
			s = s + 1;	// 错误

三、面向对象
1.局部变量和成员变量
	(1)局部变量存在于栈内存
	(2)成员变量存在于堆内存
2.参数的传递
	(1)基本数据类型传递的是指
	(2)引用数据类型传递的引用
3.对象特征
	(1)封装
	(2)继承
	(3)多态
4.对象属性初始化步骤
	(1)默认初始化(基本数据类型有默认值,引用数据类型为null)
	(2)显示初始化(字段的直接赋值值)
	(3)构造函数初始化
5.构造代码块(直接使用{}封装的代码)
	作用:可用于所有对象初始化,且先于构造函数
6.main(){
	person p = new Person();
}
描述对象p创建的过程中内存中进行了哪些操作。
	(1)先将硬盘上的.class文件加载进内存
	(2)main方法进栈(压栈),在栈区创建一个变量p
	(3)堆内存开辟一个实体空间,分配了一个内存首地址
	(4)对该实体空间进行属性的空间分配,并进行默认初始化
	(5)对空间中的属性进行显示初始化
	(6)进行对实体的构造代码初始化
	(7)调用该实体对应的构造函数,进行构造函数初始化
	(8)将首地址赋值给p,p变量就引用了该实体,指向了该对象。

7.static
	(1)实现对对象中的共性数据的共享
	(2)可直接类名调用
	(3)静态数据会随着类的加载而加载,且优先于对象的存在
	(4)静态方法只能访问静态成员
	(5)静态方法中不能使用 this,super 关键字
	(6)主函数是静态的
	
8.方法区(数据共享区)
	存储对象的方法和静态变量
9.静态代码块
	随着类的加载而执行,且只执行一次,用于类初始化。
	
10.单例设计模式
	(1)饿汉式
	public class Single{
		// 2.创建唯一对象
		private static Single s = new Single();
		// 1.私有构造函数,防止创建对象
		private Single(){}
		// 3.提供公有的访问方式
		public static Single getInstance(){
			return s;
		}
	}
	(2)懒汉式(延迟加载方式)
	public class Single{
		private static Single s = null;
		private Single(){}
		public static Single getInstance(){
			if(s == null)
				s = new Single();
			return s;
		}
	}
11.this()和super()
两者必须定义在第一行,且二者不可同时出现。

12.抽象关键字 abstract 不与 final private static 关键字共存

13.接口
	1.接口中成员有固定修饰符
	成员变量默认 public static final 修饰
	成员函数默认 public abstract 修饰
	2.接口之间可多继承
	
14.关键字 instanceof
	判断对象是否属于某类型,例:
	if(a instanceof AA){
		// todo
	}
	
15.多态在子类中的成员上的体现
	1.成员变量
		编译、运行都直接访问父类中成员变量
	2.成员函数
		编译时看父类,运行时调用子类方法
	3.静态函数
		编译、运行都看父类
		
16.内存五片区域
	栈、堆、方法区、寄存器、本地方法区
	
17.对象直接的比较
	复写equals()
public boolean equals(Object obj){
	if(!(obj instanceof Person)) // 如果参数不是人对象,直接返回false
		return false;
	Person p = (Person)obj;
	return this.age == p.age; // 通过年龄比较
}
		
18.class对象--字节码文件

19.内部类
	1.A类访问B雷中成员,B类需要建立A类对象。
	可以通过建立将A定义为B的内部类。
	2.非静态内部类不可用定义静态方法。
	3.内部类都持有一个外部类的引用--外部类名.this
	4.内部类名--外部类名$内部类
20.局部内部类
	1.--方法中的内部类
	2.从内部类中访问局部变量,该局部变量必须定义为最终类型(final修饰)
	

  • 大小: 42.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics