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=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+1。lg就是以10为底的对数。例如循环结构的三种语句格式为250 = 2.5*10^2,则lg250 = 2 + lg2.5,而lg2.5小于1,所以数250的位数约等于lg250+1,忽略小数部分,就等于3。
所以1000!的位数约等于lg1000!+1
所以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
这个求和约等于lgx这条曲线在区间[1,1000]与x轴围成的面积,也就是等于lgx在区间[1,1000]的定积分。
这个定积分很好计算,等于(1000ln1000-1000+1)/ln10,ln是自然对数。
所以1000!的阶乘的位数是1+(1000ln1000-1000+1)/ln10 = 2567
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论