首页 > 编程语言 >JAVA

JAVA

时间:2022-10-12 16:57:02浏览次数:63  
标签:JAVA int System println public out

JAVA 开发

编写代码、编译代码、运行代码

结论:

  • 只要装了 JDK 就拥有了 JAVA 程序开发和运行的全部环境
  • 在企业的部署环境下(上线测试),只需要安装 JRE 即可运行编译好的 JAVA 程序(.class)

注意事项

一、配置环境

现在的 JDK 自动帮你配置环境变量(javapath),但以前的 JDK 需要自己配置环境变量

若用的是老版 JDK,需配置可参考此视频

二、查看文档

① 选中 symbol,同时按下 CTRL + SHIFT + i,查看定义
② 选中 symbol,同时按下 CTRL + Q,查看快速文档
② 按下 CTRL 键,将光标悬停在任何 symbol 上,点击进入详细文档

三、关于多个版本 JDK

基础语法

数据类型

输入输出 API

我认为 JAVA 的 API 就是面向对象的典型,各种 API 全是 new 一个新的对象,再调用对象进行操作,因此看 API 文档可能相当重要,因为该用的功能全在类中

// 导包
import java.util.Scanner;

// 创建扫描对象
Scanner sc = new Scanner(System.in);

// 调用功能
int age = sc.nextInt();
String name = sc.next();

随机类 API

// 导包
import java.util.Random;

// 创建扫描对象
Random r = new Random();

// 调用功能
int number = r.nextInt();

数组

参考:菜鸟教程CSDN(Java数组的三种打印方式)

# 定义一维度数组
int[] data = new int[10];
int[] data = new int[]{1, 2, 3, 4, 5};
int[] data = {1, 2, 3, 4, 5};

# 打印一维度数组(三种方法)
System.out.println(Arrays.toString(data));

for (int i = 0; i < data.length; i++) {
    System.out.println(data[i]);
}

for (int a : data)
    System.out.println(a);

# 定义二维数组
int[][] data = {
        {16, 3, 2, 13},
        {5, 10, 11, 8},
        {9, 6, 7, 3}
};

# 打印二维度数组
System.out.println(Arrays.deepToString(data));

方法

JAVA 的方法类似于 C 语言的函数,其构造方法如下:

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}
  • 修饰符
    • 访问修饰符(default、private、public、protected)
    • 非访问修饰符(default、static、final、abstract、synchronized、volatile)
  • 返回值类型
  • 方法名
  • 参数类型
  • 方法体

这里简单说一下对象,举个例子:

public class System {
    public void println(String x) {
        // 这个构造器仅有一个参数:x
        // 方法体
    }

    public static void main(String[] args) {
        // 下面的语句将创建一个 println 对象
        System out = new println("tommy");
    }
}

这个例子的类就是 System,类里面有 println 方法,在主方法中创建了一个对象名为 outprintln 对象,当我们 System.out.println("6") 时,就是按照 类.对象.方法 的格式调用了这个类的对象的方法【注意我这里只是举例子,实际上 System 类中没有主方法,我们一般是在含主方法的类中调用,所以才加上个 System

问:JAVA 里每个包里是不是有且只有一个 main 函数呢?
答:当然不是。 可以没有,也可以多个类里有,只不过如果是可执行的 jar 包的话只能指定其中一个类为启动类,执行时默认执行该类的 main 方法

基本类型的参数传递

基本数据类型只有 8 种,可按照如下分类:
① 整数类型:long、int、short、byte
② 浮点类型:float、double
③ 字符类型:char
④ 布尔类型:boolean

  • 在方法中定义的局部基本数据类型变量的具体内容是存储在栈中的
  • 举例:
public class HelloWorld {
    public static void main(String[] args) {
        int a = 10;
        change(a);
        System.out.println(a);
    }

    public static void change(int a) {
        a = 20;
    }
}

引用类型的参数传递

引用数据类型非常多,大致包括:
类、接口类型、数组类型、枚举类型、注解类型、字符串型(简单来说,所有的非基本数据类型都是引用数据类型)

  • 只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址
  • 举例:
public class HelloWorld {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        change(arr);
        System.out.println(arr[1]);
    }

    public static void change(int[] arr) {
        arr[1] = 222;
    }
}

这里顺便普及一下 JAVA 的内存:

参考:CSDN(Java中的栈内存与堆内存以及申请数组的底层过程)

JAVA 在内存中划分 5 片空间进行数据的存储,分别是:1:寄存器 2:本地方法区 3:方法区 4:栈 5:堆

栈的特点:

  1. 对象的引用变量都在函数的栈内存中分配
  2. 数据一执行完毕,变量会立即释放,节约内存空间
  3. 变量没有默认初始化值,需要手动设置

堆的特点:

  1. 存储的都是数组和对象(其实数组也是对象)
  2. 都是实体(实体:用于封装数据,而且能封装多个)
  3. 每一个实体都有一个首地址值
  4. 垃圾回收机制(释放方式)
  5. 每一个变量都有默认初始化值,根据类型的不同而不同(和 C 语言一样)

举个例子:int [] arr = new int [3]arr 是局部变量, 在栈内存里面,new int [3] 是实体,在堆内存里面

问:局部变量该怎么利用方法修改?
答:利用 JAVA 自带的类及其方法(还是 C 好啊,一个指针或引用就解决了)

方法重载

也称多态,即方法名相同,传递参数不同

public class HelloWorld {
    public static void main(String[] args) {
        add(10);
        add(10, 20);
    }

    public static void add(int a) {
        System.out.println(a);
    }

    public static void add(int a, int b) {
        System.out.println(a + b);
    }
}

面向对象编程

public class HelloWorld {

    String tmp1 = "tmp1";
    static String tmp2 = "tmp2";

    public void test() {
        System.out.println("Test");
    }

    public static void main(String[] args) {
        String tmp3 = "tmp3";
        // System.out.println(tmp1);
        System.out.println(tmp2);
        System.out.println(tmp3);
        HelloWorld hw = new HelloWorld();
        System.out.println(hw.tmp1);
        hw.test();
    }
}

/* 打印结果
tmp2
tmp3
tmp1
Test
*/

一个类一般包含以下:

  • 成员变量【tmp1】
  • 类变量【tmp2】
  • 局部变量【tmp3】
  • 方法(默认含有构造方法和 main 方法)【test】

源文件声明规则

  • 一个源文件(.java)中只能有一个 public 类
  • 一个源文件(.java)可以有多个非 public 类
  • 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。
  • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
  • 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间

建议:一个 JAVA 文件定义一个 class 类

emmm

实时代码模板

  1. psvm main 方法
  2. sout System.out.println()

好用的快捷键

  1. CTRL + SHIFT + F10 运行代码
  2. CTRL + ALT + l 格式化代码
  3. CTRL + / 注释
  4. CTRL + SHIFT + / 多行注释
  5. CTRL + r 文本替换

标签:JAVA,int,System,println,public,out
From: https://www.cnblogs.com/CourserLi/p/15395880.html

相关文章

  • java 将yyyyMMddHHmmss转化为yyyy-MM-dd HH:mm:ss格式的字符串
    思路很简单:先转化为yyyyMMddHHmmss格式的Date类型,再格式化为yyyy-MM-ddHH:mm:ss格式的字符串类型importjava.text.DateFormat;importjava.text.SimpleDateFormat;im......
  • 如何通过Java应用程序创建Word表格
    表格,又称为表,既是一种可视化交流模式,又是一种组织整理数据的手段。人们在通讯交流、科学研究以及数据分析活动当中广泛采用着形形色色的表格。那么如何通过Java应用程序创建......
  • protobuf怎么处理java中的Object和Object[]
    如题,作者一开始也遇到了这个比较棘手的问题。话不多说,直接说解决方案。这里使用bytestring,如果是object[]的话则用repeated定义即可。 那么问题又来了,用这个类型怎么......
  • java 易错点
    99%的Java程序员会踩的6个坑https://mp.weixin.qq.com/s/Y0F0i74kdSqn_XuZqu630w细数线程池的10个坑https://mp.weixin.qq.com/s/cDCHV08x1rPiZVZMRFjWBg......
  • JavaWeb学习日记 2022.10.10
    DDL操作表/查询表&创建表usetables;查询当前数据库下所有表名称showtables;查询表结构desc+表名称;创建表的基本语法createtable+表名(     字段......
  • 【Java】线程的生命周期
    1.线程的生命周期2.流程(1)新建Threadt1=newMyThread();此时线程状态为新建NEW(2)就绪t1.start();线程从NEW变为RUNNABLE状态,等待CPU调度执行权(3)运行获取CPU执行......
  • JavaScript字符串转数字的5种方法及其陷阱
    String转换为Number有很多种方式,我可以想到的有5种!parseInt(num);//默认方式(没有基数)parseInt(num,10);//传入基数(十位数)parseFloat(num);//浮点数Number......
  • 【Java】线程Thread类常用方法
    1.Thread类中常用方法Thread类常用方法描述start()启动当前线程,调用当前线程的run()方法。run()通常需要重写该方法,将线程要执行的操作写在此方法中。cu......
  • Java:锁定 Excel 中的特定单元格
    Excel文档在日常工作中应用广泛,常用于整理数据,收集信息等。在操作Excel文档时,有时我们会遇到需要锁定某一单元格的情况,例如,当我们通过共享的Excel文档收集整理某种信息时,锁......
  • 使用java代码连接oracle
    Connectionconn=null;try{Class.forName("oracle.jdbc.OracleDriver");//数据库IPStringip="oracle数据库IP地址或者是localhost";//数据库......