JAVA入门(知识梳理)

JAVA基础

适合有一定C和C++基础,梳理了一下代码的基本使用。可以搭好环境后自行操作一波,印象会更深一些。

Java特性

  • 面向对象
  • 健壮性
  • 跨平台性:一个编译好的 .class 文件可以在不同平台上并行
  • 解释性语言:需要解释器进行解释,编译型语言是编译后的代码(二进制)可以直接被机器执行

JDK,JRE

v在这里插入图片描述

文档注释

在这里插入图片描述

文档注释主要是用来生成java开发文档javadoc的,生成的开发文档和Java本身的API帮助文档是一样的,也就是对你所写的类进行解释说明,所以它还需要搭配一些文档标记,进行解释说明,而且在文档注释中可以使用HTML语言,jdk源码中有大量的文档注释,所以弄懂文档注释可以帮助你更好的看懂源码。

dos一些指令

md: 创建目录

rd: 删除目录
在这里插入图片描述

数据类型

  • 整型: byte,short,int,long–> 8,16,32,64
  • 浮点:默认为double,64位,在小数后面加f或F为float,32位
  • 字符:16位
  • 布尔
  • ···

标识符

由字母、下划线、$、数字组成,第一个字符不能是数字,区分大小写。

声明常量–final常量

一直不变。

final 数据类型 常量名称 (通常大写) [= 值]

一维数组

int arr[];

arr = new int[5]; 分配5个内存

初始化

int arr[] = {1,2,3,4};

int arr[] = new int[]{1,2,3,4};

fill

import java.util.Arrays;
int arr[] = new int[5];
Arrays.fill(arr,8);
//fill(int[] a, int fromIndex, int toIndex, int value);

排序

Arrays.sort(object)

复制

  • copyOf(arr, int newlength);

​ newlength若大于原数组长度,用0或null填充;若小于则多余的丢弃;

  • copyOfRange(arr, int fromIndex, int toIndex);

查询

binarySearch(Object[] a, int fromIndex, int toIndex, Object key); //返回一个索引

类与对象

Cat c1 = new Cat("黑");

继承

class Child extends Parent{}

JAVA只能单继承,一个类只有一个父类。

Object类中的几个重要方法:

  1. getClass().getname(); 获得类的名称
  2. toString() 将一个对象转换成字符串形式。
  3. equals()

​ ==比较的是两个对象引用的内存地址;equals()比较的是两个对象的实际内容

对象类型的转换

向上转:子类对象直接赋值给父类对象

向下转:只能先引用子类对象,再强制转换

Bird bird = new Pigeon();
Pigeon pigeon = (Pigeon) bird;

instanceof 判断对象类型

myobject instanceof ExampleClass  //返回一个boolean值

方法重载

JAVA是利用方法名、方法各个参数类型和参数的个数和顺序来确定的。

final

  • 定义常量

  • 定义方法(private无法被子类访问和修改,也就是final类型了)

  • 定义类 final 类名{} :该类不被任何类继承,不被改动;例如 java.lang.Math 和 java.lang.String

抽象类与接口

抽象类

public abstract class Parent{
    abstract void testAbstract();
}

抽象方法必须定义在抽象类中。

抽象类被继承的话,子类一定要实现抽象类中的抽象方法,可以是非抽象,但其他所有形式都与抽象方法一样。

接口interface

把方法封装到一个接口中,使需要该方法的类实现这个接口。

//接口必须是public或abstract,所以public可以省略
//接口中任意字段都是static和final
public interface Paintable{
    void draw();
}

一个类继承一个父类的同时再实现一个接口

public class --- extends --- implements Painitable{
    public void draw(){}
}

接口可以多继承,一个类可以同时实现多个接口。

class -- implements 接口1,接口2

接口也可以继承接口。

interface --- extends --- {}

包和内部类

JAVA类包

JAVA中提供了一种管理类文件的机制。

类名冲突–所以需要完整的类路径

java包命名规则是全部使用小写

//文件包
package ---; //指定包名
class --{}
//导入包
import ---.--;
//导入静态成员
import static 静态成员;

内部类

成员内部类可以随意使用外部类的成员方法以及成员变量,private也可以。

如下定义

public class Car{
    class Engine{
        
    }
    public static void main(String[] args){
        Car.Engine engine = car.new Engine();
    }
}

成员内部类不止可以在外部类中使用,在其他类中也可以使用。

this

public class Car{
    private int x = 7;
    private class Engine{
        private int x = 9;
        public void doit(){
            this.x ++; //调用内部类
            Car.this.x++; //调用外部类
        }
    }
}

匿名内部类

只有在创建对象时才会编写类体的一种写法-------现用现写。

class Dog{}

public class Demo{
    public static void main(String[] args){
        Dog wang = new Dog(){
            public void move(){}
            
        }; //注意有分号
        wang.move();
    }
}
  • 匿名类不能写构造方法。

  • 匿名类不能定义静态成员。

核心技术

异常处理

//捕获异常
public class Main {
    public static void main(String[] args) {
       try{
           
       }catch(Exception e){
           e.printStackTrace();
       }
    }
}
int money = Integer.parseInt("20L");//数据类型转换异常
System.out.println(1/0); // /by zero

自定义异常

public class MyException extends Exception{
    public MyException(String ErrorMessage){
        super(ErrorMessage);
    }
}

public class Main {
    public static void main(String[] args) {
       throw new MyException("错误");
    }
}

运行异常RuntimeException

  • Error
  • Exception

字符串

创建字符串

  • String(char a[])
  • String(char a[], int offset, int length)
  • = " "

当整型和浮点型与字符串连接时,会自动调用toString()方法并转换成字符串形式。

查找字符串

  • str.indexOf(String s) 返回参数字符串s在指定字符串中首次出现的索引位置。

  • str.lastIndexOf(String s) 最后一次出现的索引位置

获取指定索引位置的字符

  • str.charAt(int index)

子字符串substring()

去除空格trim()

字符串替换replace(target, replacement)

判断字符串开始和结尾

startsWith(String prefix) endsWith(String suffix) 返回一个bool值

比较两个字符串

==判断的时两个字符串的地址。

比较字符串的内容:

  • equals 区分大小写。

  • equalsIgnoreCase 不区分大小写。

  • compareTo 按字典顺序比较,-x,0,x

大小写转换

  • toLowerCase()
  • toUpperCase()

字符串分割

split(string sign)

split(sign1/sign2)

split(sign, int limitTimes)

格式化字符串

String  str = String.format("%d", 400/2);
String  str2 = String.format("%b", 3>5);

正则表达式

public class Main {
    public static void main(String[] args) {
       String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
       String str = "11@qq.com";
       if(str.matches(regex)){

       }
    }
}

字符串生成器

使用StringBuilder类,速度快很多

JAVA常用类库

-包装类,interger、Double、Boolean、Character、Number类

数据处理类,数字格式化、Math、Random、BigInteger、BigDecimal

时间日期处理类,Date、日期格式化、Calendar

Runtime类,执行本地命令、查看内存

System类,输出、计时

Scanner类,用户输入

包装类

Byte Short Int Long Float Double Character Boolean

byte short int long float double char bool

装箱:基本数据类型转换为包装类

拆箱:包装类转换为基本数据类型

Integer类

在这里插入图片描述

数字格式化

import java.text.DecimalFormat;
public class DecimalFormatSimpleDemo{
    static void SimgleFormat(String Pattern, double value){
        DecimalFormat myFormat = new DecimalFormat(pattern);
        String output = myFormat.format(value);
    }
    public static void main(String[] args) {
       SimpleFprmat("###,###,###",123456.789);
    }
    
}
//输出123,345.789

计时

long start = System.currentTimeMillis();
---
long end = System.currentTimeMillis();
end - start

用户输入:Scanner类

import java.util.Scanner;

Scannner sc = new Scanner(System.in);
input = sc.nextInt();//获取用户输入的整数

集合类

java.util包:

Collection接口,派生了list和set接口

List集合:允许重复,类似数组

  • ArrayList类:可变数组
  • LinkedList类:采用链表保存对象
List<String> list = new ArrayList<>();

Set集合

  • HashSet类
  • TreeSet类

Map集合

  • HashMap类
  • TreeMap类

枚举类型与泛型

//默认是final、public、static
enum Constants{
    consA,
    consB,
}
//使用
Constants.consA

可以把Constants看成一个类

Constants es[] = Constants.values(); //以数组的形式返回

泛型

public class Book<T>{
	private T bookinfo;
    public Book(T b){
        this.bookinfo = b;
    }
    Book<String> bookname = new Book<String>("山河故人");
     Book<Double> bookprice = new Book<Double>(100);
}

对泛型类实例的类型做限制。

class LimitClass<T extends List>{
}

–未完待续–

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值