当前位置: 首页 > wzjs >正文

一小时学做网站北京网站系统开发

一小时学做网站,北京网站系统开发,响应式网站导航栏模板,高端品牌网站建设策略在 Java 中,数据类型分为两大类:基本类型(Primitive Types) 和 引用类型(Reference Types)。它们的存储方式和行为完全不同。 1. 基本类型 Java 有 8 种基本数据类型,它们直接存储值&#xff…

在 Java 中,数据类型分为两大类:基本类型(Primitive Types) 和 引用类型(Reference Types)。它们的存储方式和行为完全不同。

1. 基本类型

Java 有 8 种基本数据类型,它们直接存储值(而不是引用),存放在 栈内存(Stack) 中:
✅ 直接存储值,而不是引用。
✅ 赋值时是值拷贝修改一个变量不会影响另一个!!!!!!

int a = 10;
int b = a;  // b 是 a 的副本
b = 20;     // 修改 b 不会影响 a
System.out.println(a); // 10
System.out.println(b); // 20

2.引用类型

除了基本类型,其他所有类型都是引用类型,包括:
1.类(String、ArrayList、自定义类等)
2.接口
3.数组(int[]、String[] 等)
4.枚举(enum)

✅ 变量存储的是对象的引用(内存地址),而不是对象本身。
✅ 对象本身存储在堆内存(Heap),变量只是指向它。
✅ 赋值(=)时是引用拷贝,修改一个变量的值会影响另一个(因为它们指向同一个对象)

List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);List<Integer> list2 = list1;  // list2 和 list1 指向堆中同一个对象
list1.clear();                // 修改 list1 会影响 list2System.out.println(list1); // []
System.out.println(list2); // []

3.引用类型的应用

因为Java的List是引用类型,所以可以直接取出子List直接删除对应值,母mBeanList 中的值也是同步对应值也会删除!

private List<List<Bean>> mBeanList = new ArrayList<>();;
List<Bean> beans = mBeanList.get(Position);
beans.remove(tean);这时候mBeanList中也没有tean!!!!!!

4.浅拷贝和深拷贝

浅拷贝(Shallow Copy)只是=进行赋值!!!!!!

只复制对象本身
新对象和原对象共享内部引用(如 List、Array、自定义类等)。

class Person {String name;List<String> hobbies;public Person(String name, List<String> hobbies) {this.name = name;this.hobbies = hobbies;}
}// 原始对象
List<String> hobbies = new ArrayList<>(Arrays.asList("Reading", "Gaming"));
Person person1 = new Person("Alice", hobbies);// 浅拷贝(直接赋值)
Person person2 = person1;
person2.name = "Bob";          // 修改基本类型(不影响 person1)
person2.hobbies.add("Music");  // 修改引用类型(会影响 person1)System.out.println(person1.hobbies); // [Reading, Gaming, Music](被修改)
System.out.println(person2.hobbies); // [Reading, Gaming, Music]

关键点:
person2 = person1 是浅拷贝,person2 和 person1 共享 hobbies。 修改 person2.hobbies 会影响 person1.hobbies。

深拷贝(Deep Copy)就是创建了个新对象!!!!!!!

完全复制对象及其内部的所有引用类型数据,生成一个 完全独立的新对象!!!
新对象和原对象不共享任何引用。

class Person implements Cloneable {String name;List<String> hobbies;public Person(String name, List<String> hobbies) {this.name = name;this.hobbies = new ArrayList<>(hobbies); // 深拷贝 hobbies}// 深拷贝方法@Overridepublic Person clone() {return new Person(this.name, new ArrayList<>(this.hobbies));}
}// 原始对象
List<String> hobbies = new ArrayList<>(Arrays.asList("Reading", "Gaming"));
Person person1 = new Person("Alice", hobbies);// 深拷贝
Person person2 = person1.clone();
person2.name = "Bob";          // 修改基本类型(不影响 person1)
person2.hobbies.add("Music");  // 修改引用类型(不影响 person1)System.out.println(person1.hobbies); // [Reading, Gaming](未被修改)
System.out.println(person2.hobbies); // [Reading, Gaming, Music]

关键点:
clone() 方法创建了一个新对象,并 深拷贝了 hobbies。修改 person2.hobbies 不会影响 person1.hobbies。

http://www.dtcms.com/wzjs/781825.html

相关文章:

  • 广西柳州网站建设价格张家界做网站美工公司
  • 网站机房建设有助于python做网站的好处
  • 太原集团网站建设太平洋在线企业建站系统
  • 网站开发量计算wordpress自定义后台菜单
  • 手机与pc网站同步模板wordpress 换语言包
  • 怎样创建自己公司的网站ftp里找到的index文件查看网站建设中
  • 风格网站建设潍坊网站建设小程序制作
  • 怎么查一个网站是否备案怎么建网站手机版
  • 盐城网站建设官网本地搭建asp网站
  • 怎么做记步数的程序到网站衡阳市城市建设投资有限公司网站
  • 长春网站seo报价网络维护这个工作好吗
  • 济南做网站得多少钱黑龙江省住建厅官网
  • 江苏建设网站公司网页设计与制作论文题目
  • 江宁住房和城乡建设局网站网络解决方案公司
  • 微网站和app的区别网站建设 源代码归属
  • python做网站商城开发简单动画制作软件
  • 网站上如何做跳转页面百度seo推广怎么做
  • 广州网站设计易企建站你那个没封的网站怎么做啊
  • 芜湖做网站福建建设执业资格官网
  • 山东济宁省建设厅官方网站北京网站优化公司哪家好
  • 怎么免费从网站上做宣传长沙0731手机平台网报价
  • 排名好的成都网站建设wordpress页面不要侧边栏
  • 做手机版网站和做app差别西安建网站公司哪家好
  • 做公众号推送的网站中国核工业第二二建设有限公司待遇
  • 北京南站到北京西站小米开放平台
  • 北京网站建设 招聘信息郑州网站建设专家
  • 九江网站建设推广oa办公系统怎么注册
  • 有趣的网站知乎网站怎么优化到首页
  • 什么都不会怎么做网站主网站下建立子目录站
  • 西安公司网站如何建设公司网站不续费