1. java中函数参数的传递是怎样进行的
Java中函数参数的传递是按值传递。
下面证明中参数传递是完完全全是传值而不是传址。
一:
package com.sitinspring;
public class ChangeClass{
public void changeInt(int i){
i=5;
}
public void changeLong(long i){
i=555;
}
public void changeString(String str){
str="5555";
}
public void changeMember(Member member){
member=new Member("Cindy",35);
}
public void changeMemberField(Member member){
member.setAge(20);
member.setName("Andy");
}
public static void main(String[] args){
ChangeClass changeClass=new ChangeClass();
int intValue=10;
changeClass.changeInt(intValue);
System.out.println(intValue);
long longValue=10;
changeClass.changeLong(longValue);
System.out.println(longValue);
String stringValue="1234";
changeClass.changeString(stringValue);
System.out.println(stringValue);
Member member2=new Member("Douglas",45);
changeClass.changeMember(member2);
System.out.println(member2);
Member member=new Member("Bill",25);
changeClass.changeMemberField(member);
System.out.println(member);
}
}
二:
package com.sitinspring;
public class Member{
private String name;
private int age;
public Member(String name,int age){
this.age=age;
this.name=name;
}
public String toString(){
return "Member name="+name+" age="+age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
输出:
10
10
1234
Member name=Douglas age=45
Member name=Andy age=20
解释:
第一个输出10是因为int是基本类型,传递的参数是intValue的拷贝,对拷贝的修改对原值intValue没有影响.
第一个输出10和上面是一个道理.
第三个输出1234.由于String是类类型, str是stringValue的地址拷贝,参数str指向的地址和stringValue的一致,但在函数changeString 中,由于String的特殊性, str=“5555”和str=new String(“5555”)是等价的, str指向了新的”5555”所在的地址,此句后str就与原来的stringValue彻底脱离了联系.
第四个输出Member?name=Douglas?age=45的道理和上面相同.
第五个输出Member?name=Andy?age=20是因为changeMemberField函数中修改了参数member 的值,也就是修改member指向实例的值,而这个实例正是member指向的值,因此member就变成了name=Andy 且age=20.
结论:
Java中参数传递的都是值,对应基本类型,传递的是原值的拷贝;对于类类型,传递的是引用即地址的拷贝.
对于函数对参数的改变是否会影响原值的问题:值类型自然不会影响到原值.而对于类类型要看改变的是参数的地址还是值,如果是前者,参数和原引用指向了不同的地址,它们自然脱离了关系;如果是后者,修改的实例就是原引用指向的实例,这当然对原值进行了修改.
2. java中hashtable怎样存储数据和读取数据
Hashtable-哈希表类
以哈希表竖猜的形式存储数慧纤知据,数据的形式是键值对.
特点:
查找速度快,遍历相对慢
键值不能有空指针和重复数据
创建
Hashtable<Integer,String> ht=new
Hashtable<Integer,String>();
添值
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
取值
String str=ht.get(1);
System.out.println(str);// Andy
对键进行遍历
Iterator it = ht.keySet().iterator();
while (it.hasNext()) {
Integer key = (Integer)it.next();
System.out.println(key);
}
对值进行遍历
Iterator it = ht.values().iterator();
while (it.hasNext()) {
String value =(String) it.next();
System.out.println(value);
}
取Hashtable记录数
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
int i=ht.size();// 7
删除前消元素
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
ht.remove(1);
ht.remove(2);
ht.remove(3);
ht.remove(4);
System.out.println(ht.size());// 3
Iterator it = ht.values().iterator();
while (it.hasNext()) {
// Get value
String value =(String)
it.next();
System.out.println(value);
}
3. java开源的组件
Atomsphere 【Java开源 RSS组件包】
Atomsphere是一个java包用于创建和修改atom 1.0 feed。
ICEfaces 【Java开源 AJAX开发组件】
ICEfaces是一个基于Ajax的JSF开发框架。ICEfaces原本是一个商业产品,现已开源基于Mozilla Public License发布。它提供一整套完整的Java EE应用程序开发组件,能够帮助开发人员用纯Java(not JavaScript)快速开发瘦客户端胖互联网应用程序(Rich Internet Applications:RIA)。可通过其提供的一个在线Demo体验一下ICEfaces的强大组件。
CrossFTP Server 【Java开源 网络服务端组件】
CrossFTP Server是一个跨平台,高性能,可配置,安全的FTP服务器.它提供一个易于操作的GUI来方便用户配置服务器参数。
SweetDEV RIA 【Java开源 AJAX开发组件】
SweetDEV RIA是一整套用于开发Rich GUI的Java/J2EE Ajax widget。
BZByte EZAjax 【Java开源 AJAX开发组件】
BZByte EZAjax是一个开源的Ajax Web框架。BZByte Ajax框架采用服务器端的Java来创建DOM而不是通过web浏览器的JavaScript。该框架的所有更新都是GUI驱动,所以无需担心暴露应用程序的代码和远程接口。GUI更新快速并且不依赖终端用户计算机的快慢。
MGTalk 【Java开源 网络客户端组件】
MGTalk是一个适用于J2me midp2.0平台(midlet)的Jabber客户端,支持Google Talk。经测试MGTalk可以运行在Nokia series60/Siemens/Benq移动电话之上。
Clean 【Java开源 AJAX开发组件】
Clean一个开源的Ajax引擎,一组简化AJAX开发的高级接口。此处Clean还集成两个开源项目Google AJAXSLT:为Clean添加XSLT支持。Paul Johnstone(JavaScript实现MD5与SHA1算法的开源项目):为Clean添加对安全AJAX请求的支持。
Salto Framework 【Java开源 AJAX开发组件】
Salto Framework是一个基于Ajax,Struts与J2EE技术的框架。
GWanTed 【Java开源 AJAX开发组件】
GWanTed是一个让你可以在web页面(可以采用任何脚本语言开发)直接调用GWT widget,而不是用Java编码实现的开源项目。此外GWanTed还提供一组增强的功能包括错误管理,数据管理,国际化支持,面向业务逻辑开发,提供一些用GWT开发的widget如:跨平台的Flash播放器widget,可交互的Chart widget等。
iText 【Java开源 PDF组件包】
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。
EJBCA 【Java开源 网络服务端组件】
EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。
Laszlo 【Java开源 XML UI组件】
利用OpenLaszlo免费平台可以快速地,简单地开发漂亮Web 应用程序。这些Web应用程序可以运行在当前任何流行的浏览器与桌面操作系统。它只需要一个XML文件。【IDE4Laszlo:Eclipse下的辅助开发工具】
qooxdoo 【Java开源 AJAX开发组件】
qooxdoo是一个功能强大基于JavaScript GUI工包,它让你可以用JavaScript来开发类似于VB/Delphi风格的具有Ajax功能的web2.0应用程序。qooxdoo具有客户端浏览器检测功能,具有浏览器抽象层,可以无差别的创建跨浏览器的Web应用程序,它提供方便的调试接口,具有事件管理、聚焦管理、定时器、边框和对象属性等特征。它提供一组窗体组件并扩展了布局,它还提供跨平台的png图形透明支持功能。此外,qooxdoo提供一个原子组件,你可以在其基础上开发你自己的组件。
Cindy 【Java开源 网络客户端组件】
Cindy是一个强壮,可扩展,高效的异步I/O框架。支持TCP,SSL-TCP, UDP和Pipe。
RCFaces 【Java开源 AJAX开发组件】
RC Faces开源Ajax JSF类库,它提供一个用于创建下一代web应用程序的组件集。RC Faces使用AJAX技术与面向对象的JavaScript API来构建动态页面。RC Faces提供的组件包括tab,sortable datagrids,菜单,文本输入框,树,日历等。
IRClib 【Java开源 网络客户端组件】
IRClib是IRC协议的一个纯Java实现,支持SSL连接,兼容RFC1459与RFC2812。同还提供一个基于IRClib开发的IRC客户端moepII。
4. java程序编译时无法读取 Teststu.java
你的
static void run(Cust st)
{
System.out.println("取款之前的查询:");
search();
getmoney();
System.out.println("取款仔绝毕脊之后的查询:");
search();
};
方法怎念数姿么能在main方法里面呢?
main方法里面不能包括别的方法
5. java中hashtable怎样存储数据和读取数据
Hashtable-哈希表类x0dx0ax0dx0a以物谈姿哈希表的形式存储数据,数据的形式是键值对.x0dx0a特点:x0dx0a查找速度快,遍历相对慢x0dx0a键值不能有空指针和重复数据x0dx0ax0dx0a创建x0dx0aHashtable
6. java arraylist 输出
注意提问方式,(你这贴的也……………………)
7. 北京顶测科技有限公司靠谱不靠谱
不懂的,这要看这个公司是否财力雄厚,而且有良好的品质了。要岩此是它财力不咋滴,那也支撑不了多久也粗行迅可能因为经济等因素而…,良好的品质更加重要,毕竟在好的公司没有信誉没有爱才之心等带埋等,那也发展不长久,除非它实在有钱拿优越的工资来约束人才…
8. JAVA如何把数字转换成英文字母
String[] numStr = {"zero","one","two","three"...略抄}
public void zhuanHuan(int i){
System.out.println(numStr[i]);
System.out.println(i%2==0?"是偶数":"是奇数");
}
9. 如何使用Java实现两台PC机之间的串口通信
//SocketClient
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
import org.apache.log4j.Logger;
import com.sitinspring.server.ResponseThread;
/**
* Socket客户端
* @author: sitinspring([email protected])
* @date: 2007-11-16
*/
public class SocketClient{
private static Logger logger = Logger.getLogger(ResponseThread.class);
public static void main(String[] args){
try {
Socket socket=new Socket("127.0.0.1",2009);
logger.info("客户端向服务器发起请求.");
try {
InputStream inStream = socket.getInputStream();
OutputStream outStream = socket.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream);
out.println("地震高岗 一派溪山千古秀");
out.flush();
while (in.hasNextLine()) {
String line = in.nextLine();
logger.info("客户端获得响应文字="+ line);
}
} finally {
socket.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
//Member
import java.util.Comparator;
public class Member implements Comparable {
private String name;
private int age;
public Member(String name, int age) {
this.name = name;
this.age = age;
}
public int compareTo(Object obj) {
Member another = (Member) obj;
//return this.name.compareTo(another.name);
return this.age-another.age;
}
public String toString(){
return "Member name="+name+" age="+age;
}
}
//Main
import java.util.Arrays;
import java.util.List;
public class Main{
public static void main(String[] args){
String[] arr={"Andy","Bill","Cindy","Dell"};
List<String> ls=Arrays.asList(arr);
for(String str:ls){
System.out.println(str);
}
/*List<String> ls=new ArrayList<String>();
ls.add("Felex");
ls.add("Gates");
ls.add("Andy");
ls.add("Bill");
ls.add("Cindy");
ls.add("Dell");
Object[] arr=ls.toArray();
for(Object obj:arr){
System.out.println((Object)obj);
}*/
/*Collections.sort(ls);
for(Member member:ls){
System.out.println(member);
}*/
/*Member member=new Member("Edin",28);
ls.remove(member);
ls.remove(2);
ls.clear();
List ls2=new ArrayList();*/
/*for(Member member:ls){
// member
}*/
/*for(int i=0;i<ls.size();i++){
Member member=ls.get(i);
}*/
/*for(Iterator it=ls.iterator();it.hasNext();){
Member member=(Member)it.next();
}
List<Member> ls2=new ArrayList<Member>();
ls2.add(new Member("Felex",21));
ls2.add(new Member("Gates",23));
ls.addAll(ls2);
ls2.*/
/*List ls3=null;
System.out.println(ls3.isEmpty());*/
/*List ls3=null;
System.out.println(ls2.isEmpty());*/
/*ls.
ls.indexOf(o)
ls.contains(o)*/
//ls2.add(1);
}
}
//ResponseThread 这个是server的先启动client(服务器)再启动它。上面三个类是client放在一个文件夹中
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import org.apache.log4j.Logger;
/**
* 响应线程,建立ServerSocket响应客户端Socket请求
* @author: sitinspring([email protected])
* @date: 2007-11-16
*/
public class ResponseThread implements Runnable {
private static Logger logger = Logger.getLogger(ResponseThread.class);
// 用于与客户端通信的Socket
private Socket incomingSocket;
public ResponseThread(Socket incomingSocket) {
this.incomingSocket = incomingSocket;
}
public void run() {
try {
try {
// 输入流
InputStream inStream = incomingSocket.getInputStream();
// 输出流
OutputStream outStream = incomingSocket.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream,true);
while (in.hasNextLine()) {
String line = in.nextLine();
logger.info("从客户端获得文字:"+line);
String responseLine=line+" 门朝大海 三河合水万年流";
out.println(responseLine);
logger.info("向客户端送出文字:"+responseLine);
}
} finally {
incomingSocket.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
try {
ServerSocket socket=new ServerSocket(2009);
logger.info("开始监听");
while(true){
Socket incomingSocket=socket.accept();
logger.info("获得来自"+incomingSocket.getInetAddress()+"的请求.");
ResponseThread responseThread=new ResponseThread(incomingSocket);
Thread thread=new Thread(responseThread);
thread.start();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
10. 关于java读取文件操作
一行行读啊
然后每行都用运动员中间的分睁侍隔符 split(" ");
得到的String[] length > 1的是运动员行
=1 的就是国家或者国家编号
然后配合上一行的长度判断
应该可以区分吧 呵呵
Hanrath Hans 52 77.3 k team sports
US
4
比如读到US哪行时 split后length=1 然后再上一行 是运动辩缺员行split后length >1 所以这行是国家名称
读到4 哪行时 split后length=1 然后再上携早辩一行 是国家行split后length =1 所以这行是国家编号