【Java学习笔记】(一)Java简介&程序基础

Java快速入门

Java简介

java程序执行过程

  1. 编译器编译生成.class文件
  2. .class文件在JVM上解释执行(Java为解释型语言)

跨平台的实现:不同的操作系统上有不同的JVM解释.class文件

【Java学习笔记】(一)Java简介&程序基础_第1张图片【Java学习笔记】(一)Java简介&程序基础_第2张图片img

学习路线

  1. Java SE:语言本身,核心开发技术,标准库的使用
  2. Java EE:Spring框架,数据库开发,分布式框架
  3. 大数据开发:Hadoop, Spark,Flink大数据平台
  4. 移动开发:Android平台

名词解解

  • JDK:Java Development Kit
  • JRE:Java Runtime Environment

【Java学习笔记】(一)Java简介&程序基础_第3张图片

  • JSR规范:Java Specification Request
  • JCP组织:Java Community Process

JCP组织负责审核JSR规范

  • RI:Reference Implementation(参考实现)
  • TCK:Technology Compatibility Kit(兼容性测试套件)

运行Java程序

//将Java程序编译为字节码
javac 类名.java
//解释执行字节码文件
java 类名

Java程序基础

Java程序基本结构

“对象+消息”取代了结构化编程中的“数据结构+算法”

  1. package语句:如果有必须放在文件开始
  2. import语句:如果有必须放在所有类定义之前
  3. public型的class定义:每个文件最多一个,且与文件名相同——是与其他文件交互的接口,实现低耦合高内聚的保证,只有一个接口与其他文件中的类交互
  4. class定义:数量没有限制
  5. interface定义:数量没有限制

文档注释

/**开头,以*/结束,如果有多行,每行通常以星号开头

写在类和方法的定义处,可以用于自动创建文档

/**
*学生
*@author dy
*/
public class Student{
    String name;
    ......
}

问题分析过程

  1. 识别问题领域中的类
  2. 定义类的属性和类之间的关系
  3. 按照package组织class

命名约定

标识符使用Unicode

可包含字母、下划线、美元符、数字,且不以数字开头的字符串

接口名、类名:每个字母的首字母大写

变量和方法名:首字母小写,其余各单词首字母大写

常量:每个字母均大写

变量和数据类型

【Java学习笔记】(一)Java简介&程序基础_第4张图片

布尔类型——boolean

取值:truefalse

字符类型——char

单引号括起来,表示一个Unicode字符

浮点型——单精度(float)和双精度(double)

浮点数常量默认为double,除非显式声明为float

引用类型

eg: String字符串

类似于指针,存储指向变量的地址

常量

final关键字定义

final double PI = 3.14;

var关键字

定义变量时,省略变量类型,利用自动推断变量类型功能

var sb = new StringBuilder();
//等价于 StringBuilder sb = new StringBuilder();

整数运算

位运算

与或非异或运算的应用

浮点数运算

强制转型

实现四舍五入:对浮点数+0.5再强制转型

字符串

  1. 多行字符串的表示——使用"“”…“”"

String s = “”"

​ SELECT * FROM

​ users

​ WHERE id > 100

​ ORDER BY name DESC

​ “”";

  1. 不可变性
public class Main {
    public static void main(String[] args) {
        String s = "hello";//JVM创建字符串“hello”,让s指向这个字符串
        System.out.println(s); // 显示 hello
        s = "world";//JVM创建字符串“world”,让s指向这个字符串,改变的只是字符串变量的指向,字符串本身没有变化
        System.out.println(s); // 显示 world
    }
}
空值——null

表示引用变量不指向任何对象

数组类型

  1. 特点:

数组所有元素初始化为默认值

数组变量为引用类型

数组大小不可变

public class Main {
    public static void main(String[] args) {
        // 5位同学的成绩:
        //第一种定义方式
        int[] ns = new int[5];//类型[]表示数组类型,初始化使用new 类型[size]
        ns[0] = 68;
        ns[1] = 79;
        ns[2] = 91;
        ns[3] = 85;
        ns[4] = 62;
        //第二种定义方式
        int[]ns = {68, 79, 91, 85, 62};//可以不指定数组大小
        System.out.println(ns.length);//使用数组变量.length获得数组大小

        ns = new int[]{1, 2, 3};
        System.out.println(ns.length);//改变ns的指向
    }
}
字符串数组

数组元素为引用类型

/*names数组中有三个引用变量,三个引用变量被设定了初始指向的字符串*/
String[] names = {
    "ABC", "XYZ", "zoo"
};


//分析代码
public class Main {
    public static void main(String[] args) {
        String[] names = {"ABC", "XYZ", "zoo"};
        String s = names[1];
        names[1] = "cat";
        System.out.println(s); // s是"XYZ"还是"cat"?
    }
}
//输出ABC,s的指向没有改变,names[1]的指向和s的指向没有关系

学习网站:廖雪峰的官方网站:https://www.liaoxuefeng.com/wiki/1252599548343744

你可能感兴趣的:(Java学习笔记,java,学习,jvm)