1、Java面试题编程题48、编程题: 写一个Singleton出来。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。public class Singleton private Singleton() private static Singleton instance = new Singleton()
2、; public static Singleton getInstance() return instance; 第二种形式: public class Singleton private static Singleton instance = null; public static synchronized Singleton getInstance() if (instance = null) instance new Singleton(); return instance; 其他形式: 定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些
3、 10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。public class BigInt()int ArrOne = new ArrOne1000;String intString=;public int Arr(String s)intString = s;for(int i=0;iArrOne.leght;i+)68、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? public String translate (String str) S
4、tring tempStr = ; try tempStr = new String(str.getBytes(ISO-8859-1), GBK); tempStr = tempStr.trim(); catch (Exception e) System.err.println(e.getMessage(); return tempStr; 28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。public class ThreadTest1 private int j; public static v
5、oid 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); t.start(); private synchronized void inc() j+; System.out.println(Thread.currentThread().getName() + -inc: +
6、j); private synchronized void dec() j-; System.out.println(Thread.currentThread().getName() + -dec: + j); class Inc implements Runnable public void run() for (int i = 0; i 100; i+) inc(); class Dec implements Runnable public void run() for (int i = 0; i =0;i-) result.append(s.charAt(i); return resul
7、t.toString();JAVA编程题1现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供resetimport java.util.*;public class bycomma public static String splitStringByComma(String source) if(source=null|source.trim().equals() return null; StringTokenizer commaToker = new StringTokenizer(source,); String result =
8、new StringcommaToker.countTokens(); int i=0; while(commaToker.hasMoreTokens() resulti = commaToker.nextToken(); i+; return result; public static void main(String args) String s = splitStringByComma(5,8,7,4,3,9,1); int ii = new ints.length; for(int i = 0; i s.length; i+) iii =Integer.parseInt(si); Ar
9、rays.sort(ii); /asc for(int i = 0; i = 0; i-) System.out.println(iii); 2金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)(一千零一拾一元整)输出。package test.format;import java.text.NumberFormat;import java.util.HashMap;public class SimpleMoneyFormat public static final String EMPTY = ; public static final String ZERO = 零; pub
10、lic static final String ONE = 壹; public static final String TWO = 贰; public static final String THREE = 叁; public static final String FOUR = 肆; public static final String FIVE = 伍; public static final String SIX = 陆; public static final String SEVEN = 柒; public static final String EIGHT = 捌; public
11、static final String NINE = 玖; public static final String TEN = 拾; public static final String HUNDRED = 佰; public static final String THOUSAND = 仟; public static final String TEN_THOUSAND = 万; public static final String HUNDRED_MILLION = 亿; public static final String YUAN = 元; public static final Str
12、ing JIAO = 角; public static final String FEN = 分; public static final String DOT = .; private static SimpleMoneyFormat formatter = null; private HashMap chineseNumberMap = new HashMap(); private HashMap chineseMoneyPattern = new HashMap(); private NumberFormat numberFormat = NumberFormat.getInstance
13、(); private SimpleMoneyFormat() numberFormat.setMaximumFractionDigits(4); numberFormat.setMinimumFractionDigits(2); numberFormat.setGroupingUsed(false); chineseNumberMap.put(0, ZERO); chineseNumberMap.put(1, ONE); chineseNumberMap.put(2, TWO); chineseNumberMap.put(3, THREE); chineseNumberMap.put(4,
14、FOUR); chineseNumberMap.put(5, FIVE); chineseNumberMap.put(6, SIX); chineseNumberMap.put(7, SEVEN); chineseNumberMap.put(8, EIGHT); chineseNumberMap.put(9, NINE); chineseNumberMap.put(DOT, DOT); chineseMoneyPattern.put(1, TEN); chineseMoneyPattern.put(2, HUNDRED); chineseMoneyPattern.put(3, THOUSAND
15、); chineseMoneyPattern.put(4, TEN_THOUSAND); chineseMoneyPattern.put(5, TEN); chineseMoneyPattern.put(6, HUNDRED); chineseMoneyPattern.put(7, THOUSAND); chineseMoneyPattern.put(8, HUNDRED_MILLION); public static SimpleMoneyFormat getInstance() if (formatter = null) formatter = new SimpleMoneyFormat(
16、); return formatter; public String format(String moneyStr) checkPrecision(moneyStr); String result; result = convertToChineseNumber(moneyStr); result = addUnitsToChineseMoneyString(result); return result; public String format(double moneyDouble) return format(numberFormat.format(moneyDouble); public String format(int moneyInt) return format(numberFormat.format(moneyInt); public String format(long moneyLong) return format(numberFormat.format(moneyLong); public String format(Number moneyNum) return for
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1