黑马程序员技术交流社区

标题: 技术贴 [打印本页]

作者: 章伟    时间: 2018-7-19 22:45
标题: 技术贴
1.Java 语言的优点
面向对象,平台无关,内存管理,安全性,多线程,Java 是解释型的(java代码编译后不能直接运行,它是解释运行在JVM上的)。
Java是静态语言,什么是静态语言?就是运行时结构不可变的语言(还有C、C++),同时它是静态类型语言,什么是静态类型语言?数据类型在编译期间确定,在编写代码的时候就要确定变量的数据类型。 Java还是强类型语言,什么是强类型语言?一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它永远就是这个数据类型。
2.静态变量和实例变量的区别
在语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之**实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用**。
3.JDK, JRE 和 JVM 的区别
1)Java 开发工具包 (JDK)
Java 开发工具包是 Java 环境的核心组件,并提供编译、调试和运行一个 Java 程序所需的所有工具,可执行文件和二进制文件。包括java基础jar包、虚拟机、javac等可执行文件等。JDK 是一个平台特定的软件,有针对 Windows,Mac 和 Unix 系统的不同的安装包。可以说 JDK 是 JRE 的超集,它包含了 JRE 的 Java 编译器,调试器和核心类。
2)Java 虚拟机(JVM)
JVM 是 Java 编程语言的核心。当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码。JVM 也是平台特定的,并提供核心的 Java 方法,例如内存管理、垃圾回收和安全机制等。JVM 是可定制化的,我们可以通过 Java 选项(java options)定制它,比如配置 JVM 内存的上下界。JVM 之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。这种独立于硬件和操作系统的特性正是 Java 程序可以一次编写多处执行的原因。
3)Java 运行时环境(JRE)
JRE 是 JVM 的实施实现,它提供了运行 Java 程序的平台。JRE 包含了 JVM、Java 二进制文件和其它成功执行程序的类文件。JRE 不包含任何像 Java 编译器、调试器之类的开发工具。如果你只是想要执行 Java 程序,你只需安装 JRE 即可,没有安装 JDK 的必要。
JDK, JRE 和 JVM 的区别
JDK 是用于开发的而 JRE 是用于运行 Java 程序的。
JDK 和 JRE 都包含了 JVM,从而使得我们可以运行 Java 程序。
JVM 是 Java 编程语言的核心并且具有平台独立性。
4.& 和 &&
& 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。
&& 还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式.
& 还可以用作位运算符,当 & 操作符两边的表达式不是 boolean 类型时,& 表示按位与操作.
5.Switch能否用String做参数?
Java 1.7之前不可以,java 1.7后String可以作为参数。
整型(byte,short , int),枚举类型,boolean,字符型(char),字符串都可以





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2