Java基础——java的引用问题
1.
public class EasyError1 {
class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public List<Student> getList(List<String> names){
List<Student> studentList=new ArrayList<Student>();
Student student=new Student();
for(String str:names){
student.setName(str);
studentList.add(student);
}
return studentList;
}
public static void main(String[] args) {
EasyError1 easyError1=new EasyError1();
List<String> list=new ArrayList<String>();
list.add("pitt");
list.add("tom");
list.add("weiling");
List<Student> studentList= easyError1.getList(list);
for(Student student:studentList){
System.out.println(student.getName());
}
}
}
/******************************************************
* the results in console:
* weiling
* weiling
* weiling
*因为Student student=new Student();写在了循环的外面,在循环里每次都把名字放在了一块堆内存里,并把引用
*存放在了list中,只是一个引用,而不是三个不同的引用存放在list中,最后,这个引用只想向了“
相关文档:
AjaxSwing是一个专为Java Swing应用 程序打造的Web开发平台。使用AjaxSwing,可以使为Java桌面应用程序转为Web应用。 AjaxSwing可以被看作是一个Java到HTML的转换器,其程序可以在运行时创建被浏览器解析的HTML和 JavaScript。另外,使用AjaxSwing无需对程序和业务逻辑进行大幅修改修改,它允许开发者使用标准Swing组件来实 ......
以下是对JAVA异常的继承机制的一些总结。
1. RuntimeException与Exception, Error不同点: 当方法体中抛出非RuntimeException(及其子类)时,方法名必须声明抛出的异常;但是当方法体中抛出RuntimeException(包括RuntimeException子类)时,方法名不必声明该可能被抛出的异常,即使声明了,JAVA程序在某个调用的地方,也 ......
1.Proxy
模式
代理模式支持将某些操作从实际的对象中分离出来,通过它的代理类提供处理。这样便于修改和管理这些特定的操作。
下面示例一个代理模式的实现。
<<interface>>Subject.java
package
com.zj.proxy;
public
interface
Subject {
void
operation1();
......
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的Java程序员要入门,随便读什么入门书 ......
一、国际化和 Java 编程语言
和大多数使用其它语言的程序员不同,Java
程序员是大量构建在 JDK 中提供 I18N 支持的标准代码的受益者。大部分代码最初来自 IBM 的 Taligent 子公司(自从合并进
IBM 以后),代表了许多人年的工作成果,比大多数公司独自在其产品中提供的代码要切实可行得多。
这些
代码 ......