c1 = transe(m1); c2 = transe(m2); c3 = transe(m3); c4 = transe(m4); c5 = transe(m5); c6 = transe(m6); String str = \ if (m1 != 0) {
str += c1 + \千\ }
if (m2 != 0) {
str += c2 + \百\ }
if (m1 != 0 && m2 == 0 && (m3 != 0 || m4 != 0)) { str += \零\ }
if (m3 != 0) {
str += c3 + \十\ }
if (m2 != 0 && m3 == 0 && m4 != 0) { str += \零\ }
if (m4 != 0) { str += c4; }
str += \元\
if (m5 == 0 && m6 == 0) { str += \整\ }
if (m5 != 0) {
str += c5 + \角\ }
if (m5 == 0 && m6 != 0) { str += \零\ }
if (m6 != 0) {
str += c6 + \分\ }
System.out.print(str + \
System.out.println(\
}
public static char transe(int m) { char r = ' '; switch (m) { case 0:
r = '零'; break;
case 1:
r = '壹'; break; case 2:
r = '贰'; break; case 3:
r = '叁'; break; case 4:
r = '肆'; break; case 5:
r = '伍'; break; case 6:
r = '陆'; break; case 7:
r = '柒'; break; case 8:
r = '捌'; break; case 9:
r = '玖'; break;
}
return r; } }
129. 针对一个分期付款,总期为1年,给定分期金额,期数和开始还款时间,计算出各期还款日期。 package demo;
import java.util.Calendar; import java.util.Date;
public class TestDemo {
// 分期付款,总期为1年,给定分期金额,期数和开始还款时间 // 计算出各期还款日期
public void huankuan(double amount,int num,Date start){ int period = 365/num; // 一年中分期间隔天数
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, start.getYear()+1900); cal.set(Calendar.MONTH, start.getMonth());
cal.set(Calendar.DATE, start.getDate());
for(int i=1;i<=num;i++){
System.out.println(\第\期还款日期: \ cal.add(Calendar.DATE, period); } }
public static void main(String[] args) { TestDemo demo = new TestDemo();
demo.huankuan(20000.00, 1, new Date());
} }
130. 用java写从1加到100
sum = (1+i)*i/2 i=100 最简单的方法 public class Hello5050{
public static void main(String[] args){ for (int i=1;i<=100;i=i++) {
System.out.println(++i); } } }
131. SSH的优点和缺点
优点: ssh把数据库,实体,配置都整合,封装 层次的结构(偏于mvc模式)
而且框架的融合,代码的耦合都很不错
对于编程的持续化,扩展化,维护化都很棒 ,SSH已经把底层实现封装好了,开发人员可以更专注于业务处理, 缺点: 出现错误容易搞的复杂
如果某个框架不是很熟悉的话(特别是spring)那就很麻烦 运行速度比较慢
132. 用JDBC来实现访问数据库记录可以采用下面的几个步骤: 1、 通过驱动器管理器获取连接接口。 2、 获得Statement或它的子类。 3、 限制Statement中的参数。 4、 执行Statement。
5、 查看返回的行数是否超出范围。 6、 关闭Statement。 7、 处理其它的Statement 8、 关闭连接接
133. overload和override的区别
override是方法重载,用在同一个类中,是几个方法的名字相同,返回值相同,但是参数列表不同,举例来说就像构造函数,可以后多个构造函数,并且每个的参数列表都不同,这样可以用多种方式构造对象。
overload是方法覆盖,用在父子类中,是方法名字相同,参数列表也相同,声明形式都相同,但是子类方法的权限不允许小于父类,不允许抛出比父类更多的异常
134. 最常见的runtime exception运行时异常? 数字转换异常,类异常ClassCastException NumberFormatException ArrayIndexOutOfBoundsException:数组越界 ClassCastException:类型转换错误
ArithmeticException:算术错误,典型的就是0作为除数的时候。IllegalArgumentException:非法参数 IndexOutOfBoundsException NullPointerException SystemException ArrayStoreException
135. 描述工厂模式和单例优缺点 举例在什么情况下用。 单例 保证一个类只有单一的实例,也就是说你无法通过New或CreateInstance来创建这个类的一个新实例 好处:当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象。 缺点就是 它就是在内存上共享,都可以去访问它,而且多个用户访问的都是同一个实例,会造成线程不安全。
/**
* IOC模式简单实例 */
/**
* 运行类 */
public class MainClass { /**
* 主函数 */
public static void main(String[] args) { try {
PrinterFactory.createPrinter().printByString(\ } catch (Exception ex) {
System.out.println(ex.toString()); } } }
/**
* Printer接口 */
interface IF_Printer { /**
* 接口printByString方法声明 */
public void printByString(String str); }
/**
* MyPrinter实现Printer接口 */
class MyPrinter implements IF_Printer { public void printByString(String str) { System.out.println(str); }
}
/**
* IF_Printer对象工厂,用于创建实现接口的类对象 */
class PrinterFactory { /**
* 工厂方法,返回IF_Printer接口实例 */
public static IF_Printer createPrinter() throws InstantiationException, ClassNotFoundException, IllegalAccessException {
String str = \通过字符串寻找实现接口的类,字符串可从文件中读取获得,从而实现IOC模式
return (IF_Printer) Class.forName(str).newInstance();//返回IF_Printer接口实例 } }
136. 创建一个序列号,从1000开始,每次增加1,最大到999999 create sequence newstudno increment by 1 start with 10001 maxvalue 99999
137. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
public class ThreadTest1{ private int j;
public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i <2;i++){ Thread t=new Thread(inc); t.start();
t=new Thread(dec); //???这个前面不要加Thread吗 t.start(); } }
private synchronized void inc(){ //???为什么要加锁呢 不加可以吗 j++;
System.out.println(Thread.currentThread().getName()+\} //???currentThread()有什么作用呢是什么方法 //???getname呢 private synchronized void dec(){ j--;
System.out.println(Thread.currentThread().getName()+\}
class Inc implements Runnable{ public void run(){
for(int i=0;i <100;i++){ inc(); } } }