java基础查缺补漏

在这里插入图片描述

八大基本类型

Java基本类型共有八种,基本类型可以分为四类,字符类型char、布尔类型boolean、数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。8种类型表示范围如下:

在这里插入图片描述

PS:类型转换
在这里插入图片描述

JAVA关键字

关键字一律用小写字母标识,按其用途划分为如下几组。
(1)用于数据类型。
  用于数据类型的关键字有 boolean、byte、char、 double、 false、float、int、long、new、short、true、void、instanceof。
(2)用于语句。
  用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
(3)用于修饰
  用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、
  transient、 volatile。
(4)用于方法、类、接口、包和异常。
  用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。
  还有些关键字,如cat、 future、 generic、innerr、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。
  另外,Java还有3个保留字:true、false、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。
  
关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package 包
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

java命名规范

在这里插入图片描述
PS:标识符

  • 数字、字母、下划线组成(不推荐使用$)且不能使用字母开头
  • 不使用JAVA关键字
  • 最好做到见名知意
  • 驼峰规则(如上图)

注释(禁止放在句尾)

在这里插入图片描述

运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if语句

 int score=90;
        if (score>90){
            System.out.println("优秀");
        }else if (score<20){
            System.out.println("准备叫家长!");
        }else{
            System.out.println("良好");
        }
        //不加大括号 范围遇到第一个分号结束
        if (score == 100)
            System.out.println("if范围内");
        System.out.println("if范围外");
    }

switch

/*
        1.关于case后面的break;
        如果case后不加break,会继续执行下一个case的代码;(可自行实验)
        2.关于switch支持的类型
        byte、short、int、char、string(1.7版本后才开始支持)
         */
        int day = 3;
        switch (day) {
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周日");
                break;
            default:
                System.out.println("错误");
                break;
        }

三目运算

 /*
        写一个三数最大值的demo来介绍三目运算符的作用
         */
        int oneNumber = 3;
        int twoNumber = 100;
        int threeNumber = 2;
        //如果one>two  max=one 反之 max=two
        int maxNumber = oneNumber >= twoNumber ? oneNumber : twoNumber;
        //如果max>three max=max 反之 max=three
        maxNumber = maxNumber >= threeNumber ? maxNumber : threeNumber;
        System.out.println(maxNumber);

while

/*
        1.关于while的执行
        先判断条件,在执行代码段的内容
        2.关于do-while的执行
        先执行代码段,在判断条件,也就是说do-while最少执行代码段一次
        3.关于break的作用
        打破循环
        4.关于continue的作用
        结束本次执行,开始下一次执行
         */
        int i = 1;
        while (i < 10) {
            if (i == 4) {
                System.out.println("我不喜欢4这个数字,下一个!");
                i++;
                continue;
            }
            if (i == 5) {
                System.out.println("劳资不陪你玩了,再见!我要打破循环跑路去了!");
                break;
            }
            System.out.println(i++);
        }

        do {
            System.out.println("劳资就是这么任性,就算不满足条件,我也能执行一次");
        } while (i < 5);
    }

for

 /*
        1.关于for的三个表达式
        第一个表达式=="初始化"(最开始执行,且只执行一次)
        第二个表达式==循环判断条件(n次循环执行n+1次)
        第三个表达式==每次循环结束后执行(相当于在代码段的尾端书写 n次循环执行n次)
         */

        /*
        阶乘和连加的demo
         */
        int allMultiply = 1;
        int allAdd = 0;
        for (int i = 1; i < 10; i++) {
            allAdd += i;
            allMultiply *= i;
        }
        System.out.println("阶乘:" + allMultiply + "\t连加:" + allAdd);
    }

函数

参数为基本数据类型:值传递(传递的是值)
参数为引用数据类型:引用传递(传递的是地址)
在这里插入图片描述

在这里插入图片描述
PS:参数列表:参数类型,个数,顺序

数组

 /*
        数组的三种常见初始化
         */
        int[] numbers = {1, 2, 3};
        int[] numbers1 = new int[]{1, 2, 3};
        int[] numbers2 = new int[10];
        /*
        经典数组遍历
         */
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
        /*
        迭代方式  更加高级
         */
        for (int number : numbers) {
            System.out.println(number);
        }

PS:Arrays类的使用,专为处理数组而生的一个类

  /*
           binarySearch
           二分查找,简单来说就是查找的功能;
           参数:第一个参数是数组,第二个参数是你想从数组里查询的内容
           返回值:未查询到则返回-4  查询到则返回数据的位置下标
         */

//        System.out.println(Arrays.binarySearch(numbers,5));

        /*
           copyOf
           复制数组中的数据
           参数:第一个参数是数组,第二个参数是你想复制数组数据的个数(长度),默认从第一个数据开始
           返回值:数组
         */
//       int[] numberTemp=Arrays.copyOf(numbers,1);
//        for (int i = 0; i < numberTemp.length; i++) {
//            System.out.println(numberTemp[i]);
//        }

        /*
            copyOfRange
            复制数组中的数据
            与copyOf相似  只不过复制数组时数据的起点不再默认从第一个数据开始,而是人为规定
         */
//        numberTemp=Arrays.copyOfRange(numbers,1,2);

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

        /*
            equals
            比较数组的元素是否完全相等
            参数:比较的两个数组
            返回值:相等返回true,不相等返回false
         */
//        System.out.println(Arrays.equals(numbers,numbers1));

        /*
        fill
        把数组的每个元素变成某个元素
        参数:第一个参数是数组,第二个是你指定的值
         */
//        Arrays.fill(numbers, 2);
//        for (int i = 0; i < numbers.length; i++) {
//            System.out.println(numbers[i]);
//        }

        /*
           sort
           排序(升序)
           参数:数组
         */
//        Arrays.sort(numbers);
//        for (int i = 0; i < numbers.length; i++) {
//            System.out.println(numbers[i]);
//        }

        /*
        toString
        转为字符串
        参数:数组
         */
//        System.out.println(Arrays.toString(numbers));
        

在这里插入图片描述

java垃圾回收

在这里插入图片描述

OOP(面向的对象)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类是对象的概括,对象是类的具体实例。
万物皆对象,万物皆可以抽象成类
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

继承和多态

在这里插入图片描述

在这里插入图片描述

异常

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

String and StringBuffer

在这里插入图片描述

包装数据类型

在这里插入图片描述
在这里插入图片描述

时间、日期

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Math 和Random

在这里插入图片描述
在这里插入图片描述

正则表达式

[]:单个字符的范围
{}:左边字符的长度
():就是普通的()
详细知识

国际化

在这里插入图片描述

三大集合

在这里插入图片描述
详细知识

大数、小数的处理(BigDecimal)

在这里插入图片描述
数字精度处理知识

comparable和comparator

compareble对新建类(员工类)内部进行增强(实现comparable接口),但是排序的字段只能是一个。所以引入了comparator,可以实现对n个字段排序。
comparator不对新建类进行更改,而是定义一个新类实现comparator接口成为一个排序工具,给用户使用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件API

在这里插入图片描述

在这里插入图片描述

字节流和字符流

详细知识

对象序列化(对象流)

在这里插入图片描述

demo

package P2020_05_21;/*
   @author:Qian
   @time:2020/5/22 
 */

import java.io.Serializable;
import java.util.Objects;

public class student implements Serializable {
    private String name;

    public String getName() {
        return name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        student student = (student) o;
        return name.equals(student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name);
    }

    public void setName(String name) {
        this.name = name;
    }

    public student() {
    }

    @Override
    public String toString() {
        return "student{" +
                "name='" + name + '\'' +
                '}';
    }

    public student(String name) {
        this.name = name;
    }
}

package P2020_05_21;/*
   @author:Qian
   @time:2020/5/21 
 */

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class SerializeTest {
    public static void main(String[] args) {
        /*
        写
         */
        try {
            student a = new student("小红");
            student b = new student("小蓝");
            student c = new student("小黄");
            List<student> list = new ArrayList<>();
            list.add(a);
            list.add(b);
            list.add(c);
            //文件路径
            String filePath = "123.txt";
            FileOutputStream fileOutputStream = new FileOutputStream(filePath);
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
            objectOutputStream.writeObject(list);
            objectOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        /*
        读
         */
        try {
            String filePath = "123.txt";
            FileInputStream fileInputStream = new FileInputStream(filePath);
            ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
            try {
                List<student> list2 = (List<student>) objectInputStream.readObject();
                for (student student : list2) {
                    System.out.println(student);
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

mysql

常用函数

substr

剪切

trim

去除空格

concat

粘合

replace

代替

case when then else end

if else

详细内容

猜你喜欢

转载自blog.csdn.net/Mr_Qian_Ives/article/details/105712167