Java 入门

关于Java的诞生背景、发展历史和版本说明部分让我收获较大。

简介


  • 创始人:James Gosling
  • Java介于编译型语言和解释型语言之间。它是将代码编译成一种“字节码”,类似于抽象的CPU指令,然后针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,实现“一次编写,到处运行”
  • Java三个版本
    • Java SE:Standard Edition,标准版,包含标准的JVM和标准库,是整个Java平台的核心
    • Java EE:Enterprise Edition,企业版,在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等;Java EE的的虚拟机和Java SE完全相同;是进一步学习Web应用所必须的
    • Java ME:Micro Edition,针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用;Java ME的虚拟机也是“瘦身版”;不流行,不建议学习
  • 推荐的Java学习路线
    • 首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;
    • 如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的;
    • 如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;
    • 如果想要学习移动开发,那么就深入Android平台,掌握Android App开发。
  • JDK:Java Development Kit,除了包含JRE,还提供了编译器、调试器等开发工具,用来将Java源码编译成Java字节码
  • JRE:Java Runtime Environment,是运行Java字节码的虚拟机
  • JSR规范:Java Specification Request
  • JCP组织:Java Community Process
  • RI:Reference Implementation,参考实现
  • TCK:Technology Compatibility Kit,兼容性测试套件

基础


程序基本结构

1
2
3
public class Hello { // 类名是Hello
// ...
} // class定义结束
1
2
3
4
5
public class Hello {
public static void main(String[] args) {// 方法名是main
// 方法代码...
}// 方法定义结束
}
  • 类名必须以英文字母(习惯大写)开头;方法名必须以英文字母(习惯小写)开头
  • class内部,可以定义若干方法(method)
  • public是访问修饰符,表示该class是公开的。不写public,也能正确编译,但是这个类将无法从命令行执行
  • Java入口程序规定的方法必须是静态方法,方法名必须为main
    ,括号内的参数必须是String数组
  • Intelli IDEA代码格式化:Ctrl + Alt + L

变量和数据类型

  • 两种变量类型:基本类型和引用类型
    • 基本类型是CPU可以直接进行运算的类型。包括整型,浮点型,布尔型,字符型
    • 剩下的都是引用类型,类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置。最常用的是String
    • 基本类型的变量是“持有”某个数值,引用类型的变量是“指向”某个对象
  • 常量在初始化后不可重新赋值
  • 简写变量类型,使用var关键字

运算

  • 整数运算永远是精确的,浮点数运算常常无法精确表示

流程控制


输入和输出

  • 输出
    • System.out.println(),输出并换行
    • System.out.print(),输出不换行
    • System.out.printf(),格式化输出
  • 输入(不能在线运行,必须从命令行读取)
1
2
3
4
5
6
7
import java.util.Scanner;
public class Main {publicstaticvoid main(String[] args) {
Scanner scanner =new Scanner(System.in);// 创建Scanner对象
String name = scanner.nextLine();// 读取一行输入并获取字符串
int age = scanner.nextInt();// 读取一行输入并获取整数
}
}

if条件判断

  • 判断浮点数相等用==判断不靠谱,正确的方法是利用差值小于某个临界值来判断
  • 判断引用类型的变量内容是否相等,必须使用equals()方法

case多重选择

  • 总是写上default
  • 从Java12开始,新语法使用->,如果有多条语句,需要用{}括起来。不要写break语句,因为新语法只会执行匹配的语句,没有穿透效应
  • switch表达式内部,用yield返回一个值作为switch语句的返回值

while循环

  • 先判断后循环
  • 可能循环0次

do while循环

  • 先循环后判断
  • 至少循环一次

for循环

  • 可能循环0次

break和continue

  • 在多层嵌套的循环中,都只能跳出自己所在的那一层循环

数组操作


遍历、排序、多维数组、命令行参数(略)

附录


教程

廖雪峰的Java教程-Java快速入门

面向对象 Git 学习笔记

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×