Java基础学习文档
Java基础相关的知识点总结梳理
无怒小生
文档都是自己学习和使用时遇到的感觉需要记录的知识点,语言比较倾向于白话文,便于以后查看理解,或许内容不是很全面,但是我写作时掌握理解的百分之八十,如有不足之处,欢迎指教。
展开
-
Transactional注解的rollbackFor属性
事务原创 2023-03-31 17:00:43 · 1263 阅读 · 1 评论 -
SpringBoot日志文件logback-spring.xml简析
Springboot日志文件logback-spring.xml简析<?xml version="1.0" encoding="UTF-8"?><!--configuration有三个属性:--><!-- scan:当配置文件改变后,则会重新加载,默认为true--><!-- scanPeriod:检测配置文件是否改变的间隔,若scan为true,则scanPeriod默认为60s--><!-- debug:是否打印出logb原创 2022-05-27 11:51:46 · 321 阅读 · 0 评论 -
Java基础(类、抽象类、接口)
类、抽象类、接口1.抽象类必须要有抽象方法吗?2.普通类和抽象类有哪些区别?3.抽象类能使用 final 修饰吗?4.接口和抽象类有什么区别1.抽象类必须要有抽象方法吗?1.抽象类不能被实例化,抽象类是对一个类的不完整实现。2.抽象类中可以存在抽象方法,也可以不存在抽象方法。3.抽象类中的成员方法、成员变量的访问方式和普通类一样。4.由于抽象类不能被实例化,所以抽象类必须被继承才能使用。5.继承抽象类的类必须要实现抽象类中的所有抽象方法6.抽象类也是一个类,一个类只能继承一个抽象类2.普通原创 2021-04-28 11:43:52 · 60 阅读 · 0 评论 -
Java创建线程池的方式
Java创建线程池的方式newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutornewScheduledThreadPoolnewSingleThreadScheduledExecutornewWorkStealingPoolnewFixedThreadPool定长线程池,固定长度的线程池。每当提交一个任务时创建一个线程,当线程达到线程池的最大容量时不再创建新的线程。多出的任务等待空闲线程,当线程发生错误死亡时,线程池会自动创建一个新原创 2021-04-23 15:31:33 · 81 阅读 · 0 评论 -
Java创建线程的三种方式
Java创建线程的三种方式1、继承Thread类此方式创建多线程简单易懂,但是同时代码量也大大增加。每个线程或许只进行一个操作也需要创建一个新的类去继承Thread类,且只能继承Thread类。获取线程简单,直接使用this即可不能在run方法中抛出异常// 继承Thread类创建线程:线程只能单继承,每个不同的操作都要一个新的类public class ThreadTest extends Thread { public ThreadTest(String name) {原创 2021-04-23 11:32:50 · 92 阅读 · 0 评论 -
Java基础面试之String
String基础面试题1、String是基本数据类型吗2、java 中操作字符串都有哪些类?它们之间有什么区别?3、String str="hello, world"与 String str=new String(“hello, world”)一样吗?4、如何将字符串反转?5、String 类的常用方法都有那些?1、String是基本数据类型吗String不属于基本数据类型,如果非要说的话我认为String应该和包装类归为一类,是对字符串进行操作的工具类,java的基本数据类型只有以下八种:类原创 2021-04-22 14:47:46 · 121 阅读 · 0 评论 -
JDK 函数式接口 Function 拷贝函数
Function 拷贝函数Function 源码import java.util.Objects;/*** 功能型接口,作用是将一种数据转换成另一种数据的形式输出数据* @param <T> 需要转换的数据类型* @param <R> 转换后的数据类型*/@FunctionalInterfacepublic interface Function<T, R> { // 转换数据的方法 R apply(T t); // 定义一原创 2021-04-10 11:51:52 · 131 阅读 · 0 评论 -
JDK 函数式接口之 Predicate 判断函数接口
Predicate 判断函数接口Predicate 源码import java.util.Objects;/*** 判断函数Predicate,返回值是boolean*/@FunctionalInterfacepublic interface Predicate<T> { // 用于判断参数是否符合自己重写后的test方法里的规则,如果参数符合test里的规则就返回true,不符合就返回false boolean test(T t); // 定义一个函数,要判原创 2021-04-10 11:33:08 · 262 阅读 · 0 评论 -
JDK 新特性之 Consumer 消费函数
Consumer 消费函数Consumer 源码import java.util.Objects;/*** 给定一个 T 类型的参数,对其进行消费,消费的方式可以是任意操作*/@FunctionalInterfacepublic interface Consumer<T> { // 对给定对参数执行定义对操作 void accept(T t); // 对给定对参数 T 执行定义对操作,在继续执行after定义对操作 default Consumer&l原创 2021-04-09 11:15:13 · 771 阅读 · 0 评论 -
JDK 新特性之 Supplier 生产器
Supplier 生产器Supplier 源码package java.util.function;@FunctionalInterfacepublic interface Supplier<T> { T get();}Supplier 练习代码import java.util.function.Supplier;/** * 练习使用Supplier函数式接口 */public class UseSupplier { // 测试主函数 publi原创 2021-04-08 15:58:39 · 158 阅读 · 0 评论 -
final关键字
final关键字的作用一、final修饰变量二、final修饰方法三、final修饰类一、final修饰变量final关键字修饰变量时分两种情况:一、修饰基本数据类型的常量时,当final关键字修饰基本数据类型的常量时就代表这个变量是一个常量,其值不能被修改。一般被final关键字修饰的变量会全部大写,单词之间用"_"下划线分割,如需要定义一个学生名称的变量并且用final修饰这个变量则变量的名字一般会定义成:STUDENT_NAME二、修饰引用数据类型的变量时,当fianl关键字修饰引用数据类型的原创 2021-01-25 13:54:41 · 73 阅读 · 0 评论 -
hashCode和equals分析
hashCode和equals分析hashCode()hashCode()hashCode():hashCode就是对象的散列码,是根据对象的某些信息推导出的一个整数值,默认情况下表示是对象的存储地址。通过散列码,可以提高检索的效率,主要用于在散列存储结构中快速确定对象的存储地址...原创 2021-01-25 09:43:25 · 113 阅读 · 0 评论 -
== 和 equals
JDK和JRE的区别JDKJDK概述JDK的组成JDK的安装后的目录结构安装JDK配置环境变量安装步骤:配置环境变量校验是否安装完成JRE概述常见面试题JDK和JRE的区别和联系JDKJDK概述JDK:Java Development Kit,顾名思义就是就是java程序开发工具。它包含了java的运行环境(JVM+java系统类库,即JRE)和Java工具。没有jdk就无法编译java程序的源码(.java文件),如果只是运行java程序的话,可以不用安装完整的jdk,只需安装jdk中的jre部分即原创 2021-01-21 09:02:05 · 87 阅读 · 0 评论 -
JDK和JRE
JDK和JRE的区别JDKJDK概述JDK的组成JDK的安装后的目录结构安装JDK配置环境变量安装步骤:配置环境变量校验是否安装完成JRE概述常见面试题JDK和JRE的区别和联系JDKJDK概述JDK:Java Development Kit,顾名思义就是就是java程序开发工具。它包含了java的运行环境(JVM+java系统类库,即JRE)和Java工具。没有jdk就无法编译java程序的源码(.java文件),如果只是运行java程序的话,可以不用安装完整的jdk,只需安装jdk中的jre部分即原创 2021-01-15 17:50:42 · 220 阅读 · 0 评论