- 博客(38)
- 收藏
- 关注
原创 分布式事务
分布式系统是由多个节点组成的系统,它把一个大业务拆分成多个子业务,每个子业务都是一套独立的系统,子业务之间相互协作最终完成整体的大业务。分布式事务顾名思义就是要在分布式系统中实现事务,它其实是由多个本地事务组合而成。...
2022-08-27 11:38:57
581
原创 Nginx与Redis
我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负 载均衡。降低原来单个服务器的压力。..
2022-08-18 08:45:00
2200
原创 MyBatis
MyBatis是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果。MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素、Map接口和POJOs(普通java对象)到数据库中的记录。...
2022-08-17 20:23:04
148
原创 cookie和session
第一种方式就是把session的id 放在cookie里面(为什么是使用cookies存放呢,因为cookie有临时的,也有定时的,临时的就是当前浏览器什么时候关掉即消失,也就是说session本来就是当浏览器关闭即消失的,所以可以用临时的cookie存放。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session。...
2022-08-16 19:43:38
375
原创 Spring
Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。
2022-08-15 19:54:32
70
原创 JSP中的9大内置对象
Servlet中的内置对象都是必须通过HttpServletRequest对象、HttpServletResponse对象以及HttpServlet对象得到.Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。1、page 封装页面对象,是Object类型的,该对象代表了正在运行的由JSP文件产生的类对象,相当于this。,封装请求对象,代表的是来自客户端的请求。,封装响应对象,代表的是对客户端的响应。...
2022-08-10 20:52:13
228
原创 Servlet技术
Servlet规范是JavaEE规范中的一个部分,是用于扩展服务器功能的运行在服务器中的小型Java程序(即服务器端小应用程序),是实现了Servlet接口通过http接收和响应web客户端请求的类。什么是Servlet?Servlet是一种用于扩展服务器功能的服务器端组件技术 ,用于实现动态网页编程。......
2022-08-09 18:28:38
140
原创 数据库事务
数据库事务数据库事务隔离性读未提交:MySQL数据库中事务的隔离实际上是依靠锁机制来实现的,但是加锁会带来性能的损失。读未提交隔离等级是不加锁的,所以性能最好,但是由于基本没有什么限制,所以脏读问题都无法解决。读已提交:解决脏读问题的方法就是只允许读取别的事务已经提交的数据,其它事务未提交数据当前事务不能读取。例如oracle默认的事务隔离级别就是读已提交。由于只能读取已经提交的数据,所以可能出现两次读取的数据不一致.可重复读:针对不可重复读的问题提出了可重复读的隔离等级,针对查询采
2022-08-05 10:00:00
103
原创 MySQL存储过程
存储过程就是在数据库中定义的一些sql语句的集合,可以直接调用存储过程执行已经定义好的sql语句,从而避免重复编写相同的sql语句的问题。
2022-08-04 20:16:11
336
原创 MySQL的索引
按照逻辑主键索引、普通索引、唯一索引、空间索引(针对空间类型的数据)和全文索引。索引是存储引擎用于快速查找记录的一种数据结构,需要额外开辟空间和数据维护工作。按照数据结构B+树、hash等。按照物理存储方式聚簇和非聚簇。......
2022-07-20 12:00:00
80
原创 数据库连接池
不使用数据库连接池,每次都通过DriverManager获取新连接,用完直接抛弃断开,连接的利用率太低,太浪费;由连接池的管理器负责申请、分配、管理、释放连接的操作。可以建立一个连接池,这个池中可以容纳一定数量的连接对象,一开始可以先替。用户先创建好一些连接对象,等用户要拿连接对象时,就直接从池中拿,不用新建了,这样也可以。然后用户用完后,放回去,别人可以接着用。可以提高连接的使用率。连接都用完了,那么连接池可以向服务器申请新的连接放到池中。数,就不能在申请新的连接了,如果没有拿到连接的用户只能等待。...
2022-07-19 19:22:39
339
原创 DDL与DML
对数据库中的某些对象进行管理,create创建,alter修改,drop删除,truncate截断。基础语法:create table 数据库名称(数据列名称 数据类型 约束规则......)engine=innodb 存储引擎名称 default charset utf8;查看表中的列定义:desc 表名称;查看具体的列定义:show create table 表名称; 表修改操作基础语法:alter table 表名称 add/drop/modify 列名称 [类型 约束];新
2022-06-24 00:09:17
145
原创 数据库基础
什么是数据库?数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围内可以被多个用户共享。数据库特点:数据库中的数据尽可能不重复,以最优化的方式为多种应用服务数据结构独立于应用对数据的CRUD由统一软件进行管理和控制DBMS关系型数据库:SQL、Oracle、Mysql都属于关系型数据库,关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。SQ
2022-06-23 17:41:34
127
原创 TCP编程、UDP编程
TCP是一种面向虚电路连接的端对端的保证可靠传输的协议,使用TCP协议可以得到一个顺序的无差错的数据流。UDP是一种不保证数据的可靠性,但是协议简单、传输速度块。一般用于视频或者音频的传输,不需要很高的可靠性,可以容忍偶尔的丢帧。在具体编程中发送方和接收方必须成对的使用socket建立连接,在tcp协议的基础上进行通信。客户端通过构建Socket对象实现连接请求Socket(InetAddress,int) InetAddress就是需要连接的服务器,int就是服务器的监听端口号。Socket(St
2022-06-14 21:54:28
150
原创 Java当中的锁
公平和非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指不按照申请锁的顺序来获取锁。有可能会造成优先级反转或饥饿现象。非公平锁的优点在于吞吐量明显比公平锁大。java中提供的重入锁的实现ReentrantLock通过构造器可以指定是否使用公平锁。可重入锁可重入锁又可以称为递归锁,是指在同一个线程获取到某个锁之后还可以继续申请获取到该锁,自己不会阻塞自己。ReentrantLock类和synchronized都是可重入锁,可重入锁可以在一定程度上避免死锁。Java提供了一个实现Re
2022-06-08 23:57:25
79
原创 Java中的并发编程
并发是同一时间应对多件事情的能力Java中的并发编程有:三种性质1、可见性:一个线程对共享变量的修改,另外一个线程能立刻看到。缓存可导致可见性问题。2、有序性:由于编译器优化可能会导致指令顺序发生变化。3、原子性:一个或者多个CPU执行操作不能被中断,线程的切换会导致原子性问题。三个问题安全性的问题:线程安全。活跃性的问题:死锁问题、活锁、饥饿。性能问题:减少锁的持有时间:锁粒度的细化,ConcurrentHashMap;可以使用读写锁volatile。Java会将变量直接写入内存,其它线程读取时直
2022-06-07 23:44:26
574
原创 Stream流
什么是Stream流?Stream流,是JDK1.8中对集合对象功能的增强,可以通过将集合转换为流模型,通过声明的方式对集合中个每个元素进行一系列并行或者串行的流水线操作。它针对于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。Stream不是集合元素,不是数据结构并不保存数据,Stream是有关算法和计算的,像是一个高级版本的迭代器Iterator。Stream只要给出对其包含的元素执行什么操作,Stream就会隐式地在内部进行遍历,并给出响应的数据转换。单向不可往复、数据只
2022-05-29 21:42:15
120
原创 Java中的lambda表达式
什么是lambda表达式?允许将函数作为一个方法的参数(将一个方法传递到另外的方法中执行),本质上可以理解为是一种语法糖。语法格式(参数列表)->表达式 //(k1,k2)->k1+k2(参数列表)->{代码块;} //(k1,k2)->{return k1+k2;}举个列子:1、首先定义一个函数式接口,接口中只能有一个抽象方法public interface MathOperation{ int operate(int a, int
2022-05-23 23:55:25
185
原创 实现类ArrayList,LinkedList,Vector
本篇文章主要总结了Collection接口中的三种实现类,它们各自的特性:ArrayList 底层数据结构就是数组,随机查询速度快、增删慢,线程不安全的,效率高,允许存放重复元素LinkedList 底层数据结构是双向链表,查询慢、增删快,线程不安全的,效率高,允许存放重复元素Vector 底层数据结构是数组,随机查询速度快、增删慢,线程安全,效率低,允许存放重复元素ArrayList实现类:ArrayList 是实现了 List 接口的可扩容的数组,它的内部是基于数组实现的,相较于
2022-05-21 21:58:56
100
原创 Java集合
Java集合类存放于Java.util包,是一个用于存放对象的容器集合中只能存放对象,如果存入一个简单类型,实际上进行了自动转换Collection接口List子接口
2022-05-05 22:28:55
426
原创 Java当中的线程
程序:程序是为了完成某个特定任务,使用某种计算机语言编写的一组指令的有序集合。进程:进程是具有一定独立功能的程序的运行过程,是系统进行资源分配和任务调度的一个独立单位。线程:线程是进程中的一个独立执行线索,是CPU调度和分配的基本单位,自己基本上不拥有系统资源。...
2022-04-27 19:04:21
450
原创 Java当中的流
什么是流:流是用于隐藏数据传输细节的操作模型,是数据传输的抽象表达。File类:用于封装文件或者目录,提供一些获取相关属性的方法创建一个名为out的文件夹:File file = new File("out/");if(!file.exists()) file.mkdirs();//mkdirs()用于创建文件方法:File f1=new File("data/dd.txt");//相对路径 File f2=new File("dd:bb.txt");//绝对路...
2022-04-17 21:43:49
268
原创 Java中的异常处理
什么是异常:在程序运行的过程中发生了不被期望的事件,组织了程序按照预期正常执行。我们要知道,一个程序不会一点错误都没有,在出现异常时,我们要进行异常处理,使程序从异常中恢复。Java异常类型:1、Error及其子类:错误,一般为虚拟机的错误,是由Java虚拟机生成并抛出,程序不能进行处理,例如OutOfMemoryError(内存溢出),StackOverFlowError(调出栈溢出)2、RuntimeException及其子类:运行时异常,也称为非受检型异常,是由于编程时的bug所导致,
2022-03-18 16:09:55
666
原创 Java当中的接口
什么是接口在Java中不直接支持多继承,因为会出现调用的不确定性,所以ava将多继承机制进行改良,在Java中变成了多实现。一个类可以实现多个接口,一个接口可以继承多个接口interface IA{}interface IB{}interface IC extends IB,IA{} //语法正确,类不允许多重继承,接口允许多重继承,其中IC中的方法等于IA+IB接口是一种特殊的抽象类,接口只能被abstract或者public修饰。实际上从语法的角度上说,外部接口还允许package
2022-01-25 14:43:53
264
原创 Java抽象类
面向对象编程的核心是面向抽象编程,一般在开发过程中依赖抽象,不依赖具体抽象类包含抽象方法的类叫做抽象类。抽象类不允许直接创建实例,只能由子类提供方法实现后才能通过子类创建对象抽象方法就是指没有方法体的方法,方法只做声明,没有具体的实现。抽象方法必须在子类中提供具体实现抽象类中可以包含抽象方法,不是必须包含抽象方法抽象类和普通类一样可以定义成员方法和成员属性,以及构造器和析构器。只是抽象类允许包含抽象方法public abstract class Animal{ privat
2022-01-25 14:30:08
189
原创 static关键字
用于修饰成员随着类加载,随着类消失优先于对象,用类名直接访问静态属性static属性是当前类的所有对象共有的共同属性,任何一个当前类对象修改这个属性,所有其他类对象的这个属性都会受影响...
2021-12-20 02:12:54
154
原创 Java中的final关键字
final意为最终的,不可变的修饰变量final变量一旦初始化,就不允许修改属性在构建对象时final属性必须进行赋值,不管采用的是直接赋值、非静态代码块赋值、构造器赋值三种方法中的哪一种,但一旦赋值就不允许修改class Aa{ final String name = "人"; //指定final属性必须给出一个初始化,否则报错 public A1(){ name = "ss"; //语法报错,name已经被赋值了,在构造器中赋值属于2次赋值。 }
2021-12-10 16:32:38
316
原创 Java字符串类型
字符:简单类型char,标准格式为单引号字符串:复合类型String,标准格式为双引号在Java中字符串属于对象,Java提供了String类来创建和操作字符串。但是对字符串要进行频繁修改的时候使用StringBuffer和StringBuilder类,因为它们的对象经过多次修改而不产生新的未使用对象。字符串拼接String s1="ab"+"c";//Java针对+和+=进行了重新定义,在字符串中+表示字符串拼接String s2="abc";System.out.println(s
2021-11-15 21:06:34
662
原创 Java表达式
表达式是运算符、操作数以及方法的调用序列,用来说明某个计算过程并返回计算结果。基本运算符可以分为:算术运算符、关系运算符、位运算符、条件运算符1、算术运算符2、关系运算符3、逻辑运算符4、赋值运算符...
2021-11-04 19:44:52
207
原创 Java数学计算
1、Java中常见的数学计算Java中提供了一个Math类,其中包含了基本运算的属性和方法Math.sqrt() 计算平方根Math.pow(a,b) 计算a的b次方Math.abs() 求绝对值Math.max/min( , ) 获取最大值/最小值Math.ceil() 获取距目标值最近的最小的整数类型,floor取距离目标值最近的最大的整数数值Math.round() 四舍五入的计算Math.random()...
2021-11-02 20:01:08
2047
原创 Java基本类型
Java中标识符字母、数字、下划线构成,不允许数字打头不允许使用保留字(goto const)和关键字(public class static)长度没有限制编码规范类名首字母大写,大写字母分词,建议名词方法名称首字母小写,大写字母分词变量名称首字母小写,大字母分词包名称全小写,使用域名反转的方式定义Java中对字母的大小写要求严格,编码时应时刻注意字母的大小写问题Java语法基础Java是一种格式非常自由的语言,可以用任意个空格、制表符、换行符、隔开每一个词例
2021-10-25 21:50:46
80
原创 Java基础
Java是一种面向对象的语言,Java具有很高的通用性,平台移植性和安全性(牺牲了执行效率换取了高安全性)。Sun公司对Java的解释为:Java是一个简单的、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。Java的主要技术分支JavaSE[J2SE]:Java的标准版,用于桌面应用或局域网开发。JavaEE[J2EE jakartaEE]:Java企业版,用于企业级电子商务应用开发。JAVAME[J2ME]:Java的精简版Java的核心机制J
2021-10-24 22:01:52
71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人