![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java笔记
文章平均质量分 70
Java基础学习笔记
我思想出了问题
这个作者很懒,什么都没留下…
展开
-
Java8新特性
文章目录一、lamda表达式1.使用2.总结:3.Java内置的4大核心函数式接口Java8即jdk1.8,是Java语言开发的一个主要版本,Oracle公司与2014年3月发布。Java8为 Java语言、编译器、类库、开发工具与JVM带来了大量新特性。一、lamda表达式lambda表达式是一个匿名函数,可以写出更简洁,更灵活的代码。1.使用1.(->):lambda操作符,或者叫做箭头操作符;2.箭头操作符左边:lambda形参列表(其实就是接口中的抽象方法的形参列表)3.箭头操作原创 2022-03-29 15:43:12 · 4060 阅读 · 0 评论 -
MyBatis
文章目录一、简介二、使用:三、全局配置文件:四、SQL映射文件:1、cache – 给定命名空间的缓存配置。2、cache-ref – 其他命名空间缓存配置的引用。3、resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。4、parameterMap – 已废弃!5、sql – 可被其他语句引用的可重用语句块6、 insert 、update、delete – 映射插入语句7、select映射查询语句8、联合查询:五、动态sql:1、if2、choose (when, o原创 2021-07-21 09:20:25 · 217 阅读 · 0 评论 -
Java——查找算法
文章目录一、线性查找:二、二分查找:三、插值查找:在Java中常用的查找有四种:(1)顺序(线性)查找(2)二分查找(折半查找)(3)插值查找(4)斐波那契查找(黄金分割点查找)一、线性查找:public class SeqSearch { public static void main(String[] args) { int[] arr = {1,9,11,-1,43,89}; int index = seqSearch(arr, 11);原创 2021-07-19 22:05:42 · 208 阅读 · 0 评论 -
spring框架梳理
Spring 和 JavaWeb整合使用:1.spring 来控制事务(dao-JdbcTemplate)2.所有的组件Autowired3.管理数据库大体方法:1.导入相关包2.写配置(1)将所有组件加入容器中@Controller:servlet层,目前不能标注在servlet层(tomcat服务器一启动,就会创建servlet对象,若同时进行了标注,则ioc容器也会创建出一个对象,但是tomcat还是会用自己创建出来的对象,所以标注是没有意义的) 方法:在webUtils类中,重写g原创 2021-07-19 10:22:04 · 208 阅读 · 0 评论 -
图的入门和 深度优先遍历、广度优先遍历
文章目录一、基础知识:(1)基本概念:(2)图的表示方式:二、代码实现:一、基础知识:(1)基本概念:(2)图的表示方式:邻接矩阵:邻接表:二、代码实现:包含图的简单实现,深度优先遍历、广度优先遍历。深度优先遍历:广度优先遍历:代码汇总:package graph;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;/** * 图的简单实现 */原创 2021-06-24 09:38:47 · 113 阅读 · 0 评论 -
HTML、CSS笔记
文章目录一、HTML基本知识:(1)HTML书写规范:(2)HTML标签介绍:(3)标签的语法:(4)常用标签介绍:二、CSS基本知识:(1)语法规则:(2)CSS和HTML的结合:(3)CSS选择器:(4)常用样式:注:Java 文件是需要先编译,再由 java 虚拟机跑起来。但 HTML 文件它不需要编译,直接由浏览器进行解析执行。一、HTML基本知识:(1)HTML书写规范:<!DOCTYPE html> <!-- 约束声明--><html lang="en"原创 2021-06-24 09:35:16 · 230 阅读 · 0 评论 -
JavaScript入门笔记
文章目录一、简介:二、JavaScript 和 html 代码的结合方式:2.1、第一种方式2.2、第二种方式三、变量及运算:(1)关系(比较)运算:(2)逻辑运算:(3)数组:(4)函数:(5)自定义对象:(6)JS中的事件:一、简介:Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码。 JS 是 Netscape 网景公司的产品,最早取名为 LiveScript;为了吸引更多 java 程序员。更名为 JavaScript原创 2021-06-24 09:34:56 · 84 阅读 · 0 评论 -
jQuery笔记
文章目录一、jQuery核心函数:1、传入参数为 [ 函数 ] 时:2、传入参数为 [ HTML 字符串 ] 时:3、传入参数为 [ 选择器字符串 ] 时:4、传入参数为 [ DOM 对象 ] 时:二、jQuery 对象和 dom 对象区分:1、jQuery 对象,dom 对象:2、jQuery 对象的本质:3、jQuery 对象和 Dom 对象使用区别:4、Dom 对象和 jQuery 对象互转:一、jQuery核心函数:简单测试:1、传入参数为 [ 函数 ] 时:表示页面加载完成之后。相原创 2021-06-24 09:34:00 · 50 阅读 · 0 评论 -
Java——平衡二叉树
文章目录一、基本概念:二、实现:1、单旋转:2、双旋转:一、基本概念:平衡二叉树是对 二叉排序树的改进。二、实现:首先要根据条件判断是否要进行平衡二叉树的调整:要获取到左右子树高度。 //******************************************************** //计算高度 //返回当前节点的高度,(以该节点为根节点的树的高度) public int height(){ return Math.max(left =原创 2021-05-09 16:23:42 · 254 阅读 · 0 评论 -
Java——二叉排序树
文章目录一、基本概念:二、二叉排序树的创建和遍历:三、二叉排序树删除节点:一、基本概念:二、二叉排序树的创建和遍历:package binarysorttree;public class BinarySortTreeDemo { public static void main(String[] args) { int[] arr = {7,3,10,12,5,1,9}; BinarySortTree binarySortTree = new Binar原创 2021-05-08 20:14:22 · 98 阅读 · 0 评论 -
赫夫曼树、赫夫曼编码
文章目录一、基本概念:二、创建赫夫曼树:1.思路:2.代码实现:三、赫夫曼编码:1.基本原理:2.案例:数据压缩(1)创建赫夫曼树:(2)生成赫夫曼编码和赫夫曼编码后的数据:一、基本概念:赫夫曼树几个重要概念和举例说明:路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为 1,则从根结点到第 L 层结点的路径长度为 L-1。结点的权及带权路径长度:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。原创 2021-05-07 15:39:13 · 207 阅读 · 0 评论 -
Java数据结构和算法——排序
文章目录一、排序算法介绍:1.基本知识:2.算法的常见时间复杂度:3.平均时间复杂度和最坏时间复杂度:4.空间复杂度:二、排序算法:1.冒泡排序:2.选择排序:3.插入排序:4.希尔排序:5.快速排序:6.归并排序:一、排序算法介绍:1.基本知识:2.算法的常见时间复杂度:3.平均时间复杂度和最坏时间复杂度:4.空间复杂度:二、排序算法:1.冒泡排序:小结冒泡排序:(1)一共进行数组大小-1 次的 排序趟数(大循环)(2)每趟排序的次数在逐渐减少,即每趟排序原创 2021-05-04 12:05:42 · 134 阅读 · 0 评论 -
Java——数组+链表实现简单的哈希表
package hashtable;import java.util.Scanner;/** * 实现:数组 + 链表 */public class HashTableDemo { public static void main(String[] args) { //创建哈希表 HashTable hashTab = new HashTable(7); //写一个简单的菜单 String key = ""; .原创 2021-05-02 22:30:28 · 170 阅读 · 0 评论 -
Java——顺序存储二叉树的遍历
在数组中:(1)第n个元素的左子节点为 2n + 1;(2)第n个元素的右子节点为 2n + 2;(3)第n个元素的父节点为(n-1)/ 2;n表示二叉树中的第几个元素(按0开始编号),也是在数组中的存储顺序。需求:给一个数组[1,2,3,4,5,6,7],要求以二叉树的前、中、后序遍历的方式进行输出。package tree;/** * 以数组的方式存储二叉树并完成遍历 */public class ArrayBinaryTreeDemo { public static vo原创 2021-05-02 22:04:03 · 93 阅读 · 0 评论 -
Java——二叉树的前序、中序、后序遍历及前、中、后序查找
package tree;/** * 二叉树的前序遍历、中序遍历、后序遍历 */public class BinaryTreeDemo { public static void main(String[] args) { BinaryTree binaryTree = new BinaryTree(); HeroNode root = new HeroNode(1, "宋江"); HeroNode node2 = new HeroNode(原创 2021-05-02 21:57:18 · 89 阅读 · 0 评论 -
MySQL数据库
文章目录一、数据库基本概念:二、SQL:三、DDL:操作数据库、表:操作数据库:操作表:四、图形化界面工具SQLyog:五、DML:添加数据:删除数据:修改数据:六、DQL:一、数据库基本概念:1.什么是数据库:用于存储和管理数据的仓库。2.数据库的特点:(1)持久化存储数据。其实数据库就是一个文件系统;(2)方便存储和管理数据;(3)使用了统一的方式操作数据库----SQL。3.常见的数据库软件:是对数据库的一种实现。Oracle,MYSQL;在web应用中使用最多的就是MySQL数据原创 2021-04-29 12:15:09 · 124 阅读 · 0 评论 -
Java——网络编程
文章目录一、概述:(1)IP地址:InetAddress类(2)端口号:(3)网络协议:二、TCP网络编程:三、UDP网络编程:四、URL编程:一、概述:网络编程中两个要素:(1)IP和端口号;(2)提供网络协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)(1)IP地址:InetAddress类本地回路地址:127.0.0.1 对应着:localhost实例化方法:InetAddress没有显示构造器,被私有化了,通过静态方法来创建对象。//获取想要获取的域名IP原创 2021-04-19 21:57:30 · 64 阅读 · 0 评论 -
Java——其他常用类的使用
文章目录一、System:二、Math类:三、BigInteger 与 BigDecimal:1.BigInteger:2.BigDecimal:一、System:举例: String javaVersion = System.getProperty("java.version"); System.out.println(javaVersion); String javaHome = System.getProperty("java.home"); System.out.pri原创 2021-04-14 10:58:01 · 56 阅读 · 0 评论 -
Java——比较器
文章目录一、Comparable接口:二、Comparator接口:一、Comparable接口:1.像String、包装类等实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方法。2.像String、包装类等重写了compareTo()方法后,是进行从小到大的排列,即顺序排序。3.重写compareTo()的规则:4.对于自定义类来说,如果需要排序,可以让自定义类实现Comparable接口,重写compareTo(obj)方法,在方法中指名如何排序。原创 2021-04-13 20:08:42 · 58 阅读 · 0 评论 -
Java——日期时间API
一、java.lang.System:long times = System.currentTimeMillis(); //返回的是当前时间与1970年1月1月1日0分0秒之间以毫秒为单位的时间差 //称为时间戳 System.out.println(times);二、java.util.Date and java.sql.Date:将java.util.Date 对象转换为java.sql.Date对象: //将java.util.Date 对象转换为java.sql.Dat原创 2021-04-13 17:44:37 · 110 阅读 · 0 评论 -
Java——StringBuffer和StringBuilder的使用
文章目录String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列。StringBuffer:可变的字符序列;线程安全的(有synchronize修饰方法)但效率低StringBuilder:可变的字符序列;线程不安全,效率高(jdk5.0新增)相同点:底层使用char[ ]存储。源码分析:String str = new String();//char[] value = new char[0]; String str1 = new St原创 2021-04-13 10:56:12 · 241 阅读 · 0 评论 -
Java数据结构——栈、中后缀表达式的计算
文章目录一、栈:1.数组模拟栈的简单实现:2.单链表模拟栈:3.使用栈计算中缀表达式的值:二、前缀、中缀、后缀表达式:1.前缀表达式:2.中缀表达式:3.后缀表达式:三、实现一个逆波兰计算器:一、栈:1.数组模拟栈的简单实现:package stack;import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { //测试栈 ArrayStack原创 2021-03-22 15:37:14 · 279 阅读 · 0 评论 -
Java数据结构——稀疏矩阵、数组模拟队列、单链表、双向链表、单向环形链表
文章目录线性结构:非线性结构:稀疏数组和队列:数据结构包括线性结构和非线性结构。线性结构:(1)线性结构作为最常见的数据结构,其特点是数据元素之间存在一对一的线性关系;(2)线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为线性表,顺序表中的存储元素是连续的;(3)链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素预计相邻元素的地址信息;(4)线性结构常见的有:数组、队列、链表和栈。非线性结构:非线性结构包括:二维数组、多维数组,广原创 2021-03-18 21:11:31 · 246 阅读 · 1 评论 -
2020.12.10——Java线程
文章目录一、基本概念:1.程序、进程、线程:2.多线程的创建和启动:3.Thread类的相关方法:4.线程的优先级:二、线程的生命周期:三、线程的同步:一、基本概念:1.程序、进程、线程:何时需要多线程:程序需要同时执行两个或多个任务。程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。需要在后台运行一些程序时。2.多线程的创建和启动:run():想要在开启的多线程中运行的代码逻辑,就写到run()方法中。start():用来启动线程,本质上就是开始运行r原创 2021-01-21 18:23:05 · 72 阅读 · 0 评论 -
2020.11.29——反射
文章目录一、理解class类并实例化class类对象:二、通过反射调用类的完整结构:1.获得全部接口、所继承的父类:2.全部的构造器:3.全部的方法:4.全部的Field:5.类所在的包:三、通过反射创建对象:1.创建对象:2.通过反射强制调用私有的构造方法:四、通过反射调用类中的指定方法、指定属性:1.调用指定方法:2.调用指定属性:五、Java动态代理:反射机制:就是通过一个抽象的类名能够在自己记忆(加载类的内存)中,找到这个类的具体信息。前提:jvm已经加载过这个类,相当于有了对这个类的记忆。原创 2020-12-02 10:06:37 · 99 阅读 · 0 评论 -
2020.11.19——IO流
文章目录一、File类:基本知识:File类递归遍历文件:二、Java IO原理:基础知识:文件字节输入流:文件字节输出流:文件字符输入流:缓冲流:主要内容:一、java.io.File类的使用;二、IO原理;三、流的分类:(1)文件流:数据流的读写都是基于文件的操作。FileInputStream / FileOutputStream / FIleReader / FileWriter(2)缓冲流:数据流的读写都是基于内存的操作。BufferedIputStream / BufferedOut原创 2020-11-20 10:20:08 · 190 阅读 · 0 评论 -
2020.11.11——Java枚举和注解
文章目录一、枚举:1.概述:2.使用enum定义枚举类:3.实现接口的枚举类:4.枚举类的方法:二、注解(Annotation):1.概述:2.基本的注解:3.自定义注解:一、枚举:1.概述:某些情况下,一个类的对象是有限而且固定的。手动实现枚举类:private 修饰构造器;属性使用private final 修饰;把该类的所有实例都使用 public static final 来说修饰;枚举类中每个枚举都是单例模式。2.使用enum定义枚举类:3.实现接口的枚举类:4.枚举类原创 2020-11-11 17:19:16 · 108 阅读 · 0 评论 -
2020.10.18——Java初识,jdk安装
文章目录java初识:安装jdk:简单的输出:hello worldjava初识:在输入dos命令时,所有标点都是基于英文输入法下。Java:跨平台的纯面向对象的语言。JVM<JRE<JDK安装jdk:下载jdk压缩包文件,然后直接配置环境变量。在需要不同版本的jdk时,直接根据版本修改环境变量中的JAVA_HOME的路径即可,其他不用改动。若是下载exe可执行文件,需一步步安装,并且不易修改版本。环境变量配置:Java环境变量配置方法简单的输出:hello wor原创 2020-11-11 15:31:13 · 86 阅读 · 0 评论 -
2020.11.10——Java集合
文章目录一、集合概述:二、HashSet:HashSet特点:HashSet几个基本操作:HashSet遍历集合方式:泛型:三、TreeSet:TreeSet特点:TreeSet遍历集合方式:四、List与ArrayList:List特点:五、Map:Map特点:HashMap操作简单例子:HashMap遍历:TreeMap:一、集合概述:集合类存放在java.util包中,是一个用来存放对象的容器。集合只能存放对象。集合总存放的是多个对象的引用,对象本身还是存放在堆中。集合可以存放不同类型的原创 2020-11-10 22:17:46 · 199 阅读 · 0 评论 -
2020.11.6——Java异常处理
文章目录异常处理:1.异常概述:2.异常处理机制:3. 捕获:4. 抛出:5.人工抛出异常:6.创建用户自定义异常类:异常处理:1.异常概述:2.异常处理机制:由于异常,使程序中断,可以通过异常处理机制防止程序的中断。3. 捕获:try—catch:在捕获异常的代码块中(try{}中的代码),如果前面的代码有异常了,就不会执行后面的代码。try {//用try{}来括住可能出现异常的代码段 }catch(Exception e){//当不知道捕获的异常的是什么类型时,可原创 2020-11-06 21:32:35 · 58 阅读 · 0 评论 -
2020.10.30——Java高级类特性二
文章目录五、高级类特性二:5.1关键字static:类变量、类方法:单例设计模式:五、高级类特性二:5.1关键字static:类变量、类方法:单例设计模式:原创 2020-10-31 15:23:48 · 163 阅读 · 0 评论 -
2020.10.26——Java高级类特性一
文章目录4.高级类特性一:4.1面向对象特征之二:继承4.2方法的重写:4.3父子类与访问权限修饰符的关系:4.4关键字super:super用法:super与this的区别:4.5子类对象实例化过程:4.6面向对象特征之三:多态多态性:instanceof操作符:4.7object类:4.高级类特性一:4.1面向对象特征之二:继承4.2方法的重写:注意:子类重写父类的方法,只是重写方法体中的代码。4.3父子类与访问权限修饰符的关系:4.4关键字super:super用法:原创 2020-10-28 21:49:52 · 219 阅读 · 0 评论 -
2020.10.24——Java面向对象基础知识
文章目录3.面向对象:3.1——3.2基础知识:3.3类成员之一:属性成员变量与局部变量:成员变量与局部变量的区别:3.4类成员之二:方法3.5关于对象:创建,使用:对象产生:匿名对象:提示:3.6方法(续):方法的调用:方法的重载:可变个数的形参:3.面向对象:3.1——3.2基础知识:行为——方法,也叫函数:在命名时注意使用驼峰命名法。3.3类成员之一:属性属性——类的成员变量:可以先声明,不用初始化,有默认值;String的默认值是null;int的默认值是0。成员变量与局部原创 2020-10-25 16:41:18 · 120 阅读 · 0 评论 -
2020.10.23——Java数组知识
文章目录2.6数组:1.一维数组:2.多维数组:3.数组中涉及的常见算法:数组的复制:数组的反转:数组排序:冒泡排序:数组操作常见问题:2.6数组:1.一维数组:2.多维数组:练习2:第一种方法:int[][] arr = new int[][] { {3,8,2}, {2,7}, {9,10,1,6} }; int len_arr = arr.length;//数组的一维长度 int sum = 0; for(int i = 0; i <原创 2020-10-23 21:05:40 · 130 阅读 · 0 评论 -
2020.10.22——Java程序流程控制
文章目录2.5程序流程控制:1.顺序结构:2.分支结构:2.5程序流程控制:1.顺序结构:即合法的前向引用。2.分支结构:举例:switch 与 if -else if-…-else是相同的道理。 int i = 1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); break; default: Syst原创 2020-10-23 17:39:01 · 107 阅读 · 0 评论 -
2020.10.21——Java运算符
文章目录2.4运算符:算数运算符:赋值运算符:比较运算符:逻辑运算符:2.4运算符:算数运算符:当整数除以整数的时候,结果取整,舍弃小数补部分。i++与++i:前者先取i的值后运算i,后者先运算i后取i的值。赋值运算符:思考1:变量参与运算时,Java程序会将变量转换为一个更大长度类型的变量,这个例子中short被转化为int类型。所以第一行改为:short s = 3;s = short(s + 2);要进行强制类型转换。第二种:使用扩展运算符,则变量在参与运算时会把原创 2020-10-22 22:13:40 · 157 阅读 · 1 评论 -
2020.10.20——Java关键字、标识符、基础数据类型
文章目录2.1关键字:2.2标识符:2.3 变量:变量分类:基本数据类型:整数类型:浮点类型:字符类型:布尔类型:引用数据类型:string类:2.1关键字:2.2标识符:2.3 变量:定义变量:int i = 1;变量分类:在Java中,基本数据类型和引用数据类型,其中基本数据类型有8种,除了这8种其余的都是引用数据类型。8中基本数据类型:byte ,short, int, long, float, double, char, boolean。基本数据类型:整数类型:原创 2020-10-22 22:14:34 · 154 阅读 · 1 评论 -
2020.11.11——泛型
文章目录一、泛型:二、泛型的使用:1.泛型类:2.泛型接口:3.泛型方法:4.泛型通配符:一、泛型:二、泛型的使用:1.泛型类:对象实例化时不指定泛型,默认为Object;泛型不同的引用不能相互赋值。Class A{//T为需要指定的类型;}public class Test { public static void main(String[] args) { A<String> a1 = new A<String>();//在new A的对象时指原创 2020-11-11 15:26:22 · 111 阅读 · 0 评论