java 结果问题头疼好几天了,谁帮我解答下啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 结果问题头疼好几天了,谁帮我解答下啊相关的知识,希望对你有一定的参考价值。

public class Pass
static int j=20;
public static void main(String args[])
int i=10;
Pass p=new Pass();
p.amethod(i);
System.out.println(i);
System.out.println(j);

public void amethod(int x)
x=x*2;
j=j*2;


为什么结果是i=10 j=40 而不是i=20 j=40呢

这个例子想说的是java的值传递和引用传递
i变量在main方法中 amethod方法调用时采取的是值传递(只是传值),所以不改变i的值
j变量时全局变量,在amethod中改变了j的值
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
举例说明如下:
下面举例说明:
传值---传递基本数据类型参数
public class PassValue
static void exchange(int a, int b)//静态方法,交换a,b的值
int temp;
temp = a;
a = b;
b = temp;

public static void main(String[] args)
int i = 10;
int j = 100;
System.out.println("before call: " + "i=" + i + "\t" + "j = " + j);//调用前
exchange(i, j); //值传递,main方法只能调用静态方法
System.out.println("after call: " + "i=" + i + "\t" + "j = " + j);//调用后


运行结果:
before call: i = 10 j = 100
after call: i = 10 j = 100
说明:调用exchange(i, j)时,实际参数i,j分别把值传递给相应的形式参数a,b,在执行方法exchange()时,形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变。
引用传递---对象作为参数
如果在方法中把对象(或数组)作为参数,方法调用时,参数传递的是对象的引用(地址),即在方法调用时,实际参数把对对象的引用(地址)传递给形式参数。这是实际参数与形式参数指向同一个地址,即同一个对象(数组),方法执行时,对形式参数的改变实际上就是对实际参数的改变,这个结果在调用结束后被保留了下来。
class Book
String name;
private folat price;
Book(String n, float ) //构造方法
name = n;
price = p;

static void change(Book a_book, String n, float p) //静态方法,对象作为参数
a_book.name = n;
a_book.price = p;

public void output() //实例方法,输出对象信息
System.out.println("name: " + name + "\t" + "price: " + price);


public class PassAddr
public static void main(String [] args)
Book b = new Book("java2", 32.5f);
System.out.print("before call:\t"); //调用前
b.output();
b.change(b, "c++", 45.5f); //引用传递,传递对象b的引用,修改对象b的值
System.out.print("after call:\t"); //调用后
b.output();


运行结果:
before call: name:java2 price:32.5
after call: name:c++ price:45.5
说明:调用change(b,"c++",45.5f)时,对象b作为实际参数,把引用传递给相应的形式参数a_book,实际上a_book也指向同一个对象,即该对象有两个引用名:b和a_book。在执行方法change()时,对形式参数a_book操作就是对实际参数b的操作。
参考技术A 你的 i 是main方法里面的属性,p.amethod(i)只是把i传递到amethod方法里面,怎么可能改变i原始值呢,j 是类Pass的公用静态属性,你在amethod方法里面对j进行了修改,全局的j肯定改变的啊。如果你把 int i=10 变为类的属性,并且 x=x*2修改为i=x*2 结果就是20 了 参考技术B 因为你 int i=10就为i赋了一个为10的值 ,后面的代码都没有对i的值进行修改,所以他就是10了啊
而 p.amethod(i); 是一个引用类型参数传递,他只会把i的值也就是10传进去,而不会i的值进行修改!
参考技术C 传进amethod里面的是i的值,不是把i传进去了,所以计算结果对i本身无影响 参考技术D j是static,是全局的变量。不用new 一个对象就存在。而且在public void amethod(int x)方法中改变这个值时有效的所以变成40。而i是调用方法传的参,是局部变量,只在方法public void amethod内有效,实际是没有改变i的值,所以是这个结果。

谁帮我想个java的项目经验,写在求职简历上的 !

帮我写个java的项目经验,就是写在简历上的。

内容包括项目名称,项目描述,个人职责等。反正就是能让别人看出来你有java的开发经验,100分送上

以下是我的项目经验:
但是面试的时候面试官都是根据你的简历来问你。
所以你应该对你的简历非常的熟悉。至少要能背。
翔天客户关系管理系统
(CRM)
2008-06—2008-08
项目描述:
管理客户和联系人,并制定行动计划。强大的报表功能,强大的数据导出功能,主要服务对象:总经理、销售部门经理、客户服务经理、销售人员、客户服务人员

技术架构:
B/S模式,WEB层使用成熟的
Struts
框架,配合使用JSTL和HTML页面元素;业务逻辑层使用轻量级的Java
Bean;持久层使用轻量级的O/R
映射框架
Hibernate
DAO实现。
主要模块:
1.
业务模块:包括联系人管理、客户管理、客户服务记录、供应商管理、代理商管理。
2.
报表模块:各类业务报表,有多种样式,可灵活的查询打印;
3.
信息分析模块:营销市场分析、合作关系分析、竞争对手分析、客户分析、渠道分析、服务分析、费用分析、绩效分析;
4.
行动计划模块:行动计划管理、计划季度视图、计划月视图、计划周视图、计划日视图等;
5.
公司管理模块:雇员管理、公司资产、合同管理、产品管理、发票管理、订单管理、发货管理、费用开支、任务管理、会议记录、讲座培训;
6.
个人空间模块
:个人行动计划、个人联系人、家庭物品管理、投资管理等;
常用工具模块:常用工具模块:知识库管理、日历中心、邮件列表、动态添加字段、短信中心、文本编辑
数据导出(支持十几种格式)、数据备份、数据还原。
开发环境:
WindowsXp
+
Tomcat
5.5
+
SQLServer2000
+
Eclipse3.2
+
jdk1.5
责任描述:
主要负责报表功能的实现。
君乐(珠海)有限公司人事管理系统
2008-09—2008-12
项目描述:
本系统主要是利用Struts实现企业资源计划(ERP)中涉及到的人事管理系统,
针对长沙君乐有限公司的内部人事管理开发的,
利用Struts框架来搭建的、易用的、基于MVC模式的WEB应用程序。
该系统提供了对企业人事的管理功能.
技术架构:
JSP/Servlet/JavaBean/Struts/Hibernate等相关技术。
主要模块:
应用本系统,
可以管理人员的增减变动情况,
并可以适时查看到企业人事的具体情况。
主要作用是:
为用户管理不同部门的职工,
方便用户的查询、汇总及分析。
针对不同的用户,
人事管理系统有不同的功能表现。
具体包括的功能有:
职位管理、工作类型管理、部门管理、公司管理、员工管理.
开发环境:
WindowsXp
+
Tomcat
5.5
+
SQLServer2000
+
Eclipse3.2
+
jdk1.5
责任描述:
主要负责业务模块功能的实现。
参考技术A 从事多年大型项目开发工作,
java基础扎实,熟练使用servlet,jsp,jdbc,JavaScript,Ajax,XML等相关技术
,熟练使用struts+hibernate+Spring框架整合开发,熟悉Oracle,
SQL
Server,MySQL数据库应用与开发;能熟练使用多种软件开发软件辅助项目开发.学习能力强,能较快的掌握新知识
,良好的沟通能力和团队精神,工作认真踏实,责任心强
至于具体项目经验~~还是你自己想吧~~
事实上简历的好坏只是一个敲门砖~
面试的时候,你究竟有没有经验~~技术主管一问就知道~
还不如诚实一点~~
这样应聘上的机会更大~
参考技术B 项目经验
项目名称:NetStore网上购书系统
项目描述:该系统分为首页、用户管理、购物车管理、订单管理、退出5个模块。首页模块实现了模糊分页查询、分类分页查询等功能;用户管理模块实现了登录、注册、修改、查看信息等功能;购物车模块实现了查看、购买、修改图书数量等功能;订单模块实现了查看、删除等功能.
责任描述:个人独立完成了整个项目设计,开发,测试等。此系统整体采用MVC模式的Struts框架,持久层使用的是Spring的HibernateTemplate实现,数据源利用的是SpringIoC注入;模型层严格按照JavaBean规范要求;用Struts进行流程的控制,并实现了国际化,JSP用纯标签进行页面显示。为达到用户名唯一的目的用户注册采用Ajax技术进行后台校验。运用SpringIoC的注入对各层解耦,大大提高了程序的可扩展性,易于维护。

开发环境:数据库:MySQL ;
JAVA应用服务器:tomcat 6.0 ;
技术选型:Spring、Struts、Hibernate、JavaBeans、Jsp。
项目总结:通过这个项目使我对MVC模式的认识更加的清楚,看到了SpringIoC在解决程序松散耦合方面的强大之处。JSP页面纯标签开发所带来的方便以及页面的美观。
项目名称:NETCT OSS 电信运营支撑系统
项目描述:该系统后台主要由数据采集系统和数据整合系统提供支持,前台分为用户自服务管理,资费管理,用户管理,管理员管理,帐单管理,帐务管理6个模块。
责任描述:在数据采集系统、数据整合系统中,主要利用J2SE技术对原始计费信息日志进行定时解析,整理成清单,并保存到服务器的数据库t_detail表中,在保存过程中实现对信息的备份管理和日志记录。之后再利用PL/SQL由t_detail表整合出日表t_day_x,月表t_month_x,年表t_year_x三种表。在前台主要完成了用户管理、资费管理等模块,采用Struts 2.0 +Hibernate+Spring架构实现,大大降低了模块间的耦合,并编写了文档。
开发环境:数据库:Oracle;
Java应用服务器:tomcat 6.0;

技术选型:Struts 2.0、Hibernate、Spring、JSP、J2SE、Log4j等。
项目总结:这个项目不仅让我掌握了Struts 2.0的应用,也加深了我对其他技术的理解以及编写文档的好习惯和重要性。
项目名称:BBS在线论坛管理系统
项目描述:该系统主要由首页、用户管理、帖子三个模块构成,首页实现了模糊分页查询、帖子分类、最新帖子、最新留言等功能;用户管理模块有登录、注册、修改信息、查看信息、积分功能等基本功能;帖子模块有发表帖子、留言、查看帖子、修改帖子、删除帖子等基本功能。
责任描述:个人主要完成了用户管理模块。持久层使用的是Hibernate技术实现了登录、注册、修改、查看信息、模糊查看等功能;控制层使用的是Struts的DispatchAction实现页面跳转,JSP页面主要利用JSP标签和Struts标签完成。用户注册和登录都使用form表单来获取数据,并且在页面用JavaScript技术对数据进行初步的校验。
开发环境:数据库:Oracle ;

Java应用服务器:tomcat6.0 ;

技术选型:Struts、Hibernate、JavaBeans、Jsp。
项目总结: 通过这个项目让我认识到团队合作的重要性,面向对象的设计思想以及Hibernate框架的简单性,加强了对JSP标签、Struts标签的认识。
项目名称:BAM银行帐户管理系统
项目描述:该系统是基于C/S架构的帐户管理系统。
责任描述:独立完成了整个系统的开发。采用GUI实现用户界面来采集数据,实现了用户开户、登录、转帐、修改用户信息、查看资产排名等功能;数据库采用MySQL存储信息,DAO层利用JDBC实现。
开发环境:数据库:MySQL ; 技术选型:GUI、JDBC、JavaBeans 。
项目总结:这个显目让我对软件编程产生了更浓厚的兴趣,对JDBC访问数据库的技术使用更熟练以及有了对C/S架构的深入认识。本回答被提问者采纳

以上是关于java 结果问题头疼好几天了,谁帮我解答下啊的主要内容,如果未能解决你的问题,请参考以下文章

谁帮我解释下java中回调函数

谁帮我想个java的项目经验,写在求职简历上的 !

谁帮我总结下java中的知识要点 和易错点 要系统的

谁帮我讲解下Java的数组及下标的范围啊

我用python写了如下程序,可是后来最后出了问题。有谁帮我解决一下??

谁帮我翻译一下“ Setup initialization failed ”是啥意思?