失效链接处理 |
最新版JAVA程序员面试题 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.1. JDK JRE JVM 的区别
1.1.1. Java 开发工具包 (JDK)
Java 开发工具包是 Java 环境的核心组件,并提供编译、调试和运行一个 Java 程序所需的所
有工具,可执行文件和二进制文件。JDK 是一个平台特定的软件,有针对 Windows,Mac 和 Unix
系统的不同的安装包。可以说 JDK 是 JRE 的超集,它包含了 JRE 的 Java 编译器,调试器和核心
类。目前 JDK 的版本号是 1.7,也被称为 Java 7。
JDK 有以下三种版本:
J2SE,standard edition,标准版,是我们通常用的一个版本
J2EE,enterpsise edtion,企业版,使用这种 JDK 开发 J2EE 应用程序
J2ME,micro edtion,主要用于移动设备、嵌入式设备上的 java 应用程序
1.1.2. Java 虚拟机(JVM)
JVM 是 Java 编程语言的核心。当我们运行一个程序时,JVM 负责将字节码转换为特定机器
代码。JVM 也是平台特定的,并提供核心的 Java 方法,例如内存管理、垃圾回收和安全机制等。
JVM 是可定制化的,我们可以通过 Java 选项(java options)定制它,比如配置 JVM 内存的上下
界。JVM 之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。
这种独立于硬件和操作系统的特性正是 Java 程序可以一次编写多处执行的原因。
1.1.3. Java 运行时环境(JRE)
JRE 是 JVM 的实施实现,它提供了运行 Java 程序的平台。JRE 包含了 JVM、Java 二进制文
件和其它成功执行程序的类文件。JRE 不包含任何像 Java 编译器、调试器之类的开发工具。如
果你只是想要执行 Java 程序,你只需安装 JRE 即可,没有安装 JDK 的必要。
1.1.4. JDK, JRE 和 JVM 的区别
JDK 是用于开发的而 JRE 是用于运行 Java 程序的。
JDK 和 JRE 都包含了 JVM,从而使得我们可以运行 Java 程序。
JVM 是 Java 编程语言的核心并且具有平台独立性。
1.2. Jdk1.7 新特性
1.自动资源管理
Java 中某些资源是需要手动关闭的,如 InputStream,Writes,Sockets,Sql classes 等。这
个新的语言特性允许 try 语句本身申请更多的资源,
这些资源作用于 try 代码块,并自动关闭。
2.新增一些取环境信息的工具方法
更多 java golang python 课程请访问 美河学习在线 www.eimhe.com
System.getJavaHomeDir() // JRE 的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动 java 进程时所在的目录
3.两个 char 间的 equals
4.switch 中使用 string
1.3. Jdk1.8 新特性
1.函数式接口
函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数
式 接 口 是 只 包 含 一 个 方 法 的 接 口 。 比 如 Java 标 准 库 中 的 java.lang.Runnable 和
java.util.Comparator 都是典型的函数式接口。java 8 提供 @FunctionalInterface 作为注解,这个
注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口),虚拟机会自动
判断,但 最好在接口上使用注解@FunctionalInterface 进行声明,以免团队的其他人员错误地
往接口中添加新的方法。
2.Lambda 语法
包含三个部分
1.一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
2.一个箭头符号:->
3.方法体,可以是表达式和代码块,方法体函数式接口里面方法的实现,如果是代码块,则
必须用{}来包裹起来,且需要一个 return 返回值,但有个例外,若函数式接口里面方法返回值
是 void,则无需{}
(parameters) -> expression 或者 (parameters) -> { statements; }
lambda 表达式语法代码简洁,能简化集合上数据的多线程或者多核的处理,提供更快的集合处
理速度
3.两个 char 间的 equals
4.switch 中使用 string
1.4. JDK 常用的包 ◆java.lang: 这个是系统的基础类,比如 String、Math、Integer、System 和 Thread,提供常
用功能。在 java.lang 包中还有一个子包:java.lang.reflect 用于实现 java 类...
◆java.io: 这里面是所有输入输出有关的类,比如文件操作等
◆java.net: 这里面是与网络有关的类,比如 URL,URLConnection 等。
◆java.util : 这个是系统辅助类,特别是集合类 Collection,List,Map 等。
◆java.sql: 这个是数据库操作的类,Connection, Statememt,ResultSet 等
|