自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Itextpdf5 基础知识

Itextpdf5 基础知识业务背景:需要根据甲方提供的材料模板,生成对应的pdf文件(后台实现)这里根据我遇到情况,记录当前需要的知识点,写的一些小Demo。依赖引入 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dep

2021-09-02 19:55:49 2060

原创 读书笔记Typora将本地图片自动上传到gitee仓库中

读书笔记Typora将本地图片自动上传到gitee仓库中之前都是使用Typora这个软件作为读书笔记,以前都是把图片放到本地中,后来我把笔记都上传到github上,发现本地图片没办法加载,于是采用了将图片上传到github上的想法,后来改成了gitee上,因为github在国内不稳定,就算我上传上去了,可能会出现加载过慢或者失败的情况。创建一个gitee仓库https://gitee.com/这是我的仓库创建一个文件生成一个私人令牌后面用来配置的,记得保存下来下载PicGO这里我是

2021-09-02 15:45:25 311

原创 Spring(三)

Spirng AOPAOP概念AOP(Aspect Oriented Programming) 面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP的作用及其优势在程序运行期间,在不修改源码的情况下对方法进行功能增强减少重复代码

2021-09-02 15:43:32 122

原创 Spring(一)

Spring简介分层的Java SE/EE应用 full - stack轻量级开源框架。核心:IOC(Inverse Of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)优势方便解耦,简化开发AOP编程的支持声明式事务的支持方便程序的测试方便集成各种优秀框架降低JAVAEE API的使用难度Java源码经典学习范例体系结构1. Data Access/Integration(数据访问/集成)数据访问/集成层包括

2021-09-02 15:41:17 104

原创 Spring(二)

Spring配置数据源使用连接池来配置数据源数据源(连接池)的作用数据源就是连接池事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、Druid等数据源的开发步骤导入数据源的坐标和数据库驱动坐标<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-jav

2021-09-02 15:39:12 74

原创 Spring(一)

Spring简介分层的Java SE/EE应用 full - stack轻量级开源框架。核心:IOC(Inverse Of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)优势方便解耦,简化开发AOP编程的支持声明式事务的支持方便程序的测试方便集成各种优秀框架降低JAVAEE API的使用难度Java源码经典学习范例体系结构1. Data Access/Integration(数据访问/集成)数据访问/集成层包括

2021-09-02 15:36:09 169

原创 SpringMVC

SpringMVCSpring与Web环境集成springboot 添加webapp目录-百度经验 (baidu.com)ApplicationContext应用上下文获取方式应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件)方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次,影响性能。C

2021-08-28 13:40:42 438

原创 Java知识总结(十四)

AQS(抽象的队列同步器)Java并发之AQS详解 - waterystone - 博客园 (cnblogs.com)从ReentrantLock的实现看AQS的原理及应用 - 美团技术团队 (meituan.com)AQS(Abstract Queued Synchronizer)抽象式队列同步器,是一套多线程访问共享资源的同步框架。许多同步类都是基于它实现同步、线程安全。例如:ReentrantLock/Semaphore/CountDownLatchAQS原理框架AQS核心思想:如果被

2021-08-25 14:50:57 160

原创 Java知识总结(十三)

CAS(compare and swap/set)CAS原理解析 CAS底层 - YoungDeng - 博客园 (cnblogs.com)CAS:比较 和 交换。判断内存中某个位置的值是否和预期值相符(比较),如果相符将对应内存中的值更新为新的值(交换/设置),整个过程是原子性的。CAS的原语体现在java中的sun.misc.Unsafe类的各个方法。Unsafe类中的CAS方法,JVM帮助我们实现CAS的汇编语言,这个过程是依赖于硬件的功能,通过它实现了原子操作。CAS是一种系统源语,属于操作系

2021-08-25 14:47:13 75

原创 Java知识总结(十二)

ThreadLocalJava中的ThreadLocal详解 - 夏末秋涼 - 博客园 (cnblogs.com)多线程在访问一个共享变量时,若该变量不做任何处理可能导致数据不一致,出现线程不安全问题。一般通过加锁(volatile关键字主要是修饰共享变量,保证变量可见性和有序性)来保证线程安全。ThreadLocal是通过另一种方式来保证线程的安全性,不过不是通过同步数据,而是将变量拷贝给每一个调用该变量的线程,把变量存储在线程的内部,因此每个线程之间的变量的数据是独立的,每次调用的都是自己的那一份

2021-08-25 14:43:59 55

原创 Java知识总结(十一)

volatile关键字在了解volatile的特性之前,先要补充一点内存方面的知识。Java并发编程:volatile关键字解析 - Matrix海子 - 博客园 (cnblogs.com)内存模型计算机在运行程序时,执行的是一条条的指令,而指令是在cpu上执行的,这个过程势必有数据的读写过程。程序中运行的临时数据都存放在**主存(物理内存)**中,这时候就存在一个问题,cpu的执行速度是很快的,而从主存中读数据和写数据的速度肯定是远远低于cpu执行的速度,cpu需要等主存的数据, 这样就会导致执行

2021-08-25 14:42:18 97

原创 Java知识总结(十)

线程池你要的线程池来了,还带有10道面试题和答案 (markdowner.net)将一个或多个线程使用统一的方式进行调度和管理的技术,减少线程的创建和销毁所带来的开销。线程池的作用(为什么要使用线程池)降低资源消耗:线程的创建和销毁都需要消耗资源,通过重复利用线程减少这方面消耗。提高响应速度:当请求任务到达时,通常工作线程已经存在,不需要等待线程创建,直接执行。提高线程的可管理:使用线程池统一对线程进行调度管理线程池的创建在JDK包下的JUC(java.util.concurrent)创

2021-08-25 14:35:18 140

原创 Java知识总结(九)

Semaphore(信号量)一种基于计数的信号量,可以控制同时访问的线程个数。可以设定阈值,在阈值规定的范围内 同一时间多个线程可以获取信号量来完成自己的工作,用完后归还,若线程的数量超过了阈值,其他没有获取信号量的线程等待。信号量可以用来实现对象池、资源池。比如:数据库连接池。实现代码// 创建一个计数阈值为 5 的信号量对象// 只能 5 个线程同时访问Semaphore semp = new Semaphore(5);try { // 申请许可 semp.acquire(

2021-08-25 14:31:22 98

原创 Java知识总结(九)

ReentrantLockReentrantLock实现了Lock接口中的方法,它是一把独占锁、悲伤锁、可重入锁、即可以实现公平锁也可以实现非公平锁ReentrantLock 与 synchronized两者都保证了可见性和互斥性synchronized是独占锁,synchronized会被JVM自动加锁和解锁,方便但不够灵活ReentrantLock也是独占锁,它是通过**手动lock() 和unlock()**来进行加锁和解锁操作,操作不易但是灵活。synchronized与Re

2021-08-25 14:27:08 60

原创 Java知识总结(八)

Synchronized同步锁同步锁可以将任意一个不为null的对象当作锁。它属于独占式的悲观锁,同时属于可重入锁、非公平锁作用范围(9条消息) Java中synchronized同步锁用法及作用范围_在梅边的专栏-CSDN博客_java 同步锁java中的对象锁和类锁:对象锁作用于:对象实例方法或者对象实例上。类锁作用于:类的静态方法和类对应的Class对象。一个类可以对应多个对象实列,一个对象拥有一个对象锁,多个对象对应多把锁,因此各个对象实例之间的对象锁互不干扰。每个类只有一个,对应一

2021-08-25 14:23:33 79

原创 Java知识总结(七)

Java锁不可不说的Java“锁”事 - 美团技术团队 (meituan.com)乐观锁对同一数据进行并发操作,乐观锁在进行操作数据时总是乐观认为不会有别的线程修改数据,因此它不会对资源加锁。当自己在进行数据修改之前它会先进行判断有没有其他线程修改了数据,如果数据没有修改,就写入数据。如果数据被修改了,则根据不同的实现方式执行不同的操作(例如报错或者自动重试)。java中乐观锁基本上通过**CAS(Compare And Swap(比较与交换),是一种无锁算法)**操作实现的,,CAS 是一种更新

2021-08-25 14:21:44 131

原创 Java知识总结(六)

Java多线程并发什么是线程和进程进程是程序执行的一次过程,即进程从创建到运行再到消亡的过程。是系统进行资源分配的独立单位进程之间是相互独立的,因此很难进行进程间的通信。线程是比进程更小的执行单位,通常一个进程可以包含多个进程。是进行资源调度和保护的基本单位进程拥有独立的内存单元,线程拥有自己独立的程序计数器、虚拟机栈、本地方法栈,多个线程之间共享进程的堆和方法区。多线程多线程是多个线程的集合。一个程序(进程)中同时执行一个以上的线程,一个线程不必等待另一个线程执行完毕之后才执行,所有

2021-08-25 14:17:12 85

原创 Java知识总结(五)

JAVA BIO/NIO同步发起一个请求或任务,被调用者在未完成请求或任务前,不会返回结果。需要一直等待该请求返回或任务完成反馈的结果,在这期间不能够去做其他的事情。比如:你打电话给书店老板询问书籍,老板帮你去找书,你需要一直等待,等待书店老板给你回复。异步发起一个请求或任务之后,被调用者会理刻返回表示已经接受请求或任务,但是并没有返回结果,就接着去做别的事情,发出的请求或任务完成时,被调用者会返回结果。比如:你打电话给书店老板询问书籍,你让他查到了再打电话给你,然后你挂断电话,期间你可以干其

2021-08-22 15:34:14 205

原创 Java知识总结(四)

JVM基本概念运行java字节码文件的虚拟进程(假象计算机)。它运行在操作系统之上,与硬件没有直接的交互。组成:垃圾回收,栈,堆,方法域,寄存器,一套字节码指令集。运行的过程:java语言是半编译语言,因为java的源文件通过编译器(javac)编译成字节码文件(.class),通过JVM的解释器将字节码文件解释成对应平台的机器码。Java 源文件—->编译器—->字节码文件字节码文件—->JVM—->机器码java语言也是跨平台语言,跨平台语言指的是字节码文件

2021-08-22 15:31:37 146

原创 Java知识总结(三)

Java集合集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口先来说说Collection接口中的集合List(对付顺序的好帮手)Java 的 List 是非常常用的数据类型。List 是有序的 Collection。Java List

2021-08-21 19:29:58 209

原创 Java知识总结(二)

附上后续,后续持续更新Java反射特点:动态语言在程序运行期间可以改变其结构,引入新的函数,也可以改变已有函数结构。例如:JavaScript从反射角度来看:java属于半动态语言。c++、c不是动态语言。反射机制概念(运行状态中知道类的所有属性和方法)在java的反射机制中处于运行状态时,对于任意一个类都能够知道它所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法。动态获取信息以及动态调用对象方法的功能。本质上:从字节码中查找,动态获取类的结构,包括属性、构造器、动态调用对

2021-08-21 19:15:55 262

原创 Java知识总结(一)

JAVA知识总结面向对象和面向过程的区别面向过程:优点:直观上来说面向对象生成对象实例过程消耗的资源较大。从根本上来说面向过程语言大多数是直接编译成机械码在计算机中运行,而面向对象语言(Java)是半编译语言,通过编译器将源文件编译成JVM可识别的字节码文件,通过解释器将字节码文件解释成计算机可以识别的机械码文件。缺点:相比面向对象语言,它不利于维护、复用以及扩展。面向对象:优先:面向对象语言能够实现代码易维护、易复用以及易扩展的特点,具有封装、继承、多态等特性,设计出低耦合系统、是系统更加

2021-08-21 19:11:44 138

原创 Redis基础知识(二)

Redis高级环境:Linux安装//下载wget http://download.redis.io/releases/redis-4.0.0.tar.gz//解压tar -xvf redis-4.0.0.tar.gz //安装make install//进入到src目录下cd src///启动redis-server//进入redisredis-cliRedis服务启动默认配置启动redis-serverredis-server --port 6380

2021-08-21 19:08:58 159

原创 Redis基础知识(三)

Redis集群主从复制多台服务器连接方案提供数据方:master主服务器,主节点,主库主客户端接收数据的方:slave从服务器,从节点,从库从客户端需要解决的问题数据同步核心工作master的数据复制到slave中主从复制(一对多)主从复制即将master中的数据即时、有效的复制到slave中特征:一个master可以拥有多个slave,一个slave只对应一个master职责:master:写数据执行写操作时,将出现变化的数据自动同步

2021-08-21 19:05:26 189

原创 Redis基础知识(一)

Redis知识Redis基础环境:Windows简介问题现象海量用户高并发关系型数据库(罪魁祸首)性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群解决思路降低磁盘IO次数,越低越好去除数据间的关系,越简单越好Nosql(Not-Only-Sql)泛指非关系型数据库,作为关系型数据库的补充。一般的数据还是要存到关系型数据库中(硬盘中),而nosql是将数据存入到内存中。作用:应用与海量用户和海量数据前提下的数据处理问题特征:可扩容,

2021-08-21 19:05:06 181

转载 Mysql高级知识点(四)

Mysql高级知识点41. MySql中常用工具1.1 mysql该mysql不是指mysql服务,而是指mysql的客户端工具。语法 :mysql [options] [database]1.1.1 连接选项参数 : -u, --user=name 指定用户名 -p, --password[=name] 指定密码 -h, --host=name 指定服务器IP或域名 -P, --port=# 指定连接端口示例 : mysql -h 127.0.0.1 -P 33

2021-08-20 17:03:21 150

转载 Mysql高级知识点(三)

Mysql高级031. 应用优化前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。1.1 使用连接池对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立 数据库连接池,以提高访问的性能。1.2 减少对MySQL的访问1.2.1 避免对数据进行重复检索在编写应用代码时,需要能够理清对数据库的访问逻辑。能够一次连接就获取到结果的,就不用两次连接,

2021-08-20 16:58:45 369

转载 Mysql高级知识点(一)

Mysql高级知识点 1序号Day01Day02Day03Day041Linux系统安装MySQL体系结构应用优化MySQL 常用工具2索引存储引擎查询缓存优化MySQL 日志3视图优化SQL步骤内存管理及优化MySQL 主从复制4存储过程和函数索引使用MySQL锁问题综合案例5触发器SQL优化常用SQL技巧1.(Deepin环境下)Linux系统下安装Mysql下载Deepin的apt仓库包下载网址:

2021-08-20 16:56:41 148

转载 Mysql高级知识点(二)

1. Mysql的体系结构概览整个MySQL Server由以下组成Connection Pool : 连接池组件Management Services & Utilities : 管理服务和工具组件SQL Interface : SQL接口组件Parser : 查询分析器组件Optimizer : 优化器组件Caches & Buffers : 缓冲池组件Pluggable Storage Engines : 存储引擎File System : 文件系统1) 连接

2021-08-20 16:49:53 233

原创 计算机网络基础

计算机网络基础结合着各种资料本人把计网的内容整理了一下,可能不是特别的全面,若有错误还请指正,同时也是作为复习的资料,有错误会尽快的更新。OSI七层模型osi(open system interconnection reference model)开放式系统互联通信参考模型名称作用物理层物理设备的传输标准,比如网线的接口类型、光纤的接口类型等等。 物理设备之间通过比特流形式进行传递(将01数据转换成电流强弱来进行传输,到达目的地后再转换成0,1)。比特:二进制 0101

2021-08-20 16:14:32 761

原创 使用MongoDB和Robo3t的坑

使用MongoDB和Robo3t的坑问题:robo3t无法连接到localhost:27017,报出:Failed to execute “listdatabases” command.的错误,在网上找了许久,才找到问题所在,版本问题。。。。。MongoDB用的版本是4.2,而一开始使用的Robo3t是1.2版本,在网上找了半天,别人也遇到了类似的问题,也是用了1.2版本去连接,出现了和我一样...

2019-10-25 16:41:50 2385 1

原创 在Windows10环境下安装RabbitMAQ、Erlang的坑

在Windows10环境下安装RabbitMAQ、Erlang的坑描述:本人学习Spring Boot过程中需要用到RabbitMAQ,所以就去安装了。途中踩了无数个坑,哎呦,疼死我了。花了一天多的时间才解决,所以想花点时间来记录下一自己踩的坑。这里啰嗦一下,也是帮老师宣传一下,想要学习spring boot 的同学,可以去看看这份资料:程序员弟弟说一下采坑主要的原因:我自己的主要是Rabb...

2019-10-25 16:40:20 3294 2

原创 在轻量级服务器(windows环境)上部署项目(后台管理页面)

在轻量级服务器(windows环境)上部署项目(后台管理页面)前言:最近对服务器产生了兴趣,于是在学长的建议下,去阿里云买了一个学生服务器。待会会说我购买的过程。本人也是一个菜鸟程序员,刚接触不久,也习惯了使用windows系统,所以我上来不打算使用Linux系统来部署项目,因此我的云服务器也就没有选择Linux。我在这之前也在网上查阅了,大部分的人都建议去用Linux系统,因为我个人的一些原因...

2019-10-25 16:18:09 2610

空空如也

空空如也

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

TA关注的人

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