java知识题集编程方面题目
个人收集版本
1.JDBC连接Oracle并读取数据的例子
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
视频播放器十大排名
import java.sql.Statement;
import java.util.Date;
/**
* JDBC连接Oracle并读取数据的例子。
* @author JAVA世纪网(java2000, laozizhu)
*/
public class jdbc {
  String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
  String theUser = "scott";
  String thePw = "tiger";
  Connection c = null;
  Statement conn;
  ResultSet rs = null;
  public jdbc() {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
speculate about      c = Connection(dbUrl, theUser, thePw);
      conn = c.createStatement();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public boolean executeUpdate(String sql) {
    try {
      uteUpdate(sql);
html5电影网站
      return true;
    } catch (SQLException e) {
      e.printStackTrace();
      return false;
    }
  }
  public ResultSet executeQuery(String sql) {
    rs = null;
    try {
      rs = uteQuery(sql);
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return rs;
  }
  public void close() {
    try {
      conn.close();
      c.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) {
    ResultSet rs;
    jdbc conn = new jdbc();
    rs = uteQuery("select * from test");
    try {
      while (rs.next()) {
        System.out.String("id"));
        System.out.String("name"));
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
2. 如果2个对象==,则他们一定equals,hashCode一定相等吗?
/**
* 如果2个对象==,则他们一定equals,hashCode一定相等吗?<br>
* 这个就是一个例子<br>
* 不要告诉我不能这么写,我不是在讨论应该怎么样<br>
* 而是在确认这句话是否一定是正确的。<br>
* <br>
* 教科书里的东西,让大家都循规蹈矩,<br>
* 却没有认识到程序的本质。html注释的语法格式正确的是<br>
* hashCode/equals是否需要,如何写,完全取决于程序员的想法。
*
* @author 老紫竹(laozizhu)
*/
class Test {
  public static void main(String args[]) {
    Test a = new Test();
    Test b = a;
    System.out.println(a == b); // true
    System.out.println(a.equals(b)); // false
    System.out.println(a.hashCode() == b.hashCode()); // false
  }
  public boolean equals(Object obj) {
    return false;
  }
  private static int num = 0;
  public int hashCode() {
    super.hashCode();
    return num++;
  }
}
3. 下面的程序输出什么?
/**
* 下面的程序输出什么?请用脑袋想,不要去编译执行。
*
* @author 老紫竹 JAVA世纪网(java2000)
*
*/
public class T {
  public static void main(String[] args) {
    certkiller("four");
    certkiller("tee");
    certkiller("to");
  }
  public static void certkiller(String str) {
    int check = 4;
    if (check = str.length()) {
      System.out.print(str.charAt(check -= 1) + " ");
    } else {
      System.out.print(str.charAt(0) + " ");
    }
  }
}
4. 编写一个java程序jse.java,按下面的公式计算自然对数底e的值(n的值取20):
e=1+1/1!+1/2!+1/3!+1/4!+1/n!
/**
* 自然对数的底e的计算。<br>
* 1+1/1! + 1/2! + 1/3! + ...<br>
*
* @author 老紫竹研究室(laozizhu)
*/
public class Test {
  public static void main(String args[]) throws Exception {
    // 方法1
    double e = 1.0;
    double t = 1.0;
    for (int i = 1; i <= 20; i++) {
      t /= i;
      e += t;
    }
    System.out.println(e);
    // 方法2,可惜我没看懂,很精妙
    e = 0.0;
    for (int i = 20; i > 0; i--) {
      e = (e + 1.0) / i;
    }
    e++;
    System.out.println(e);
  }
}
5. 从字符串”ABCDEFGH”里出”DEF”来
String str1=str.substring(3,6);
6. 写一个方法,输入任意一个整数,返回它的阶乘
唯一注意的,要用long或者更大的用BigDecimal,不要用int
/**
* @author JAVA世纪网(java2000, laozizhu)
*/
public class Test {
  /**
  * 获得任意一个整数的阶乘
  *
  * @paramn
  * @returnn!
  */
  public long factorial(int n) {
    // 递归
    if (n == 1) {
      return 1;
    }
    return n * factorial(n - 1);
  }
  public long factorial2(int n) {
    // 非递归
    long multi = 1;
    for (int i = 2; i <= n; i++) {
      multi *= i;
    }
    return multi;
  }
  public static void main(String args[]) {
java经典上机编程题    Test t = new Test();
    System.out.println(t.factorial(12));
    System.out.println(t.factorial2(12));
  }
}
7. 1000!有几位数?为什么?
一个自然数N,它的位数等于lgN+1lg就是以10为底的对数。例如循环结构的三种语句格式为250 = 2.5*10^2,lg250 = 2 + lg2.5,而lg2.5小于1,所以数250的位数约等于lg250+1,忽略小数部分,就等于3
所以1000!的位数约等于lg1000!+1
lg1000! = lg1+lg2+lg3+……+lg1000
这个求和约等于lgx这条曲线在区间[1,1000]x轴围成的面积,也就是等于lgx在区间[1,1000]的定积分。
这个定积分很好计算,等于(1000ln1000-1000+1)/ln10,ln是自然对数。
所以1000!的阶乘的位数是1+(1000ln1000-1000+1)/ln10 = 2567

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。