关于 Java 基础整理(一)
2014-07-24 15:20
417 查看
1.引用数据类型传递
class Person
{
String name ;
int age ;
}
public class TestRefDemo1
{
public static void main(String[] args)
{
// 声明一对象p1,此对象的值为null,表示未实例化
Person p1 = null ;
// 声明一对象p2,此对象的值为null,表示未实例
Person p2 = null ;
// 实例化p1对象
p1 = new Person() ;
// 为p1对象中的属性赋值
p1.name = "张三" ;
p1.age = 25 ;
// 将p1的引用赋给p2
p2 = p1 ;
// 输出p2对象中的属性
System.out.println("姓名:"+p2.name);
System.out.println("年龄:"+p2.age);
p1 = null ;
}
}2.覆写object类的equal方法,用于比较
class Person
{
private String name ;
private int age ;
public Person(String name,int age)
{
this.name = name ;
this.age = age ;
}
// 覆写父类(Object类)中的equals方法
public boolean equals(Object o)
{
boolean temp = true ;
// 声明一p1对象,此对象实际上就是当前调用equals方法的对象
Person p1 = this ;
// 判断Object类对象是否是Person的实例
if(o instanceof Person)
{
// 如果是Person类实例,则进行向下转型
Person p2 = (Person)o ;
// 调用String类中的equals方法
if(!(p1.name.equals(p2.name)&&p1.age==p2.age))
{
temp = false ;
}
}
else
{
// 如果不是Person类实例,则直接返回false
temp = false ;
}
return temp ;
}
}
class TestOverEquals2
{
public static void main(String[] args)
{
Person t_p1 = new Person("张三",25);
Person t_p2 = new Person("张三",25);
// 判断p1和p2的内容是否相等
System.out.println(t_p1.equals(t_p2)?"是同一个人!":"不是同一个人");
}
}
3.final关键字的使用
⑴ final标记的类不能被继承
⑵ final标记的方法不能被子类覆写
⑶ final标记的变量(成员变量或局部变量)即为常量,只能赋值一次
4.代码块即是java中用“()”括起来的代码块就是代码块,划分为普通代码块、静态代码块、构造块、同步代码块
1.普通代码块:直接在一个方法中出现的大括号()就成为普通代码块
![](https://img-blog.csdn.net/20140724153923312?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.构造块:直接在类中定义的代码块,构造块重复执行多次,比构造方法先执行
![](https://img-blog.csdn.net/20140724154753594?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.静态块优先于主方法执行,且静态块优先于构造块执行,而且只执行1次
![](https://img-blog.csdn.net/20140724154428875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140724155033120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4.同步块:
5.接口实例相关的设计模式
(1)适配器模式:解决接口不兼容的问题
![](https://img-blog.csdn.net/20140724155656272?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2)工厂模式
![](https://img-blog.csdn.net/20140724155822400?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)代理模式:
![](https://img-blog.csdn.net/20140724155708625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
class Person
{
String name ;
int age ;
}
public class TestRefDemo1
{
public static void main(String[] args)
{
// 声明一对象p1,此对象的值为null,表示未实例化
Person p1 = null ;
// 声明一对象p2,此对象的值为null,表示未实例
Person p2 = null ;
// 实例化p1对象
p1 = new Person() ;
// 为p1对象中的属性赋值
p1.name = "张三" ;
p1.age = 25 ;
// 将p1的引用赋给p2
p2 = p1 ;
// 输出p2对象中的属性
System.out.println("姓名:"+p2.name);
System.out.println("年龄:"+p2.age);
p1 = null ;
}
}2.覆写object类的equal方法,用于比较
class Person
{
private String name ;
private int age ;
public Person(String name,int age)
{
this.name = name ;
this.age = age ;
}
// 覆写父类(Object类)中的equals方法
public boolean equals(Object o)
{
boolean temp = true ;
// 声明一p1对象,此对象实际上就是当前调用equals方法的对象
Person p1 = this ;
// 判断Object类对象是否是Person的实例
if(o instanceof Person)
{
// 如果是Person类实例,则进行向下转型
Person p2 = (Person)o ;
// 调用String类中的equals方法
if(!(p1.name.equals(p2.name)&&p1.age==p2.age))
{
temp = false ;
}
}
else
{
// 如果不是Person类实例,则直接返回false
temp = false ;
}
return temp ;
}
}
class TestOverEquals2
{
public static void main(String[] args)
{
Person t_p1 = new Person("张三",25);
Person t_p2 = new Person("张三",25);
// 判断p1和p2的内容是否相等
System.out.println(t_p1.equals(t_p2)?"是同一个人!":"不是同一个人");
}
}
3.final关键字的使用
⑴ final标记的类不能被继承
⑵ final标记的方法不能被子类覆写
⑶ final标记的变量(成员变量或局部变量)即为常量,只能赋值一次
4.代码块即是java中用“()”括起来的代码块就是代码块,划分为普通代码块、静态代码块、构造块、同步代码块
1.普通代码块:直接在一个方法中出现的大括号()就成为普通代码块
2.构造块:直接在类中定义的代码块,构造块重复执行多次,比构造方法先执行
3.静态块优先于主方法执行,且静态块优先于构造块执行,而且只执行1次
4.同步块:
5.接口实例相关的设计模式
(1)适配器模式:解决接口不兼容的问题
(2)工厂模式
(3)代理模式:
相关文章推荐
- 关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)
- 关于java基础的一些整理!
- 关于Java的一些基础细节(整理)
- [转]Java基础:一个关于java数组的深度思考
- 整理的关于Java参数传递的研究
- 关于System. arraycopy()【java基础】
- 回帖整理: 关于"学习Java社区"更清晰的思路
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- 第一节课笔记 关于java基础
- 『JAVA基础』朋友的需求,关于一个算法
- 你应该知道的10件关于Java 6的事情-Java基础-Java-编程开发
- 基础入门:关于JavaIO流学习总结
- 关于Java重要的基础知识
- Java基础知识资料整理
- java基础学习整理(一)
- Java基础-关于session的详细解释
- Java基础-关于session的详细解释
- JAVA基础-关于Java中中文问题详解
- 关于java的一些基础知识和经验
- Java基础-关于session的详细解释