zoukankan      html  css  js  c++  java
  • 面试集锦(三)

    一、

    题目:打印出所有的水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。
    public class lianxi03 {
    public static void main(String[] args) {
    int b1, b2, b3;
    for(int m=101; m<1000; m++) {
    b3 = m / 100;
    b2 = m % 100 / 10;
    b1 = m %    10;
    if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {
    System.out.println(m+”是一个水仙花数”); }
    }
    }
    }

    二、

    题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    import java.util.*;
    public class lianxi05 {
    public static void main(String[] args) {
    int x;
    char grade;
    Scanner s = new Scanner(System.in);
    System.out.print( “请输入一个成绩: “);
    x = s.nextInt();
    grade = x >= 90 ? ‘A’
    : x >= 60 ? ‘B’
    :’C';
    System.out.println(“等级为:”+grade);

    }
    }

    三、 

    题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    import java.util.*;
    public class lianxi07 {
    public static void main(String[] args) {
    int digital = 0;
    int character = 0;
    int other = 0;
    int blank = 0;
    char[] ch = null;
    Scanner sc = new Scanner(System.in);
    String s = sc.nextLine();
    ch = s.toCharArray();
    for(int i=0; i<ch.length; i++) {
    if(ch >= ’0′ && ch <= ’9′) {
    digital ++;
    } else if((ch >= ‘a’ && ch <= ‘z’) || ch > ‘A’ && ch <= ‘Z’) {
    character ++;
    } else if(ch == ‘ ‘) {
    blank ++;
    } else {
    other ++;
    }
    }
    System.out.println(“数字个数: ” + digital);
    System.out.println(“英文字母个数: ” + character);
    System.out.println(“空格个数: ” + blank);
    System.out.println(“其他字符个数:” + other );

    }

    }

    四、 

    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在     10次落地时,共经过多少米?第10次反弹多高?
    public class lianxi10 {
    public static void main(String[] args) {
    double h = 100,s = 100;
    for(int i=1; i<10; i++) {
    s = s + h;
    h = h / 2;
    }
    System.out.println(“经过路程:” + s);
    System.out.println(“反弹高度:” + h / 2);
    }
    }

    五、

    题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    import java.util.*;
    public class lianxi15 {
    public static void main(String[] args) {
    input fnc = new input();
    int x=0, y=0, z=0;
    System.out.print(“输入第一个数字:”);
    x = fnc.input();
    System.out.print(“输入第二个数字:”);
    y = fnc.input();
    System.out.print(“输入第三个数字:”);
    z = fnc.input();
    if(x > y) {
    int t = x;
    x = y;
    y = t;
    }
    if(x > z) {
    int t = x;
    x = z;
    z = t;
    }
    if(y > z) {
    int t = y;
    y = z;
    z = t;
    }
    System.out.println( “三个数字由小到大排列为: “+x + ” ” + y + ” ” + z);
    }
    }
    class input{
    public int input() {
    int value = 0;
    Scanner s = new Scanner(System.in);
    value = s.nextInt();
    return value;
    }
    }

    六、

       

    题目:输出9*9口诀。
    public class lianxi16 {
    public static void main(String[] args) {
    for(int i=1; i<10; i++) {
    for(int j=1; j<=i; j++) {
    System.out.print(j + “*” + i + “=” + j*i + “    ” );
    if(j*i<10){System.out.print(” “);}
    }
    System.out.println();
    }
    }
    }

    七、

    题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个     第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下     的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    public class lianxi17 {
    public static void main(String[] args) {
    int x = 1;
    for(int i=2; i<=10; i++) {
    x = (x+1)*2;
    }
    System.out.println(“猴子第一天摘了 ” + x + ” 个桃子”);
    }
    }

    八、

    题目:打印出如下图案(菱形)
    *
    ***
    *****
    *******
    *****
    ***
    *
    public class lianxi19 {
    public static void main(String[] args) {
    int H = 7, W = 7;//高和宽必须是相等的奇数
    for(int i=0; i<(H+1) / 2; i++) {
    for(int j=0; j<W/2-i; j++) {
    System.out.print(” “);

    }
    for(int k=1; k<(i+1)*2; k++) {
    System.out.print(‘*’);
    }
    System.out.println();
    }
    for(int i=1; i<=H/2; i++) {
    for(int j=1; j<=i; j++) {
    System.out.print(” “);
    }
    for(int k=1; k<=W-2*i; k++) {
    System.out.print(‘*’);
    }
    System.out.println();
    }
    }
    }

    九、

    题目:求1+2!+3!+…+20!的和
    public class lianxi21 {
    public static void main(String[] args) {
    long sum = 0;
    long fac = 1;
    for(int i=1; i<=20; i++) {
    fac = fac * i;
    sum += fac;
    }
    System.out.println(sum);
    }

    }

    十、

    题目:对10个数进行排序
    import java.util.*;
    public class lianxi28 {
    public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int[] a = new int[10];
    System.out.println(“请输入10个整数:”);
    for(int i=0; i<10; i++) {
    a[i] = s.nextInt();
    }
    for(int i=0; i<10; i++) {
    for(int j=i+1; j<10; j++) {
    if(a[i] > a[j]) {
    int t = a[i];
    a[i] = a[j];
    a[j] = t;
    }
    }
    }
    for(int i=0; i<10; i++) {
    System.out.print(a[i] + ” “);
    }
    }
    }

     

    十一、

    题目:将一个数组逆序输出。
    import java.util.*;
    public class lianxi31 {
    public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int a[] = new int[20];
    System.out.println(“请输入多个正整数(输入-1表示结束):”);
    int i=0,j;
    do{
    a[i]=s.nextInt();
    i++;
    }while (a[i-1]!=-1);
    System.out.println(“你输入的数组为:”);
    for( j=0; j<i-1; j++) {
    System.out.print(a[j]+”   “);
    }
    System.out.println(“ 数组逆序输出为:”);
    for( j=i-2; j>=0; j=j-1) {
    System.out.print(a[j]+”   “);
    }
    }
    }

    十二、

    题目:两个字符串连接程序
    import java.util.*;
    public class lianxi46 {
    public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.print(“请输入一个字符串:”);
    String str1 = s.nextLine();
    System.out.print(“请再输入一个字符串:”);
    String str2 = s.nextLine();
    String str = str1+str2;
    System.out.println(“连接后的字符串是:”+str);
    }
    }

    十三、

    题目:计算字符串中子串出现的次数
    import java.util.*;
    public class lianxi49 {
    public static void main(String args[]){
    Scanner s = new Scanner(System.in);
    System.out.print(“请输入字符串:”);
    String str1 = s.nextLine();
    System.out.print(“请输入子串:”);
    String str2 = s.nextLine();
    int count=0;
    if(str1.equals(“”)||str2.equals(“”))
    {
    System.out.println(“你没有输入字符串或子串,无法比较!”);
    System.exit(0);
    }
    else
    {
    for(int i=0;i<=str1.length()-str2.length();i++)
    {
    if(str2.equals(str1.substring(i, str2.length()+i)))
    //这种比法有问题,会把”aaa”看成有2”aa”子串。
    count++;
    }
    System.out.println(“子串在字符串中出现: “+count+” ”);
    }
    }
    }

    十四、

    写一个singleton类。
    单例模式 一个类只能有一个实例对象
    a 饿汉式
    b 懒汉式

    package entity;
    public class Test {
    public static void main(String[] args) {
    // Student s= new Student();
    Student s1 = Student.getStudent();
    Student s2 = Student.getStudent();
    System.out.println(s1==s2);
    }
    }
    //饿汉式 类加载时就被创建对象
    //class Student{
    // private static Student s = new Student();
    // private Student(){}
    // public static Student getStudent(){
    // return s;
    // }
    //}
    //懒汉式 锁类对象
    class Student{
    private static Student s;
    private Student(){}
    public synchronized static Student getStudent(){
    if(s==null){
    s = new Student();
    }
    return s;
    }
    }

    十五、

    数据库连接池的工作机制
    J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表 记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表
    记为空闲,其他调用就可以使用这个连接。实现方式,返回的 Connection是原始Connection的代理,代理Connectionclose方法不是真正关连接,而是把它
    代理的 Connection 对象还回到连接池中。

    十六、

    说出servlet的生命周期
    servlet是单例的,servlet是当第一次发出请求时实例化一个servlet。
    servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
    这个生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表达。Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service方法,service 方法自动派遣运行与请求对应的 doXXX 方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其 destroy 方法。web 容器加载 servlet,生命周期开始。通过调用 servlet 的 init()方法进行 servlet的初始化。通过调用 service()方法实现,根据请求的不同调用不同的 do***()方法。结束服务,web 容器调用 servlet 的 destroy()方法。

    十七、

      java中的异常

    十八、

    String类有哪些常用的方法?

        charAt()

    length()

    trim()

    toLowerCase()

    toUpperCase()

    indexOf()

    lastIndexOf()

    endsWith()

    startsWith()

    substring(int start, int end)

    substring(int start)

    toCharArray() 

    十九、

    ++和后++的区别?

        i++, 后++, 先将 i 的值作为整个表达的值, 然后将i 增加 1。

         ++i, 先++, 先将 i 增加1, 然后将 i 的值作为整个表达的值。

    二十、

      Java的3个版本?

    J2SE(Java2 Standard Edition) 标准版

    J2EE(Java 2 Platform,Enterprise Edition) 企业版

    J2ME(Java 2 Micro Edition) 微小版

  • 相关阅读:
    《需求分析与系统设计》第二篇阅读体会
    《需求分析与系统设计》第一篇阅读体会
    《编写有效用例》第二篇阅读体会
    项目目标文档
    字符流
    字节流
    递归
    File类
    JDBC接口和工具类
    异常
  • 原文地址:https://www.cnblogs.com/wxj-106/p/9002632.html
Copyright © 2011-2022 走看看