Java learn 01 Java basic

373 查看

Chap 0 Preface

Java Basic Content List

  • Java data type、 标识符、运算符、表达式和语句、分支、循环、方法

  • OO

  • Exception

  • Java Array

  • Java 常用类

  • Java 容器类

  • Collection / Generic

  • Java I/O Stream

  • Java Thread

  • Java TCP/UDP, socket

Three levels of ability

  1. 知识 -- 学习前人的知识

  2. 解决问题的方法 -- 灵活运用学到的知识

  3. 解决问题的思路 -- 创造解决问题的方法

Category of knowledge

  1. 实际开发中经常使用的 -- 牢牢掌握

  2. 不经常使用用时就能查得到的 -- 了解

  3. 八辈子用不着一回的 -- 运用自己的能力去查

Learning method

你怎么去了解一座高山? 怎么去了解你的校园?
你怎么去画一树寒梅

先学脉络,再学细节,这是规律,请务必尊重学习规律

Summary

  • 乐观的努力

  • 眼光要高远

  • 脚步要踏实


Chap 1 Java 概述

focus on :

  • Java 语言的历史地位

  • Java 发展史

  • Java 特点

  • Java 运行机制

  • JDK & JRE

  • Java env install

  • Java Basic Content

1.1 Java的历史地位

  • 第一代语言

    • 打孔机 -- 纯机器语言

  • 第二代语言

    • 汇编

  • 第三代语言

    • C 面向过程的语言

    • C++ 面向过程/面向对象

    • Java 跨平台的纯面向对象的语言

    • Scala 函数式编程/面向对象 JVM

    • Python 解释

    • Go

conclude : 计算机语言朝着人类易于理解的方向发展

1.2 Java 发展史

  • 95年, Sun发布JDK1.0

  • 98年, JDK1.2, 更名为Java2

  • 目前, JDK 1.5, 1.7, 1.8

1.3 Java 特点

  • 一种 OO 语言

  • 一种平台无关的语言, 提供程序运行的解释环境

  • 一种健壮的语言, 吸收了C/C++语言的优点, 但去掉了其影响程序健壮性的部分(如: 指针, 内存的申请与释放等)。

1.4 Java程序运行机制

Java 两种核心机制:

  • JVM

  • Garbage collection [垃圾收集机制]

JVM

  • java虚拟机可以理解成一个以字节码为机器指令的CPU

  • Java虚拟机机制屏蔽了底层运行平台的差别, 实现了"一次编译, 随处运行"。

x.java --编译--> x.class --执行--> JVM

Garbage collection

  • Java语言消除了程序员回收无用内存空间的责任;

  • 它提供一种系统级线程跟踪存储空间的分配情况,并在JVM的空闲时, 检查并释放那些可被释放的存储器空间。

1.5 JDK & JRE

  • Software Development Kit (软件开发包) 开发需要 JDK

  • Java Runtime Environment 用户只需 JRE

1.6 Java env install

/etc/profile or .zshrc

### JAVA ###
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
JAVA_BIN=$JAVA_HOME/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

classpath : java在编译和运行时要找的class所在的路径
建议你的 JDK 装在不带空格的目录里面

Chap 2 simple Java program

2.1 命名规则

  1. 类名首字母大写

  2. 变量名和方法名的首字母小写

  3. 运用驼峰标识

1.9 HelloWorld

HelloWorld.java

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

一个源文件中最多只能有一个public类. 其它类的个数不限,如果源文件 文件包含一个public class 它必需按该 class-name 命名

2.2 Java 3 种 注释方式

 // 单行注释 
 
 /* 多行注释 */   
 
/** 
  * 用于多行注释,并且可以被doc工具解析 
  */  

Chap 3 Java 基础程序设计

3.1 Java data_type

                                          -- 整数类型 (byte, short, int, long)  
                              -- 数值型 --     
                             |            -- 浮点类型 (float, double)  
               --基本数据类型  -- 字符型 (char)  
              |              |  
              |               -- 布尔型 (boolean)  
    数据类型 --                           
              |               -- 类 (class)  
              |              |  
               --引用数据类型  -- 接口 (interface)  
                             |  
                              -- 数组 (array)  

java 中定义了 4类 8种 基本数据类型
boolean 类型只允许取值 true / false , 不可以用 0 或 非0 替代。
char 采用 Unicode 编码 (全球语言统一编码), 每个字符占两个字节

Chap 4 Array & Method

public class Test {  
    public static void main(String[] args) {  
        Date[] days;  
        days = new Date[3];  
        for (int i = 0; i < 3; i++) {  
            days[i] = new Date(2004, 4, i+1);  
        }
        // 
        int[] a = {1, 2, 3, 4, 5, 6, 7};  
        for (int i = 0; i < a.length; i++) {  
            System.out.print(a[i] + " ");  
        }  
    }  
}  
class Date {  
    int year;  
    int month;  
    int day;  
    Date(int y, int m, int d) {  
        year = y;  
        month = m;  
        day = d;  
    }  
}

面向过程-约瑟夫环
面向对象-约瑟夫环