- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 Java扩展之part23 Stream流
Stream流目的:用于简化集合和数组操作的API例子:将姓名中姓张的,并且为3个子的人的名字输出names.stream().filter(s->s.startswith("张")).filter(s->s.length()==3).forEach(s->system.out.println(s));stream流的作用是什么,结合了什么技术?简化集合,数组操作的API,结合了Lambda表达式stream流的思想和使用步骤?先得到集合或者数组的stream流
2022-03-13 21:42:00
1054
原创 Java扩展之part22 Map系列集合
MapMap集合是一种双列集合,每个键值对包含两个元素,所以又称为键值对集合特点:由键决定的无序,不重复,无索引的,值不做要求后面重复的键对应的值会覆盖前面重复键的值键值对都可以为nullMap集合实现类特点:HashMap:无序,不重复,无索引,值不做要求LinkedHashMap:元素按照键是,有序,不重复,无索引,值不做要求TreeMap:排序,不重复,无索引Map集合ApIAPI功能Map<String,Integer> maps=n
2022-03-10 22:04:31
412
原创 Java扩展之part21 Set系列集合
Set系列集合特点:无序不重复,无索引set系列实现类的特点:HashSet:无序,不重复,无索引LinkedHashSet:有序,不重复,无索引TreeSet:排序(按大小排序),不重复,无索引哈希值:JDK根据对象的地址,按照某种规则算出来的int类型的数值Object类的API:public int hashCode();//返回对象的哈希值对象哈希值的特点:同一个对象多次调用hashCode()方法返回的哈希值是相同的默认情况下,不同对象的哈希值是不同的
2022-02-27 11:00:20
548
原创 Java扩展之part20 List集合
List系列集合List系列:添加的元素是有序,可重复,有索引ArrayList、LinkedList:有序,可重复,有索引List系列集合的底层数据结构ArrayList有序,可重复,有索引底层是基于数组实现的,查询元素快,增删相对慢LinkedList有序,可重复,有索引底层是基于双链表实现的,查询元素慢,增删首位快ArrayList集合APIArrayList、LinkedList:有序,有重复,有索引创建一个ArrayLIst集合对象List <St
2022-02-27 10:58:04
642
原创 Java扩展之part19 数据结构扩展
数据结构扩展栈、队列、数组、链表、二叉树、平衡二叉树、红黑树队列:先进先出,后进后出栈:后进先出,先进后出数组:内存连续区域,查询快,增删慢链表:元素是游离的,查询慢,首尾操作快二叉树:永远只有一个根节点,每个节点不超过两个子节点的树查找二叉树:小的左边,大的右边,可能树很高,性能变差平衡查找二叉树:任意节点的左右两个子树的高度差不超过1,让树的高度差不大于1,增删改查提高红黑树:基于红黑规则实现了自平衡的排序二叉树红黑树:每一个节点可以是红或黑,不是通过高度平衡的红黑规则:
2022-02-17 20:52:25
285
原创 Java扩展之part18 Collection集合
Collection集合API单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的Collection list = new ArrayList<>();//创建对象API功能list.add("")添加list.clear()清空list.isEmpty()判断是否为空,为空返回truelist.size()集合大小list.contains("")判断集合中是否包含某个元素list.remove("")删除某个元素,
2022-02-17 20:51:15
290
原创 Java扩展之part17 集合
集合:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D9H3CV11-1645102146928)(E:\桌面\文档\博客\Java基础.assets\Collection接口.png)]集合(个数不确定)和数组(个数确定)都是容器,不支持基本数据类型集合支持的泛型:Collection单列(每个元素只包含一个值)Map 双列(每个元素包含两个值(键值对))Collection接口 list: ArrayList(底层是基于数组的结构)
2022-02-17 20:49:47
428
原创 Java扩展之part16 Lambda表达式
Lambda表达式作用:简化匿名内部类lambda表达式只能简化函数式接口的匿名内部类的写法形式基本形式: (形参列表)->{}@FunctionalInterface()//一旦加上就代表这是一个函数式接口,里面只能有一个抽象方法lambda使用前提?必须是接口的匿名内部类,接口中只能有一个抽象方法省略写法:参数类型可以省略不写如果只有一个参数,参数类型可以省略,同时()也可以省略如果lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号
2022-02-17 20:48:39
165
原创 Java扩展之part15 Arrays类常用API
Arrays类常用API将数组转换成String类型输出,使用此方法可以很方便地输出数组,而不用一个一个地输出数组元素。Arrays.toString(a);排序的API默认自动对数组元素进行升序排序Arrays.sort(arr);二分搜索技术(前提数组必须排好序才支持,否则出bug)如果查找的元素不存在则返回不存在元素的规则:-(应该插入的位置索引+1)int index=Arrays.binarySearch(arr,55);自定义数组的排序规则Comp
2022-02-17 20:47:04
196
原创 Java扩展之part14 正则表达式
正则表达式字符类(默认匹配一个字符)正则表达式含义[a,b,c]只能式a,b或c[^abc]除了a,b,c之外的任何字符[a-zA-Z]a到z A到Z 包括(范围A-Z)[a-d[m-p]]a到d或m通过p [(a-d m-p)][a-z&&[def]]d,e,f(交集)[a-z&&[^bc]]a到z,除了b和c([ad-z]减法)[a-z&&[^m-p]]a到z,除了m到p
2022-02-17 20:46:20
151
原创 Java扩展之part13 包装类
包装类基本数据类型引用数据类型byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean将基本类型转换成字符串类型.toString将字符串类型转换成真实数据类型Interger.parseInt("")Double.parseDouble("")Interger.valueof("")
2022-02-17 20:45:13
133
原创 Java扩展之part12 有关时间的API(Date类、Calender 日历)
时间APIDate类创建一个Date类的对象Date d=new Dtae();获取时间对象d.getTime();System.currentTimeMillis(); //时间毫秒值SimpleDateFormat(); //格式化这个日期对象SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss EEE a”);//开始格式化日期对象成为喜欢的字符串形式String rs=sdf.format(d);r
2022-02-09 20:35:45
239
原创 Java扩展之part11 Math类、System类、BigDecimal类
Math类类名特征abs取绝对值ceil向上取整floor向下取整pow(2,3)2^3round四舍五入random0.0-1.0(包前不包后)自定义随机数的范围减差法: 3-9之间的随机数 (0-6)+3 计算步骤:(0~1)*7+3;System类System.exit(0);//JVM终止!1970-1-1 C语言的生日,所以从此刻开始计算的时间毫秒值计算时间long time=system.curr
2022-02-09 20:33:09
392
原创 Java扩展之part10 StringBuilder 拼接字符串
StringBuilder 拼接字符串Object的toString方法的作用是什么?默认打印当前对象的地址让子类重写以便返回子类对象的内容快速重写toString快捷键:tos回车回车String重写了equals,若用equals判断其他类型的对象均是比较地址因此引入了Object类比较字符串中的值Object.equals(s1,s2);Object.isNull(s1);StringBuilder 是一个可变的字符串类,可以看成一个对象的容器作用:提高字符串的操作
2022-02-09 20:23:04
503
原创 Java扩展之part09 内部类
内部类内部类的基本形式:public class People{ //内部类 public class Heart{}}静态内部类public class People{ //静态内部类 public static class Heart{}}静态内部类是否可以直接访问外部类的静态成员? 可以,外部类的静态成员只有一次可以被共享访问静态内部类中是否可以直接访问外部类的实例成员? 不可以,外部类的实例成员必须用外部类对象访问JDK1
2022-02-09 20:14:21
95
原创 Java扩展之part08 多态
多态什么是多态?同类型的对象,执行同一个行为,会表现出不同的行为特征多态的常见形式?父类类型 对象名称 = new 子类构造器接口 对象名称 = new 实现类构造器Animal a = new Dog();a.run();//方法:编译看左边,运行看右边a.name; //变量:编译看左边,运行也看左边多态中成员方法和变量访问的特点:方法调用:编译看左边,运行看右边变量调用:编译看左边,运行也看左边多态的前提:有继承/实现关系有父
2022-02-09 19:54:35
201
原创 Java扩展之part07 接口interface
接口接口是用来体现规范的基本形式:public interface 接口名{ }在JDK8之前,接口只能是抽象方法和常量,没有其他成分了接口不能实例化(不能new出来)接口中的成员都是用public修饰,不写的话也是使用public修饰实现类:接口是用来被类实现(implements)的,实现接口的类称为实现类接口可以被类单继承,也可以被类多实现。(单继承,多实现)一个类实现接口,必须重写完全部接口的全部抽象方法,否则这个类需要定义成抽象类类和类的关系单继承
2022-02-09 19:47:29
286
原创 Java扩展之part06 抽象类abstract
抽象类抽象类可以看做是一种不完全的设计图,抽象类必须使用abstract修饰,抽象方法必须放在抽象类中public abstract class Animal{ public abstract void run(); //子类继承时必须y}特性:抽象类用来被继承的,抽象方法是交给子类重写实现的。一个类如果继承了抽象类,那么这个类必须重写抽象类的全部抽象方法,否则这个类也必须定义成抽象类。有得有失:抽象类得到了抽象方法,失去了创建对象的能力。一定要有构造器,因为子类要调用父
2022-01-18 10:36:44
181
原创 Java扩展之part05 finnal、常量、枚举
final关键字final类不能被继承(String)final修饰方法,方法不能被重写final修饰变量,变量有且仅能被赋值一次变量:局部变量成员变量静态成员变量 static修饰实例成员变量 属于对象例子:buy(0.8)public static void buy(final double){//有了static修饰就不可以改变值}final修饰引用数据类型的变量,变量中存储的地址不能改变,但是地址指向的对象内容可以改变final int[] arr={1
2022-01-18 10:33:14
168
原创 Java扩展之part04 继承extends
继承extends特点:子类可以继承父类的属性和行为,但是子类不能继承父类的构造器Java是单继承模式:一个类只能继承一个直接父类Java不支持多继承,但是支持多层继承(在有二义性时,采用就近原则)Java中所有的类都是Object的子类有争议的几个问题:子类是否可以继承父类的私有成员?(这个问题有争议)我认为可以的,只是不能直接访问子类是否可以继承父类的静态方法成员?子类可以直接使用父类的成员关于调用this.调用本类super.调用父类重写:@Ov
2022-01-18 10:28:53
2125
原创 Java扩展之part03 设计模式-单例模式
设计模式单例模式概念:只有一个实例,即一个类只有一个对象,有些东西只需要有一个对象,比如电脑上的任务管理器,只可以打开一个窗口,就应用了单例模式的思想饿汉式单例设计模式:在用类获取对象的时候,对象就已经提前为你创建好了设计步骤:定义一个类,把构造器私有定义一个静态变量存储一个对象public class SingleInstance{ public static SingleInstance instance = new SingleInstance(); priv
2022-01-18 09:42:48
305
原创 Java扩展之part02 静态成员变量与方法-static
面向对象一个类中只能有一个公共的类 Public面向对象的三大特征:封装、继承、多态(封装:就是用private修饰,使用set,get方法)、静态成员static静态成员变量 static 统计在线人数(加载类时就会被加载)Public static int onlineNumber;实例成员变量 没有staticPrivate String name;调用方式类名.静态成员变量(有static修饰)对象.静态成员变量(不推荐)静态成员方法与实例成员方法的比较:
2022-01-18 09:31:48
280
原创 Java扩展之part01 常用API(String和ArrayList)
1.常用API(String和ArrayList)String创建字符串对象的方式通过“ ”创建对象‘String s=“love”;通过构造器创建对象new string用字符数组来创建字符串对象char[] chars={‘a’,‘b’,‘中’,‘国’};String s1=new String(chars);字节数组来创建字符串对象btye[ ] bytes={97,98,99,65,66}String s2=new String(bytes);通
2022-01-17 10:22:08
191
原创 SpringBoot-part02YAML
2.YAML2.1yaml的语法结构SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yml语法结构 :key:空格 value#springboot这个配置文件,到底可以配置那些配置文件呢?#properties.只能保存键值对#官方的配置太多了#了解原理:一通百通#对空格的要求及其高#k=v#普通的Key-value注入到我们的配置
2021-12-05 19:04:26
114
原创 SpringBoot-part01原理初探
1.原理初探1.1pom.xmlspring-boot-dependencies:核心依赖在父工程中、我们在写或者引入一些Springboot依赖的时候,不需要指定版本,因为有这些版本仓库1.2启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></
2021-12-05 19:01:14
104
原创 SpringMVC-part08拦截器+文件上传下载
8、拦截器+文件上传下载这是SpringMVC视频同步的最后一章:拦截器以及文件的上传和下载实现!拦截器概述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。**过滤器与拦截器的区别:**拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是
2021-12-05 18:37:56
128
原创 SpringMVC-part07Ajax研究
7、Ajax研究Ajax研究简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest能够自动帮你完成搜索单词。G
2021-12-05 18:36:22
124
原创 SpringMVC-part06整合SSM框架
6、整合SSM框架整合SSM框架在上一节中,我们了解了SpringMVC参数接收处理和结果跳转处理!现在我们来看看,如何集成SSM框架!完整项目的整合!整合SSM环境要求环境:IDEAMySQL 5.7.19Tomcat 9Maven 3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;数据库环境创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuil
2021-12-05 18:34:12
196
1
原创 SpringMVC-part05Json交互处理
5、Json交互处理JSON5.1什么是JSON?JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数
2021-12-05 18:30:55
129
原创 SpringMVC-part04数据处理及跳转
4、数据处理及跳转在上一节中,我们了解了控制器和Restful风格操作狂神说SpringMVC03:RestFul和控制器现在我们来看看SpringMVC参数接收处理和结果跳转处理吧!4.1结果跳转方式4.1.1ModelAndView设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springf
2021-12-05 18:22:29
78
原创 SpringMVC-part03RestFul和控制器
3、RestFul和控制器控制器Controller在上一节中,我们编写了我们的第一个SpringMVC程序!狂神说SpringMVC02:第一个MVC程序现在我们来看看里面的控制器和路径请求的具体内容吧!3.1控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种
2021-12-05 18:20:46
111
原创 SpringMVC-part02第一个MVC程序
2、第一个MVC程序Hello,SpringMVC2.1配置版1、新建一个Moudle , springmvc-02-hello , 添加web的支持!2、确定导入了SpringMVC 的依赖!3、配置web.xml , 注册DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi=
2021-12-05 18:18:21
91
原创 SpringMVC-part01什么是SpringMVC
1、SpringMVCssm:mybatis+Spring+SpringMVC MVC三层架构JavaSE:认真学习,老师带,入门快JavaWeb:认真学习,老师带,入门快SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力SpringMVC+Vue+SpringBoot+SpringCloud+LinuxSSM=JavaWeb做项目Spring:IOC和AOPSpringMVC:SpringMVC的执行流程!SpringMVC:SSM框架整合!Spring1.1
2021-12-05 18:15:29
99
原创 注解和反射-part02反射
2.反射动态语言是一类在运行时可以改变具结N的石hi的本少3通伦点说就是在运行时代引进,已有的函数可以被删除或是具他结构上的受化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python等。静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。Java不是动态语言,但Java可以称之为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制获得类似动态语言的特性。Ja
2021-11-23 22:24:02
88
原创 注解和反射-part01注解
1.注解:什么是注解?有 检查和约束作用的功能1.1、内置注解:注解有那些?@Override 重写的注解@Deprecated 不推荐程序员使用,但是可以使用,或者存在更好的方式@SuppressWarnings 镇压警告package cim.shuang.annotation;import java.util.ArrayList;import java.util.List;//什么是注解public class Test01 extends Object{ //
2021-11-23 22:20:46
237
原创 Spring-part13声明式事务
13、声明式事务13.1、回顾事务把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分重要,涉及到数据的一致性问题,不能马虎!确保完整性和一致性事务ACID原则:原子性一致性隔离性多个业务可能操作同一个资源,防止数据损坏持久性事务一旦提交,无论系统发生什么问题,结果都不会再被影响,被持久化的写到存储器中!13.2、spring中的事务管理声明式事务:AOP编程式事务:需要在代码中,进行事物的管理思考:为什么需要事务?如果不配置
2021-11-23 22:18:48
70
原创 Spring-part12整合Mybatis
12.整合Mybatis步骤:导入相关jar包junitmybatismysql数据库spring相关的aop置入mybatis-spring【new】lombok编写配置文件测试<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche
2021-11-23 22:17:43
69
原创 Spring-part11AOP面向切面编程
11、AOP面向切面编程11.1、什么是AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。11.2、Aop在Spring中的作用提供声明式事务;允许用户自定义切
2021-11-23 22:15:48
90
原创 Spring-part10代理模式
10、代理模式为什么要学习代理模式?因为这就是SpringAOP的底层!【SpringAOP和SpringMVC】代理模式的分类:静态代理动态代理10.1静态代理角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人!代码步骤:接口package com.shuang.demo01;//租房public interface Rent { pu
2021-11-23 22:12:47
66
原创 Spring-part09使用Java的方式配置Spring
9.使用Java的方式配置Spring我们现在要完全不使用Spring的xml配置了,全权交给Java来做!JavaConfig是Spring的一个子项目,在Spring 4 之后,它成为了一个核心功能!实体类package com.shuang.pojo;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;//这里这个注解的意思,
2021-11-21 09:15:41
81
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人