Java重点笔记

本文详细介绍了Java编程中的核心概念,包括面向对象、递归算法、Git使用、JDK8新特性、Junit测试、注解、API、数据结构、数据库操作、Linux基础、Redis数据库以及Spring和SpringBoot框架的使用。此外,还涵盖了Mybatis框架的集成和使用,以及Junit单元测试等内容,全面展示了Java开发的关键知识点。
摘要由CSDN通过智能技术生成

面向对象

面向对象三大特性:封装,继承,多态。
继承extends或实现implements是多态的前提,多态指一个对象有多种形态。
多态的好处:无论右边new出什么子类对象,等号左边调用方法都不会发生改变。扩展性更好。

抽象类:抽象方法所在的类必须是抽象类,抽象类中也可以有普通成员方法。一般和继承息息相关。
抽象方法:在方法名前加abstract关键字,去掉大括号,直接加分号结束。

public abstract class animal{
   
	public abstract eat();
	public void method(){
   
		Syste,.out.println("这是普通成员方法");
	}
}

接口就是一种公共规范标准。它是引用数据类型。内部方法必须为抽象方法,一般和实现息息相关。

public interface 接口名称{
   
	public abstract method();//默认且必须为为public abstract,可省略。
}

三元运算符与switch

int a = 1;
int b = 2;
int max = a<b ? a:b;

int num = 1;
switch(num){
   
	case 1:
	System.out.println("我是1");
	break;
	case 2:
	System.out.println("我是2");
	break;
	default:
	System.out.println("我既不是1,也不是2");
	break;
}

递归算法

定义:是一种直接或间接自己调用自身算法的过曾。
特点:
1.自身调用自身
2.有明确的递归出口
3.虽然简洁,但运行效率低。
4.容易造成栈溢出,所以不提倡用递归编写程序。

git

svn是集中式版本控制系统,版本库集中放在中央服务器中,需要联网。
git为分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库。

图形化工具为tortoisegit。
要先建一个本地代码仓,把项目文件复制到,git目录下(工作区),要先添加到暂存区,再提交到本地版本库。

在GitHub上新建一个项目,当作远程仓库。

SSH:安全外壳协议,是目前较为可靠,专为远程登录会话和其他网络服务提供安全的协议,利用SSH协议可以有效防止远程管理过程中信息泄露问题。

公钥加密,私钥解密。这两把钥匙可以互相加解密。公钥负责身份验证,私钥负责数字签名。

JDK8新特性

函数式接口:有且只有一个抽象方法的接口,适用于Lambda使用的接口。
@FunctionalInterface注解可以检测该接口是否为函数式接口,如果不是,编译失败,如果是,编译成功。
函数式接口可以作参数或返回值, Lambda表达式:方法名()->{} ()里接重写方法的参数,没有则空。

Stream流是一个来自数据源的元素队列,它本身不存储数据,只是按需对数据进行处理,有延迟执行的特点。

方法引用可简化Lambda表达式,System.out::print;

Junit单元测试

测试分为黑盒测试和白盒测试。
黑盒测试:不需要写代码,给输入值,看是否能得到期望值。
白盒测试:需要写代码,关注程序的具体执行流程。
junit测试就是一种白盒测试。
junit测试使用步骤:
1.定义测试类
2.定义测试方法,最好无返回值,空参。
3.方法名前加@Test
4.导入junit依赖环境
判定结果:绿色代表成功,红色代表失败。一般我们会用断言操作来处理结果。
Assert.assertEquals(期望的结果,运算的结果)
补充:
@Before:修饰的方法会在测试方法执行之前自动执行。
@After:修饰的方法会在测试方法执行之后自动执行。

public class CalculatorTest{
   
	//初始化方法,用于资源申请,所有测试方法在执行之前都会先执行该方法。	
	@Before
	public void init(){
   
		System.out.println("init...");
	}
	//释放资源方法,在所有测试方法执行完毕之后都会执行该方法
	@After
	public void close(){
   
		System,out.println("close...");
	}
	//测试add方法
	@Test
	public void addTest(){
   
		Calculator c = new Calculator();
		int result = c.add(1,2);
		Assert.assertEquals(2,result);
	}
}

注解

注解:说明程序的,给计算机看的。

注解格式:@Test等

注解的作用:
1.通过代码里标识的注解生成doc文档
2.通过代码里标识的注解进行代码分析(反射)
3.通过代码里标识的注解使编译器对代码进行基本的编译检查。

自定义注解:
格式:public @interface 注解名称{ }
本质:注解本质就是一个接口,该接口默认继承Annotation接口
public interface MyAnno extends java.lang.anmotation.Annotation{ }

API

API:application programming interface 应用程序接口,是程序员的字典。

Random类

Random类是一个生成随机数的类。

Random rd = new Random(); int a = rd.nextInt();		随机生成int范围内的数。
int b =rd.nextInt(3);		代表生成一个03的整数,3取不到。

Scanner类

Scanner类就是一个键盘扫描器。
Scanner类的使用步骤:

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();

ArrayList集合

ArrayList集合是一个长度可变的容器,只可以存储引用类型的数据。直接打印输出的是集合中的内容而不是地址值。

ArrayList<String> list = new ArrayList<>();
for(int i=0;i<list.size();i++){
   
	System.out.println(list.get(i));
}

集合框架概述及迭代器遍历

Collection接口定义了所有单列集合共性的方法,且没带索引。

List接口中的集合是有序的集合(存储和取出元素的顺序一致),允许存储重复的元素,有索引,可以使用普通for循环遍历。

Set接口中的集合不允许存储重复元素,没有索引,不能使用普通for循环遍历。其中,TreeSet集合和HashSet集合是无序的,LinkedHashSet集合是有序的。

Iterator迭代器是一个接口,可对Collection接口中的所有集中进行遍历,我们无法直接使用,需要使用Iterator接口的实现类对象。
迭代器获取方式:Collection接口有一个方法叫iterator(),这个方法返回的就是迭代器的实现类对象。

迭代器使用步骤:
1.使用集合方法中的iterator()获取迭代器实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的hasNext()方法判断还有没有下一个元素
3.使用Iterator接口中的next()方法取出下一个元素。

List<String> list = new ArrayList<>();
list.add("进进");
list.add("蛋蛋");
list.add(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值