千峰Android入学考试.doc_第1页
千峰Android入学考试.doc_第2页
千峰Android入学考试.doc_第3页
千峰Android入学考试.doc_第4页
千峰Android入学考试.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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,抽象类是用的abstractb)一个类实现接口,必须实现他的所有方法,继承抽象类可以不全部实现他的方法c)一个类可以实现多个接口,继承一个抽象类9. = =操作符和equals函数的区别是什么?答:“= =”是比较两个对象是否是同一个对象,即地址是否相同Equal是比较两个对象的内容是否相等,即对象里的值是否相同10.请描述你对向上转型和向下转型的理解答:a)上转型:将子类的对象赋值给父类对象,例如parent p=new son();(注:parent是son的父类)b)下转型:下转型的前提是对经过上转型的对象进行的,如果不满足这个条件则会发生错误。就是把经过上转型的父类对象赋值给子类对象11. 异常应该如何分类?每一类异常的特点是什么?答:a)分为error和exception,error是程序员无法改变的。程序员处理的是Exception异常。b)exception异常分为RuntimeException和非RuntimeExceptionRuntimeException是程序员的编写代码错误非RuntimeException一般不是代码错误,是应用环境问题12.请简述你对线程声明周期的理解答:启动线程后,线程进入就绪状态,等待CPU的分配;得到CPU进入执行状态;CPU被执行过程中,得不到请求的资源,进入就绪状态;CPU从执行状态接到wait()命令,就会进入阻塞状态;执行完毕后,线程结束。13.wait()方法和sleep()方法的区别是什么?答:a)sleep属于Thread类,wait()属于Object类b)sleep()让程序暂停执行若干时间,但是不会释放对象锁 Wait()等待notify()调用才会继续执行,会放弃对象锁14. 同步代码块和同步方法的作用各自是什么?答:同步代码块是锁定的对象的一段代码,同步方法是锁定的对象的方法。都是在当前线程运行完代码之前,不允许其他线程调用本对象的同步代码15. 列出你常用的五种集合类,并写出其用法;答:Linklist:List lk=newLinkList();Arraylist;List ary=newArrayList();Hashmap:Map ma=newHashMap();Hashtable:Map ma=newHashtable();HashSet:Set set=newHashSet();16.什么是工厂模式?应该在什么场景下使用?答:a)在接口和子类之间加一个过渡端,通过过渡端或的接口的实例化对象,这个过渡端就是工厂类,增加了程序的灵活性。b)工厂类负责创建的对象少,客户只知道传入参数,对创建对象不关心17.什么是单例模式?应该在什么场景下使用?答:a)一个类有且仅有一个实例,并且自行实例化向整个系统系统b)控制资源时使用,控制实例生产数量时,数据共享时18. Java当中的IO流应该如何分类?答:a)Input/Outputb)基础流/过滤流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个1550的整数。(15分)1求这20个整数的总和和平均数 2找到这20个整数的最大值和最小值3将这20 个整数按照从小到大排序后输出代码:import java.util.Random;public class main public static void main(String args) /定义数组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);private static void sortPrint(int a) int i,j,temp,k;for(i=0;ia.length-1;i+)k=i;for(j=i+1;jaj)k=j;if(k!=i)temp=ai;ai=ak;ak=temp;System.out.println(排序后的结果为:);for(i=0;ia.length;i+)System.out.print(ai+ );System.out.println();private static int min(int a) int min=a0;for(int i=1;iai)min=ai;return min;private static int max(int a) int max=a0;for(int i=1;ia.length;i+)if(maxai)max=ai;return max;private static double average(int a) int sum=0;for(int i=0;ia.length;i+)sum+=ai;return (sum*1.0)/a.length;private static int sum(int a) int sum=0;for(int i=0;ia.length;i+)sum+=ai;return sum;/* * 用来生成随机数数组的方法 * */private static void radom(int max,int min,int a)Random random = new Random();for(int i=0;ia.length;i+)ai=random.nextInt(max) % (max - min + 1) + min;运行截图:2、 建立一个学生类,类名为Student。学生类中包含属性:年龄,学号,姓名,考试分数,分别设置各个属性的方法。(15分)请完成程序:1. 按照考试成绩降序排列,将排序后的结果输出到屏幕上。2. 及算出HTML单元测试,班级的及格率和优秀率(高于80分为优秀)代码:public class Student private int age;private int num;private String name;private double grade;public int getAge() return age;public void setAge(int age) this.age = age;public int getNum() return num;public void setNum(int num) this.num = num;public String getName() return name;public void setName(String name) = name;public double getGrade() return grade;public void setGrade(double grade) this.grade = grade;public class Test public static void main(String args) /定义student类数组Student stu=new Student15;/初始化数组内的元素newStudent(stu);/成绩排序sortStudentByGrade(stu);/计算及格率和优秀率double d=passRate(stu);System.out.println(通过率为:+d);double a=goodRate(stu);System.out.println(优秀率为:+a);private static double goodRate(Student stu) int i=0;for(i=0;istu.length;i+)if(stui.getGrade()80)break;return (stu.length-i)*1.0)/stu.length;private static double passRate(Student stu) int i=0;for(i=0;istu.length;i+)if(stui.getGrade()60)break;return (stu.length-i)*1.0)/stu.length;private static void sortStudentByGrade(Student stu) int i,j,k;Student temp;for(i=0;istu.length-1;i+)k=i;for(j=i+1;jstu.length;j+)if(stuk.getGrade()=stuj.getGrade()k=j;if(k!=i)temp=stui;stui=stuk;stuk=temp;System.out.println(排序后的结果为:);System.out.println(学号t姓名t分数);for(i=0;i=4)break;else System.out.println(输入的商品代号小于4个,请继续输入);/显示商品品种和单价show(thg,lis);/计算总钱数double sumM=sumMoney(thg,lis);System.out.println(您购买的商品的总价为:+sumM);/显示购物卡剩余钱数if(10000-sumM)0)System.out.println(购物卡的剩余钱数 :0);else System.out.println(购物卡的剩余钱数 :+(10000-sumM);/显示商场返购物卷的钱数数额 int tickMoney=(int)sumM)/800)*198;System.out.println(商场返购物卷的钱数数额 为:+tickMoney);private static double sumMoney(thing thg, List lis) double sumM=0;for(int i=0;ilis.size();i+)int sc=(int) lis.get(i);/打折判断if(sc=1|sc=4)sumM+=(thgsc-1.getMoney()*0.7;else if(sc=2|sc=3)sumM+=(thgsc-1.getMoney()*0.8;elsesumM+=(thgsc-1.getMoney()*0.9;return sumM;private static void show(thing thg, List lis) System.out.println(您所选中的商品为:);System.out.println(种类tt单价);for(int i=0;ilis.size();i+)int sc=(int) lis.get(i);System.out.println(thgsc-1.getName()+t+thgsc-1.getMoney()+元);private static List scan(List lis) Scanner sc = new Scanner(System.in);int type=0;System.out.println(请输入您要购买的商品代码 ,并以-1结束);while(type=sc.nextInt()!=-1)if(type10)System.out.println(请输入110之间的数据);continue;lis.add(type);return lis;private static void newThing(thing thg) thg0=new thing();thg0.setNo(1);thg0.setName(羽绒服(男款));thg0.setMoney(2100);thg1=new thing();thg1.setNo(2);thg1.setName(羽绒服(女款));thg1.setMoney(1400);thg2=new thing();thg2.setNo(3);thg2.setName(形体裤(女款));thg2.setMoney(780);thg3=new thing();thg3.setNo(4);thg3.setName(商务西裤(男款));thg3.setMoney(960);thg4=new thing();thg4.setNo(5);thg4.setName(无线键盘);thg4.setMoney(130);thg5=new thing();thg5.setNo(6);thg5.setName(无线鼠标);thg5.setMoney(98);thg6=new thing();thg6.setNo(7);thg6.setName(钢笔);thg6.setMoney(45);thg7=new thing();thg7.setNo(8);thg7.setName(IPAD 3);thg7.setMoney(4500);thg8=new thing();thg8.setNo(9);thg8.setName(HP笔记本电脑);thg8.setMoney(5600);thg9=new thing();thg9.setNo(10);thg9.setName(贺岁食品大礼包);thg9.setMoney(6350);运行结果截图: 4、 假如有以下email数据“,,”现需要把email中的用户部分和邮件地址部分分离,分离后以键 值对应的方式放入HashMap?(15分)1按照分离2存入map中代码:import java.util.HashMap;import java.util.Map;public class Test public static void main(String args) /初始化map和字符串Map map=new HashMap();String s=,,;/将字符串按照,拆分为单个的邮箱地址String a=s.split(,);for(int i=0;ia.length;i+)/按照拆分为用户和地址String b=ai.split();System.out.println(用户名:+b0+t地址:+b1);/用户部分和邮件地址部分分离,分离后以键 值对应的方式放入HashMapmap.put(b0, b1);5、 应用多线程,完成此题:2个客户,每个人300元钱,去银行存钱,每次只能存100元。 设计银行类,设计客户类。(20分)1设计客户类 2设计银行类 代码:public class Custom private String name;private int money;public String getName() return name;public void setName(String name) = name;public int getMoney() return money;public void setMoney(int money) this.money = money;public class Bank implements Runnable /表示银行总钱数private int sumMoney=10000;Overridepublic void run() /声明顾客对象并初始化Custom c=new Custom();c.setMoney(0);c.setName(Thread.currentThread().getName();/存钱for(int i=1;i=3;i+)/在一个顾客存完钱之前不允许其他人存钱synchronized (this) c.setMoney(c.getMoney()+100);sumMoney+=100;System.out.println(c.getName()+存入100);System.out.println(银行总钱数为:+sumMoney);System.out.println(c.getName()+总钱数为:+c.getMoney();public class Test public static void main(String args) Bank b=new Bank();Thread t1=new Thread(b);Thread t2=new Thread(b);t1.setName(顾客1);t2.setName(顾客2);t1.start();t2.start();程序运行截图: 6、 创建创建两个线程,用于打印100以内的数字,第一个线程打印奇数、第二个线程打印偶数。首先第一个线程打印10个奇数,然后第二个 线程打印10个偶数,然后再由第一个线程打印10个奇数,以此类推;(20分)代码:public class Print implements Runnable private int t;private Object a;private Object b;public Print(int t, Object a, Object b)this.t=t;this.a=a;this.b=b;Overridepublic void run() for(int i=t;i100;)synchronized (a) synchronized (b) for(int j=0;j10;j+,i=i+2)System.out.println(Thread.currentThread().getName()+打印+i);b.notify();try a.wait(); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();public class Test public static void main(String args) Object a=new Object();Object b=new Object();Print p1=new Print(1,a,b);Print p2=new Print(0,b,a);Thread t1=new Thread(p1);Thread t2=new Thread(p2);t1.setName(线程1);t2.setName(线程2);t1.start();t2.start();代码运行截图: 测试题(第三部分)1. 在太平洋的一个小岛上生活着土人,他们不愿意被外人打扰,一天,一个探险家到了岛上,被土人抓住,土人的祭司告诉他,你临死前还 可以有一个机会留下一句话,如果这句话是真的,你将被烧死,是假的,你将被五马分尸,可怜的探险家如何才能活下来?答:我将要被五马分尸如果这句话是真的,按理说应该被烧死,这就不符合逻辑,如果是假的,就应该被五马分尸,可是这句话就成真的了,逻辑也不符,所以就没法死了2. 你让某些人为你工作了七天,你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将 这根金条切割两次,你怎样给这些工人分?答:分为七分之一,七分之二和七分之四这三部分第一天给工人七分之一的那一块金子,第二天要回七分之一的那块金子,给他七分之二的那块,第三天给他七分之一的那一块,第四天要回前两块金子,给他七分之四的那一块,第五天给他七分之一的,第六天要回七分之一的,给他七分之二的,最后一天给他七分之一的。3. 五个海盗抢到了100个金

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论