Contents
  1. 1. Java能做什么
  2. 2. 安装JDK
    1. 2.1. Linux 安装
      1. 2.1.1. 可以通过yum进行安装。
      2. 2.1.2. 直接下载压缩包安装
    2. 2.2. Windows 安装
    3. 2.3. 校验安装是否成功
  3. 3. 了解代码基础结构
    1. 3.1. 顺序结构
    2. 3.2. 分支结构
    3. 3.3. 循环结构
    4. 3.4. 异常处理
  4. 4. Java中的类型
    1. 4.1. 基本类型
    2. 4.2. 对象(引用类型)

这次我们来聊聊Java吧。自诞生以来,在年度最热门语言的排行榜上,Java不是第一就是第二,互联网行业上Java的工作岗位数量也一直不会少。所以Java程序员都以为自己永远不会失业,永远可以拿到高工资,然而层出不穷的新框架,什么mina、Zookeeper、Hadoop、Hbase、redis…… Java程序员们像孔乙己一样口中碎碎念着什么大数据,什么云计算,什么高并发,什么可用性健壮性……岗位越来越热门,要学的东西也越来越多,人才也越来越饱和,平均年龄越来越年轻,工资没见得增长,年纪大了后拿着公司的解雇通知在天台上感受着稀疏的头发随风飘零……呃,跑题了,本文不是为了吐槽行业现状,只是写一个简单的教程给想学习Java的新人看看。

Java能做什么

手机游戏、中间件、软件、网站,电脑游戏都是可以用Java编写。java是一门面向对象编程语言,吸收了C++语言的各种优点同时还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言功能强大但是入门简单。Java拥有很高的安全性、很强的跨平台性,开源的特性又使得基于Java的各种的框架异常丰富。目前热门的大数据、人工智能、机器学习、云计算、物联网什么的,Java都在其中占有重要的地位。

安装JDK

开始编写Java程序之前要先下载JDK Java Development Kit。JDK中包含Java程序运行的环境JRE Java Runtime Environment 和编译构建Java程序的相关工具。以下是几个概念解释:

Java虚拟机(JVM):Java语言的一个非常重要的特点就是与平台的无关性,这个特点是通过Java虚拟机实现的:Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码。这里需要注意的是, java程序可以是平台无关的(跨平台运行),但是java虚拟机是平台相关的。

编译Java程序:将java源代码编译成可以在Java虚拟机上的字节码文件。编译过程中会对语法进行检查,编译后生产的字节码文件后缀为.class。

JDK 可以通过Oracle Java(https://www.oracle.com/java/)或者OpendJDK(http://openjdk.java.net/)下载, 需要注意的是如果免费的JDK话,OracleJDK只能下载JDK8,更高版本的JDK是无法免费获取的,那么要使用最新版本的JDK可以选择使用OpenJDK。OpenJdk和OracleJDK只是实现方式不一样,还有部分功能会不一致,我们初学者可以不用去关心这些问题。目前我们可以下载得到最新版本是OpenJDK14 (2020.8.17)。

Linux 安装

我们️以Centos为例。

可以通过yum进行安装。

  1. 先更新yum库的列表
    1
    yum update -y 
  2. 查看yum上面可以安装的jdk版本
    1
    yum list java-*
  3. 执行安装命令
    1
    yum install "java-14-openjdk" -y

    直接下载压缩包安装

    如果发现yum不支持最新的版本,也可以从OpenJDK的网站上下载最新版本的Linux平台安装包:《图片》
    下载下来后使用tar 命令解压(可以自己指定目录,本文中将JDK解压到了/usr/jdk-14.0.2):
    1
    tar xvf openjdk-14.0.2_linux-x64_bin.tar.gz -C /usr/jdk-14.0.2
    解压完成后还需要手动配置环境变量:
  4. 编辑profile 文件
    1
    vim /etc/profile
  5. 找到export PATH 这一行,在它下面添加JAVA_HOME和新的PATH
    1
    2
    3
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
    export JAVA_HOME=/usr/jdk-140.2
    export PATH=$JAVA_HOME/bin:$PATH
  6. 保存修改后退出文本编辑,执行source命令使修改生效。
    1
    source /etc/profile

    Windows 安装

  7. 下载Windows平台对应的jdk
  8. 解压到指定目录,比如D:\java\jdk-14.0.2
  9. 打开系统配置配置系统环境变量
  10. 添加变量JAVA_HOME和CLASSPATH
  11. 修复PATH变量,增加JDK、JRE的bin目录

校验安装是否成功

  1. 安装配置成功后,执行java -version 可以看到java的版本相关信息。
  2. 打开文本编辑器写一个简单的HelloJava代码并且保存为HelloJava.java来测试下能否编译。
    1
    2
    3
    4
    5
    6
    public class HelloJava{
    //main 方法是java程序执行的入口,格式是固定的哦
    public static void main(String...args){
    System.out.println("Hello JAVA");
    }
    }
    1
    2
    3
    $ javac HelloJava.java #编译源码
    $ java HelloJava #运行
    Hello JAVA
    基于Java14新增的自动编译特性,我们也可以这样运行Java代码:
    1
    2
    $ java HelloJava.java
    Hello JAVA

    了解代码基础结构

Java代码语句包括4种基本控制结构:顺序结构、选择结构、循环结构、异常处理逻辑。

顺序结构

语句执行的基本顺序按各语句出现的位置先后顺序执行

1
2
3
4
5
6
7
8
9
10
public class Order{
public static void main(String...args){
String a = "你好!";
System.out.println(a);
a = "我是某鸟";
System.out.println(a);
a = "请关注我的公众号:某鸟碎碎";
System.out.println(a);
}
}

这段程序的输出是:

1
2
3
4
$ java Order.java
你好!
我是某鸟
请关注我的公众号:某鸟碎碎

分支结构

代码中根据条件来控制代码的执行分支,也被称为成选择结构。Java中有两种控制分支的条件语句:ifswitch

1
2
3
4
5
6
7
8
9
public class IfBranch{
public static void main(String...args){
if(args[0].equals("关注"){
System.out.println("谢谢你关注《某鸟碎碎》!");
}else{
System.out.println("别犹豫,快来关注《某鸟碎碎》!");
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class SwitchBranch{
public static void main(String...args){
switch(args[0]){
case "关注":
System.out.println("谢谢你关注《某鸟碎碎》!");
break;
case "取关":
System.out.println("朋友,再见!");
break;
default:
System.out.println("别犹豫,快来关注《某鸟碎碎》!");
}
}
}

以上代码可以根据运行时的参数来选择执行的语句:

1
2
$ java IfBranch.java 关注 ##尝试下换成其他词
$ javaSwitchBranch.java 取关 ##尝试下换成其他词

循环结构

循环是条件满足的时候重复执行相关的代码。Java中的循环结构可以通过forwhile来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
public class For{
public static void main(String...args){
//循环指定的次数
for(int i = 0; i < 5; i++){
System.out.println(i + ". 关注某鸟碎碎");
}
String[] w = {"某","鸟","碎","碎"};
//对指定的列表进行循环,也称为for each语句
for(String a : w){
System.out.println(a);
}
}
}

异常处理

异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。大部分错误可以在编写代码的时候通过编译发现,现代的代码编写工具(比如IDEA、Eclipse)也可以辅助发现一些可能导致运行时出问题的错误。但是我们仍然需要留意并且处理一些正在运行起来才会出现的错误,或者偶然出现的错误。Java中异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误条件。可以通过try...catch代码块进行捕获和处理,处理完成(通常是打印日志信息和释放资源)后可以由开发者决定是终止运行还是忽略异常继续执行剩下的代码。

1
2
3
4
5
6
7
8
9
public class ExceptionHandler{
public static void main(String...args){
try{
throw new Exception("抛出的异常会被catch里面的代码处理");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}

Java中的类型

Java的类型类型可以分成功基本类型和引用类型。基本类型可以自己使用无线显示调用new关键字。引用类型则是创建对象的时候使用,因为对象可以自己定义,实现更复杂的逻辑。

基本类型

Java基本类(内置直接使用的类型)有字符类型char,布尔类型boolean,整数类型byte、short、int、long和浮点数类型float、double。需要注意的是数值类型(整数和浮点数)是有边界,如果数值超过边界就会导致溢出:正数变成负数、负数变成正数。

1
2
3
4
5
6
7
8
9
10
public class BaseType{
public static void main(String...args){
char c = "c";
boolean b = false;
byte maxByte = 127;
byte minByte = -128;
short maxShort = 32767;
short minShort = -32768;
}
}

对象(引用类型)

Java有 5种对象类型(引用类型):类 接口 数组 枚举 注解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public interface InterfaceType{
//接口是一个抽象类型,是抽象方法的集合,规定了一组必须要实现后才能使用的方法。
void said();
}

public class ClassType implements InterfaceType{
//类通过继承接口的方式,从而来实现接口的抽象方法的具体逻辑。
@Override
public void said() {
System.out.println("某鸟碎碎");
}
}

public enum EnumType{
//枚举类是一种特殊的类,它和普通的类一样,有自己的成员变量、成员方法、构造器 (只能使用 private),特殊的地方在于它的对象数量是固定的。
}

public @interface AnnotationType{
//注解是一种标识,用来标记特殊内容或对象。
}

现在你已经了解Java编程的基础,如果你对Java有兴趣想要更进一步,还有更多的东西可以学习,比如引用、封装对象、继承、多态、泛型、线程、同步、垃圾回收等等。入门后要自己编写程序,比如给自己几个简单的需求:用Java计算一堆数字、写一个java聊天程序、用java读取网页等等,相关的技术可以尝试通过网络查找关键字。要更进一步了解和提升Java编程技术,就需要自己去阅读书籍(推荐阅读《Java编程思想》(Thinking in Java)这本书)、多看别人写的代码、多写自己的代码。

Contents
  1. 1. Java能做什么
  2. 2. 安装JDK
    1. 2.1. Linux 安装
      1. 2.1.1. 可以通过yum进行安装。
      2. 2.1.2. 直接下载压缩包安装
    2. 2.2. Windows 安装
    3. 2.3. 校验安装是否成功
  3. 3. 了解代码基础结构
    1. 3.1. 顺序结构
    2. 3.2. 分支结构
    3. 3.3. 循环结构
    4. 3.4. 异常处理
  4. 4. Java中的类型
    1. 4.1. 基本类型
    2. 4.2. 对象(引用类型)