‘J2EE’ 分类下的所有文章
2010十月1

toArray()需要注意的问题

java知识点 评论关闭

我们在使用toArray()方法的时候,通常会遇到转型无值的问题,例如:

List widgetList = new ArrayList();
String[]? widgetArray = (String[])widgetList.toArray();

?这样的转型很明显是错误的,我们知道,java中转型基本要遵循向上转型的问题
,在这里,如果采用上述转法,widgetArray中将无法转换出正确的值。正确方法
应采用下面:
List widgetList = new ArrayList();
String[]? widgetArray = new String[widgetList.size()];
widgetList.toArray(widgetArray );

其实我们可以把toArray(new String[size])的方法看做是将Object[]全部复制到新的String[]数组中

2010十月1

Java中一些零散的知识点

java知识点 评论关闭

1、
字符串转换成数值类型用:
数值类型完整名.parse + 类型名(字符串)例如:
string? str = “20″;
int num = Integer.parseInt(str);

2、
将基本类型转换成字符串
?? string str = string.valueOf(double/int/float…);

3、
将字符串分割成数组string []
str = new string[];
str = 字符串.split(“分割符”)

4、
将数组中的元素组合成字符串
???? (没有此方法)

5、
Java中的方法名小写,类名大些,且类名和文件名相同(及和.java文件名相同)

6、
使用方法的好处:方法可以被反复的调用,从而使代码变得简洁,如果方法带参数则方法变得更加灵活。

7、
如果想打印出引号(“)则需要将引号写成(\”)形式。(\转义工具,也许可以这么说吧)

8、
\n 是换行,\t是8个空格不换行。

9、(正则运算)
String geCi = “这些年一个人,风也过,雨也过,有过泪,有过错,还记得坚持什么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还要走,还有我。”;
??int i = 0;
??int j= 0;
??String b = “朋友”;
??for(i=0;i<geCi.length();i++){
???if(b.regionMatches(0, geCi, i, 2)){
????j++;
???}
??}
??System.out.println(“\”朋友\”共出现” + j + “次”);

?}
10、
(int)char方法可以将char类型的变量转变成int类型(及将汉字转换成其在计算机中相应的内码,整型,将小写字母转换成大写字母的的方法是:(char)((int)字母 – 32))
在如下方法中是正确的,如果是double类型的则不可以
public? int count(char c,int i)
?return c*i;
?(重要)
11、
str1.equals(str2)方法可以比较如下的string类型的字符串
String str1 = new String(“str”);
String str2 = new String(“str”);
System.out.println(str1.equals(str2));
输出的值为true;

String str1 = “str”;
String str2 = new String(“str”);
System.out.println(str1.equals(str2));
输出的值为true;

String str1 = “str”;
String str2 = “str”;
System.out.println(str1.equals(str2));
输出的值为true;

“==”只能用与一下的以中形式:
String str1 = “str”;
String str2 = “Str”;
System.out.println(str1==str2);
输出的值为true;

12、
int i =1;
i++;
(1)System.out.println(i);
结果为:2
若:
(1)System.out.println(i++);
(2)System.out.println(++i);
结果为:(1)1 和 (2)2

13、
产生随机数的方法是 (Math.Random())所产生的随机数在[0-1)之间

14、
public static void main(String[] args) {
??// TODO 自动生成方法存根
??
??StringBuffer name = new StringBuffer(“YangYang”);
??StringBuffer nickName = new StringBuffer(“YaYa”);
??D d = new D();
??d.changeName(name,nickName);
??System.out.print(“? “+name);
??System.out.println(“? ” + nickName);
??
??
?}
?public void changeName(StringBuffer name,StringBuffer nickName) ?{
??name = new StringBuffer(“Yangfan”);
??nickName.append(“1″);
??System.out.print(“? “+name);
??System.out.println(“? ” + nickName);
?}
输出结果为: Yangfan? YaYa1? YangYang? YaYa1

25)?使用C#开发控制台应用程序的时候,如果需要程序接收用户输入的整型数字,则应当使用以下(D)语fsdfsdf句实现。(选择一项)
A、?int I = Console.ReadLine().int();? B、int I = int(Console.ReadLine());
C、int I = Console.ReadLine();?? D、int I = int.Parse(Console.ReadLine());

32)?在C#中,下列代码的运行结果是(d)
Using System;
Namespace TestApplication
{?Public class Test
?{Static void Main()
??{?? int x = 6;
???switch(x){
case 6:
case7:
?Console.WriteLine(“今天是周末”);
?Break;
Case 1:
?Console.WriteLine(“今天是星期一”);
?Break;
Case 2:
?Console.WriteLine(“今天是星期二”);
?Break;
Default:
?Console.WriteLine(“你完成任务了吗?”);
?Break;
}
}
}
}
A、?编译错误????????? B、输出:今天星期一?
C、输出:今天星期二?? D、输出今天是周末
39)?给定如下Java代码片段,编译运行时的结果是(D)(选择一项)
Int i = 2;
Switch (i) {
?Default:
?System.out.println (“default”);
Case 0:
System.out.println (“Zero”);
?Break;
Case 1:
?System.out.println (“one”);
?Break;
Case 2:
?System.out.println (“two”);
?Break;
}
A、?输出:default
B、?输出:default
Zero
C、?编译出错,default语句的位置不符合switch结构的语法结构
D、?输出:two

41) 在Java中,下面(AB)语句能够正确通过编译。(选择两项)
?A、System.out.println (1+1);
?B、char i= 2+’2’;
??System.out.println (i);
?C、String s = “on”+’one’; ?D、int b = 255.0;

44) 分析下面的HTML代码片段,则选项中说法正确的是(AD)(选择两项)
?<table cellspcaing=”30”>
?<tr><td colspan=”2” align=”center”>姓名</td></tr>
?<tr><td colspan=”2” align=”center”>成绩</td></tr>
?<tr><td colspan=”2” align=”center”>语文</td></tr>
?<tr><td colspan=”2” algin=”center>数学</td></tr>
?</table>
?该表格共有两行三列?????? B、该表格的边框宽度为30像素
A、?该表格中的文字均A居中显示? D、“姓名”单元格跨2列
45) 在SQL Server 2005数据库中,客户表customers包含字段:客户编号cid和名称cname,订单表orders包含字段:客户编号cid,如果需要通过查询或得订单的客户名称,下面查询语句中(B)可以实现该需求(选择一项)
?A、 select customers.cname from customers left join orders on customers.cid = orders.cid
?B、 select customers.cname from customers inner join orders on customers.cid = orders.cid
?C、select cusomers.cname from customers right join orders where customers.cid = orders.cid
?D、select customers.cname from customers join orders where customers.cid = orders.cid

47)分析下面的Java程序,编译运行结果是(A)(选择一项)
?Public class B{
??Public static void main (String [] args) {
???String s = “y”;
???System.out.println(s+1+2);
???System.out.println (1+2+s);
}
}
A、?输出:y12
3y
B、?输出:y12
12y
C、?输出:y3
3y
D、?程序编译出错
注:String 类的方法对字符串进行操作,没改变一次值,就重新开辟一块内存空间来存储
??? StringBuffer 类的方法是对内存中的值进行处理(在同一块内存空间进行反复的操作,没有重新开辟内存空间)
??? (StringBuffer的方法对字符串的处理比String的方法对字符串的处理的效率高。String 可以不用new关键字创建对象,它会自动的隐式创 建,String- Buffer必须用new关键字)

? 例如:
??? string str = “我”;
??? str.concat(“们”);????? //操作的仅是副本,并没将值复制给str
??? syso(str);
??? 结果为:我,而并非,我们;
??? 而
??? StringBuffer sb = new StringBuffer(“我”);
??? sb.compend(“们”);????? //直接修改内存中的值
??? syso(sb);
??? 结果为:我们,而并非,我;

2010十月1

List、Set、数组之间的转换

java知识点 评论关闭

使用Apache Jakarta Commons Collections:

  1. import org.apache.commons.collections.CollectionUtils; ??
  2. ??
  3. String[] strArray = {“aaa”, “bbb”, “ccc”}; ??
  4. List strList = new ArrayList(); ??
  5. Set strSet = new HashSet(); ??
  6. CollectionUtils.addAll(strList, strArray); ??
  7. CollectionUtils.addAll(strSet, strArray);??

CollectionUtils.addAll()方法的实现很简单,只是循环使用了Collection的add()方法而已。

如果只是想将数组转换成List,可以用JDK中的java.util.Arrays类:

  1. import java.util.Arrays; ??
  2. ??
  3. String[] strArray = {“aaa”, “bbb”, “ccc”}; ??
  4. List strList = Arrays.asList(strArray);??

不过Arrays.asList()方法返回的List不能add对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList。

Collection转数组

直接使用Collection的toArray()方法,该方法有两个重载版本:

  1. Object[] toArray(); ??
  2. ??
  3. T[] toArray(T[] a);??

?

Map转Collection

直接使用Map的values()方法。

List和Set转换

List list = new ArrayList(new Hashset());// Fixed-size list
List list = Arrays.asList(array);// Growable
list list = new LinkedList(Arrays.asList(array));// Duplicate elements are discarded
Set set = new HashSet(Arrays.asList(array));