【Java】重生之我要成为Java高手

写在一切之前

笔者学习 java 时已经学过 C 语言,故而许多内容会与 C 语言进行比较.同时,与 C 语言十分类似的部分会作删减,不会完全记录下来。

Java 语言概述

Java 的注释

Java 中有单行注释,多行注释,文档注释(Java特有的)

这里只介绍文档注释,大概格式如下:

/**
  嘿嘿
  @auther littleHamburger
  @version 1.0
 */

Java API

​ API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

​ 下载 API 文档:在线看:https://docs.oracle.com/en/java/javase/17/docs/api/index.htm

Java变量与运算符

变量的数据类型

​ Java 中变量的数据类型分为两大类:

​ • 基本数据类型:包括 整数类型、浮点数类型、字符类型、布尔类型。

​ • 引用数据类型:包括数组、 类、接口、枚举、注解、记录。

字符串:String

String属于引用数据类型,使用一对双引号来表示一个字符串,内部可以包含0-多个字符.声明方式与基本数据类型类似.

示例代码如下:

String name = "little hamburger"

String可以与基本数据类型进行运算

String与基本数据类型变量间只能作连接运算,使用+表示.

示例代码如下:

int  num1  = 10;
boolean b1 = true;
String str1 = "hello";
System.out.println(str1 + b1);

该代码的运行结果为"hellotrue".

如何将String类型变量转换为基本数据类型.

可以用Integer类型

示例代码如下:

String str = "123";
int num = Integer.parseInt(str);

逻辑运算符

此处作一个标记:在Java中,逻辑运算符可以用两个&&,也可以用&,但执行的顺序有所不同.

区分“&”和“&&”:

– 相同点:如果符号左边是 true,则二者都执行符号右边的操作

– 不同点:& : 如果符号左边是 false,则继续执行符号右边的操作

&& :如果符号左边是 false,则不再继续执行符号右边的操作

– 建议:开发中,推荐使用 &&

区分“|”和“||”:

— 相同点:如果符号左边是 false,则二者都执行符号右边的操作

— 不同点:| : 如果符号左边是 true,则继续执行符号右边的操作

|| :如果符号左边是 true,则不再继续执行符号右边的操作

建议:开发中,推荐使用 ||

Java流程控制

使用Scanner类从键盘获取数据

键盘输入代码的四个步骤:

  1. 导包:import java.util.Scanner;
  2. 创建 Scanner 类型的对象:Scanner scan = new Scanner(System.in);
  3. 调用 Scanner 类的相关方法(next() / nextXxx()),来获取指定类型的变量
  4. 释放资源:scan.close()

示例代码如下:

import java.util.Scanner;

class ScannerTest{
    public static void main(String[] args){
        //第二步:创建一个Scanner类的实例
        Scanner scan = new Scanner(System.in);
        //第三步:调用Scanner类中方法,获取指定类型的变量
        String name = scan.next();
        System.out.println("name = "+name);
        
        int age = scan.nextInt();
        double weight = scan.nextDouble();
        boolean isSingle = scan.nextBoolean();
        
        //特别的:这行代码意为:取字符串第一位的字符,相当于取了一个char类型变量
        char gender = scan.next().charAt(0);
        //防止内存泄露
        scan.close();
    }
}

尝试通过math类的方法获取一个随机数

random()调用之后,会返回一个介于0.0-1.0之间的double型的随机数.

class RandomTest{
    public static void main(String[] args){
        double d1 = Math.random();
        System.out.println("d1 = " + d1);
    }
}

Java数组

示例程序:

double[] prices;
prices = new double[]{20,30,23,50};

//也可以写作:
double[] prices = new double[]{20,30,50,10,20};

数组特征:

  1. 数组中的元素在内存中是依次紧密排列的,有序的.
  2. 数组,属于引用****数据类型的变量.数组的元素,既可以是基本数据类型,也可以是引用数据类型.
  3. 数组,一旦初始化完成,其长度就确定了,并且该长度不可更改.

动态初始化:

数组变量的赋值与数组元素的赋值操作分开进行.

//其他正确方式::
int arr[] = new int[4];
int[] arr1 = {1,2,3,4};

//错误方式:
int[] arr2 = new int[3]{1,2,3};

数组的长度:用于描述数组容器中容量的大小.

使用length属性表示:

System.out.println(arr.length);

数组的默认初始化值:

以动态初始化方式为例:

整形数组元素默认初始化值:0

浮点型数组元素默认初始化值:0.0

字符型数组元素默认初始化值:0 或者理解为 ‘\u0000’;

boolean型数组元素的默认初始化值:false

引用数组类型的默认初始化值:null

Sp:一维数组的内存解析

  1. Java中内存结构是如何划分的?(JVM运行时的内存环境)
    1. 将内存区域划分为五个部分:程序计数器,虚拟机栈,本地方法栈,堆,方法区。
    2. 与数组相关的内存结构:
      1. 虚拟机栈:用于存放方法中声明的变量。
      2. 堆:用于存放数组的实体(即数组中所有的元素)。
  2. 举例:具体一维数组的代码的内存解析

Arrays工具类的使用

java.util.Arrays类为操作数组的工具类,包含了用来操作数组的各种方法。如:

//比较两个数组元素是否依次相等
boolean ifEquals = Arrays.equals(arr1,arr2);

//输出数组元素信息static String toString(int[] a):
System.out.println(Arrays.toString(arr1));

//void fill(int[] a,int va);将指定值填充到数组之中。
Arrays.fill(arr1,10);

//void sort(int[] a)使用快速排序算法实现的排序。
int[] arr = new int[]{1,4,5,6,7};
Arrays.sort(arr);

//int binarySearch(int[] a,int key);
//使用前提:当前数组必须有序
Arrays.binarySearch(arr,5);

结语

祝大家好好学习,天天向上

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值