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

Java学习之路_0002语言基础

2014-04-27 22:30 344 查看
这个周末比较忙,复习的进度很缓慢。今天的复习内容如下:

1.循环体前面可以带标志吗?如何标志?
2.函数重载需要返回值类型可以不同吗?
3.int[][] arr=new int[3][];此时arr[0]的值是?如果继续执行arr[0]=new int[3]后呢?
4.面向对象特征?
5.关键字this表示当前对象的变量,那么super呢?
6.JVM申请的内存从逻辑上分为哪几个区域,默认大小是多大?
7.JVM调用主函数时传入了什么参数?
8.如果一个类中所有方法都是静态的,也没有私有数据,如何防止该类被实例化?
9.如何用javadoc工具生成说明书?
10.默认构造函数的权限和所属类的权限一致吗?
11.内存中类的实例化过程是怎样的?
12.如果子类跟父类存在返回自身对象的引用,子类跟父类返回类型有何不同?
13.子类如何覆盖父类的静态方法?子类能调用父类的静态方法吗?
14.不覆盖父类方法,子类可以用父类的方法访问自身的成员吗?
15.final修饰类、方法、变量的作用?
16.abstract方法只能放在抽象类中吗?抽象类中可以有非抽象方法吗?
17.抽象类跟接口有什么区别?
18.class Test extends Demo implements Inter,InterA 是什么意思?
19.类的修饰符有多少种?它们的含义是什么?
20.方法的修饰符有多少种?它们的含义是什么?
21.多态的前提是什么?多态中成员变量的特点?
练习:
2.请用程序实现普通排序和冒泡排序
3.JAVA的23种设计模式之一:定义单例的方式——饿汉式和懒汉式,请写出这两个类
/******************************************************************************************************************************/

1.可以。比如 w:while() break w;
2.可以。参数列表不同即可。
3.null,引用
4.封装、继承、多态
5.super不是表示对象,他是语法糖,指向子类对象中的父类成分
6.方法区(共享区、数据区)64M,堆64M,栈1M
7.String args[0]
8.将默认构造函数定义为私有成员
9.javadoc -d 文档存放目录 -author -version 源文件名.java
10.是
11.加载类>静态代码块>在堆内存中分配空间并对对象属性初始化>构造代码块>构造函数
12.子类返回子类对象引用,父类返回父类对象引用
13.父类的静态方法只能被子类的静态方法覆盖,子类能调用父类静态方法。
14.不可以。
15.修饰类,类不可被继承;修饰方法,方法不可被覆盖;修饰变量,则为常量
16.是;可以,除了不能被实例化,它跟其他类一样。
17.如果父类为抽象类,子类必须覆盖父类的所有抽象方法,抽象类中可以有非抽象方法跟变量;
接口中所有方法都为抽象,成员变量必须以publicstatic final修饰,不显式修饰,也会自动补
上。类不可以被多继承,但是接口可以被多实现。
18.Test类继承于Demo并实现了Inter和InterA接口
19.4种。public:在所有类中可见,在其他包中可以用import导入;final:终态类,表示该类
不能被继承;abstract:抽象类;缺省:在同一个包中可见,在其他包中不可以用import导入
20.9种。(1)可见性:public:在任何类中可见;protected:在子类或同一个包中可见;
private:只在本类中可见;缺省:在同一个包中可见,子类若不在同一个包中,子类也不可见;
(2)其他:static、final、abstract、native、synchronized
21.继承或实现、方法覆盖(覆盖的前提是父类的方法对子类可见)。多态中成员变量的特点:
无论编译和运行,都参考左边,即引用类型
/**********************************************************************************************************************************/

练习:

第2题:

package com.itheima.day02;

/**
*练习题2:请用程序实现普通排序和冒泡排序<br>
*<code>ArrayManager</code>类用于对数组进行操作,该类功能如下:<br>
*1.对数组进行普通排序<br>
*2.对数组进行冒泡排序<br>
*@author R
*/
public class ArrayManager
{
/**
*实现对整型数组从小到大的普通排序.
*@param array 整型数组
*/
public static void sort(int[] array)
{
int exchange;
for(int n=1;n<array.length;n++)
for(int m=n;m<array.length;m++)
if(array[n-1]>array[m])
{
exchange=array[n-1];
array[n-1]=array[m];
array[m]=exchange;
}
}
/**
*实现对整型数组从小到大的冒泡排序.
*@param array 整型数组
*/
public static void bubbleSort(int[] array)
{
for(int n=1;n<array.length;n++)
for(int m=1;m<array.length;m++)
if(array[m-1]>array[m])
{
array[m-1]=array[m-1]^array[m];
array[m]=array[m-1]^array[m];
array[m-1]=array[m-1]^array[m];
}
}
}
package com.itheima;

import com.itheima.day02.ArrayManager;
import java.util.Arrays;

/**
*<code>Master</code>类为主程序所在类
*@author R
*@version Version 201402
*/
public class ArraySortDemo
{
public static void main(String[] args)
{
int[] array={10,8,27,3,36,5,88,2,27,90,9};
int[] array2=Arrays.copyOf(array,array.length);
sop("原数组:"+Arrays.toString(array));
ArrayManager.sort(array);
sop("普通排序后:"+Arrays.toString(array));
ArrayManager.bubbleSort(array2);
sop("冒泡排序后:"+Arrays.toString(array2));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}


第3题:

package com.itheima.day02;

/**
*练习3:JAVA的23种设计模式之一:定义单例的方式——饿汉式和懒汉式,请写出这两个类<br>
*<code>LazySingleton</code>类用于演示单例模式中的懒汉式
*@author R
*/
public class LazySingleton
{
private static LazySingleton laz;
private LazySingleton(){};
public static LazySingleton getSingleton()
{
if(laz==null)
synchronized(LazySingleton.class)
{
if(laz==null)
laz=new LazySingleton();
}
return laz;
}
public String toString()
{
return "This is a LazySingleton.";
}
}


package com.itheima;

import com.itheima.day02.*;
/**
*该类用于演示单例设计模式中的饿汉式和懒汉式。
*/
public class SingletonDemo
{
public static void main(String[] args)
{
HungrySingleton hun=HungrySingleton.getSingleton();
sop(hun);
LazySingleton laz=LazySingleton.getSingleton();
sop(laz);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: