自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql

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

2020-07-16 10:47:44 485

原创 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 1006

原创 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 501

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

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

2020-07-19 22:11:41 636

原创 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 450

原创 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 540

原创 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 10687 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 436

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

递归简单来说就是自己调自己递归构造包括两个部分定义递归头递归体菲薄那契数数列的递归实现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 665

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

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

2020-07-16 13:25:42 365

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

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

2020-07-16 12:56:59 438

原创 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 372

原创 List set map区别

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

2020-07-16 12:19:27 408

原创 Spring Bean的生命周期

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

2020-07-16 11:25:08 368

原创 数据库中有表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 3501 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 676

原创 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 527

原创 存储引擎(MyISAM 和 Innodb)

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

2020-07-14 19:29:50 396

原创 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 482

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

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

2020-07-14 17:39:40 403

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

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

2020-07-14 17:06:42 690

原创 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 402

原创 插入排序

一算法描述: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 342

原创 十大经典排序算法

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 407

原创 选择排序

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

2020-07-12 23:17:47 384

原创 鸡兔同笼,兔子和鸡一共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 1697

原创 分布式锁

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

2020-07-12 22:28:07 412

原创 编写一个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 1593

原创 redis 中RDB 和AOF的区别

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

2020-07-08 17:22:46 457

原创 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 398

原创 mysql 学习指南

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

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

原创 resultType resultMap parameterType parameterMap的区别

一 resultType主要针对从数据库中提取相应的数据出来,返回结果类型1.sql查询的列名要和resultType指定的pojo的属性名相同,指定相同方可映射成功但是必须保证查询结果集中的属性 和 bean对象类中的属性是一一对应的,此时大小写不敏感,但是有限制。使用resultType时我们应该注意:sql查询的列名要和resultType指定pojo的属性名相同,指定相同属性方可映射成功,如果sql查询的列名要和resultType指定pojo的属性名全部不相同(或是部分不相同),则映射到p

2020-07-07 20:29:21 536

原创 单体架构分层规范

一 背景说起应用分层,大多数人就是简单的controller service mapper 三层看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。的确在这些人眼中分层只是一个形式,前辈们的代码这么写的,其他项目代码这么写的,那么我也这么跟着写。但是在真正的团队开发中每

2020-07-07 19:55:33 795

原创 mysql 索引(二)

一 索引介绍索引就是一种数据结构,就是发挥这种数据结构来加快查询效率 例如:InnoDB存储引擎中使用的是就是B+tree这种数据结构来组织索引。mysql中索引的种类也不是很多,不同索引有不同的作用mysql索引主要分为以下几类:主键索引:一般是在创建表时指定 一个表只有一个主键索引 特点是唯一 非空唯一索引:唯一性 可以在建表时指定 也可以在建表后指定普通索引 就是加快查询全文索引 :针对一些大的文本字段 创建索引聚簇索引和非聚簇索引 :聚簇索引和非聚簇索引的概念比上面的概念要大,属于包

2020-07-07 11:02:10 418

原创 JVM大全

运行时数据区内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。不同的 JVM 对于内存的划分方式和管理机制存在着部分差异。下图是 JVM 整体架构,中间部分就是 Java 虚拟机定义的各种运行时数据区域。Java 虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对.

2020-07-06 21:53:53 427

原创 浅析 VO DTO DO PO概念 区别和用处

一 概念,VO(View Object):视图对象,用于展示层 它的作用是把某个指定页面的所有数据封装起来DTO(Data Transfer Object): 数据传输对象:,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体PO(Persistent

2020-07-06 18:29:06 374

原创 二分查找-递归和非递归

一 概述二分查找是一种查询效率非常高的查找算法 又称折半查找二 条件查找内容需满足:1.为顺序结构2 必须按关键字大小有序排列优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表二 代码实现2.1 递归实现public class TestMId {public static void main(String[] args) {// TODO Auto-generated method stub

2020-07-06 17:40:53 148

原创 ArrayList Vector 和 LinkedList的区别

ArrayList Vector LinkedList 类 均在java.util包下ArrayList 和Vector 都是基于存储元素 的object[] array 来实现的他们会在内存中开辟一块连续的空间一 从存储上来说1)ArrayList 和 VectorArrayList 初始容量为10 默认扩充容量为原来的1.5倍Vector 默认扩充为原来的两倍2)ArrayList 线程不安全Vector 是线程安全的 有Synchronized的使用LinkedList 是采用

2020-07-06 15:11:23 89

原创 页面跳转的两种方式-重定向和转发

一 介绍1.1转发:用的是request.getRequestDispatcher().forward(request,responsse);重定向是:调用的response 的sendRedirect()方法response.sendRedirect();1.2 地址栏转发:不变,不会显示出转向的地址重定向:会显示转向后的地址1.3 请求:转发:一次请求,一次响应 是服务端重定向:至少提交了两次请求 在客户端1.4 数据转发:对request 对象的信息不会丢失 因此可以在多个页面

2020-07-06 14:24:21 1453

原创 百元买百鸡

一 题目:百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元。现有100元钱要求买100只鸡,问小鸡、公鸡、母鸡各多少只?二 代码代码1:public class Testgu {public static void main(String[] args) { // TODO Auto-generated method stubint x;int y;int z;int sum=100;int count=100;for(x=0;x<100;x++)for(y=0;y

2020-07-06 13:50:12 159

throwable 和 exception区别

java Exception中Throwable和Exception之间的区别

2019-11-03

Object类的总结

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

2019-11-03

空空如也

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

TA关注的人

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