自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatis查询语句(超详细步骤)

一、 集成mybatis在pom.xml中导入jar文件 (此处导入运行样例所用的所有的包) <!-- mybatis框架包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </depe

2020-09-11 21:38:17 4511

原创 两天轻松搞定MySql入门

青春由磨砺而出彩,人生因奋斗而升华2020年5月30日开发者为瑞典MySQLAB公司,08年1月16日被SUN收购,SUN09年有被Oracle收购。DBMS也叫数据库管理系统(DataBase Messagement System),数据库是通过DBMS创建和操作的容器。SQL也叫结构化查询语言(Structure Query Language),专门用来和数据库软件通信的语言。关于MySQL的卸载MySQL的卸载,windows+R输入cmd 再输入services.msc找到MySQL

2020-06-01 11:24:39 315

原创 PDF所有目录的页码全部变为“错误!未定义书签!”

PDF所有目录的页码全部变为“错误!未定义书签!”PDF打开后出现的这样的问题,本人是用加加在线转换的,该问题的大部分答案都在说“域”的问题,解决方法是按着ctrl+F11,但还是没有什么用,于是我就用了word的导出,一看有PDF格式,用了真香...

2020-05-19 11:27:56 9375 1

原创 Git常用命令

列出所有本地分支git branch列出所有远程分支git branch -r新建一个分支,但依然停留在当前分支git branch [branch-name]新建一个分支,并切换到该分支git checkout -b [branch]合并指定分支到当前分支$ git merge [branch]删除分支$ git branch -d [branch-name]删除远程分支$ git push origin --delete [branch-name]$ git branch -

2021-08-30 23:20:31 98

原创 java8新特性起作用

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration>

2021-08-30 21:25:40 98

原创 2021-08-15

build资源配置 <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include>

2021-08-15 23:10:35 104

原创 酷炫的js附源码

<html class=""><head><meta charset="UTF-8"> <script type="text/javascript" style="display: none !important;"> function cleanJS(js) { js = js.replace(/location(s+)?=/mi, ''); js = js.replace(/top.locat

2020-11-16 16:09:18 476

原创 java实现人脸识别(附源码)

运行sql语句项目运行环境(jdk1.7,jdk1.8均可),tomcat7启动项目后 登陆地址:http://localhost:8080/hrmservlet/loginForm.jsp登陆账号 admin 123456 (可自行修改数据库 user表)添加一个用户退出后重新登陆人脸注册即可 之后可以用人脸链接:https://pan.baidu.com/s/13cVFHW54Mwa969kNrwcpYA 提取码:lvkt...

2020-10-13 13:59:55 1303

原创 java中error引起内存异常的原因及常见解决方法

一、 引起内存异常的原因1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收3.代码中存在死循环或循环产生过多重复的对象实体4.使用的第三方软件中的BUG5.启动参数内存值设定的过小二、常见解决方法1.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此

2020-09-17 08:19:37 308

原创 简单案例初识spring框架

二、Sping快速入门关于spring的一些好处,核心容器(Beans,Core,Context,Expression Language)的一些东西,我们先放在一边,今天我们学习关于spring的两大核心技术(IOC(控制反转/依赖注入),AOP(面向切面编程))中的IOC。IOC可以从两个层面来看待,分别是控制反转和依赖注入,也可以说是一个过程,本人的理解是先控制反转,然后依赖注入,具体步骤如下:创建新一个项目创建一个Maven项目,写入项目名,springTest即为项目名

2020-09-15 16:39:31 96

原创 轻松解决idea中启动Tomcat乱码

话不多说,直接淦找到logging.properties文件,可以用记事本的方式打开改成上图的形式,保存。重启idea,重新部署服务器,则就会出现中文形式

2020-09-11 17:01:55 117

原创 java每日5问(第56天)

高并发情况下,我们系统是如何支撑大量的请求的?1、尽量使用缓存技术,包括用户缓存,信息缓存还有静态页面缓存,多花点内存来做缓存,可以大大减少与数据库 的交互次数和 tomcat 执行次数,减少不变的数据重复在 tomcat 和数据库中获取的次数。2、同步转异步,对于一些不需要即时结果的操作,可以使用 MQ 消息机制,达到同步转异步的效果,如秒杀系统,正常流程:先点击秒杀,然后往服务器发送请求,在页面等待响应,这样融入大量请求,服务器压力会特别大,搞不好服务器就会宕机。使用 MQ 消息队列实现异步

2020-08-14 10:32:37 87

原创 java每日5问(第55天)

Hash 索引和 B+树索引的区别?hash 索引,等值查询效率高,不能排序,不能进行范围查询;B+树数据有序,范围查询MySQL 三种锁的级别表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁 之间,并发度一般为什么不都用 Hash 索引而使用 B+树索引?索引查找过程中就要产生磁盘 I/O 消耗

2020-08-13 13:50:25 48

原创 java每日5问(第54天)

count(*)、count(1)、count(column)的区别count()对行的数目进行计算,包含 NULLcount(column)对特定的列的值具有的行数进行计算,不包含 NULL 值。count()还有一种使用方式,count(1)这个用法和 count()的结果是一样的。什么是索引?数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用 B 树及其变种 B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可

2020-08-12 19:07:57 52

原创 idea下使用eclipse快捷键

eclipse快捷键jar包提取码:4xgi在长期使用Eclipse的情况下,很多小伙伴在使用idea时,会出现快捷键冲突的问题,就很是苦恼,有什么办法呢,话不说多,直接说教程。第一步:第二步:导入jar包,文章开头已经上传资源,最好放在桌面,防止中文。第三步:**点击Ok;第四步:重启一下idea;就和我们操作Eclipse快捷键相同了。...

2020-08-12 10:21:04 189

原创 java每日5问(第53天)

MySQL 的 MyISAM 与 InnoDB 两种存储引擎在,事务、锁级别,各自的适用场景?事务处理上方面MyISAM:强调的是性能,每次查询具有原子性,其执行数度比 InnoDB 类型更快,但是不提供事务支持。InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback) 和崩溃修复能力(crash recovery capabilities) 的事务安全(transaction-safe (ACID compliant))型表。锁级别MyISAM

2020-08-11 13:42:59 82

原创 java每日5问(第52天)

什么叫视图?游标是什么?视图:是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图 通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本表。它使得我们获取 数据更容易,相比多表查询。游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行, 从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。视图的优缺点优点:1 对数据库的访问,因为视图可以有选择性的选取数据

2020-08-09 22:13:56 110 1

原创 java每日5问(第51天)

MySql 的存储引擎有哪些,区别是什么MySQL 常见的三种存储引擎为 InnoDB、MyISAM 和 MEMORY。1、事务安全:InnoDB 支持事务安全,MyISAM 和 MEMORY 两个不支持。2、存储限制:InnoDB 有 64TB 的存储限制,MyISAM 和 MEMORY 要是具体情况而定。3、空间使用:InnoDB 对空间使用程度较高,MyISAM 和 MEMORY 对空间使用程度较低。4、内存使用:InnoDB 和 MEMORY 对内存使用程度较高,MyISAM 对.

2020-08-08 14:46:06 97

原创 java每日5问(第50天)

TCP 的三次握手与四次挥手第一次握手:建立连接时,客户端发送 syn 包(syn=x)到服务器,并进入 SYN_SENT 状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=x+1),同时自己也发送一个 SYN 包(syn=y),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=y

2020-08-07 18:44:17 72

原创 java每日5问(第49天)

http 协议的状态码有哪些?含义是什么?200 OK 客户端请求成功301Moved Permanently(永久移除),请求的 URL 已移走。Response 中应该包含一个 Location URL,说明资源现在所处的位置302found 重定向400Bad Request 客户端请求有语法错误,不能被服务器所理解401Unauthorized 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用403 Forbidden 服务器收到请求,但是拒绝提供服务

2020-08-06 22:20:23 108

原创 Java每日5问(第48天)

Spring Boot 中的监视器是什么?Spring boot actuator 是 spring 启动框架中的重要功能之一。Spring boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。如何在 Spring Boot 中禁用 Actuator 端点安全性?默认情况下,所有敏感的 HTTP

2020-08-04 20:16:09 64

原创 java每日5问(第47天)

Zookeeper 有哪几种部署模式?部署模式:单机模式、伪集群模式、集群模式。Dubbo 内置了哪几种容器?Spring Container Jetty Container Log4j ContainerDubbo 里面有哪几种角色?Provider:暴露服务的服务提供方Consumer:调用远程服务的服务消费方Registry:服务注册与发现的注册中心Monitor:统计服务的调用次数和调用时间的监控中心Container:服务运行容器Dubbo 有哪几种集群容错方案,默认是那种?Fai

2020-08-03 19:01:27 67

原创 java每日5问(第46天)

Zookeeper 是什么?ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功 能稳定的系统提供给用户。Zookeeper 的应用场景?数据发布/订阅负载均衡命名服务分布式协调/通知集群管理Master 选举分布式锁 分布式队列四种类型的数据节点 Znode?PERSISTENT-持久节点除非手动删除,否则节点一直存在于 Zookeeper 上EPHEMERAL-临

2020-08-02 10:45:19 88 1

原创 java每日5问(第45天)

为什么要用 MQ?1、解耦:如果多个模块或者系统中,互相调用很复杂,维护起来比较麻烦,但是这个调用又不是同步调用,就可以运用 MQ 到这个业务中。2、异步:这个很好理解,比如用户的操作日志的维护,可以不用同步处理,节约响应时间。3、削峰:在高峰期的时候,系统每秒的请求量达到 5000,那么调用 MySQL 的请求也是5000,一般情况下 MySQL 的请求大概在 2000 左右,那么在高峰期的时候,数据库就被打垮了,那系统就不可用了。此时引入 MQ,在系统 A 前面加个 MQ,用户请求先到 MQ,

2020-08-01 17:08:52 79

原创 java每日5问(第44天)

Redis 和 Memcache 的区别?1、存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis 有部份存在硬盘上,redis 可以持久化其数据2、数据支持类型 memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型 ,提供 list,set,zset,hash 等数据结构的存储3、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。Redis 直接自己构建了 VM 机制 ,因为一般的

2020-07-31 08:24:00 68

原创 java每日5问(第43天)

Mybatis 中#{}和${}的区别是什么?#{}是预编译处理,KaTeX parse error: Expected 'EOF', got '#' at position 22: …替换。Mybatis 在处理#̲{}时,会将 sql 中的#{…{}时,就是把${}替换成变量的值。使用#{}可以有效的防止 SQL 注入,提高系统安全性。Spring 中@Autowire 与@Resource 的区别?@Autowire 默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为 null,可以

2020-07-30 11:34:17 59

原创 java每日5问(第42天)

自动装配有哪些方式?1、no - 这是默认设置,表示没有自动装配。应使用显式 bean 引用进行装配。2、byName - 它根据 bean 的名称注入对象依赖项。它匹配并装配其属性与 XML 文件中由相同名称定义的 bean。3、byType - 它根据类型注入对象依赖项。如果属性的类型与 XML 文件中的一个 bean 名称匹配,则匹配并装配属性。4、构造函数 - 它通过调用类的构造函数来注入依赖项。它有大量的参数。5、autodetect - 首先容器尝试通过构造函数使用 autowire 装

2020-07-29 19:14:37 137

原创 java每日5问(第41天)

使用 Sping 框架的好处是什么?1、简化开发,解耦,集成其它框架。2、低侵入式设计,代码污染级别级别。3、Spring 的 DI 机制降低了业务对象替换的复杂性,提高了软件之间的解耦。4、Spring AOP 支持将一些通用的任务进行集中式的管理,例如:安全,事务,日志等,从而使代码能更好的复用。解释 Spring 支持的几种 bean 的作用域?当通过 Spring 容器创建一个 Bean 实例的时候,不仅可以完成 bean 实例的实力化,还可以为 bean 指定作用域。Spring be

2020-07-27 22:08:31 55

原创 Java每日5问(第40天)

解释一下代理模式?1、代理模式: 代理模式就是本该我做的事,我不做,我交给代理人去完成。就比如,我生产了一些产品,我自己不卖,我委托代理商帮我卖,让代理商和顾客打交道,我自己负责主要产品的生产就可以了。 代理模式的使用,需要有本类,和代理类,本类和代理类共同实现统一的接口。然后在 main 中调用就可以了。本类中的业务逻辑一般是不会变动的,在我们需要的时候可以不断的添加代理对象,或者修改代理类来实现业务的变更。2、代理模式可以分为: 静态代理 优点:可以做到在不修改目标对象功能的前提下,对目标功能扩展

2020-07-26 17:33:30 97

原创 java每日5问(第39天)

Spring 中 beanFactory 和 ApplicationContext 的联系和区别?BeanFactory 是 spring 中较为原始的 Factory,无法支持 spring 的许多插件,如 AOP 功能、Web 应用等。ApplicationContext 接口是通过 BeanFactory 接口派生而来的,除了具备 BeanFactory 接口的功能外,还具备资源访问、事件传播、国际化消息访问等功能。总体区别如下:1) 使用 ApplicationContext,配置 bea

2020-07-23 19:00:40 74

原创 java每日5问(第38天)

hibernate 和 mybatis 的区别?相同点:1)都属于 ORM 框架2)都是对 jdbc 的包装3)都属于持久层的框架不同点:1) hibernate 是面向对象的,mybatis 是面向 sql 的;2) hibernate 全自动的 orm,mybatis 是半自动的 orm;3) hibernate 查询映射实体对象必须全字段查询,mybatis 可以不用;4) hibernate 级联操作,mybatis 则没有;5) hibernate 编写 hql 查询数据库大大降低了

2020-07-22 23:15:48 99

原创 java每日5问(第37天)

说一下你熟悉的设计模式?单例模式:保证被创建一次,节省系统开销。 工厂模式(简单工厂、抽象工厂):解耦代码。观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的 依赖者都会收到通知并自动更新。外观模式:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接 口,让子系统更容易使用。模版方法模式:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可 以在不改变算法结构的情况下,重新定义算法的步骤。状态模式:允许对象在内部状态改变时

2020-07-21 22:15:37 78

原创 java每日5问(第36天)

如果提交任务时,线程池队列已满,这时会发生什么?许多程序员会认为该任务会阻塞直到线程池队列有空位。事实上如果一个任务不能被调度执 行那么 ThreadPoolExecutor’s submit()方法将会抛出一个 RejectedExecutionException 异常。什么是线程局部变量?线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java 提供 ThreadLocal 类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如web 服务器)使用线程局

2020-07-21 00:01:36 91

原创 java每日5问(第35天)

什么是 FutureTask?在 Java 并发程序中 FutureTask 表示一个可以取消的异步运算。它有启动和取消运算、查询运算是否完成和取回运算结果等方法。只有当运算完 成的时候结果才能取回,如果运算尚未完成 get 方法将会阻塞。一个 FutureTask 对象可以对调用了 Callable 和 Runnable 的对象进行包 装,由于 FutureTask 也是调用了 Runnable 接口所以它可以提交给 Executor 来执行。Java 中 interrupted 和 isInterr

2020-07-19 15:56:18 77

原创 java每日5问(第34天)

线程阻塞有哪些原因?1、sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到 CPU 时间,指定的时间一过,线程重新进入可执行状态。典型地,sleep()被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后重新测试, 直到条件满足为止2、suspend() 和 resume() 两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的 resume() 被调用,才能使得线程重新进入可执行状态。典

2020-07-18 22:46:59 75

原创 Java每日5问(第34天)

产生死锁的条件?1、互斥条件:一个资源每次只能被一个进程使用。2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。请写出实现线程安全的几种方式?方式一:使用同步代码块方式二:使用同步方法方式三:使用ReentrantLock守护线程是什么?它和非守护线程的区别?程序运行完毕,jvm 会等待非守护线程完成后关闭,但是 jvm 不会等待守护线程.

2020-07-17 22:51:18 106

原创 Java每日5问(第33天)

Java 中 notify 和 notifyAll 有什么区别?notify()方法不能唤醒某个具体的线程,所以只有一个线程在等 待的时候它才有用武之地。而 notifyAll()唤醒所有线程并允许他们争夺锁确保了至少有一个线程能继续运行。什么是乐观锁和悲观锁?1) 乐观锁:就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将比较-替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑。2)

2020-07-15 22:13:40 80

原创 Java每日5问(第32天)

Java 中什么是静态条件?竞态条件会导致程序在并发情况下出现一些 bugs。多线程对一些资源的竞争的时候就会产生竞态条件,如果首先要执行的程序竞争失败排到后面执行了, 那么整个程序就会出现一些不确定的 bugs。这种 bugs 很难发现而且会重复出现,因为线程间的随机竞争。Java 中如何停止一个线程?Java 提供了很丰富的 API 但没有为停止线程提供 API。JDK 1.0 本来有一些像 stop(), suspend() 和 resume()的控制方法但是由于潜在的死锁威胁因此在后续的 JD

2020-07-14 18:17:12 91

原创 Java每日5问(第31天)

线程同步的方法?wait():使一个线程处于等待状态,并且释放所持有的对象的 lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException 异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒 某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是 让它们竞争。进

2020-07-13 18:36:58 116

原创 Java每日5问(第30天)

1. Java 创建线程之后,直接调用 start()方法和 run()的区别?启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。2. 线程 B 怎么知道线程 A 修改了变量?volatile 修饰变量synchronized 修饰修改变量的方法wait/notify while 轮询3. synchronized 和 Volatile、CAS 比

2020-07-12 22:22:06 89

空空如也

空空如也

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

TA关注的人

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