【Java零基础】(第一讲)Java概述、基本语法

【Java零基础】(第一讲)Java概述、基本语法,第1张

【Java零基础】(第一讲)Java概述、基本语法

文章目录

Java 概述、语法基础

Java语言的三大特点:那为什么 Java 如此流行呢?Java 除了结构严谨,面向对象外还有许多其他的优点:Java的三种技术架构:

桌面级应用企业级应用移动应用 JRE 和 JDKJDK 的目录结构JRE、JDK、JVM 的作用jdk 和jre 和 jvm的关系JDK和JRE的区别?javac命令和java命令做什么事情呢?为什么要配置环境变量

配置步骤 Java 程序开发的三个步骤HelloWorld程序详解

组成详解 Hello world .java 常见错误Java程序的运行机制 Java 语法基础

1.1 注释1.2 关键字1.3 标识符1.4 数据

1.4.1 常量1.4.2 变量 变量按照作用域的范围又可分为三种类型:局部变量,成员变量和静态变量。成员变量和局部变量的区别1.5 符号

Java 概述、语法基础 Java语言的三大特点:
	1.  开源
	2.  跨平台
	3.  面向对象
那为什么 Java 如此流行呢?

1)简单性

Java 为开发者提供了简单易用的用户体验,与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优	势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、 *** 作符重载,内存管理等。

Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。

2)可移植性

如果 Java 直接编译成 *** 作系统能识的二进制码,可能一个标识在 Windows  *** 作系统下是1100,而 Linux 下是 	1001,这样的话,在 Windows  *** 作系统下可以运行的程序到了 Linux 环境下就无法运行。

为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码	转成 *** 作系统可以识别的二进制码,然后执行。而针对不同的 *** 作系统,都有相应版本的 JVM,所以 Java 就实	现了可移植性。

3)安全性

Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、	防篡改的程序。

从一开始,Java 就设计了很多可以防范攻击的机制,比如说:

运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。

4)并发性

Java 在多线程方面做得非常突出,只要 *** 作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。

Java 除了结构严谨,面向对象外还有许多其他的优点:

摆脱了硬件平台的束缚,实现了“一次编写,处处运行”的理念;内存管理相对安全,避免了绝大部分内存泄露和指针越界的问题;实现了热点代码检测和运行时编译,使得 Java 应用能随着运行时间的增长而获得更高的性能;有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库。

以上这些java的优点都让软件开发的效率大大的提高。

Java的三种技术架构: 桌面级应用

    Java SE完成桌面应用程序的开发,是其它两者的基础;称之为“Java平台标准版” ,是 Java平台的基础。

    Java SE包含了运行Java应用所需要的基础环境和核心类库。

    Java SE还定义了基于桌面应用的基础类库,通过使用这些类库,我们可 以编写出类似于像Office那样的丰富多彩的桌面应用。

企业级应用

    JAVAEE :开发企业环境下的应用程序,主要针对web程序开发;称之为“Java平台企业版” 。

    Java EE:构建在Java SE基础之上,用于构建企业级应用。所谓企业级应用 是指那些为商业组织、大型企业而创建的应用系统,例如:电信的“计费 系统” 、银行的“网银系统” 、企业中的“客户关系管理系统”等等

移动应用

    JAVAME :开发电子消费产品和嵌入式设备,如手机中的程序;称之为Java 平台微型版。

    为机顶盒、移动电话和PDA等嵌入式消费电子设备提供的Java解决方案。 随着3G移动智能平台时代的到来,特别是以Java为核心编程语言的 Android智能平台的迅速普及,Java ME已经走向淘汰。

JRE 和 JDK

JRE: (Java Runtime Environment) 是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。

JDK :(Java Development Kit)是Java程序开发工具包, 包含 JRE 和开发人员使用的工具。

我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。

如果我们想要开发一个全新的Java程序,那么必须安装 JDK 。

JDK 的目录结构
    bin目录 - 该目录下主要存放JDK的各种工具命令。
    javac.exe - 编译器,主要用于将高级Java源代码翻译成字节码文件。
    java.exe - 解释器,主要用于启动JVM对字节码文件进行解释并执行。conf目录 - 该目录下主要存放jdk的相关配置文件。include目录 - 该目录下主要存放了一些平台的头文件。jmods目录 - 该目录下主要存放了JDK的各种模块。legal目录 - 该目录下主要存放了JDK各模块的授权文档。lib目录 - 该目录下主要存放了JDK工具的一些补充jar包和源代码。
JRE、JDK、JVM 的作用

    编写代码的过程中,需要使用 JRE 中 Java 已经写好的代码。

    编译代码的过程中,要使用 JDK 中的翻译工具。

    运行代码的过程中,需要使用 JDK 的运行工具。

    代码需要运行在 JVM 当中。

jdk 和jre 和 jvm的关系

JVM:将字节码文件转成具体系统平台的机器指令。
JRE:JVM+Java语言的核心类库。
JDK:JRE+Java的开发工具。

分析:JVM 本身是否可以跨平台?
答:JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序

JDK和JRE的区别?

JDK 是提供给 Java 程序员的开发工具包,换句话说,没有 JDK,Java 程序员就无法使用 Java 语言编写 Java 程序。也就是说,JDK 是用于开发 Java 程序的最小环境。

JDK 包含了 JRE,同时还包含了编译 Java 源码的编译器 javac,以及其他的一些重要工具:

keytool:用于 *** 作 keystore 密钥;javap:class 类文件的最基础的反编译器;jstack:用于打印 Java 线程栈踪迹的工具;jconsole:用于监视 Java 程序的工具;jhat:用于 Java 堆分析的工具jar:用于打包 Java 程序的工具;javadoc:用于生成 Java 文档的工具;

JRE 是提供给 Java 程序运行的最小环境,换句话说,没有 JRE,Java 程序就无法运行。

javac命令和java命令做什么事情呢?

要知道java是分两部分的:一个是编译,一个是运行。

javac :负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

java :负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

为什么要配置环境变量?

环境变量就是一些被指定的文件夹路径,目的是为了更快速方便的找到想要的文件和文件夹。

让java jdkbin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具 时,由系统帮我们去找指定的目录。

配置步骤

    鼠标右键 “此电脑” 选择属性,之后会出现一个d窗,点击 “高级系统设置”

    点击 “环境变量” 在系统变量中选择“新建”

变量名:JAVA_HOME
变量值:JDK的安装路径,这里以你自己的安装路径为准
    新建CLASSPATH 变量
.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(注意前面是有一个点的)
    配置path ,找到path,双击或者点编辑
输入 %JAVA_HOME%bin

然后点确定保存,出去之后再点确定,然后再点确定,至此环境变量配置完毕,接下来就是测试环境变量配置有没有问题了。

    验证环境变量配置

5.1 快捷键“ win + R ” ,打开运行窗口,输入cmd,点击确定打开命令行窗口

5.2 执行Java javac 命令验证,java -version 来查看jdk安装的版本

Java 程序开发的三个步骤

开发 Java 程序,需要三个步骤:编写代码、译代码,运行代码。

HelloWorld程序详解
public class Demo {  // 这个代码 定义一个类  类名字 叫做 Demo
          public static void main(String[]  args){  // main方法 程序的入口  args   arguments
            System.out.println("helloworld");  // 打印输出语句
            System.out.println("helloworld1"); // 打印输出语句  每写一行 多输出一行。
          }
        }
   
   public : 目前可以看到的效果是,起到限制作用,要求文件名和类名称保持一致
   
   注意:文件名字 和  class 后的名字 要一致。 

   编译: javac Demo.java 
        编译成功的标志是  生成一个class文件。
        注意: 你需要先用cmd进入到 Demo.java的目录 才可以编译,否则找不到Demo.java
      
   运行: java Demo
        注意:运行的是class文件,但是不需要 加.class 

class 关键字:用于在 Java 中声明一个类。

public 关键字:一个表示可见性的访问修饰符。

static 关键字:我们可以用它来声明任何一个方法,被 static 修饰后的方法称之为静态方法。静态方法不需要为其创建对象就能调用。
组成详解

class 关键字:用于在 Java 中声明一个类。public 关键字:一个表示可见性的访问修饰符。static 关键字:我们可以用它来声明任何一个方法,被 static 修饰后的方法称之为静态方法。静态方法不需要为其创建对象就能调用。void 关键字:表示该方法不返回任何值。main 关键字:表示该方法为主方法,也就是程序运行的入口。main() 方法由 Java 虚拟机执行,配合上 static 关键字后,可以不用创建对象就可以调用,可以节省不少内存空间。String [] args:main() 方法的参数,类型为 String 数组,参数名为 args。System.out.println():一个 Java 语句,一般情况下是将传递的参数打印到控制台。System 是 java.lang 包中的一个 final 类,该类提供的设施包括标准输入,标准输出和错误输出流等等。out 是 System 类的静态成员字段,类型为 PrintStream,它与主机的标准输出控制台进行映射。println 是 PrintStream 类的一个方法,通过调用 print 方法并添加一个换行符实现的。 Hello world .java 常见错误

    错误: 需要class, interface或enum => 通常都是class关键字拼写错误

    错误: 找不到符号 => 通常因为单词拼写错误或Java中不支持这样的单词

    错误: 需要’;’ => 通常都是因为少写分号,加上英文版分号即可

    错误: 非法字符: ‘uff1b’ => 通常是因为出现了中文标点符号,修改为英 文版即可

    错误: 在类 中找不到 main 方法, 请将 main 方法定义为: => main写成了mian

    错误:程序包system不存在,通常是system后面的标点成了中文标点,导致识别不到system

    错误:进行语法分析时已达到文件结尾,通常是结尾最后多写了标点或者是最后的大括号

Java程序的运行机制

Java 语法基础

代码的五大组成部分:注释、关键字、标识符、数据、符号。 1.1 注释

注释是在程序指定位置 添加的说明性信息 简单理解,就是对代码的一种解释。

注意事项:注释内容不会参与编译和运行。

单行注释:单行注释通常用于解释方法内某单行代码的作用。通常写在本段代码的上方。

  格式:// 注释信息

多行注释:多行注释使用的频率其实并不高,通常用于解释一段代码的作用。

  格式:

文档注释:文档注释可用在三个地方,类、字段和方法,用来解释它们是干嘛的。

  格式:
1.2 关键字

关键字概念 :被Java赋予了特定涵义的英文单词。

关键字特点 :关键字的字母全部小写 。

分析:main是关键字吗?

答:main不是关键字,可以将其理解为,比关键字更为关键的一个单词,因为JVM在执行代码的时候,只会识别该单词。

1.3 标识符

标识符概念 :就是给类,方法,变量等起名字的 符号

标识符定义规则 :

1.由数字 、字母 、下划线 、(_) 和 美元符 ($)组成。

2.不能以数字开头。

3.不能是关键字。

4.区分大小写。

常见命名约定 :

1.小驼峰: 方法、变量。
约定1:标识符是一个单词的时候,首字母小写
范例1:name

约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写

范例2:firstName

2.大驼峰:类、接口。

约定1:标识符是一个单词的时候,首字母大写

范例1: Student

约定2:标识符由多个单词组成的时候,每个单词的首字母大写

范例2:GoodStudent

3.峡谷先锋:常量名。

范例:final int JAVA_HOME = 10;

1.4 数据 1.4.1 常量

常量概念:在程序的执行过程中,其值不会发生改变的量(数据)

其中空常量null是用来占位的,不能直接打印(会报错)。

1.4.2 变量

变量概念:变量就是内存中的存储空间,空间中存储着经常发生改变的量(数据)

定义格式:数据类型 变量名 = 常量数据;

变量的使用 :
1、声明变量,就是在内存开一个空间
语法:数据类型 变量名;(空格和分号不能少),比如:int qian;
2、变量赋值,就是将数据放到开辟的这个空间
语法:变量名 = 变量值;比如:qian = 1000;
3、使用变量    比如:System.out.println(qian);

int a = 10;
int b = 20;
int c = (a = b);
System.out.println(c); //20   意思是把b先赋值给a,10就被20给覆盖了。

变量的注意事项 :

    使用之前必须先赋值

    同一个范围内 不能重复定义相同名字的变量

    变量可以连续定义

    变量只在当前{}的范围内有效。

    long类型后面要加L float后面要加 F

变量的作用域:作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

生命周期:变量从定义的位置开始就在内存中活了;变量到达它所在的作用域的时候就在内存中消失了;

变量按照作用域的范围又可分为三种类型:局部变量,成员变量和静态变量。

在方法体内声明的变量被称为局部变量,该变量只能在该方法内使用,类中的其他方法并不知道该变量。

public class LocalVariable {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        int c = a + b;
        System.out.println(c);
    }
}

其中 a、b、c 就是局部变量,它们只能在当前这个 main 方法中使用。声明局部变量时的注意事项:

局部变量声明在方法、构造方法或者语句块中。局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,将会被销毁。访问修饰符不能用于局部变量。局部变量只在声明它的方法、构造方法或者语句块中可见。局部变量是在栈上分配的。局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

在类内部但在方法体外声明的变量称为成员变量,或者实例变量。之所以称为实例变量,是因为该变量只能通过类的实例(对象)来访问。

public class InstanceVariable {
    int data = 88;
    public static void main(String[] args) {
        InstanceVariable iv = new InstanceVariable();
        System.out.println(iv.data); // 88
    }
}

其中 iv 是一个变量,它是一个引用类型的变量。new 关键字可以创建一个类的实例(也称为对象),通过“=” *** 作符赋值给 iv 这个变量,iv 就成了这个对象的引用,通过 iv.data 就可以访问成员变量了。声明成员变量时的注意事项:

成员变量声明在一个类中,但在方法、构造方法和语句块之外。当一个对象被实例化之后,每个成员变量的值就跟着确定。成员变量在对象创建的时候创建,在对象被销毁的时候销毁。成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息。成员变量可以声明在使用前或者使用后。访问修饰符可以修饰成员变量。成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见;成员变量具有默认值。数值型变量的默认值是 0,布尔型变量的默认值是 false,引用类型变量的默认值是 null。变量的值可以在声明时指定,也可以在构造方法中指定。

通过 static 关键字声明的变量被称为静态变量(类变量),它可以直接被类访问

public class StaticVariable {
    static int data = 99;
    public static void main(String[] args) {
        System.out.println(StaticVariable.data); // 99
    }
}

其中 data 就是静态变量,通过类名.静态变量就可以访问了,不需要创建类的实例。

声明静态变量时的注意事项:

静态变量在类中以 static 关键字声明,但必须在方法构造方法和语句块之外。无论一个类创建了多少个对象,类只拥有静态变量的一份拷贝。静态变量除了被声明为常量外很少使用。静态变量储存在静态存储区。静态变量在程序开始时创建,在程序结束时销毁。与成员变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。静态变量的默认值和实例变量相似。静态变量还可以在静态语句块中初始化。 成员变量和局部变量的区别

定义位置:

成员变量: 类中 方法外面

局部变量: 方法内部

内存位置:

成员变量: 堆内存, 因为他在对象里面, 对象在堆内存。

局部变量: 栈内存, 跟着方法走, 方法在栈里面执行。

生命周期:

成员变量: 随着对象的创建而存在(存在于对象里面),随着对象的消失而消失。局部变量 : 随着方法的调用进栈 存在, 随着方法调用完毕 d栈而消失。

对象何时消失呢?

当栈内存中 没有任何的变量 再去指向 这个对象了, 那么 这个对象就会被 java底层的垃圾回收器 认定为垃圾。

垃圾回收器 定期轮巡执行的。 轮巡到那儿的时候 就会清理掉。

初始化:

成员变量: 有默认值的,所以使用之前 是不需要赋值的, 直接使用他的默认值就可以。

局部变量: 没有默认值。所以 使用之前 必须先赋值。

1.5 符号

基本符号

()

类型转换运算结构语句方法的定义和调用

运算符

算术运算符赋值运算符比较运算符逻辑运算符三元运算符位运算符

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存