[杂乱笔记]在Java编程比赛中,我们务必要掌握的8个基本知识点(不断更新中...)

1.数据类型

Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本类型,其中有4种整型(int、long、long long、byte)、2种浮点类型(float、double)、1种用于表示Unicode编码的字符单元的字符类型(char)和一种用于表示真值的boolean类型。

数据类型 包装类 存储需求(byte) 位数(bit) 最小值 最大值
byte Byte 1 byte 8 bit -128 127
char Charactor 2 byte 16 bit 0 65535
short int Short int 2 byte 16 bit -32768 32767
int Integer 4 byte 32 bit -2147483648 2147483647(>20亿)
long Long 4 byte 32 bit -2147483648 2147483647
float Float 4 byte 32 bit -3.4028347e+38 3.4028347e+38
double Double 8 byte 64 bit -1.79769e+308 1.76969e+308

注意:3.4028347e+38代表3.4028347*10的38次方,2的63次方=9 223 372 036 854 775 808
包装类与基本数据类型的区别

区别/类型 包装类 基本数据类型
对象调用 是对象,拥有方法和字段,对象的调用都是通过引用对象的地址 基本数据类型不一样
传递方式 引用的传递 值的传递
声明方式 需要new在堆内存中进行new来分配内存空间 不需要new关键字
存储位置 把对象放在堆中,然后通过对象的引用来调用他们 直接将值保存在值栈中
初始值 null i0或false
使用方式 在集合中使用 直接赋值使用

2.常见的数学函数

在这里插入图片描述
一般来说,如果我们在程序中调用的格式如:

import java.lang.Math;
int x;
x = -1;
System.out.println(Math.abs(x));///对x绝对值

如果们不想添加Math前缀的话,我们可以这样:

import static java.lang.Math;
int x;
x = -1;
System.out.println(abs(x));///对x绝对值

3.常见的字符串函数

在这里插入图片描述
注意:图中的指定字符哪里int ch为char ch!!!!
有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串连接的方式达到此目的效率比较低。每次连接字符串,都会构建一个新的String的对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。

public class Main{
    public static void main(String [] args) {
       StringBuilder builder = new StringBuilder();///构建一个空的字符串构建器
        int len = builder.length();///返回构建起或缓冲器的代码单元数量
        char ch = 'a';
        builder.append(ch);////追加一个代码单元并返回this
        String str = "bc";
        builder.append(str);///追加一个字符串并返回this

        //builder.setCharAt(int index,char ch);///将某个字符设置为字符ch
        ///builder.insert(int offset,String str);///在offset位置插入一个字符串
        ///builder.insert(int offset,char ch);///在offset位置插入一个字符
        ///builder.delete(int startIndex,int endIndex);///删除偏移量从startIndex到endIndex-1的代码单元并返回this
        ///String toString();///返回一个与构建器或缓冲器内容相同的字符串
    }
}
      

4.控制台输入与输出

4.1 读取输入

要在控制台进行输入,首先需要构造一个Scanner对象:

import java.util.Scanner;
Scanner sc = new Scanner(System.in);

Scanner类中常见的函数

import java.util.Scanner;

public class Main{
    public static void main(String [] args) {
      Scanner sc = new Scanner(System.in);
      while(sc.hasNext()){///检查输入中是否还有其他元素,多行输入时会用到
          int x = sc.nextInt();///读取输入整数
          ///long x = sc.nextLong();///输入长整型
          ///float x = sc.nextFloat();///
          ///double x = sc.nextDouble();///输入浮点型
          ///String str = sc.nextLine();///输入一行,包括空格
          ///String str = sc.next();///输入单词,不包含空格(以空格作为分隔符)
      ///sc.hasNextInt()、sc.hasNextDouble()...(检查是否还有此类型的元素)
      }
     sc.close();///关闭此扫描仪
    }
}

4.2 格式化输出

如果我们没有什么特殊的强制性要求的话,我们这样输出:

System.out.println();///没有内容输出,就是换行

int x = 1;
System.out.prinln(x);///输出整型

char ch = 'a';
System.out.prinln(ch);///输出字符

String str = "Hello";
System.out.prinln(str+" world");///输出字符

System.out.prinln(x+str);///输出字符加整型

如果我们在编程中需要有特殊性要求的话,比如我们希望显示美元、美分等符号。上面的方法就无法满足我们的需求了。JavaSE5.0沿用了C语言函数中的printf方法:

double x = 10000.0/3.0;
System.out.printf("%8.2f",x);///3333.33

☞ 格式说明符的语法如下:
在这里插入图片描述
注意:上面的格式符视自己需求增减
☞ 用于printf的转换符:(以整数159为例)

转换符 类型 举例
d 十进制整数 159
c 字符 H
s 字符串 Hello
b 布尔 true
h 散列码 42628b2
% 百分号 %
x 十六进制整数 9f
o 八进制整数 237
f 定点浮点数 15.9
e 指数浮点数 1.59e+01
g 通用浮点数
a 十六进制浮点数 0x1.fccdp3
n 与平台有关的行分割符 -
tx或Tx 日期时间 已过时

☞ 用于printf的标志:

标志 目的 举例
+ 打印正数符号(负数系统自动给) +3333.33
空格 在数之前添加空格 3333.33
0 数字前面补0(系统默认右对齐,如要求12格式化宽度为4的数,0012) 03333.33
- 左对齐 3333.33
将负数括在括号内 (3333.33)
, 添加分组分隔符 3,333.33
#(对于f格式) 包含小数点 3,333.
#(对于x或0格式) 添加前缀0x或0 0xcafe
$ 给定被格式化的参数索引,如:%1$d将以十进制打印第一个参数 159
< 格式化前面说明的数值。 如:5和6,%d%<d输出55

在这里插入图片描述
☞ String.Format格式化用法:

(System.out.printf()==System.out.printf(String.format()))
///这两种方式是等同的

5.(算术、逻辑、位、比较、三元)运算符

我的另外一篇博客,直达链接:彻底掌握几种运算符的运用

6、数组的定义

一维数组声明:nt arr[ ] 或int [ ] arr

public class Main{
    public static void main(String [] args) {
        ///int []arr = new int[100];///方式一,固定数组长度
        ///int []arr = new int[]{1,5,2,4,3};///方式二,不固定数组长度
        int []arr={1,5,2,4,3};///方式三,不固定数组长度
        for(int a:arr){///枚举数组
            System.out.println(a);
        }
    }
}

二维数组声明:int [ ][ ]arr或int arr[ ][ ]

public class Main{
    public static void main(String [] args) {
        int [][]arr1 = new int[100][100];///方式一,固定数组长度
        int [][]arr2 = new int[][]{
                {1,5},
                {2,4}
        };///方式二,不固定数组长度
        int [][]arr3={
                {1,5},
                {2,4}
        };///方式三,不固定数组长度
    }
}

7.集合的基础知识点

链接直达:集合知识点

8.(数字、字符串、字符)之间的转换和进制转换

8.1 常见数据类型的转换

在这里插入图片描述

8.2 进制转换

字符0 ~ 9的十进制为48 ~ 57
大写字符(A~Z)的十进制为65 ~ 90
小写字符(a~z)的十进制为97 ~ 122
☞ r进制转十进制

Integer.parseInt(str, r);///str为要转换的字符串,r为被转换的进制

☞ 十进制转换为r进制

10进制转2进制:Integer.toBinaryString(n);///n为要转换的10进制
10进制转8进制:Integer.toOctalString(n);
10进制转16进制:Integer.toHexString(n);
10进制转 r 进制 Integer.toString(n, r);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章