Java常用工具类题库
一、 填空题
- 在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是___Number__的直接子类。
- 包装类Integer的静态方法可以将字符串类型的数字”123”转换成基本整型变量n,其实现语句是:__ Integer.parseInt(“123”)__。
- 在Java中使用java.lang包中的__ StringBuffer/StringBuilder 类来创建一个字符串对象,它代表一个字符序列可变的字符串,可以通过相应的方法改变这个字符串对象的字符序列。
- StringBuilder类是StringBuffer类的替代类,两者的共同点是都是可变长度字符串,其中线程安全的类是__StringBuffer____。
- DateFormat类可以实现字符串和日期类型之间的格式转换,其中将日期类型转换为指定的字符串格式的方法名是__Format__。
- 使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是___(int)(Math.random()*31)+30 。
- JDK1.5后提供了___enum___关键字,用以定义枚举类。枚举类是一种特殊的类,可以有自己的属性、方法和构造方法。
- File对象调用方法 mkdir() 创建一个目录,不包括所有必需但不存在的父目录,当且仅当已创建目录时,返回true;否则返回false。
- 将字符串”123”转换成基本数据类型 Interger.parseInt(iStr) 。
- String类的trim()方法作用是 去除字符串首尾的空格 。
- "hamburger".substring(4, 8) 返回的结果是 urge 。
- String s = "a"+”b”+”c” 创建 5 个对象。
- System.currentTimeMillis()表示获得的是自1970-1-01 00:00:00.000 到当前时刻的时间距离,类型为long 。
二、 选择题
1. |
以下选项中关于int和Integer的说法错误的是( BD )。(选择二项) |
|
A. |
int是基本数据类型,Integer是int的包装类,是引用数据类型 |
|
B. |
int的默认值是0,Integer的默认值也是0 |
|
C. |
Integer可以封装了属性和方法提供更多的功能 |
|
D. |
Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能 |
2. |
分析如下Java代码,该程序编译后的运行结果是( D )。(选择一项) |
|
|
public static void main(String[ ] args) { String str=null; str.concat("abc"); str.concat("def"); System.out.println(str); } |
|
A |
Null |
|
B. |
Abcdef |
|
C. |
编译错误 |
|
D. |
运行时出现NullPointerException异常 |
3. |
以下关于String类的代码的执行结果是( B )。(选择一项) |
|
|
public class Test2 { public static void main(String args[]) { String s1 = new String("bjsxt"); String s2 = new String("bjsxt"); if (s1 == s2) System.out.println("s1 == s2"); if (s1.equals(s2)) System.out.println("s1.equals(s2)"); } } |
|
A. |
s1 == s2 |
|
B. |
s1.equals(s2) |
|
C. |
s1 == s2 s1.equals(s2) |
|
D. |
以上都不对 |
4. |
以下关于StringBuffer类的代码的执行结果是( D )。(选择一项) |
|
|
public class TestStringBuffer { public static void main(String args[]) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); mb_operate(a, b); System.out.println(a + "." + b); } static void mb_operate(StringBuffer x, StringBuffer y) { x.append(y); y = x; } } |
|
A. |
A.B |
|
B. |
A.A |
|
C. |
AB.AB |
|
D. |
AB.B |
5. |
给定如下Java代码,编译运行的结果是( C )。(选择一项) |
|
|
public static void main(String []args){ String s1= new String("pb_java_OOP_T5"); String s2 = s1.substring(s1.lastIndexOf("_")); System.out.println("s2="+s2); } |
|
A |
s2=_java_OOP_T5 |
|
B. |
s2=_OOP_T5 |
|
C. |
s2=_T5 |
|
D. |
编译出错 |
6. |
对于语句String s="my name is kitty",以下选项中可以从其中截取”kitty”的是( AB )(选择二项) |
|
A |
s.substring(11,16) |
|
B. |
s.substring(11) |
|
C. |
s.substring(12,17) |
|
D. |
s.substring(12,16) |
7. |
分析下面的Java程序段,编译运行后的输出结果是( D )。(选择一项) |
|
|
public class Test { public void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { Test a = new Test(); StringBuffer sb = new StringBuffer("stringbuffer1"); a.changeString(sb); System.out.println("sb = " + sb); } } |
|
A |
sb = stringbuffer2stringbuffer1 |
|
B. |
sb = stringbuffer1 |
|
C. |
sb = stringbuffer2 |
|
D. |
sb = stringbuffer1stringbuffer2 |
8. |
给定如下Java代码,编译运行的结果是( A )。(选择一项) |
|
|
public static void main(String[] args) { StringBuffer sbf = new StringBuffer("java"); StringBuffer sbf1 = sbf.append(",C#"); String sbf2 = sbf + ",C#"; System.out.print(sbf.equals(sbf1)); System.out.println(sbf2.equals(sbf)); } |
|
A |
true false |
|
B. |
true true |
|
C. |
false false |
|
D. |
false true |
9. |
分析下面的Java程序,编译运行后的输出结果是( B )。(选择一项) |
|
|
public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example( ); ex.change(ex.str, ex.ch); System.out.print(ex.str + "and"); System.out.print(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'g'; } } |
|
A |
Goodandabc |
|
B. |
Goodandgbc |
|
C. |
test okandabc |
|
D. |
test okandgbc |
10. |
以下程序片段中可以正常编译的是( C )。(选择一项) |
|
A |
String s = "Gone with the wind"; String k = s+t; String t = "good"; |
|
B. |
String s = "Gone with the wind"; String t; t = s[3]+"one"; |
|
C. |
String s = "Gone with the wind"; String stanfard = s.toUpperCase(); |
|
D. |
String s = "home directory"; String t = s – "directory"; |
11. |
File类中的( B )方法可以用来判断文件或目录是否存在。(选择一项) |
|
A |
exist() |
|
B. |
exists() |
|
C. |
fileExist() |
|
D. |
fileExists() |
12. |
在Java中,以下File类的方法中( C )用来判断是否是目录。(选择一项) |
|
A |
isFile( ) |
|
B. |
getFile( ) |
|
C. |
isDirectory( ) |
|
D. |
getPath( ) |
13. |
分析下面的Java程序,编译运行后的输出结果是( B )。(选择一项) |
|
|
public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example( ); ex.change(ex.str, ex.ch); System.out.print(ex.str + "and"); System.out.print(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'g'; } } |
|
A |
Goodandabc |
|
B. |
Goodandgbc |
|
C. |
test okandabc |
|
D. |
test okandgbc |
14. |
分析下面代码的结果( A )。(选择一项) |
|
|
public static void main(String args[]) { String s = "abc"; String ss = "abc"; String s3 = "abc" + "def"; // 此处编译器做了优化! String s4 = "abcdef"; String s5 = ss + "def"; String s2 = new String("abc"); System.out.println(s == ss); System.out.println(s3 == s4); System.out.println(s4 == s5); System.out.println(s4.equals(s5)); } |
|
A |
true true false true |
|
B. |
true true true false |
|
C. |
true false true true |
|
D. |
false true false true |
三、 判断题
- 方法Integer.parseInt()的作用是将一个整数转变成String。( F )
- JK1.5后提供了自动装箱和自动拆箱功能,从而可以实现基本数据类型和对应包装类之间的自动转换,简化了操作。( T )
- 执行语句String str="abcedf"; int len=str.length; 后,能够得到字符串的长度是6。( F )
- 运算符“==”用于比较引用时,如果两个引用指向内存同一个对象,则返回true。( T )
- java.sql.Date类和java.util.Date类的关系是前者是后者的父类,其中前者没有提供无参数构造方法,而后者可以提供无参数构造方法来获取当前时间。( F )
- 求x的y次方,其表达式为:Math.pow(x,y)。( T )
- 一个File对象可以代表一个文件或目录,它可以获取文件和目录属性,也可以访问文件内容。( F )
- 在使用File类中的delete( )方法时,删除时可能文件不存在,所以我们最好先判断一下是否存在,不然会出现NullPointerException异常。( F )
- Date d = new Date()表示的是当前时间。( T )
- 递归可以完全使用迭代来代替。( T )
四、 简答题
- 自动装箱和自动拆箱
- String、StringBuffer、StringBuilder区别与联系。
- String str=”bjsxt”;和String str= new String(“bjsxt”);的区别
- java.sql.Date和java.util.Date的联系和区别
- 为什么要使用包装类,包装类的作用。
- File类的方法mkdir跟mkdirs,有什么区别?
前一个是创建一个文件夹,后一个是把所有的都创建
- 简述枚举的使用。
- 递归算法的优点是什么?缺点是什么?
五、 编码题
- 验证键盘输入的用户名不能为空,长度大于6,不能有数字。
提示:使用字符串String类的相关方法完成
public class TestCheckUserName
{
public static void main(String[] args)
{
//给出用户名
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String userName = input.nextLine();
//验证表单输入的用户名不能为空,
if (userName == null || "".equals(userName))
{
System.out.println("用户名不能为空");
return;
}
//长度大于6,
if (userName.length() <= 6)
{
System.out.println("用户名长度必须大于6个字符");
return;
}
//不能有数字
for (int i = 0; i < userName.length(); i++)
{
//取出每个字符
char ch = userName.charAt(i);//'3' '4'
//判断每个字符是否是数字
//if(ch <='9' && ch >='0'){
if (ch <= 57 && ch >= 48)
{
System.out.println("用户名不能有数字");
//break;//退出for循环
return;//退出main方法
}
}
System.out.println("用户名符合要求");
}
}
2.接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。
提示:使用包装类Integer、Double和日期转换类DateFormat实现
public class TestStringConvert
{
public static void main(String[] args)
{
//从键盘输入字符串形式的年龄,分数和入学时间
Scanner input = new Scanner(System.in);
System.out.print("请输入年龄:");
String sage = input.nextLine();
System.out.print("请输入分数:");
String sscore = input.nextLine();
System.out.print("请输入日期(yyyy/MM/dd):");
String sdate = input.nextLine();
//年龄转换String----int
int age = 0;
age = Integer.parseInt(sage);
//分数转换 String ---double
double score = 0.0;
score = Double.parseDouble(sscore);
//入学时间的转换String ---Date
Date enterDate = null;
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
try
{
enterDate = sdf.parse(sdate);
} catch (ParseException e)
{
e.printStackTrace();
//return;
}
//输出结果
System.out.println(age + " " + score + " " + enterDate);
}
}
3.根据交通信号灯颜色决定汽车停车、行驶和慢行
提示:使用枚举实现
//定义信号灯枚举
public enum Signal
{
红, 绿, 黄
}
public class TestSignal
{
public static void main(String[] args)
{
//指定信号灯颜色
Signal s = Signal.红;
//根据颜色决定汽车下步行动
switch (s)
{
case 红:
System.out.println("停车");
break;
case 绿:
System.out.println("行驶");
break;
case 黄:
System.out.println("慢行");
break;
}
}
}//定义信号灯枚举
public enum Signal
{
红, 绿, 黄
}
public class TestSignal
{
public static void main(String[] args)
{
//指定信号灯颜色
Signal s = Signal.红;
//根据颜色决定汽车下步行动
switch (s)
{
case 红:
System.out.println("停车");
break;
case 绿:
System.out.println("行驶");
break;
case 黄:
System.out.println("慢行");
break;
}
}
}
4.以树状结构输出计算机某个指定文件夹下的所有的文件和子文件夹名称。
提示:使用File的方法,并结合递归实现
public class TestDirectory
{
public static void main(String[] args)
{
File file = new File("d:/101sxt");
showTree(file, 1);
}
public static void showTree(File file, int level)
{
//获取当前目录下的文件和子文件夹(仅当前层次)
File[] files = file.listFiles();
//输出当前目录下的文件和子文件夹(仅当前层次)
for (File f : files)
{
//根据级别level输出指定个数的-
for (int i = 0; i < level; i++)
{
System.out.print("-");
}
//输出当前的一个文件或文件夹
if (f.isDirectory())
{
System.out.println("[" + f.getName() + "]");
//递归
showTree(f, level + 1);
} else
{
System.out.println(f.getName() + "\t" + f.length());
}
}
}
}
4.将1990年3月3日通过Calendar来表示,并得出这天是该年的第几天?将该日期增加35天,是哪一天?使用代码来说明。
public class Test
{ public static void main(String[] args)
{
Calendar calendar = Calendar.getInstance();
//设置年月日
calendar.set(1990, 3, 3);
//得到该年的第几天
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(dayOfYear);
//增加35天
calendar.add(Calendar.DAY_OF_YEAR, 35);
//得到date对象
Date date = calendar.getTime();
System.out.println(date.toLocaleString());
}
}
//或者采用如下代码实现
public static void main(String[] args) throws ParseException
{
Calendar ca = Calendar.getInstance();//创建一个日期实例
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
Date date = df.parse("1990年3月3日");
ca.setTime(date );//实例化一个日期
System.out.println(ca.get(Calendar.DAY_OF_YEAR)); ca.add(Calendar.DAY_OF_YEAR, 35);//加上35天
System.out.println(df.format(ca.getTime()));//获取那一天
}
六、 可选题
1.生成10个[10,23)之间的随机整数
提示:分别使用Math.random()和Random类的nextDouble()或nextInt()实现
public class TestRandom
{
public static void main(String[] args)
{
//实现1:生成10个[10,23)之间的随机整数
for (int i = 0; i < 10; i++)
{
int r = (int) (Math.random() * 13) + 10;
System.out.print(r + "\t");
}
System.out.println();
Random rand = new Random();
//实现2:生成10个[10,23)之间的随机整数
for (int i = 0; i < 10; i++)
{
int r = (int) (rand.nextDouble() * 13) + 10;
System.out.print(r + "\t");
}
System.out.println();
//实现3:生成10个[10,23)之间的随机整数
for (int i = 0; i <= 10; i++)
{
int r = rand.nextInt(13) + 10;//[0,13)+10---[10,23)
System.out.print(r + "\t");
}
System.out.println();
}
}
2.手动定义一个枚举,表示十二个月的英文月份。
public enum Month
{
January, february, March, April, May, June,
July, August, September, October, November, December
}
3.打印某个月份的可视化日历
提示:使用DateFormat、Calendar类实现功能
public class VisualCalendar2
{
public static void main(String[] args) throws ParseException
{
//从键盘输入指定格式的字符串 (Scanner) 2015-12-3
System.out.println("请输入日期(按照格式:2030-3-10):");
Scanner scanner = new Scanner(System.in);
String temp = scanner.nextLine();
//把输入的字符串变成Date(DateFormat)
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(temp);
//把Date变成Calendar(setTime())
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//取出日历的日信息
int dateOfMonth = calendar.get(Calendar.DATE);
//输出日历头信息 日 一 二 三 四 五 六
System.out.println("日\t一\t二\t三\t四\t五\t六");
//输出该月1日之前的空白( 要知道该月1日是星期几)
calendar.set(Calendar.DATE, 1);
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < weekDay; i++)
{
System.out.print('\t');
}
//输出该月的日历从1到最后一天(更多细节)
int maxDay = calendar.getActualMaximum(Calendar.DATE);
for (int i = 1; i <= maxDay; i++)
{
//如果是当天,输出*
if (i == dateOfMonth)
{
System.out.print("*");
}
//输出每一天
System.out.print(i + "\t");
//如果是周六换行
weekDay = calendar.get(Calendar.DAY_OF_WEEK);
if (weekDay == 7)
{
System.out.println();
}
//日历变成下一天!!!!!!
calendar.add(Calendar.DATE, 1);
}
}
}
Java常用工具类题库的更多相关文章
- JavaEE-实验一 Java常用工具类编程
该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1. 使用类String类的分割split 将字符串 “Solutions to selected exercises ca ...
- JAVA常用工具类汇总
一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...
- Java常用工具类---XML工具类、数据验证工具类
package com.jarvis.base.util; import java.io.File;import java.io.FileWriter;import java.io.IOExcepti ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- java常用工具类(java技术交流群57388149)
package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. ...
- 项目经验分享——Java常用工具类集合 转
http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...
- java 常用工具类
1. org.apache.commons.collections4包提供CollectionUtils.MapUtils.ListUtils.SetUtils等工具类: 2. org.apache. ...
- Java常用工具类之Excel导出
package com.wazn.learn.util; import java.util.List; import java.util.Map; import org.apache.poi.hssf ...
- Java常用工具类之删除文件
package com.wazn.learn.util; import java.io.File; /** * 删除文件工具类 * @author yangzhenyu * */ public cla ...
随机推荐
- POJ 2452 Sticks Problem
RMQ+二分....枚举 i ,找比 i 小的第一个元素,再找之间的第一个最大元素..... Sticks Problem Time Limit: 6000MS ...
- WPF:依赖属性的应用
依赖属性与一般属性相比,提供了对资源引用.样式.动画.数据绑定.属性值继承.元数据重载以及WPF设计器的继承支持功能的支持. 下面的这个Demo来自<葵花宝典--WPF自学手册>. 1.M ...
- ubuntu 15.04 手动安装nginx 1.9.0
平时工作也用nginx,不过用的时候都是已经配好的,只要简单改改参数就可以了.今天在自己的电脑上安装的时候发现没有想象的那么顺利. 纸上得来终觉浅,绝知此事要躬行. 正题: 1.到nginx下载页面获 ...
- java使用split分隔,需要注意的点
String severName = "10.6.62.244"; System.out.println(severName.split(".").length ...
- [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
http://www.58player.com/blog-2537-85030.html 接上文,项目中因为需要UI热更新,所以我使用了AssetBundle这个解决方案. ...
- phpstorm的调试工具xdebug
1.需求 知道xdebug的使用方法 2.安装xdebug http://www.awaimai.com/1290.html 3.配置phpstorm http://www.awaimai.com/1 ...
- 剑指Offer 两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点. 思路: 题目说的很笼统,应该是有2个链表,找出公共点,第一个公共点后面的链表是共同所有的.可以用map做,直接检测map里有没有出现这个节点. ...
- Mysql中索引的 创建,查看,删除,修改
创建索引 MySQL创建索引的语法如下: ? 1 2 3 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON ...
- 30秒攻破任意密码保护的PC:深入了解5美元黑客神器PoisonTap
近日,著名硬件黑客Samy Kamkar利用5美元设备打造的黑客工具PoisonTap,只需30秒,就可以攻破设置有任意密码的电脑系统,并实现长期后门安装.PoisonTap不是暴力破解密码,而是绕过 ...
- Java 数据库操作之Dao类
package Dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; imp ...