java中的“指针”
java中的“指针”
通常我们说java中没有指针,但是java中的“引用”就相当于指针,只是不称为指针而已。
错误例子
public List<Cluster> getClusters() {
        int num = 3;
        String[] names = {"g1","g2","g3"};
        int[] firstGroupIds = {1,101,201};
        int[] lastGroupIds = {100,200,300}
        List<Cluster> list = new ArrayList<Cluster>();
        Cluster c = new Cluster();
        for (int i = 0; i < num; i++) {
            c.setClusterId(i + 1);
            c.setClusterName(names[i]);
            c.setFirstGroupId(firstGroupIds[i]);
            c.setLastGroupId(lastGroupIds[i]);
            list.add(c);
        }
        return list;
    }
结果list中并没有入预期所料,而是为如下值:
list(0)=list(1)=list(2)={"g3",201,300}
改正
public List<Cluster> getClusters() {
        int num = 3;
        String[] names = {"g1","g2","g3"};
        int[] firstGroupIds = {1,101,201};
        int[] lastGroupIds = {100,200,300}
        List<Cluster> list = new ArrayList<Cluster>();
        for (int i = 0; i < num; i++) {
            Cluster c = new Cluster();
            c.setClusterId(i + 1);
            c.setClusterName(names[i]);
            c.setFirstGroupId(firstGroupIds[i]);
            c.setLastGroupId(lastGroupIds[i]);
            list.add(c);
        }
        return list;
    }
list(0)={"g1",1,100}
list(1)={"g2",101,200}
list(2)={"g3",201,300}
java中的“指针”的更多相关文章
- 【实战Java高并发程序设计 1】Java中的指针:Unsafe类
		
是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...
 - JAVA中的指针
		
不同于CPP,JAVA中不需要程序员对指针进行操作.不过,这不代表JAVA没有指针,事实上,JAVA的指针操作都被底层代码封装了.笔者在初学Java时,虽然就了解了形参,实参,StringBuffer ...
 - 4.4.3 Java中的指针:Unsafe类
		
java多线程编程的无锁CAS底层都是通过 Unsafe进行操作的:源码如下 public final boolean compareAndSet(int expect, int update) { ...
 - Java中到底有没有指针;同时注意引用和指针的区别
		
Java中引用的作用类似于指针,但是有区别:() (1) 指针必然指向一个内存地址,如果你定义的时候不指定,就会乱指(很可能造成安全隐患)但是引用定义出来后默认指向为空. (2) 指针可 ...
 - java中传值及引伸深度克隆的思考(说白了Java只能传递对象指针)
		
java中传值及引伸深度克隆的思考 大家都知道java中没有指针.难道java真的没有指针吗?句柄是什么?变量地址在哪里?没有地址的话简直不可想象! java中内存的分配方式有两种,一种是在堆中分配, ...
 - 使用java实现单链表----(java中的引用就是指针)
		
//一直以为java中没有指针,其实java的引用就是指针,只不过堆栈中的引用储存了在堆中的地址,可以看做java中的指针.public class sibgleLink<E> { // ...
 - Java中堆内存和栈内存详解2
		
Java中堆内存和栈内存详解 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...
 - Java中的堆栈区别
		
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...
 - java中内存分配策略及堆和栈的比较
		
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
 
随机推荐
- serverlet声明周期
			
servlet生命周期 被创建:默认情况下,当servlet第一次被访问时,由服务器创建该对象,调用init()初始化方法,一个servlet只会被创建一次. 可以配置servlet让其他服务器启动时 ...
 - Oracle系统权限与对象权限
			
oracle权限分为: 系统权限: 允许用户执行特定的数据库动作,如创建表.创建索引.连接实例等. 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列.执行存储过程等. 系统权限 超过一 ...
 - CNN中卷积层 池化层反向传播
			
参考:https://blog.csdn.net/kyang624823/article/details/78633897 卷积层 池化层反向传播: 1,CNN的前向传播 a)对于卷积层,卷积核与输入 ...
 - Docker——四种网络模式
			
docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:  bridge模式:使用–net =bridge指定,默认设置:  host模式 ...
 - 交替方向乘子法(ADMM)的原理和流程的白话总结
			
交替方向乘子法(ADMM)的原理和流程的白话总结 2018年08月27日 14:26:42 qauchangqingwei 阅读数 19925更多 分类专栏: 图像处理 作者:大大大的v链接:ht ...
 - 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
			
今天安装了一下jenkins,在初始化安装插件时出现" No such plugin: cloudbees-folder"错误,根据网上的教程: 1.打开链接"http: ...
 - JS基础_打印99乘法表
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - ES6入门五:箭头函数、函数与ES6新语法
			
箭头函数的基本用法与特点 函数与ES6新语法 一.箭头函数的基本用法与特点 声明箭头函数采用声明变量和常量的关键字:var.let.const 箭头函数的参数:没有参数用"()"空 ...
 - winfrom---Window 消息大全
			
最近正在捣腾winfrom,遇到了关于window消息这一块的东西,正好在网上看到“微wx笑”的总结. 原文地址:http://blog.csdn.net/testcs_dn/article/deta ...
 - MySQL 5.7.18 zip版本的安装使用方法
			
转自:https://www.cnblogs.com/nepulgh/p/7152618.html MySQL 5.7.18 zip版本的安装使用方法 这个版本的MySQL不像那种点击就可以立即安装, ...