自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 02_Docker容器技术

问题:软件的迭代过程包括,设计,编码,编译,构建,测试,发布,运维等等流程,早期的软件开发模式为瀑布式开发,这种开发模式迭代更新太慢,每个环境都需要耗费大量人力和时间成本。往往很长时间才迭代一次。如今企业追求的都是敏捷开发:快速开发快速迭代,尽可能的缩短软件的开发生命周期。DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。

2024-03-21 16:12:42 762

原创 Vue2基础

概念:指令是一个带有v-前缀的特殊标签属性,指令属性的值预期是单个JavaScript表达式。当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM一个标签元素上可以出现多个指令属性指令只能够出现在Vue对象所挂载的标签范围内的标签中。

2024-02-03 00:18:45 1326

原创 SpringAOP+SpringBoot事务管理

注意:AOP可以拦截指定的方法,并且对方法增强,比如:事务、日志、权限、性能监测等增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离。当标注在方法上的时候,事务的作用域就只在该方法上生效,并且如果类及方法上都配置@Transactional注解时,方法的注解会覆盖类上的注解。静态代理(在执行之前就要为业务类生成代理类,业务类是否运行都会生成代理类,非常不灵活,添加一个业务类,也需要添加相应的代理类。jdk的动态代理只允许完成有接口的类的代理,如果没有就需要用第三发的CGLIB的方式实现。

2024-02-03 00:15:57 1068

原创 SpinrgBoot-Mybatis基础

概念:MyBatis是一个半ORM的数据库持久化框架,它是三层架构中持久层的技术框架指的就是一些类和接口的集合,是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、可拓展就是将对象数据,保存到数据库当中,从而达到数据断电也存在的目的,叫做持久化持久层:指的是就是数据访问层/Dao层,是用来操作数据库的对象关系映射(Object Relational Mapping,简称ORM):是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

2024-02-03 00:14:47 1081

原创 RDBMS-MySQL高级

例子:假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}原则上是不能违反三范式的,但是有的时候我们为了增强查询效率【不用关联查询,直接单表查询】,会设计一些冗余字段,变多表查询为单表查询。写的顺序:select…概念:在SELECT查询中,在WHERE查询条件中的限制条件不是一个确定的值,而是来自于另外一个查询的结果。第三范式:如果一张表的数据能够通过其他表推导出来,不应该单独设计,通过外键的方式关联查询出来。

2024-02-03 00:12:26 901

原创 RDBMS-MySQL基础

1.1 概念:数据库Database,简称DB。是用来存储和管理数据的仓库1.2. 数据库对象数据库中有表(Table )、视图(View)、函数、查询、备份等,这些都称之为数据库对象1.3 数据库管理系统DBMS(Database Management System)概念:是一个专门用于管理数据库的计算机系统软件作用:能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并对数据完整性、安全性进行控制。

2024-02-03 00:09:46 935

原创 SparingBoot高级-数据交换格式-请求响应

Servlet是处理请求的底层代码,而SpringMvc是Spring提供的一个处理请求的框架,底层还是通过Servlet实现的,可以看成是对Servlet的封装,让代码写起来更加简单,更加灵活。properties:属性标签,在标签内可以把版本号作为变量进行声明,后面dependency中用到版本号时可以用${变量名}的形式代替,这样做的好处在于当版本号发生改变时,只要更新properties标签中的变量就行了,不用更新所有依赖的版本号。而目前基本所有项目或所有语言都能识别的数据格式:xml和json。

2024-02-03 00:08:38 1011

原创 SpringBoot三层架构-IOC&DI

反例:我们的所有操作都是在Controller类中进行完成的,现在我们实现的只是简单的增删改查,在真实企业开发中一个业务操作有可能达到几百上千行代码,那么此时如果所有代码都放在Controller中是不合理的。概念:生命周期指的是Spring框架中一个Bean对象从实例化到被垃圾回收器回收的这么一个过程,我们通常把这个过程称作,Bean的生命周期 (一个Bean对象从创建到销毁的这么一个过程)在IOC容器中,每一个Bean都有一个属于自己的名字,可以通过注解的value属性指定bean的名字。

2024-02-03 00:06:42 1457

原创 01-16Maven-SpringBoot入门

Java企业级开发的发展史JavaEE/J2EE时代复杂性和繁琐的配置,存在一些限制和挑战Spring时代Spring框架引入了依赖注入(DI)和面向切面编程(AOP)等新概念,以减少组件之间的耦合度、提高代码的可维护性和可测试性Spring通过IoC容器(控制反转容器)来管理对象之间的依赖关系,不用new对象了,并提供了许多其他功能模块,如数据访问、事务管理、安全性等,使开发者能够更专注于业务逻辑的实现需要配置繁琐SpringBoot时代约定大于配置的原则,通过自动配置和默认值设置。

2024-02-03 00:03:06 1269

原创 01-15网络编程-XML

C/S架构与B/S架构的区别C/S架构的需要安装软件,每次更新都需要重装,但是安全,效率高 B/S架构 不用单独安装,通过http协议交互,效率低网络通信需要哪些角色:ip地址,port端口号,通信协议,域名,DNS服务器TCP与UDP区别TCP : 可靠 双向连接 效率低 UDP:不可靠 无连接 效率高Http协议是什么,有什么用基于TCP协议:面向连接,安全可靠一次请求,一次响应无状态协议:无法在多次请求之间共享数据,每次请求、响应都是独立的。

2024-01-15 22:41:49 1201

原创 01-11NodeJS

通过.navbar属性可以创建一个标准的导航栏,若要创建响应式的导航栏,可以在.navbar属性的基础上添加.navbar-expand-xxl|xl|lg|md|sm来创建,大屏幕水平铺开,小屏幕垂直堆叠。Boostrap为开发者提供了很多功能,其中常用的有:颜色、列表、表格、图像、按钮、边框、边距、字体图标、导航、下拉菜单、Flex布局、表单、分页、卡片等。导航栏上的选项使用ul元素并添加.navbar-nav属性,然后在li元素上添加.nav-item属性,a标签上使用.nav-link属性。

2024-01-15 22:41:18 1214

原创 01-10jQuery框架

jQuery是一个js框架,代码本质上就是js代码,使用时需要引入jQuery.js 注意需要先导包!!!

2024-01-15 22:40:47 879

原创 01-07JavaScript

概念:JavaScript是一种解释性脚本语言(代码不进行预编译),由浏览器解释执行,用来向页面添加交互行为组成:内部使用 写在一组外部使用 先单独定义一个JS文件,然后将这个JS文件作用于当前项目,只需引入就好。变量命名规范:在js中声明变量: 他们所有只要在function里面声明,它们的作用域都是 局部的:JavaScript中的原始数据类型相当于Java的基本数据类型:number,boolean,string,null,undefinednumber数值类型1.无穷数2.非数b

2024-01-15 22:40:15 986

原创 01-06弹性布局

概念:采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。Flex布局:Flex是Flexible Box的缩写,意为”弹性布局”,用来替代float浮动布局,任何一个容器都可以指定为Flex布局。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。

2024-01-10 00:52:27 392

原创 01-04css

在CSS中认为所有的HTML标签都是一个盒子,这些盒子有以下内容:边框border、内容content、内边距padding(内容与边框的距离)、外边距margin(盒子与盒子之间的距离):read-only 选择有"readonly"的表单元素,注意只读包含禁用,所以也会影响具有"disabled"的表单元素。E:nth-child(n) { css样式 } - n可以是数字,2n,2n-1,even奇数,odd偶数,具体看情况。内边距:元素内容区域和边框之间的距离,可以设置内边距的大小。

2024-01-10 00:51:56 882

原创 01-03常用标签

HTML中的Meta标签用于向浏览器提供Web页面的元数据,包括页面的标题、描述、关键字、作者、语言以及其他相关信息。C/S架构是指客户端/服务器【Client/Server】架构,桌面应用程序采用的多是这种结构,比如我们使用的QQ、Foxmail等。(1) C/S : 更加安全(面向相对固定的用户群),速度更快(专用服务器),但是需要单独安装客户端,而且每次升级都要重新安装客户端。B/S结构是浏览器/服务器【Browser/Server】的简称,通过浏览器就可以访问,比如我们使用淘宝、京东、百度等。

2024-01-10 00:51:20 828

原创 01-07JavaScript

概念:JavaScript是一种解释性脚本语言(代码不进行预编译),由浏览器解释执行,用来向页面添加交互行为组成:内部使用 写在一组外部使用 先单独定义一个JS文件,然后将这个JS文件作用于当前项目,只需引入就好。变量命名规范:在js中声明变量: 他们所有只要在function里面声明,它们的作用域都是 局部的:JavaScript中的原始数据类型相当于Java的基本数据类型:number,boolean,string,null,undefinednumber数值类型1.无穷数2.非数b

2024-01-10 00:49:55 966

原创 1229-方法引用(简化lambda)-stream流-单元测试-单例模式

概念:Stream是操作数组或者集合的流 (相比IO流,IO流是操作文件流)概念:一个类就是只有一个对象,那么就是单例,将一个类设计成单例的方式就是单例模式。特殊的lambda:当lambda体只有1句代码,并且这句代码是在调用一个方法。使用main方法来做,每一个方法只有一个main,测试很不方便。2)、操作流:过滤,截取,跳过,去重,排序,切片。实例的方法的引用:对象名 :: 方法名。类方法(静态方法):类名.方法名()类方法的方法引用:类名 :: 方法名。1、串行流:单线程使用(使用最多)

2023-12-30 22:20:59 1356

原创 文件过滤器- 递归- IO流- Lambda表达式

字节流:按照字节为单位来操作文件,一次读一个字节或者写一个字节 字符流:按照字符为单位来操作文件,一次读一个字符或者写一个字符 注意:一个中文占2个或3个字节,字节流读取中文不友好,字节流一般不用操作文本文件 一个中文,字母,数字都是一个字符,字符流读取中文没有问题,字符流一般用来读取文本文件。// getSum(n - 1) 每次执行都会调用这个方法,在栈中第一次执行的会在最下面,然后调用方法的时候,就会暂时停在那里,等有了出口的时候,就会再依次从栈的顶端返回来输出。// 写入的文件不存在,会自动创建。

2023-12-28 20:54:31 1239

原创 泛型- Collections工具类- file类

4)、将制定文件夹中所有的文件或文件都获取 list():将制定目录下所有的文件和文件夹的名字,放入一个字符串数组 listFiles():将制定目录下所有的File对象,放入一个File数组。3)、创建与删除 mkdir():只能创建一级目录 、 mkdirs() 可以创建多级目录:创建文件夹 createNewFile():创建的是空文件 delete():删除文件和空文件夹。//将arr2数组中的元素赋给arr1。

2023-12-28 20:51:00 928

原创 数据结构- 集合(List、Set、Map)- List接口- Set接口- ArrayList和LinkedList的使用场景- Map接口- 哈希碰撞(哈希冲突)- 集合小节

while (li.hasPrevious()) { // 反向迭代 注意:这里由于上面的正向迭代已经执行到了最后,此时指针已经到了最后,所以hasPrevious()里面不用加参数就本身就是向前迭代,但是如果前面没有那个正向迭代,上面创建迭代器的时候就必须要给参数,写需要从哪个位置开始的 如:listIterator(list.size())// 反向迭代 注意:这里必须要加上list.size()或者写一个int类型的参数,否则不会打印值,因为现在是基于链表的集合,默认就是从开头开始遍历的。

2023-12-23 22:47:24 758

原创 Exception类(异常)- Thread类 (线程、多线程)- Timer类(定时器)

synchronized (this.getClass()) { // 参数是获取对象的字节码对象,这样足以保证所有的对象都是共享一把锁,"获取锁的地方是唯一的" 这玩意儿不能写在循环外面了,否则会导致不同对象卖同一张票,原因是写在外面,当count=1的时候,有可能其他的线程已经进入了循环里面。// 1、创建Runnable对象 由于Runnable接口不能够直接new,所以需要利用他的实现类来间接操作它,后面的Thread(d1)会将它向上转型。// 获取当前线程的名字。

2023-12-22 00:47:59 1005

原创 StringBuilder类- StringBuffer类- 正则表达式- Date类 (日期)- SimpleDateFormat类(日期格式化的类)- Calendar类 (日历类)

/ 调用Calendar类的get方法,创建一个新的对象来接收改变set改变后的值。"[0-9]{2}":任意的2个数字 “[0-9]{2,15}”:任意的2个到15个之间个数的数字 "[0-9]{1,}":任意个数的数字(1个以上)s.append("abc").append("www").append(true);System.out.println(str.replaceAll(regex, "洋"));// 创建当前的日期时间的对象,然后用上面创建的自定义格式的对象将当前对象格式化。

2023-12-20 22:48:55 1318

原创 System类- Math类- Biginteger类- Bigdecimal类- 包装类(Wrapper Class)- Scanner类-String类

注意事项:设计一个类的时候,不要将类名设计得和jdk提供的类名一样。

2023-12-20 17:03:32 1077

原创 static关键字- final关键字- 代码块- 内部类- 枚举

static修饰的成员只能跟类有关系,类被加载的时候,static修饰的成员就放入了内存中,即static修饰的方法只能够调用类变量。成员内部类:成员内部类与外部类关联较为密切,可以访问外部类的成员变量和方法,能修饰成员内部了关键字。2.静态内部类:静态内部类是静态的,与外部类的实例无关,可以直接通过外部类的类名访问。// 内部类的字节码文件的名字:外部类的类名$内部类的名字.class。// 访问外部类的成员变量。内部类就是局部内部类,局部内部类定义在一个方法或作用域内,其作用范围被限制在方法内。

2023-12-20 16:52:52 907

原创 接口- 多态- instanceof关键字

1)、屏蔽了子类的特有成员,只能访问父类有的成员(因为创建对象的时候在堆中开辟了一片空间,但是这个空间中的东西是从元空间里面复制而来,由于创建子类的时候用的是父类修饰的对象,所以会向上转型成父类,那么现在复制的就是父类的成员)interface 接口B extends 接口A {接口B继承接口A} 接口A:父接口 接口B:子接口。1)、一个对象的实际类型虽然是确定的,但是可以指向对象的引用的类型有很多。一个类实现一个接口,就需要重写接口中的所有的抽象方法。A 是接口的实现子类,接口是A的父接口。

2023-12-20 16:45:51 384

原创 方法的重写- super关键字- 抽象类&抽象方法- object类

对象的属性值一样,哈希值就要一样,如果对象的equals相等,hashCode必须要一样。hashCode( ):获取对象的hash值(通俗的说:用一个数字来表示这个对象)super( ):调用父类构造方法,用在子类构造方法的第一句可执行代码的位置。作用:为了保证正常的业务需求,把不符合的方法改写成符合需求的方法。super:表示父类对象,只能在子类中的非static的方法里面。抽象类中的所有抽象方法,子类会被强制重写抽象方法。对象的哈希值 = 每个属性的哈希值的和。名字一般以Abstract开头。

2023-12-20 16:44:15 316

原创 包- 访问修饰符- 封装- this- 继承

用法1:this表示当前对象的一个关键字,是一个变量 ,一个引用,保存的就是当前对象的地址,指向对象本身,谁调用这个方法,this就是谁。用法2:this( )表示调用当前类的构造方法 this(id):调用当前类的一个有参数的构造方法 this(id,author):同理。继承关系的两个类,一个为子类(派生类),一个为父类(基类)(超类)。this( )的使用范围:只能在当前类的构造方法中使用,而且必须要放在第一句执行代码的位置。注意:当一个包中有重复的类的时候,使用包里面的相同的类需要用完全限定名。

2023-12-20 16:43:05 322

原创 面向对象&面向过程- 类与对象- 构造方法- 匿名对象

任何一个类都有构造方法:只要你没有写构造方法,jvm会自动的帮你生成一个无参构造,如果写了有参构造,就不会生成。有参构造方法可以简化属性赋值代码,但是可读性不高,特别是在属性个数较多的时候,所以适用于属性个数少的时候。对象:类的某个具体的数据,这个具体的数据就是这个类的对象,例如:类是水果,对象是一个确切的水果,如苹果。类:java中的一种数据模板,类其实就是一种抽象的数据(不具体),是一类东西的统称,是抽象的。面向过程:将解决问题的方案梳理的过程(步骤),一个一个罗列出来,然后一步一步顺序的实现。

2023-12-20 16:42:06 314

原创 方法签名- 形参和实参- 值传递- 地址传递- 方法重载- 可变参数- 使用Arrays类的api

copyOfRange(Arrays.copyOfRange):复制指定范围的数组元素到新的数组,输入的是下标且含头不含尾。copyOf(Arrays.copyOf):扩容或者缩容数组,如果输入的长度大于原来的长度就会扩容,反之缩容。注意:值传递是相互不干扰的两个变量,在方法中怎样改变,main主方法中的那个变量的值不变。参数的数据类型的顺序不同 注意:不是参数顺序不同,因为参数顺序没影响,因为是形式参数。fill(Arrays.fill):填充数组,将数组的内容全部填充至输入的值。

2023-12-20 16:41:04 329

原创 foreach(增强for)- 冒泡排序- 方法

j++){ // 内存循环控制每次循环的次数,-i可以让次数随着循环慢慢减少,提高执行效率,减少重复。i++){ // 外层循环控制总循环次数 由于循环只需要执行n-1次,所以是nums.length-1。if(nums[j] < nums[j + 1]) { // 前面元素小于后面元素就交换,这是求降序。int[] num = new int[count] // 动态声明一个变量名为num的数组。for (String s : names){ // 这里的s必须是String类型。

2023-12-20 16:38:06 337

原创 方法的重写

方法名必须相同参数列表必须相同修饰符: 范围可以扩大,但是不能缩小 Public>Protected>Default>Private抛出的异常: 范围,可以被缩小,但是不能扩大 ClassNotFoundException-->Exception(大)重写子类的方法和父类的方法必须一致,方法体不同!// 静态的方法和非静态的方法有很大的区别!// 静态(static)的方法: 方法的调用只和左边定义的数据类型有关// 只有非静态的方法才能重写且都要是public。

2023-11-06 17:18:40 26

原创 Java的封装 继承 多态

封装,继承,多态详解

2023-11-06 17:08:32 26

原创 instanceof的使用以及类型转换

父类的引用指向子类的对象子类转换为父类,可能丢失自己的本来的一些方法!(向上转型,无需强制转换)父类转换为子类 (向下转型,需要强制转换)方便方法的调用,减少重复的代码。

2023-11-06 17:06:55 32

原创 static 关键字

/静态的变量//非静态的变量a​a.age);a.score);.score);//非静态的变量方法同理.age);//静态的变量可以通过类直接掉用 方法同理。

2023-11-06 17:06:10 24

原创 super vs this

super 调用父类的构造方法,必须在构造方法的第一个!super 必须只能出现在子类的方法或者构造方法中!super和 this 不能同时调用构造方法!

2023-11-05 15:27:09 28

原创 构造器的作用

1.定义了有参构造之后,要想使用无参构造,就必须显示的定义一个无参构造。1.new 本质在调用构造器,会先运行构造器,之后才生成对象。2.生成构造器快捷键: alt + insert。

2023-11-05 14:53:43 39

原创 java创建对象内存分析

/ new Pet 最先会去加载Pet这个类 这之后在创建dog这个对象。// 直接输出这个dog会输出一个地址。// 因为"旺财"是字符串,String默认就是final修饰的,也就是常量。dog.name = "旺财";// 是将旺财赋值给了堆中的name。// 同理将3赋值给了堆中的age。public void shout(){ // 定义的一个方法。System.out.println("在叫");// 这里的dog(引用变量名) 指向的是一个地址。// 这里还有一个无参构造。

2023-11-04 16:45:14 44 1

原创 类与对象的小结

对象是通过引用来操作的: 栈--->堆(真实操作的是堆里面的东西) 引用就是指向对象的一个地址,地址就是存放在堆中的地址。- 必须使用new 关键字创造对象,需要一个构造器 例如:Person wangjing = new Person();类是一个模板:抽象的 对象是一个具体的实例。- 对象的方法 wangjing.sleep。- 对象的属性 wangjing.name。修饰符 属性类型 属性名 = 属性值。引用类型 : null。- 静态的属性 属性。- 动态的行为 方法。

2023-11-04 16:30:35 38 1

原创 什么是面向对象?

步骤清晰简单,第一步做什么,第二步做什么,是按照一个顺序来的。(面向过程适合处理较为简单的问题):物以类聚,的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些类进行思考。最后,对某个分类下的细节进行面向过程的思索。(面向对象适合处理复杂的问题。对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但其实具体到最后的微观操作,仍然是需要用面向过程的思路去处理。面向对象编程(Object-Oriented Programming,OOP)三大特性。

2023-11-04 14:03:55 38 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除