仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 928|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网页设计java中的 by value or by reference

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:46:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。java中的基本范例间接存储在栈中,复合范例接纳援用范例,把援用也存储在栈中,而对应的对象存储在
堆中。因而java中把内存分堆内存和栈内存,在函数中界说的一些基础范例或援用都分派栈内存。
堆内存用来寄存由new创立的对象和数组,或是static(类装载信息)。
在堆平分配的内存,由jvm的gc办理。
程序只能把持援用的保存期,对象的保存期是jvm把持的。

在java使用程序中,当对象的援用是传送办法一个参数时,传送的时该援用的一个正本,(按值传送)。而
非援用自己,挪用办法的对象援用和正本都是指向统一个对象。
对象是按援用传送的,java使用程序中有且唯一一种参数传送机制---值传送
按值传送的语义就是当将一个参数传送给一个函数时,函数承受的是原始值的一个正本。
按援用传送的语义就是当将一个参数传送给一个函数时,函数承受的是原始值的内存地点,而非一个正本。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
StringBuffersb1=newStringBuffer("good");
StringBuffersb2=sb1;
sb2.append("afternoon");
System.out.println("sb1=="+sb1);
}
}
运转的了局:goodafternoon
对象的赋值操纵是传送对象的援用,sb1和sb2都指的是统一个对象,这里的实在也是传值,传的是指针的值。这里的
赋值是指针之间的赋值。
1.援用是一种数据范例,保留了对象在内存中的地点,这类范例即不是我们平常所说的复杂数据范例也不是类实例(对象);
2.分歧的援用大概指向统一个对象,换句话说,一个对象能够有多个援用,即该类范例的变量。

publicclassTest1{
publicvoidfun(Strings){
s="hehe";
}
publicstaticvoidmain(Stringargs[]){
Test1test=newTest1();
Stringstr="haha";
test.fun(str);
System.out.println("str=="+str);
}
}

publicclassTest2{
publicvoidfun(ArrayListal){
al.add("hehe");
al.add("haha");
}
publicstaticvoidmain(Stringargs[]){
Test2test=newTest2();
ArrayListal=newArrayList();
test.fun(al);
Iteratorit=al.iterator();
while(it.hasNext()){
System.out.println(""+(String)it.next());
}
}
}

publicclassTest3{
publicvoidfun(ArrayListal){
ArrayListalA=newArrayList();
alA.add("haha");
alA.add("hehe");
al=alA;
}
publicstaticvoidmain(Stringargs[]){
Test3test=newTest3();
ArrayListal=newArrayList();
test.fun(al);
System.out.println(""+al.size());
}
}

经由过程以上例子能够得出
1、假如参数是不成变对象,如原语范例(i.e.int)大概不成变的对象范例(i.e.BigInteger)
如许的参数是平安的,办法体内的任何举措都不会影响办法外的内容
2、关于可变对象的范例,如ArrayListv
对v挪用add()、remove()等办法会招致办法外的变量的变更
这时候大概会招致代码的不平安
可是假如在办法体内对该参数有从头赋值的操纵,如v=newArrayList()
如许v指向的地点已变更,以后对v的任何操纵也不会影响办法外的内容




其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
admin 该用户已被删除
沙发
发表于 2015-1-21 14:05:18 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
老尸 该用户已被删除
板凳
发表于 2015-1-25 20:47:52 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
若天明 该用户已被删除
地板
发表于 2015-1-29 07:53:28 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
冷月葬花魂 该用户已被删除
5#
发表于 2015-1-30 05:38:04 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
再见西城 该用户已被删除
6#
发表于 2015-2-2 22:23:47 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
因胸联盟 该用户已被删除
7#
发表于 2015-2-6 17:08:40 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小魔女 该用户已被删除
8#
发表于 2015-2-7 17:58:20 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
分手快乐 该用户已被删除
9#
发表于 2015-2-14 11:14:18 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
柔情似水 该用户已被删除
10#
发表于 2015-2-20 06:05:40 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
11#
发表于 2015-3-6 16:34:56 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
深爱那片海 该用户已被删除
12#
发表于 2015-3-8 14:13:39 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
乐观 该用户已被删除
13#
 楼主| 发表于 2015-3-15 22:07:30 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
兰色精灵 该用户已被删除
14#
发表于 2015-3-19 23:43:07 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
飘飘悠悠 该用户已被删除
15#
发表于 2015-3-20 13:32:32 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
山那边是海 该用户已被删除
16#
发表于 2015-3-23 17:51:24 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
飘灵儿 该用户已被删除
17#
发表于 2015-4-4 03:42:15 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小妖女 该用户已被删除
18#
发表于 2015-4-5 11:00:19 | 只看该作者
是一种使用者不需花费很多时间学习的语言
谁可相欹 该用户已被删除
19#
发表于 2015-4-6 00:26:09 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 23:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表