初学java 的青年有几个疑问!!!!
问题有点多哈 如果你觉得有些问题和极品 可以跳过那个问题
学java 快一个星期了 有一些疑问 再不问怕忘记
1.关于类的猜测:看看我的猜测对不对
以前学的事C语言哈,变量什么的都不自带方法的。接触到java的类以后 发现类的对象可以自带方法 觉得好神奇,它是怎么实现的呢?基本数据类 的变量可以储存在内存中的某个地方 然后系统根据它的数据类型访问它。 而类的话 它有成员变量和成员方法, 难道方法(函数)就是一段代码也和变量一样储存在内存中 而且不是在代码区 而是和该类的变量挨在一起????
类生成一个实例对象以后 是不是在内存的某个地方开辟一块地方 储放对象的成员变量和方法?
但是这样的话,好像挺费内存的 如果类生成很多实例对象的话 编译器会不会这么实现:生成一个类的实例对象时 只开辟一块内存储存对象的成员变量 而所有的该类的对象都共享一段内存区域,这个区域放着该类的成员方法????
2.==操作符合equals()方法在很多情况下作用是一样的。原理也是一样的。但是某些库中类覆盖类equals()使得equals比较对象时 比较的是引用类型变量所引用的对象的值是否相等。不必比较他们是不是同一个对象。
我理解的对不?
3、java中对应C语言中 sizeof()的操作符或方法是什么?
4.Object类是java中一切类的父类????
5.main函数必须寄宿于某个类,但它又不是某个类的成员函数,它不属于任何一个类 它所在的类也无需实例化 是这样的不???
6.java中没有像C语言中的结构体???那处理一定格式的数据的时候不是很不方便?????
比如我要从文件中输入一批学生的信息 信息在文件中的组织方法是这样的
姓名 年龄 性别 学号
如果是用C语言的话可以定义一个结构体:
typedef struct{
char name[20];
int age;
char sex;
int id;
}stu;
这样就很直观的从文件读入数据了 !在java中没有结构体 该怎么处理这中数据呢???也许是我还没把java语法看完
7.用java其实也可以写出完全和C一样面向过程的代码 对不???
........
再求一些建议 :
感觉《java核心技术 卷一》好厚,那么还有卷二 是不是把这两本都看完了才算个门
[解决办法]
1,类的方法就相当于一个功能。
基本数据类型的变量,不管是成员变量还是局部变量还有方法一般都在栈内存中进行使用。
而当它们使用完就会自动弹栈的。
而类生成的实例对象,只要是new出来的都存放在堆内存中。
不是,类的成员方法也在栈内存中栈内存中进行使用,使用完就释放掉了。
[解决办法]
1 类的方法保存在和变量不同的区域内 被所以类对象共享 每个类编译器都是生成一定的元数据来描述方法变量等信息的。
2 恩
3 木有 java的基本类型的大小是固定 内存管理有gc 不需要sizeof
4 是
5 mian是静态的
6 java对象全是引用的语意的 可以用class来实现struct的效果
7
[解决办法]
4,是
5,嗯 它是静态的,所以类一加载就出现了静态方法区中
6,没学过C的伤不起啊
7,学习java别用面向过程的思想去考虑问题哦
[解决办法]
你把main所在的类实例化后,可以调用该类中的其他方法,而main方法在你运行的时候,虚拟机会调用main方法的。