C/C++程序员入门java的一些总结与思考
2013-05-29 01:40
1251 查看
这两天为了完成编译工程的实验使用java进行编程,主要有三点引起了我的
注意。
一、java的类也有public private之分,而且每一个java源文件只能有一个
public类。
二、导入包的格式让我纠结了下,格式是:import 包名.类名|*;
三、java取消了指针这个非常强悍却又容易出错的概念,就这一个实验带给
我的感受就是很不方便。首先介绍点基础知识,java的函数有两种传递方式
,传值和传引用,区别的标志是参数的类型,基础类型(int char 等)->
传值,类类型->传引用。
说完这点基础知识我不得不吐槽下对基础类型只能传值方式传递真的很
不方便,因为如果参数是基础类型的话你是无法将其作为输出的,除非将这
个基础类型包装下(比如将int 类型包装为int[1])。
另一点是java的对象声明全部是引用,比如声明两个对象C、D,然后执
行C=D,则C和D实际上都指向了同一个对象,如果要复制对象则需要采用一
些其它的手段,我目前不是很了解为什么要这样,给我的感觉不是很方便。
由于C/C++用的比较多,我总喜欢拿java与它们对比。将java中的引用
与C++中的引用比较的话,你会发现它们不是全部相同的。在C++中,引用是
显示的,而且必须要初始化,即指明所引用的对象;在java中引用全部是隐
式的,不需要特别的声明,只要声明一个类的对象就会默认为一个引用,而
且这个引用可以不初始化(再此感觉有些别扭,我感觉理解为句柄更让人好
接受)。C++中引用初始化之后是不可以更改所指对象的;而java中可以(
通过对象名进行复制操作)。通过这两点的对比,对一个C/C++程序员来说
将java中的引用理解为指针或是句柄是更易接受的。
由于以上两点引用方面的不同,在使用java中的引用时,尤其是在函数
的参数上使用时会比较容易出错。如果只对一个类进行声明,没有调用构造
函数的话这是一个引用,不是真正的对象,这时可以理解为某个对象的别名。
如果将这个引用传入函数,那么这个参数也是某个对象的别名,在函数中new
一个对象然后让形参指向这个对象。那么形参会也指向这个对象吗?答案是不
会。如果你将引用理解为指针,这个问题其实非常好回答。如果你没有理解为
指针,那么你要注意,这个引用所指的内容是可以变化的,在你对形参赋值的
那一刻,形参和实参已经指向两个不同的对象,对形参所指对象的任何操作都
不会影响到实参所指的对象。
为了更深入的理解下java的引用,不妨想一想在java中链表怎样实现?怎
样实现带头结点和不带头节点的?
本人的一些拙见,希望高人能指出不足
注意。
一、java的类也有public private之分,而且每一个java源文件只能有一个
public类。
二、导入包的格式让我纠结了下,格式是:import 包名.类名|*;
三、java取消了指针这个非常强悍却又容易出错的概念,就这一个实验带给
我的感受就是很不方便。首先介绍点基础知识,java的函数有两种传递方式
,传值和传引用,区别的标志是参数的类型,基础类型(int char 等)->
传值,类类型->传引用。
说完这点基础知识我不得不吐槽下对基础类型只能传值方式传递真的很
不方便,因为如果参数是基础类型的话你是无法将其作为输出的,除非将这
个基础类型包装下(比如将int 类型包装为int[1])。
另一点是java的对象声明全部是引用,比如声明两个对象C、D,然后执
行C=D,则C和D实际上都指向了同一个对象,如果要复制对象则需要采用一
些其它的手段,我目前不是很了解为什么要这样,给我的感觉不是很方便。
由于C/C++用的比较多,我总喜欢拿java与它们对比。将java中的引用
与C++中的引用比较的话,你会发现它们不是全部相同的。在C++中,引用是
显示的,而且必须要初始化,即指明所引用的对象;在java中引用全部是隐
式的,不需要特别的声明,只要声明一个类的对象就会默认为一个引用,而
且这个引用可以不初始化(再此感觉有些别扭,我感觉理解为句柄更让人好
接受)。C++中引用初始化之后是不可以更改所指对象的;而java中可以(
通过对象名进行复制操作)。通过这两点的对比,对一个C/C++程序员来说
将java中的引用理解为指针或是句柄是更易接受的。
由于以上两点引用方面的不同,在使用java中的引用时,尤其是在函数
的参数上使用时会比较容易出错。如果只对一个类进行声明,没有调用构造
函数的话这是一个引用,不是真正的对象,这时可以理解为某个对象的别名。
如果将这个引用传入函数,那么这个参数也是某个对象的别名,在函数中new
一个对象然后让形参指向这个对象。那么形参会也指向这个对象吗?答案是不
会。如果你将引用理解为指针,这个问题其实非常好回答。如果你没有理解为
指针,那么你要注意,这个引用所指的内容是可以变化的,在你对形参赋值的
那一刻,形参和实参已经指向两个不同的对象,对形参所指对象的任何操作都
不会影响到实参所指的对象。
为了更深入的理解下java的引用,不妨想一想在java中链表怎样实现?怎
样实现带头结点和不带头节点的?
本人的一些拙见,希望高人能指出不足
相关文章推荐
- Java的一些入门总结
- C++和Java程序员的Smalltalk入门收藏
- 对于java表达式中存在的陷阱的一些总结(基于java程序员的基本修养)
- 针对java/C#程序员的C++(Qt)入门指南[前言]
- 总结一些考察初级Java程序员技术能力的要点(转)
- C++ STL入门总结及一些忠告
- 关于Java访问权限的一些思考与总结
- 关于JAVA和C++的一些总结
- 老程序员10年技术生涯的思考 从C++到Java
- java的学习总结(1)有关数组引出的一些思考以及一些注意点
- 黑马程序员-JAVA基础入门总结
- 程序员职业思考与规划 —— Java程序员年度总结:浅谈四点心得,也许路走得更远
- 【Java入门第一季】一些总结
- C++基础入门教程(七):一些比较特别的基础语法总结
- 身为一名Java程序员,在面试的时候常常被问到的,下面我总结一些常常别问到的问题。
- 写给java程序员的c++与java实现的一些重要细微差别
- C++程序员进军Android系列:C++跟JAVA的区别总结
- JAVA内存的一些总结(三) 垃圾回收
- Java一些基础概念总结(面试可能会用到)
- JAVA中集合框架一些常用类的总结