1.解释JDK,以及JDK主要包含的内容
JDK-Java Development Kit JAVA开发工具包,主要为JAVA应用程序提供了基本的开发和运行环境。
JDK 主要包含:
jre--JAVA运行环境
lib--JDK 类库:最基础的JAVA类以及各种实用类。java.lang,java.io,java.util,java.sql等包中的类都位于JDK类库中.
bin开发工具:都是可执行程序 例如 javac.exe 编译工具,java.exe运行工具,javadoc.exe 生成JavaDoc文档的工具,jar.exe 打包工具
2.JDK 和 JRE ,JVM的区别
JDK,java开发工具包,如上解释.
JVM,JAVA虚拟机,是整个JAVA实现跨平台的最核心的部分,所有的JAVA源程序需要经过编译成为 .class的字节码文件,JVM加载字节码文件执行JAVA程序.本地操作系统不会直接执行.class文件,jvm与操作系统进行交互,将程序解释给本地操作系统.
一次编译,到处运行!
JRE,java运行时环境 java runtime environment.只有JVM还不能完全执行class文件,在解释.class文件时JVM需要调用解释所需要的类库lib. jre目录下的bin和lib两个文件夹.bin目录中的就是jvm,lib中就是jvm工作所需要的类库.jvm和lib一起就可以认为是jre.jre里有运行.class的java.exe.
3.J2SE,J2EE,J2ME概念的区别
三者是JAVA针对不同的使用来提供不同的服务,也就是提供不同类型的类库。
针对普通PC应用的J2SE java 2 standard edition,JAVA SE
针对企业级应用的J2EE java 2 enterprise edition,JAVA EE
针对嵌入式设备以及消费类电器的J2ME java 2 micro edition
对于初学者 都是从JAVA EE 即J2SE开始学习.
J2EE 是在J2SE的基础上添加了一系列的企业级应用编程接口,J2EE中包含有很多的几乎是,比如 JDBC, JNDI, EJB, RMI, JSP, Servlet, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF
4.举例说明JDK中提供的JAVA基本包
java.lang包-包含Thread线程类,Exception异常类,系统类System,整数类Integer,字符串类String 此包自动导入
java.awt包 -抽象窗口工具箱包,Abstract Window Toolkit,用于构建GUI界面的类及绘图类
java.io,输入输出流,文件操作,IO流处理等的一些类
java.util,实用类工具包 日期类Date,集合框架接口,实现类与工具类等等
java.net,TCP/IP网络协议,Socket类及与URL相关的类,主要用于网络编程
java.sql,数据库编程的接口与类的包
java.rmi,编写网络程序的包 Remote Method Invocation
还有类似于
javax.* 扩展包 ,是对一些基本包的扩展 例如 javax.sql,javax.swing,以及编写声音的javax.sound包等等.
5.JAVA 包的作用以及命名规范
作用:
1)区分名字相同的类
2)可以对访问权限进行控制 例如使用访问修饰符,不同包的类互相访问时有权限约束
3)有助于划分和组织JAVA应用中的各个类
例如 GuoGuoDao公司开发了一个BookStore网站系统,在这个系统中一部分类位于客户端界面处理,一部分位于服务器端业务逻辑处理,还有其它公共类工具类.
com.guoguodao.bookstore.client-包中的类用于构建客户端界面
com.guoguodao.bookstore.server-包中的类用于处理业务逻辑
com.guoguodao.bookstore.common-包中类是一些实用工具类
对于位于服务器端的类,有一部分用户处理用户订单,一部分管理库存,一部分管理用户信息等
com.guoguodao.bookstore.server.order --订单
com.guoguodao.bookstore.server.store --库存
com.guoguodao.bookstore.server.customer --用户信息
规范:
包名小写,一般包能够包含 类的创建者拥有者的信息,软件项目的信息,类在具体软件项目中所处的位置
例如有一个类名为MyClientInfo类的完整类名为 com.guoguodao.bookstore.normal.MyClientInfo
MyClientInfo类由GuoGuoDao公司开发,属于bookstore项目,位于bookstore项目的normal包中
6.简单介绍JAVA虚拟机运行时数据区
JVM 是由JDK提供的一个软件程序,主要作用是执行JAVA程序。
1)加载经过编译后.class文件的二进制数据到内存
2)对类的二进制数据进行验证
3)解析并执行
JVM提供了程序运行时环境,其中一个重要的资源就是运行时数据区,它是操作系统为JAVA 虚拟机进程分配的内存区域,受JVM管理。
运行时数据区又可以分为 堆区,方法区,JAVA栈区。
堆区主要存放对象
方法区中存放的是类的类型信息--静态变量和方法信息,方法信息中包含这所有方法的字节码。
7.java 标识符有哪些命名规则
1)以字母 数字 下划线和$符号组成
2)不能以数字开头
3)不能是JAVA中的关键字
4)类名首字母大小 属性和方法名称首字母小写
5)常量大写
8.分哪两种数据类型,并列出两种数据类型所包括的具体类型
1)分为基本数据类型 和引用数据类型
2)基本数据类型包括: int,float,double,boolean,char,byte,short,long;
3)引用数据类型包括: 类,数组和接口
9.JAVA 中的类型转换
JAVA 的类型转换和以前所学的C语言类型转换道理一样,一种数据类型可以转换为另一种数据类型。用户必须谨慎使用此功能,因为误用可能会导致数据丢失。
类型转换有两种:自动类型转换和强制类型转换
自动类型转换
将一种类型的变量赋给另一种类型的变量时,就会发生自动类型转换。
前提条件:
两种类型必须兼容,数值类型 int float 等.
目标类型大于源类型。
找错:
public class Test{
public static void main(String args[]){
//自动类型转换
int i =10;
float j=5;
i=j;
System.out.println(" i: "+i);
}
}
//i=j possible loss of precision 可能会引起精度丢失
int long double float 可互相兼容,但是也要满足目标类型大于源类型的规则。
注意:在C语言中char 和int 类型是可以互相兼容的。
但是在JAVA中,只能由char 类型的变量赋值给int 类型,但是int 类型的变量是不允许赋值给char 类型的。
char 和boolean 不兼容,所以无法实现类型转换。
找错:
public class Test{
public static void main(String args[]){
//自动类型转换和兼容性
int i =10;
char c = 'a';
c=i;
System.out.println(" c: "+c);
}
//c=i; 一个数值类型的变量i 的值是不允许赋值给char类型的变量的
}
但是这样写是没有问题的:
public class Test{
public static void main(String args[]){
//自动类型转换和兼容性
int i =10;
char c = 'a';
i='A';
System.out.println(" i: "+i);
i=c;
System.out.println(" i: "+i);
}
}
所以:char 类型的值本身还是ASCII码值。
强制类型转换
自动类型转换并非在所有情况下都有效,在必须将float 值赋给int 值时,这种类型转换不会执行,因为int 类型的数据宽度小于float 类型,所以要显式的进行强制类型转换。
了解类型提升规则
JAVA 具有应用于表达式的多个提升规则:
所有byte 型和short 型都可提升为int 型。
如果一个操作数为long 型,则整个表达式提升为long 型。
如果一个操作数为float型,则整个表达式提升为float 型。
如果一个操作数为double 型,则整个表达式提升为double 型。
找错:
public class Test{
public static void main(String args[]){
//强制类型转换
int i =10;
float j =9;
i = 1+j;
System.out.println(" i: "+i);
}
}
// i =1+j; j是float 类型,只要j参与运算,整个表达式的值将提升为float 类型
// 所以在计算前需要(int)j
10.JAVA 数组
数组是一个变量,相同数据类型的数据,连续内存地址存放。
可以通过指定数组的名称和大小来声明数组,一旦声明数组的大小,就不能再修改。
数组中的数据可以是原始数据类型,也可以是一个对象。
与变量一样,在创建数组时可以对该数组赋值。如果初始化没有为数组赋值,JAVA将根据数据类型为所有数组元素赋给一个默认值。
创建数组的三种方式
仅声明:char ch [] ;
声明和创建:char ch [] = new char [10];//使用关键字new 声明并未数组元素分配内存
声明创建和初始化:char ch[] = {‘A‘,’B’,’C’};
String str [] ={"Simonlv","Simba","Ben","David"};
命令行参数
JAVA 程序在执行过程中,信息可以传递至main() 方法。
public class Test{
public static void main(String args[]){
//演示传递命令行参数
System.out.println("传递命令行参数:");
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}
11.instanceof 关键字
A instanceof B,可用来判断A是不是B这一类型的关键字。
例如: Fee父类,费用类. WaterFee 水费 ,GasFee 燃气费 继承父类 Fee
public class Instance {
public void uphandFee(Fee fee){
if(fee instanceof WaterFee){
System.out.println("交水费!");
}
if(fee instanceof GasFee){
System.out.println("交煤气费!");
}
}
public static void main(String[] args) {
Fee waterFee = new WaterFee();
Fee gasFee = new GasFee();
new Instance().uphandFee(gasFee);
new Instance().uphandFee(waterFee);
}
}
但最好不要使用这样的方法,既然已经存在多态,利用一种类型,多种形态,使用重写的方法,根据引用不同来调用更加轻松一些,且更具有面向对象的特色.
public class Instance {
public void uphandFee(Fee fee){
fee.showFee();//子父类中都存在的方法 子类方法也重写了父类的方法 各自流程实现不一样即可
}
public static void main(String[] args) {
Fee waterFee = new WaterFee();
Fee gasFee = new GasFee();
new Instance().uphandFee(gasFee);
new Instance().uphandFee(waterFee);
}
}
分享到:
相关推荐
JDK 17 是其一个重要的版本,它包含了Java编译器(javac)、Java运行时环境(JRE)、Java调试工具(JDB)、Java文档生成器(Javadoc)以及其他开发工具,如jar工具和appletviewer等。这个版本的发布,旨在提供更稳定...
- **JRE(Java Runtime Environment)**:Java运行时环境,包含了执行Java应用程序所需的Java虚拟机(JVM)和库。 - **Java编译器(javac)**:将源代码编译成可执行的字节码。 - **Java文档生成器(javadoc)**...
JDK包含了Java运行环境(Java Runtime Environment,JRE)、Java编译器(javac)、Java文档生成器(javadoc)、Java调试器(jdb)以及其他工具,为开发者提供了完整的开发和调试环境。 在JDK 17.0.8中,我们可能会...
1. **Java Runtime Environment (JRE)**:JRE是JDK的基础,提供了运行Java程序所需的环境。它包括Java虚拟机(JVM)、类库以及支持Java程序运行所需的其他文件。JVM是Java程序执行的引擎,负责解释和执行字节码。 2...
解压这个文件后,用户可以找到JDK的所有组件,包括Java运行时环境(JRE)、Java编译器(javac)、Java虚拟机(JVM)以及其他开发工具。 **安装和配置** 1. 首先,用户需要使用`tar -zxvf jdk-17_macos-x64_bin.tar...
JDK是Java编程的基础,它包含了一套完整的Java编译器、Java运行时环境以及各种工具,使得开发者能够在本地环境中编写、测试和部署Java应用。 首先,让我们详细了解一下JDK的主要组成部分: 1. **Java编译器**...
JDK是Java编程语言的核心工具集,它提供了编译、调试和运行Java应用程序所需的所有组件。在Linux Arm64平台上,JDK17为开发人员提供了在64位ARM处理器上构建和执行Java应用的能力,这在如今的服务器硬件和嵌入式设备...
JRE是Java运行环境,包含Java虚拟机(JVM)、Java核心类库和其他运行Java程序所需的组件。JDK除了包含JRE之外,还提供了编译器javac、反编译器jdb、性能分析工具jconsole等,供开发者进行程序开发、调试和性能监控。...
JDK是Java开发工具集,包含了Java运行环境(JRE)、编译器(javac)、Java文档生成器(javadoc)以及其他必要的工具,使开发者能够创建、测试和部署Java应用程序。 JDK14的显著特点包括: 1. **Records(记录类)*...
这个版本的JDK是由Oracle公司发布的,包含了Java运行环境(JRE)以及开发工具,如Java编译器(javac)、Java虚拟机(JVM)、Java文档生成工具(javadoc)等。 JDK的重要性在于它是Java开发的基础。`javac`命令用于...
3. **Java运行时环境**(JRE):包含Java类库和JVM,是运行Java程序的必要条件。 4. **Java文档生成器**(javadoc):生成API文档,帮助开发者理解代码结构。 5. **Java调试工具**(jdb):用于调试Java程序,查找和...
JRE是运行Java应用程序所必需的基础环境,它包含了Java虚拟机(JVM)、类库以及运行Java程序所需的其他组件。在JDK中,JRE是开发人员用于测试和部署应用程序的核心部分。JRE不包含开发工具,如编译器和调试器,因此...
JDK是Java程序员的必备工具,包含了编译器、调试器、Java运行时环境(JRE)以及一系列用于Java开发的实用工具。在本篇文章中,我们将深入探讨JDK 14中的新特性和改进,以及如何下载和配置它。 **新特性与改进** 1....
它包括了Java编译器(javac)、Java虚拟机(JVM)、Java运行时环境(JRE)、以及各种用于开发和诊断的工具。 JDK 17.0.2是Java的一个重要更新,它可能包含性能优化、安全修复、新的API以及对现有功能的增强。每一代...
此外,JDK还包含Java运行时环境(JRE),这是运行Java应用程序的基础,它包含了JVM、Java核心类库和其他支持文件。 JDK 16.0.1 版本引入了一些新特性和改进,其中包括: 1. ** Records (JEP 395)**:Records 是一...
JDK是Java开发工具集的简称,它是Java编程语言的核心组成部分,包含了编译器、调试器、文档生成工具以及Java运行环境(JRE)。开发者使用JDK可以编写、编译、测试和部署Java应用程序。JDK 16是Oracle公司发布的Java ...
Java JDK16是Java开发的重要版本,它是Java Standard Edition(SE)的一部分,为开发者提供了运行和构建Java应用程序所需的编译器、JVM(Java虚拟机)以及各种工具。这个版本针对开发者进行了多项改进和增强,使得...
JDK是Java编程语言的核心组成部分,包含了开发和运行Java应用程序所需的所有工具和库。 首先,JDK的主要组成部分包括: 1. **Java编译器** (javac):将源代码(.java文件)转换为字节码(.class文件),这是Java...
JDK,全称Java Development Kit,是Oracle公司提供的用于开发Java应用程序的软件包,包含了Java运行环境(JRE)、编译器(javac)、解释器(java)以及各种工具和库。JDK17作为长期支持(LTS)版本,其稳定性和安全...