Java初学笔记(一)变量及其内存机制
来源:互联网 发布:在线订单系统 源码 编辑:程序博客网 时间:2024/05/19 18:39
小菜鸟我最近开始决定认真学一学Java基础知识。
大学的时候开了这门课程,不过是选修课。而且当时对C/C++的执着导致我天真的完全对Java“鄙视”与忽略。现在看起来是多么天真,曾经和很多浮躁、无知的人一起鄙视用Java的程序员,然后才知道自己是多么无知,以至于忽略了近代几乎最伟大最有争议的、却集中了人类在计算机编程语言方面无与伦比的智慧结晶——Java语言。
而JAVA的创始公司 sun公司,无疑是公认的一流技术三流营销。对于该问题的讨论已经太多,在此不多复述。
Java 对于变量最大的特点就是 安全使用、垃圾收集。
对于写惯了C/C++的程序员来说,首先是极其不习惯的一堆new(找不到delete与其对应……),然后是用起来惴惴不安(因为不需要考虑释放内存。。)
其实从根本上来理解Java,会发现这个设计真的很巧妙。(呵呵,不过我也承认,该技术造成了编程难度下降导致C/C++程序员就业空间大幅度缩水)
与传统的C/C++虽然语法很像,但是变量在理解上还是有许多区别的。
如直接 new出来的对象实例,比如 ClassX obj = new ClassX() ,其数据是分配在堆上。而obj只作为其一个交互的句柄,不代表任何的内存实例。假设在C++中 ClassX obj2=obj,则会调用类的默认拷贝构造函数,造成一次具体内容的拷贝。但在Java中只是令另一个句柄obj2指向了句柄obj指向的内容。
而释放该堆内存的机制则是 垃圾回收器 自动检测,当该堆内容“不再被任何调用”后释放。我觉得是编译器(或者预编译器)在处理过程中就有类似“向后追溯”调用记录的统计来实现这个功能 —— 真是简单而又天才的想法。
理解了这层概念之后,我也可以放心的在Java里new了。
- Java初学笔记(一)变量及其内存机制
- java初学笔记(一)
- 初学JAVA笔记(一)
- 变量数据类型 | java初学笔记
- 初学Java的类加载与反射机制(一)
- Java 内存回收机制(一)
- Java初学(一)
- 初学java(一)
- JAVA初学(一)
- 【Java初学笔记(一)】Java的历史和版本
- java设计模式初学笔记(一)Iterator
- 初学Python笔记(一)
- 初学MySQL笔记(一)
- jQuery 初学笔记(一)
- Python初学笔记(一)
- Linux初学笔记(一)
- JQuery初学笔记(一)
- Matlab初学笔记(一)
- 底层的技术挺重要的。
- 一年的总结 ——序
- 避免缓加载时因违反惯例导致的空引用!
- STL for_each,find_if用法
- 3.11如何使视图居中?
- Java初学笔记(一)变量及其内存机制
- 关于Dr.com上网客户端常见问题合集
- servlet实现文件下载
- 软件中的易用性设计及测试(一)
- wxWidgets界面绘制一点总结
- 伟大的程序员是怎样炼成的?
- this 指针
- 打印一个图形
- C,C++ 指针数组与数组指针