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]
相关推荐
程序员南飞1 小时前
ps aux | grep smart_webrtc这条指令代表什么意思
java·linux·ubuntu·webrtc
弥琉撒到我1 小时前
微服务swagger解析部署使用全流程
java·微服务·架构·swagger
一颗花生米。2 小时前
深入理解JavaScript 的原型继承
java·开发语言·javascript·原型模式
问道飞鱼2 小时前
Java基础-单例模式的实现
java·开发语言·单例模式
学习使我快乐012 小时前
JS进阶 3——深入面向对象、原型
开发语言·前端·javascript
通信仿真实验室3 小时前
(10)MATLAB莱斯(Rician)衰落信道仿真1
开发语言·matlab
勿语&3 小时前
Element-UI Plus 暗黑主题切换及自定义主题色
开发语言·javascript·ui
ok!ko6 小时前
设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)
java·设计模式·原型模式
2402_857589366 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
吾爱星辰7 小时前
Kotlin 处理字符串和正则表达式(二十一)
java·开发语言·jvm·正则表达式·kotlin