第一章走进java世界

第一章 走进 java 世界

1.1 java 语言的特点(小面经)
  • 使用简单、高效
    • 去掉了 C 和 C++中的指针和多重继承技术
    • 通过垃圾自动回收机制简化了程序内存管理
    • 对于数据类型在不同字长的计算机上实现统一字节数占用
  • 完全面向对象
    • 抽象、封装、继承、多态
  • 自动内存管理(Auto Garbage Collection)
    • 在 C 语言中用 malloc() 申请内存,用 free() 释放内存空间
  • 平台无关性与可移植性
    • Java 采用编译与解释相结合,先经编译成 *.class 字节码,然后再由 JVM 解释执行。JVM 对不同操作系统进行了适配
  • 鲁棒性(程序运行的稳定性)
    • Java 在编译和运行的过程中都会进行比较严格的检查,以减少错误
    • Java 不提供指针,杜绝开发人员的误操作
  • 安全性
    • Java采用公钥加密算法为基础的验证技术,保障网络环境下的安全性
    • 从环境变量、类加载器、文件系统、网络资源等方面实施了安全策略
  • 分布计算
    • Java可以轻松实现基于TCP/IP 的分布式文件系统
  • 多线程
    • Java 语言提供多线程支持,C++语言没有内置的多线程机制,必须调用操作系统的多线程功能来进行多线程程序设计
  • 异常处理
    • 使正常代码和错误处理代码分开,逻辑更清晰
1.2 JVM、JRE和JDK(小面经)

JVM(Java Virtual Machine):可以运行 Java 字节码(*.class)的虚拟计算机
JRE(Java Runtime Environment):java 运行时环境
JDK(Java Development Kit):java程序开发和运行环境

JDK包含JREJRE包含JVM

三种 Java 平台

  • Java ME : 嵌入式
  • Java SE : Java平台基础,用于开发桌面应用
  • Java EE : 构建大规模基于 Web 的企业级项目
1.3 JDK 的下载和安装(网上安装教程很多)

Oracle官网:https://www.oracle.com
OpenJDK:idea中即可下载
建议使用Oracle的 jdk8 进行学习,后面学习框架时再使用高版本的OpenJDK

OracleJDK 和 OpenJDK 的区别?

  • OracleJDK 版本每三年发布一次,OpenJDK版本每三个月发布一次;
  • OpenJDK 是一个参考模型并完全开源,而 OracleJDK 是 OpenJDK 的一个实现,不完全开源
  • OracleJDK 比 OpenJDK 更稳定。
  • OracleJDK 根据二进制代码许可协议获得许可,而OpenJDK 根据 GPLv2 获得许可
1.4 JDK环境变量的配置(网上配置教程很多)

主要配置 JAVA_HOME、PATH、classpath三个环境变量。
JAVA_HOME :让 Tomcat 等软件查找到JDK的路径
PATH :让操作系统找到可执行命令文件,比如 javac.exe、java.exe
classpath :让 JVM找到必要的.class,都在 jar 包中,jdk1.5以上不用配置了

配置好环境可以在 cmd 中输入 java -version进行测试

1.5第一个 java 程序

编写 Hello.java 文件

public class Hello{  // public 权限修饰符  class  表明这是一个类   Hello 类名 
	public static void main(String[] args){  // 执行 java Hello 时的入口函数,固定写法
		System.out.println("Hello java");    // 控制台打印输出语句,输出 Hello java
	}
}

编译执行
在这里插入图片描述

流程分析

  • 执行 javac Hello.java 会编译生成对应的class文件,文件名根据实际情况而定,这个案例会生成Hello.class文件
  • 执行 java Hello 会调用对应的 main 方法(也就是入口函数)

修改 Hello.java 文件

class Hello{  // 取消public修饰
	public static void main(String[] args){
		System.out.println("Hello java");
	}
}

编译执行 (生成 Hello.class 文件,执行结果正常)
在这里插入图片描述


修改 Hello.java 文件

class Hello1{
	public static void main(String[] args){
		System.out.println("Hello1 java");
	}
}

编译执行(生成 Hello1.class 文件,执行结果正常)
在这里插入图片描述


修改 Hello.java 文件

class Hello1{
	public static void main(String[] args){
		System.out.println("Hello1 java");
	}
}

class Hello2{
	public static void main(String[] args){
		System.out.println("Hello2 java");
	}
}

编译执行(生成 Hello1.class 文件 和 Hello2.class 文件,执行结果正常)
在这里插入图片描述

总结:多个非public 类可以在同一个文件中被编译生成对应的 class 文件


修改 Hello.java 文件

public class Hello1{  // 文件名和 public 修饰的类名不一致
	public static void main(String[] args){
		System.out.println("Hello1 java");
	}
}

编译执行(编译报错)
在这里插入图片描述

总结:

  • 非public类:类名可以与文件名不同,不会报错。
  • public类:类名必须与文件名相同,否则会报错。

修改 Hello.java 文件

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello java");
	}
}

class Hello1{
	public static void main(String[] args){
		System.out.println("Hello1 java");
	}
}

编译执行(生成 Hello.class 文件 和 Hello1.class 文件, 执行结果正常)
在这里插入图片描述


修改 Hello.java 文件

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello java");
	}
}

public class Hello1{
	public static void main(String[] args){
		System.out.println("Hello1 java");
	}
}

编译执行(编译报错)
在这里插入图片描述

总结:一个文件只能有一个public 修饰的类,且类名与文件名一致

1.6 自测
  1. java平台分为哪三个版本?
  2. JDK 安装后一般设置哪三个环境变量
  3. java源程序应该写在扩展名为什么的文本文件中。
  4. 编译java程序的命令是什么?运行java程序的命令是什么?
  5. java语言的特点是什么?
  6. JVM、JRE、JDK的区别和联系?
  7. OracleJDK和OpenJDK的区别?
  8. public 对类的修饰会有什么限定?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linux-hzh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值