1.Java 语⾔有哪些特点?
平台无关性(Java虚拟机),面向对象(封装,继承,多态),可靠性,安全性,支持多线程,支持网络编程,编译与解释并存
2.关于
JVM JDK
和
JRE
最详细通俗的解答
JDK:Java开发环境,它拥有JRE,还有编译器javac和工具javadoc,jdb,能创建编译程序。JRE:Java运行环境,运行已经编译的程序所需内容的集合,包含Java虚拟机,Java类库和其他基础构件,但不能创建Java程序实列:JSP 部署web,jsp要转换为javaservlet需要jdk编译,所有只运行可能也需要JDKJVM:运行Java字节码的虚拟机,使用相同的字节码会得到相同结果。
3.Java 和 C++的区别?
都是面向对象的,又拥有封装,继承,多态。但在继承上有区别,C++可以多重继承,Java不可以多继承。Java不提供指针来直接访问内存。Java有自动的内存管理机制(gc),不需要手动释放内存。在C语言中,字符串都会有一个额外的'\0'表示结束,在Java中没有结束符这样的概念。(知识小提示:Java没有结束符的原因,Java一切都可看成对象,char 数组中有length属性,string中有length()方法)
4.为什么说
Java
语⾔
“
编译与解释并存
”
?
编译型语言是编译器针对特定的操作系统将源码一次性翻译成可以被平台执行的机器码,C++就是很好的例子,双击C++程序是可以直接执行的。解释性语言是通过解释器将代码一行行解释成机器码然后执行。Java拥有编译是说通过编译器(javac)将java文件编译.class文件,这些文件是不能直接运行的,通过JVM中的解释器解释执行。5.字符常量与字符串常量的区别?形式上:'A'和"A"含义上:字符型相当于一个ACII值,可以参加表达式运算,字符串代表了地址内存大小上:char 2字节,String 若干字节
5.深拷贝与浅拷贝
浅拷贝是对基本数据类型进行值传递,对引用数据类型被拷贝的对象与拷贝的对象指向同一个地址。深拷贝是对引用数据类型创建新对象并复制内容。
6.面向对象和面向过程的区别
面向对象易维护,易复用,易扩展等,这些优点主要是基于封装,继承,多态面向过程,应用与底层的开发,单片机,Linux等总结,使用C做项目(类似五子棋,管理系统),可能所有的代码全部在一个文件里,让代码有效复用的手段是由将片段代码变成函数,这样的话还是繁琐,将项目的一部分代码抽象成类,类之间处理使用继承,多态等,代码实现逻辑不变,这样易于理解,扩展。但对于底层的东西,使用面向对象可能是一个负担。
7.
构造器
Constructor
是否可被
override?
不能被重写,可以被重载