Java 类和成员的访问控制

JAVA 和 C/C++的区别

1.运行过程的不同。 JAVA 源程序经过编译器编译成字节码文件, 然后由 JVM解释执行。 而 C++/C 经过编译、 链接后生成可执行的二进制代码。 因此 C/C++的执行速度比 JAVA 快。
2.跨平台性。 JAVA 可以跨平台, 而 C++/C 不可以跨平台。
3.JAVA 没有指针, C++/C 有指针。
4.JAVA 不支持多重继承, 但是可以同时实现多个接口来达到类似的目的。
C++支持多重继承。
5.JAVA 不需要对内存进行管理, 有垃圾回收机制。 C/C++需要对内存进行显
示的管理。
6.JAVA 不支持运算符重载。 C/C++支持运算符重载。
7.JAVA 中每个数据类型在不同的平台上所占字节数固定的, 而 C/C++则不
然。

JAVA 的优点

1.跨平台。 JAVA 语言可以“一次编译, 到处运行” 。 跨平台的含义: 无论是在 windows 平台还是在 Linux 平台对 Java 程序进行编译, 编译后的程序都可以在其他平台上运行。 编译器会把 JAVA 代码编译成字节码文件, 然后在 JVM 上解释执行, 由于字节码与平台无关, 因此, JAVA 可以很好地跨平台执行。

2.垃圾回收机制。

3.去掉了 C++中难以理解的东西, 比如指针和运算符重载。

4.具有较好的安全性。 比如 JAVA 有数组边界检测, 但是 C/C++里面没有。

1.同一个.java 文件中是否可以有多个 main()方法?

每个类中都可以定义 main()方法, 但只有用 public 修饰的类且与文件名相
同的类中的 main()方法才可以作为整个程序的入口方法。

2.JAVA 中的类和成员的访问控制

类的访问控制: 可以用 public 和不含 public 的来修饰
成员的访问控制:例如有一个类1,如果定义了另一个类2,在类2中创建了类1的实例,如果此时需要在类2中用类1的成员变量或方法,(一般通过实例对象.属性 实例对象.成员方法)那么便是访问了类1的成员。

访问修饰符同一个类同一个包不同的包的子类不同包的非子类
public****
protected***
默认**
private*
3.final finally finalize 的区别。

final 可以用来修饰类, 变量和方法
1.当一个类被 final 修饰的时候, 表示该类不能被继承。 类中方法默认被
final 修饰。
2.当 final 修饰基本数据类型的变量时, 表示该值在被初始化后不能更改
当 final 修饰引用类型的变量时, 表示该引用在初始化之后不能再指向
其他的对象。
注意: final 修饰的变量必须被初始化。 可以在定义的时候初始化, 也可
以在构造函数中进行初始化。
3.当 final 修饰方法时, 表示这个方法不能被子类重写

finally 的用法
finally 是异常处理的一部分, 只能用在 try-catch 语句中, 表示这段代码
一般情况下, 一定会执行。 经常用在需要释放资源的情况下。

finalize 的用法:
它是 Object 类的一个方法, 在垃圾回收器执行时会调用被回收对象的
finalize()方法。

4.泛型的好处?

(1)泛型的本质就是“参数化类型”,或者说可以将类型当作参数传递给一个类或者是方法。

(2)在编译的时候检查类型安全, 确保只能把正确类型的对象放入集合中; 消除强制类型转换
创建集合时就指定集合元素的数据类型, 该集合只能保存其指定类型的元素,避免使用强制类型转换

(3)泛型擦除
Java 编译器生成的字节码是不包含泛型信息的, 泛型类型信息将在编译处理时被擦除, 这个过程即类型擦除。 类型擦除可以简单的理解为将泛型 java 代码转换为普通 java 代码, 只不过编译器更直接点, 将泛型 java 代码直接转换成普通java 字节码。

类型擦除的主要过程如下:
一.将所有的泛型参数用其最左边界(最顶级的父类型) 类型替换。
二.移除所有的类型参数

5.你知道的开源软件有哪些?

1.JDK
2.Eclipse
3.Tomcat
4.MySQL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值