自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis

SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis,官网地址:https://spring.io/projects/spring-data-redis。SpringDataRedis中提供了RedisTemplate工具类,其中封装了各种对Redis的操作。RedisTemplate可以接收任意Object作为值写入Redis:只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化。

2023-07-23 16:24:43 288

原创 RPC相关知识

随着业务的发展,服务功能持续迭代,单体应用出现性能瓶颈,因此需要考虑对服务进行拆分,根据业务功能划分为不同的模块,不同的模块部署到不同集群上,模块间进行通信完成功能。由于调用的是远端对象,因此需要一个进程可以定位到调用的服务器地址以及调用的具体方法,一般可以通过注册中心或者哈希查找来实现,将被调的接口注册到某个地方,比如使用CallerId和函数名作为映射,调用者通过CallerId进行调用,服务端收到调用请求后,通过CallerId查找到对应函数,再执行后续处理流程。客户端反序列化给调用者。

2023-07-23 16:24:28 422

原创 Java反射、动态代理

Java反射和动态代理

2023-07-20 15:12:18 104

原创 JUC并发编程

有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作 volatile 变量都是直接操作主存。当 Context Switch 发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java 中对应的概念。这里说它们是线程安全的是指,多个线程调用它们同一个实例的某个方法时,是线程安全的。

2023-07-18 15:06:23 215

原创 设计模式(Java版)

定义一系列的算法,把它们单独封装起来,并且使它们可以互相替换,使得算法可以独立于使用它的客户端而变化,也是说这些算法所完成的功能类型是一样的,对外接口也是一样的,只是不同的策略为引起环境角色表现出不同的行为。相比于使用大量的if…else,使用策略模式可以降低复杂度,使得代码更容易维护。缺点:可能需要定义大量的策略类,并且这些策略类都要提供给客户端。加上synchronized安全。双重检查锁实现(安全)懒汉式(线程不安全)

2023-07-17 14:06:53 51

原创 计算机网络

两个线程之间传递消息用对列。

2023-07-16 17:09:15 114

原创 SpringMVC

SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;通常,我们只需要手动配置视图解析器,而处理器映射器和处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置。ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。过滤器与拦截器的区别:拦截器是AOP思想的具体应用。

2023-07-15 22:43:26 41

原创 Spring

AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。@Autowired 和 @Resource 来自不同的“父类”,其中 @Autowired 是 Spring 定义的注解,而。控制反转是spring中的一种设计思想,DI(依赖注入)是它的一种实现方法,对象的创建交由第三方,获得依赖对象的方式反转了。

2023-07-15 22:42:49 43

原创 MyBatis

MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。

2023-07-15 18:15:00 35

原创 Netty

调用 selector 的 select() 方法,未处理时,它不会阻塞,直到 channel 发生了读写就绪事件,这些事件发生,select 方法就会返回这些事件交给 thread 来处理。所谓的【零拷贝】,并不是真正无拷贝,而是在不会拷贝重复数据到 jvm 内存中,零拷贝的优点有。事件发生后,要么处理,要么取消(cancel),不能什么都不做,否则下次该事件仍会触发,这是因为 nio 底层使用的是水平触发。异步非阻塞:程序发生I/O操作时不会阻塞,继续运行,结果通过回调函数或事件通知机制获取结果。

2023-07-14 18:13:52 43

原创 MySQL

与锁申请超时还有一个非常关键的参数是:innodb_rollback_on_timeout,该参数的决定了当前请求锁超时之后,回滚的是整个事物,还是仅当前语句,默认值是off,也就是回滚当前语句(放弃当前语句的锁申请),而不是整个事物,当前的事物还在继续,连接也还在,这里与死锁自动监测机制打开之后会主动牺牲一个事物不同,锁超时后并不会主动牺牲其中任何一个事物,之前获取的锁也不会释放,直到事务提交或回滚或会话超时。而在 InnoDB 中,事务中的行锁是在执行sql的时候逐步获得的,就造成了死锁的可能。

2023-07-13 16:11:05 47

原创 操作系统基础

由于每个进程都有自己的虚拟地址空间,那么显然每个进程都有自己的页表,那么当进程切换后页表也要进行切换,页表切换后TLB就失效了,cache失效导致命中率降低,那么虚拟地址转换为物理地址就会变慢,表现出来的就是程序运行会变慢,而线程切换则不会导致TLB失效,因为线程线程无需切换地址空间,这也就是进程切换要比同进程下线程切换慢的原因。多进程程序,父进程一般需要跟踪子进程的退出状态,当子进程退出,父进程在运行,子进程必须等到父进程捕获到了子进程的退出状态才真正结束。它是进程存在的唯一标识,其包括以下信息∶。

2023-07-11 12:13:15 39

原创 Java知识(二)

摘要:一些Java知识点总结

2023-07-10 10:34:52 206 1

原创 Java知识

Java相关知识总结,面试八股文

2023-04-16 10:43:55 53

转载 Transformer 模型详解

本内容主要介绍 Transformer 模型的具体实现。

2022-11-17 20:27:59 600

原创 Java学习(三)

3. java基础语法3.1 注释(理解)注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要。Java中的注释分为三种:单行注释。单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。多行注释。多行注释的格式是使用/* 和 /将一段较长的注释括起来。文档注释。文档注释以 /* 开始,以 */ 结束。// 这是单行注释文字/*这是多行注释文字 这是多行注释文字 这是多行注释文字 */注意:多行注释不能嵌套使用。3.2 关键字(理解)关键字

2022-03-31 11:44:11 84

原创 Java学习(二)

2. 第一个演示程序

2021-11-04 17:54:46 68

原创 Java学习(一)

1.Java概述1.1 Java语言发展史语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言Java之父:詹姆斯·高斯林(James Gosling)2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com1.2 Java语言跨平台原理(理解)Java程序并非是直接运行的,Jav

2021-11-04 17:53:09 71

转载 C语言--五猴分桃

C语言--五猴分桃 5只猴子一 起摘了1堆桃子。因为太累了,它们商量决定,先睡一 觉再分。过了不知多久,1只猴子来了。它见别的猴子没来,便将这1堆桃子平均分成5份,结果多了1个,就将多的这个吃了,拿走其中的1堆。又过了不知多久,第2只猴子来了。它不知道有1个同伴已经来过,还以为自己是第1个到的呢。于是将地上的桃子堆起来,平均分成5份,发现也多了1个,同样吃了这1个,拿走其中的1堆。第3只、第4只...

2021-02-28 17:58:09 521

转载 Spring五个事务隔离级别和七个事务传播行为

Spring五个事务隔离级别和七个事务传播行为脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。不可重复读 :是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两 次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不 可重复读。例如,一个编辑人员两

2021-02-26 15:17:50 94

原创 spring

Spring5 框架概述1、Spring 是轻量级的开源的 JavaEE 框架2、Spring 可以解决企业应用开发的复杂性3、Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强4、Spring 特点(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低 API 开发难度IOC(概念和原理)1、什么是

2021-02-22 16:27:31 60

原创 Java常见面试题 + 答案

Java常见面试题 + 答案一、Java 基础二、容器三、多线程反射五、对象拷贝Java Web一、Java 基础1.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器javac,还包含了很多 jav

2021-02-20 21:41:28 1708

原创 最优二叉搜索树动态规划

      1、问题描速:       设 S={x1, x2, ···, xn} 是一个有序集合,且x1, x2, ···, xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x 大于其左子树中任一个顶点中存储...

2020-05-20 16:44:09 3269

转载 【算法设计与分析】流水作业调度问题 动态规划算法

题目描述“加工顺序问题”又被称为“批处理作业调度问题”。设有n个工件需要在机器M1和M2上加工,每个工件的加工顺序都是先在M1上加工,然后在M2上加工。t1j,t2j分别表示工件j在M1,M2上所需的加工时间(j=1,2,···,n)问:应如何在两机器上安排生产,使得第一个工件从在M1上加工开始到最后一个工件在M2上加工完所需的总加工时间最短?关于此(类)问题的回溯法求解被作为经典案例在很多教材或参考文献中出现,现要求设计求解此问题的动态规划算法。请用数学语言对“加工顺序问题”加以抽象,在此基础上给

2020-05-20 11:28:17 4262

转载 经典算法问题:流水作业调度(java实现)

1.问题模型:n个作业{0,1,2,…,n}在2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,后在M2上加工。在两台机器上加工的时间分别为ai和bi,确定这n个作业的加工顺序,使得从第一台作业开始加工,到最后一个作业完成加工所需要的时间最少。2.流水作业调度问题的Johnson算法:(1)令N1={i|ai<bi},N2={i|ai>=bi};(2)将N1中作业依ai的非减序排序;N2中作业依bi的非增序排序;(3)N1中作业接N2中作业构成满足John

2020-05-19 22:48:44 775

原创 动态规划——电路布线问题

问题描述在一块电路板的上、下两端分别有 n 个接线柱。根据电路设计,要求用导线 (i,π(i)) 将上端接线柱 i 与下端接线柱 π(i) 相连。如下图所示,其中,π(i),1≤i≤n, 是{1,2,…,n}的一个排列。导线 (I,π(i)) 称为该电路板上的第 i 条连线。对于任何 1≤i≤j≤n, 第i条连线和第j条连线相交的充要条件是 π(i)>π(j).在制作电路板时,要求将这n条连线分布到若干绝缘层上。在同一层上的连线不相交。电路布线问题要确定将哪些连线安排在第一层上,使得该层上有尽可

2020-05-19 22:12:53 829

原创 Java知识

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且只能修改变量,而synchronized可以修饰方法,以及代码块。多线程访问volatile不会发生阻塞,而synchronized会出现阻塞volatile能保证数据的可见性,但不能保证原子性;而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存和公共内...

2020-04-26 15:12:03 65

转载 平面最近点对问题

平面最近点对问题求解—基于Java语言 1. 问题描述:本问题来自《编程之美2.11—寻找最近点对》,文中给出了两种解法:暴力解法,分治解法。其中,暴力解法很简单,求出所有点之...

2020-04-23 17:57:30 609

原创 直线段裁剪Cohen-Sutherland算法

• 直线段裁剪算法是复杂图元裁剪的基础。• 复杂的曲线可以通过折线段来近似,从而裁剪问题也可以化为直线段的裁剪问题。Cohen-Sutherland裁剪• 基本思想:对于每条线段P1P2分为三种情况处理分为三种情况处理:(1)若P1P2完全在窗口内,则显示该线段P1P2简称“取”之。(2)若P1P2明显在窗口外,则丢弃该线段,简称“弃”之。(3)若线段不满足“取”或 “弃”的条件,则...

2020-04-23 17:08:44 4384

转载 Java的参数传递

在Java中...

2020-04-23 13:35:27 112

原创 Java修饰符

Java语言提供了很多修饰符,大概分为两类:访问权限修饰符非访问权限修饰符访问权限修饰符public:共有访问。对所有的类都可见。protected:保护型访问。对同一个包可见,对不同的包的子类可见。default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见。private:私有访问。只对同一个类可见,其余都不见。非访问权限修饰符static :用来创...

2020-04-23 13:05:46 92

原创 (计算机图形学)多边形的扫描转换算法——边界标志算法

多边形的扫描转换算法——边界标志算法边界标志算法基本思想-帧缓冲器中对多边形的每条边进行直线扫描转换,亦即对多边形边界所经过的象素打上标志。–然后再采用和扫描线算法类似的方法将位于多边形内的各个区段着上所需颜色。–使用一个布尔量inside来指示当前点是否在多边形内的状态。扫描线算法算法思想按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作...

2020-04-16 17:39:19 1636

Spring5.rar

spring5的学习资料

2021-02-22

空空如也

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

TA关注的人

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