java入门

文章目录

入门

Java一切皆对象

  • 一次编译,到处运行:

    • 一次javac 生成 二进制可执行程序
    • 通过 java 在 JVM上运行
  • JDK、JRE、JVM之间的关系?

    • JDK(Java Development Kit):Java开发工具包
    • 提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
    • JRE(Java Runtime Environment):Java运行时环境
      • 包含了JVM,Java基础类库。
      • 是使用Java语言编写程序运行的所需环境。
    • JVM:Java虚拟机 ,运行Java代码
      • 由C/C++编写的软件
        • 实现了 环境的隔离,可执行文件只在虚拟机上执行
  • 规范:

    • 类名与文件名要一致
    • 类名是大驼峰
  • 运行传入参数

    复制代码
      	public static void main(String[] args) {
      		for(int i=0;i<args.length;i++){
      			System.out.println(args[i]);
      		}
      	}

注释

  • ava中的注释主要分为以下三种

    • 单行注释:// 注释内容(用的最多)

    • 多行注释:/* 注释内容*/(不推荐)

    • 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用)

      • 可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

      复制代码
        // 在cmd中,使用javadoc工具从Java源码中抽离出注释
        // -d 创建目录 myHello为目录名
        // -author 显示作者
        // -version 显示版本号
        // -encoding UTF-8 -charset UTF-8 字符集修改为UTF-8
        javadoc -d myHello -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java
  • 注意:

    1. 多行注释不能嵌套使用
    2. 不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信息。

标识符

硬性规则

  • 标识符中可以包含:

    • 字母、数字以及 下划线和 $ 符号等等。
  • 注意:

    • 标识符不能以数字开头 ,也不能是关键字,且严格区分大小写。

软性建议

  • 类名:每个单词的首字母大写(大驼峰)
  • 方法名:首字母小写后面每个单词的首字母大写(小驼峰)
  • 变量名:与方法名规则相同

关键字

goto语句

复制代码
label1:
for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        System.out.println(i+" "+j);
        if(j ==2)
            continue label1;
    }
}

方法

  1. 修饰符:现阶段直接使用public static 固定搭配
  2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void
  3. 方法名字:采用小驼峰命名
  4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
  5. 方法体:方法内部要执行的语句
  6. 在java当中,方法必须写在类当中
  7. 在java当中,方法不能嵌套定义
  8. 在java当中,没有方法声明一说

方法重载

  • 方法签名即:
    • 经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名 +参数列表 +返回值类型,构成方法完整的名字。

native

本地方法:

底层使用C/C++实现的

内存划分

  • 程序计数器 (PC Register):
    • 只是一个很小的空间, 保存下一条执行的指令的地址
  • 虚拟机栈(JVM Stack):
    • 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧
      • 栈帧中包含有:局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息
      • 保存的都是与方法执行时相关的一些信息。
    • 比如:局部变量。当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了
  • 本地方法栈(Native Method Stack):
    • 本地方法栈与虚拟机栈的作用类似. 只不过保存的内容是Native方法的局部变量.
    • 在有些版本的 JVM 实现中(例如HotSpot), 本地方法栈和虚拟机栈是一起的
  • 堆**(Heap)**:
    • JVM所管理的最大内存区域. 使用 new 创建的对象都是在堆上保存
    • 堆是随着程序开始运行时而创建,随着程序的退出而销毁
      • 堆中的数据只要还有在使用,就不会被销毁。
  • 方法区**(Method Area)**:
    • 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据.
    • 方法编译出的的字节码就是保存在这个区域
    • 方法区在堆上

数组

数组的存储

  • 引用变量
    • 引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该地址,引用变量便可以去操作对象
  • null
    • 初始化为 null, 不指向任何对象
    • 注意: Java 中并没有约定 null 和 0 号地址的内存有任何关联

数组的初始化

可以省略 列,不能省略行:

复制代码
  int[][] arr2 = new int [2][];
  System.out.println(arr2[0]); //null
  arr2[0] = new int[5];
  arr2[1] = new int[1];
  System.out.println(Arrays.toString(arr2[0])); //[0, 0, 0, 0, 0]
相关推荐
李白你好3 分钟前
Java静态应用程序安全测试 (SAST) 工具
java
进击切图仔3 分钟前
生成 .so 和使用 .so
java·javascript·算法
tant1an5 分钟前
Spring Boot 进阶之路:热部署机制 + 配置高级特性详解
java·spring boot·后端
qq_172805598 分钟前
基于Go的动态定时器管理功能架构方案设计与实现
开发语言·架构·golang
生命因何探索9 分钟前
SpringBoot启动流程—面试热点
java·spring boot·面试
小乔的编程内容分享站10 分钟前
C语言笔记之结构体第二篇
c语言·开发语言·笔记
xiaoye370811 分钟前
如何在Spring中使用注解解决线程并发问题?
java·后端·spring
future021013 分钟前
Spring IOC启动全流程解密
java·后端·spring·ioc
codeJinger13 分钟前
【Python】集合
开发语言·python
太阳神LoveU14 分钟前
Spring Boot 4.0.3和3.X的各个版本主要功能差别和优劣势对比
java·spring boot·后端