自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(196)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mysql

一一、MySQL架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。连接层:最上层是一些客户端和连接服务。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证

2020-07-16 10:47:44 461

原创 深入理解sql的四种连接-左外 右外连接 内连接 全连接

1.内连接 包括相等连接和自然连接内连接使用比较运算符 根据每个表共有的列的值匹配两个表的行2 外连接外连接可以是左向外连接 右向外连接 或完整的外部连接2.1 left join 或者left outer join左向外连接的结果集包括left outer 子句中指定的左表的所有行 而不仅仅是联结列所匹配的行左表右表中没有匹配的行 则右表的所有列表均为空值2.2 right join右外连接 左表如果没有匹配的行的话 则左表返回空值2.3 交叉连接交叉联接返回左表中的所有行,左表中的每

2020-06-27 12:24:50 2792 2

原创 UML科普(二)

一 是什么?UML是Unified Model Language 的缩写,中文是统一建模语言,是由整套图表组成的标准化建模语言二 为什么通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。Page-Jones 在《Fu...

2020-04-28 10:05:50 1048 1

原创 Redis大全(二)

什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redi...

2020-04-26 22:53:40 1113 2

原创 浅谈RESTful接口设计和开发(增删改查)

一.REST起源REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计,是Web服务的一种新的架构风格(一种思想)。1.什么是轻量级:代码不被侵入(正例:SpringMVC中不用接口和继承,仅用注解完成。反例:Struts中每一个A...

2020-04-24 09:43:49 7066

原创 SpringCloud简介(一)

一.SpringCloud的简介Spring是一系列框架的集合。它构建于SpringBoot之上,为常见的分布式系统提供了一套简单 易于接受的编程模型。如图一图一 SpringCloud的构成二 Springcloud技术组成*** 1**.eureka----- 微服务治理,服务注册和发现。****Eureka是基于REST的服务,主要在AWS云中用于定位服务,以实现...

2020-03-15 00:06:44 1676

转载 java poi

这里写自定义目录标题欢迎使用Markdown编辑器1. POI结构与常用类 3新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器1. POI结构与常用类 3(1) POI介绍 3(2) PO

2022-04-27 17:59:03 240 1

转载 tomcat 启动报错:严重: A child container failed during start

tomcat 启动报错:严重: A child container failed during start严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].Sta

2021-07-07 09:12:47 558

原创 mysql 内统计单表内查询重复记录

单表内查询重复记录(一对多)select id,count(*) as count from par_member_base_info group by idhaving count>1;

2020-11-30 10:57:32 304

原创 mysql 查询一个字段的最大长度

一 查询总记录数select count(*) from a.b(表名的意思);二 查询所有字段中最大长度的字段select max(length(name)) from a.b

2020-11-25 16:18:48 1100

原创 nginx启动报错bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidd

nginx 不能启动,报错如下该错误 实在 nginx 的 logs 下的 errorr.log 中查看2018/12/24 10:29:15 [emerg] 14940#3232: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)通过 cmd 命令查看 80 端口的占用情况输入命令: netstat -ao

2020-07-23 15:51:36 941

原创 sql

1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。select fclass,max(fscore) from table1 group by fclass,fid2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。类如:101a1001101a1001102a1002102a1003103a1004104a1005104a100610

2020-07-19 22:27:16 464

原创 class.forName()的作用与使用总结

1、Class类简介:Java程 序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法 去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class 没有公共构造方法。Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。虚拟机为每种

2020-07-19 22:11:41 611

原创 Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!)最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘

2020-07-17 20:44:41 416

原创 sql

1.有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。请用SQL语句实现将上表中的数据合并,合并后的数据为:p_ID s1_id s2_id s3_id1 10 12 02 8 0 03 11 0 8其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量。如果该产品在某仓库中无库存量,那么就是0代替。OK,现在

2020-07-17 12:43:57 498

原创 Student 学生表 ,Course 课程表 ,SC成绩表 ,Teacher 教师表,sql操作运用 50

表架构Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表建表语句复制代码CREATE TABLE student(s# INT,sname nvarchar(32),sage INT,ssex nvarchar(8))CREATE TABLE course(c# INT,cname nvarchar(32),t#

2020-07-16 22:49:22 10473 1

原创 final finally finalize 的区别

1.final finally finalize的区别1 final 修饰的类不能被继承修饰方法不嫩被重写修饰变量 只能赋值一次2 finally 是try 语句中的一个语句体 不能单独使用 用来释放资源3 finalize 是Object 类的 一个方法 当垃圾回收器确定该对象不存在更多引用时 由对象垃圾回收器调用此方法2:如果catch里面有return语句,请问finally里面的代码还会执行吗?如果会,请问是在return前,还是return后。 面试回答: 会。前。

2020-07-16 21:37:54 403

原创 斐波那契数的递归和非递归实现

递归简单来说就是自己调自己递归构造包括两个部分定义递归头递归体菲薄那契数数列的递归实现F(n)=F(n-1)+F(n-2)递归:public class Test{public static void main(String[] args){System…out.println(“查找第几个斐波那契数”);int n=new Scanner(System.in).nextInt();long r=feibona(n);}public static long feibona(n).

2020-07-16 21:11:54 503

原创 怎么理解分布式、高并发、多线程?

是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?一开始,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存

2020-07-16 13:25:42 338

原创 Spring 五个事务隔离级别和七个事务传播行为

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

2020-07-16 12:56:59 404

原创 sleep() 和 wait() 的区别

sleep()和wait()的区别sleep()sleep()方法是Thread的静态方法,提供了两种sleep的方式可让我们更灵活的控制,目的是为了使线程睡眠一段时间,自然醒后继续执行,不存在继续竞争,因为期间并没有释放同步锁.public static native void sleep(long millis) throws InterruptedException;public static void sleep(long millis, int nanos)throws Interrup

2020-07-16 12:23:13 337

原创 List set map区别

List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Set里面不允许有重复的元素,存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。取元素:没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。List表示有先后顺序的集合,存元素:多次调用add(Object)方法时,每次加入的

2020-07-16 12:19:27 373

原创 Spring Bean的生命周期

Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。一、生命周期流程图:若容器注册了以上各种接口,程序那么将会按照以上的流程进行。下面将仔细讲解各接口作用。二、各种接口方法分类Bean的完整生命周期经

2020-07-16 11:25:08 332

原创 数据库中有表User(id, name, age)。 表中数据可能会是以下形式: id   name   age 001 张三   56 002 李四   25 003 王五   56 004 赵六

数据库中有表User(id, name, age)。 表中数据可能会是以下形式: id name age 001 张三 56 002 李四 25 003 王五 56 004 赵六 21 005 钱七 39 006 孙八 56 … 由于人员年龄有可能相等, 请写出SQL语句, 用于查询age最大的人员中, id最小的一个记录。方式一:select * from user where id in(select min(id) from user where age in(se

2020-07-15 13:14:53 3378 1

原创 SQL常见面试题

用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90方式一 :select name from table group by name having min(fenshu)>80..

2020-07-15 12:00:35 633

原创 Mysql 复制表结构和表数据

一 复制表结构及数据到新表create table table_name_new select * from table_name_old二 复制表结构:create table table_name_new like table_name_old;三 复制旧表的数据到新表(假设两个表结构一样)insert into table_name_new select * from table_name_old;四 复制旧表的数据到新表(假设两个表结构不一样)insert into table_na

2020-07-15 11:50:23 508

原创 存储引擎(MyISAM 和 Innodb)

1.什么是存储引擎Mysql中的数据用各种不同的技术存储在内存中 每一种技术都使用不同的存储机制 索引技巧 锁定水平 并且最终提供不同的功能和能力通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。这些不同的技术以及配套的相关功能在 MySQL中被称作存储引擎(也称作表类型)。 M

2020-07-14 19:29:50 382

原创 Servlet 基本架构

1.public class servletName extends HttpServlet{protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{super.doGet(req,resp);}protected void doPost(HttpServletRequest req,HttpServletResponse resp) throw

2020-07-14 18:30:39 448

原创 ArrayList Vector LinkedList的存储性能和特性

ArrayList 和Vector 他们的底层实现都是一样的,都是使用数组的方式存储数据此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。Vector中的方法由于添加了synchronized修饰,因此Vector是线程安全的容器,但性能上较ArrayList差,因此已经是Java中的遗留容器。LinkedList使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引

2020-07-14 17:39:40 388

原创 抽象类和接口的区别(面试题)

抽象类要被子类继承,接口要要被类实现抽象类可以有抽象方法,也可以有实例方法接口只能有抽象方法3.抽象类可以有具体的方法和属性接口只能有抽象方法和不可变常量4抽象类可以有构造方法接口不能有构造方法5 一个类可以实现多个接口 但只能继承一个抽象类6 抽象类中可以包含静态方法接口中不能包含静态方法7 接口更多是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约抽象类在代码实现方面发挥作用 可以实现代码的重用8 抽象类的抽象方法可以是public protected 和默认接.

2020-07-14 17:06:42 665

原创 Tomcat 架构原理到结构设计的思考

一 简介整体上看,TOMCAT 可以看做是一个Http 服务器+Servlet容器底层屏蔽了应用层协议和网络通信细节,给我们的是标准的Request和Response对象,二 原理三 架构设计:1 Tomcat 启动流程:startup.sh ->catalina.sh start ->Java-jar org.apache.catalina.startup.Bootstrap.main()2 Tocat 实现的两个核心功能2.1处理Socket 连接 负责网络字节流与requ

2020-07-13 18:42:44 374

原创 插入排序

一算法描述:1.第一个元素 可以被认为已经被排序2 从第二个元素开始取出下一个元素 在已排序的元素中从前往后扫描3随着排序的进行 数组前元素逐渐有序二平均时间复杂度: O(n2)空间复杂度:O(1)稳定性: 稳定三 代码实现public class InsertSort{public static void main(String [] args){int [] a={2,43,67,7,98,8};InsertSort(a);system.out.println(Arrays.t

2020-07-13 14:54:54 334

原创 十大经典排序算法

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。时间复

2020-07-13 12:57:19 354

原创 选择排序

算法简介选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间吧。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。public class TestSelectSort {public static void main(String[] args) {int [] arr=

2020-07-12 23:17:47 356

原创 鸡兔同笼,兔子和鸡一共48只,有108只脚 兔子和鸡各有多少只?

public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<=48;i++) {for(int j=0;j<=48;j++) {if(i+j48 &&4i+2j108) {System.out.println(“兔子:”+i+","+“鸡:”+j);}}}}}实现二:public class Testjitu {public static

2020-07-12 22:53:48 1606

原创 分布式锁

分布式锁的实现方式有以下三种方式:1.数据库分布式锁2.Redis 实现分布式锁3.Zookeeper实现分布式锁下面是我总结的分布式锁至少拥有的几个规则。1.「锁的互斥性」:在分布式集群应用中,共享资源的锁在同一时间只能被一个对象获取。2. 「可重入」:为了避免死锁,这把锁是可以重入的,并且可以设置超时。3. 「高效的加锁和解锁」:能够高效的加锁和解锁,获取锁和释放锁的性能也好。4. 「阻塞、公平」:可以根据业务的需要,考虑是使用阻塞、还是非阻塞,公平还是非公平的锁。一 数据库分布式锁

2020-07-12 22:28:07 374

原创 编写一个java类,用来表示出部队中 军 师 旅 团这种树状数据结构,使上级能检索到下级,下级也能检索到上级

一 TreeLeader方法:1.1首先把传过来的list 集合遍历1.2 根据遍历创建一个leader对象 用来接收各级leader对象的name 值1.3 把这个对象添加到之前new 的ArrayList集合中1.4 再获取到当前对象的children的值 再调用本身1.5 当前leader 对象没有子成员时 不满足当前方法参数所需要的条件 递归就会停止public class TreeViewPractice {/** * 练习一:打印所有顶层部门及其子孙部门的信息(名称) 提示:假

2020-07-12 20:24:36 1525

原创 redis 中RDB 和AOF的区别

一 区别RDB(默认)持久化是指在指定的时间内将内存中的数据集快照写入磁盘,实际操作是fork一个子进程,先将数据集写入临时文件 写入成功后 再替换之前的文件 用二进制压缩存储AOF(手动开启)持久化以日志的形式记录服务器所处理的每一个写 删除操作 查询操作不会记录 以文本的方式记录 可以打开文件看到详细的操作记录二 RDB的优缺点:1)(避免数据丢失) 对于灾难恢复而言 RDB是非常不错的选择 我们可以轻松的将一个单独文件压缩后再转移到其他存储介质上2)性能最大化在开始持久化时 他唯一需要做的

2020-07-08 17:22:46 432

原创 Synchronized 和lock的区别

1.Synchronized 是Java内置关键字 在jvm层面Lock 是一个java类2Synchronized无法判断是否获取锁的状态 Lock可以判断是否可以获取到锁3 用synchronized关键字的两个线程1和线程2,如果当前线程1获得锁,线程2线程等待。如果线程1阻塞,线程2则会一直等待下去,而Lock锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了;5.synchronized的锁可重入、不可中断、非公平,而Lock锁可重入、可判断、可公平(两者皆可)6.L

2020-07-08 15:22:36 368

原创 mysql 学习指南

一 SQL介绍SQL是结构化语言 是一门ANSI的标准计算机语言 用来访问和操作数据库系统二 数据库介绍2.1 数据库我们已经知道了SQL是操作数据库的语言,那么数据库是什么?数据库(database)是 保存一个文件或者一组文件的容器;这样说你可能还不懂,可以比喻为数据是一个图书馆,图书馆里面收藏有好多书,我们可以认为数据库就是能够存储数据的容器;其实数据库很常见,你每天都在操作数据库,比如你看手机,上网,微信聊天,其实背后都在操作数据库,只是展现操作数据库的形式不一样而已;2.2 数据库管理

2020-07-08 15:06:43 553 1

throwable 和 exception区别

java Exception中Throwable和Exception之间的区别

2019-11-03

Object类的总结

Object类和object类中方法的总结 及常见面试易混易错点

2019-11-03

空空如也

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

TA关注的人

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