当前位置:首页 > 千峰Android入学考试
1.Java虚拟机的作用是什么?
答:用来解释和执行java源文件经过编译后的.class文件 2.请简要的描述安装JDK的过程;
答:先下载最新版本jdk,双击运行,选择相关的组件和安装路径,之后不断地点击下一步。
之后,需要配置jdk,对系统环境变量的path和classpath进行配置。
3.请简要的描述char类型变量的特征
答:java是用unicode编码的,所以,在Java中,char可以存放一个英文字符或者一个汉字字符,或者其他语言的一个字符 4.构造函数与成员函数的区别是什么?
答:构造函数没有返回值,只有在初始化的时候调用,名字必须与类名一致 5.static关键字有几种用法?分别是什么?
答:3种。修饰静态类,修饰静态方法,修饰静态属性 6.this和super的使用方法分别是什么?
答:this表示调用当前的对象
Supper表示调用父类的对象
7.Override和Overload的区别是什么?
答:Override是重写:方法名、参数和返回值要都相同;用于子类中;定义为final的方法不可以被重写
Overload是重载:参数类型、个数、顺序至少一个不同
8.接口和抽象类的区别是什么?
答:a)接口的关键字是interface,抽象类是用的abstract
b)一个类实现接口,必须实现他的所有方法,继承抽象类可以不全部实现他的方法 c)一个类可以实现多个接口,继承一个抽象类
9.= =操作符和equals函数的区别是什么?
答:“= =”是比较两个对象是否是同一个对象,即地址是否相同
Equal是比较两个对象的内容是否相等,即对象里的值是否相同
10.请描述你对向上转型和向下转型的理解
答:a)上转型:将子类的对象赋值给父类对象,例如parent p=new son();(注:parent是son的父类)
b)下转型:下转型的前提是对经过上转型的对象进行的,如果不满足这个条件则会发生错误。就是把经过上转型的父类对象赋值给子类对象 11. 异常应该如何分类?每一类异常的特点是什么?
答:a)分为error和exception,error是程序员无法改变的。程序员处理的是Exception异常。
b)exception异常分为RuntimeException和非RuntimeException RuntimeException是程序员的编写代码错误
非RuntimeException一般不是代码错误,是应用环境问题
12.请简述你对线程声明周期的理解
答:启动线程后,线程进入就绪状态,等待CPU的分配;得到CPU进入执行状态;CPU被执行过程中,得不到请求的资源,进入就绪状态;CPU从执行状态接到wait()命令,就会进入阻塞状态;执行完毕后,线程结束。
13.wait()方法和sleep()方法的区别是什么?
答:a)sleep属于Thread类,wait()属于Object类
b)sleep()让程序暂停执行若干时间,但是不会释放对象锁
Wait()等待notify()调用才会继续执行,会放弃对象锁 14.同步代码块和同步方法的作用各自是什么?
答:同步代码块是锁定的对象的一段代码,同步方法是锁定的对象的方法。
都是在当前线程运行完代码之前,不允许其他线程调用本对象的同步代码
15. 列出你常用的五种集合类,并写出其用法;
答:Linklist:List
Hashmap:Map
16.什么是工厂模式?应该在什么场景下使用?
答:a)在接口和子类之间加一个过渡端,通过过渡端或的接口的实例化对象,这个过渡端就是工厂类,增加了程序的灵活性。
b)工厂类负责创建的对象少,客户只知道传入参数,对创建对象不关心
17.什么是单例模式?应该在什么场景下使用?
答:a)一个类有且仅有一个实例,并且自行实例化向整个系统系统
b)控制资源时使用,控制实例生产数量时,数据共享时
18. Java当中的IO流应该如何分类?
答:a)Input/Output
b)基础流/过滤流 C)字节流/字符流
19.说出五种你常用的IO流当中的类,并说明其作用;
答:a)FileInputStream:文件字节输入流
B)DataInputStream:就是数据字节输入流。 C)FileOutputtream:文件字节输出流
D)DataOutputStream:就是数据字节输出流。 E)StringBufferInputStream:字符串输入流
20.CP和UDP的区别是什么?
答:a)tcp是面向连接的,udp不是
B)tcp传输可靠性高,udp传输不可靠
C)tcp用来传输大量数据,udp用来传输少量数据 D)tcp传输速度慢,udp传输速度快
编程题:
1、 先随机生成20个15~50的整数。(15分) [1]求这20个整数的总和和平均数 [2]找到这20个整数的最大值和最小值
[3]将这20 个整数按照从小到大排序后输出 代码:
import java.util.Random;
public class main {
public static void main(String args[]) { }
private static void sortPrint(int[] a) {
int i,j,temp,k;
for(i=0;i k=i; for(j=i+1;j if(k!=i){ } temp=a[i]; a[i]=a[k]; a[k]=temp; if(a[k]>a[j])k=j; //定义数组 int a[] =new int [20]; //获取随机数数组 radom(50,15,a); //求20个数的平均数和总和 int sum=sum(a); System.out.println(\总和是:\+sum); double ave=average(a); System.out.println(\平均数是:\+ave); //找到这20个整数的最大值和最小值 int max=max(a); System.out.println(\最大值是:\+max); int min=min(a); System.out.println(\最小值是:\+min); //将这20 个整数按照从小到大排序后输出 sortPrint(a); } } System.out.println(\排序后的结果为:\); for(i=0;i System.out.println(); System.out.print(a[i]+\); private static int min(int[] a) { } private static int max(int[] a) { } private static double average(int[] a) { } private static int sum(int[] a) { } /* * 用来生成随机数数组的方法 * */ private static void radom(int max,int min,int a[]){ } Random random = new Random(); for(int i=0;i a[i]=random.nextInt(max) % (max - min + 1) + min; int sum=0; for(int i=0;i sum+=a[i]; return sum; int sum=0; for(int i=0;i sum+=a[i]; return (sum*1.0)/a.length; int max=a[0]; for(int i=1;i return max; if(max for(int i=1;i return min; if(min>a[i])min=a[i];
共分享92篇相关文档