自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曜耀的博客

我是曜耀,探寻IT世界

  • 博客(147)
  • 资源 (1)
  • 收藏
  • 关注

原创 标识符和关键字的规则

大家好,我是耀曜,这段事件没有怎么更新文章,主要是最近换工作,有一年的工作经验,说白了就是一个初级Java后端开发的新手,这段时间面了很多家,我也很纳闷问的都是基础差不多都忘掉了的。以后这段事间耀曜会发布一些关于面试的问题的总结,希望对看到这篇的同道中人有一定的作用。今天总结的时标识符和关键字,与建包建类的规则;标识符:就是给类,接口,方法,变量等起名字时使用的字符串组成规矩: A:英语字母大小写 B:数字 C:_和$ 注意事项: A:不能以数字开头

2021-11-30 20:39:54 428 1

原创 TreeMap 的特点

TreeMap基于红黑树实现,增删改查的平均和最差时间复杂度均为O,最大特点时Key有序。key必须实现Comparable接口或者提供Comparator比较器,所以key不允许为null。HashMap 依靠hashCode和equals去重,而TreeMap 依靠Comparable 或者Compartor。TreeMap 排序时,如果比较器不为空就会优先使用比较器的Compare方法,否则使用key实现的。Compareable的Compareto方法,两者都不满足会抛出异常。 Tr

2021-11-20 07:45:00 868

原创 set的特点

set不允许元素重复且无序,常用实现有HashSet、LinkedHashSet和TreeSet。HashSet通过HashMap实现,HashMap的key即HashSet存储的元素,所有key都使用相同的Value,一个名为PRESNT的Object类型常量。使用key保证元素唯一性,但不保证有序性。由于HashSet是HashMAp实现的,因此线程不安全。HashSet 判断元素是否相等时,对于包装类型直接按值比较。对于类型先比较hashCode是否相同,不同则代表不是同一个对象,相同则继承比

2021-11-19 09:00:00 537

原创 接口和抽象类的区别

实现:抽象类的子类使用 extends 来继承;接口必须使用implements来实现接口。构造函数:抽象类可以有构造函数;接口不能有。main方法:抽象类可以有main方法,并且我们能运行它;接口不能有main方法。实现数量:类可以实现很多个接口;但是只能继承一个抽象类。访问修饰符:接口中的方法默认使用public 修饰,抽象类中的方法可以时任意访问修饰符。...

2021-11-18 07:45:00 134

原创 ArrayList 列表

ArrayList是容量可变的非线程安全列表,使用数组实现,集合扩容时会创建更大的数组,把原数组复制到新数组。支持对元素的快速随机访问,但插入与删除速度很慢。ArrayList实现了RandomAcess标记接口,如果一个类实现了改接口,那么表示使用索引遍历迭代器更快。elementDate时ArrayList的数据域,被transient修饰,序列化时会调用writeObject写入流,反序化时调用的readObject重新赋予到新的对象的elementData。原因是elementData容量通常大

2021-11-17 16:21:46 124

原创 目前如何选择Linux 操作系统的版本

一般来讲,桌面用户首选Ubintu;服务器首选RHEL或者CentOS,两者中首选CentOS根据具体要求:安全要求比较高,则选择FDebian或者FreeBSD;需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE想要新技术功能可以选择Feddora,Feddora是 RHEL和CentOS 的一个测试版和预发布版本。不过我个人认为:根据目前的情况,绝大多数互联网公司选择CentOS。现在比较用的是6系列,现在市场占有一半左右。另外的原因是CentOS 更侧面服务器领域,并且

2021-11-16 07:00:00 327

原创 BASH 和DOS 之间的基本区别

BASH和DOS 控制台之间的主要区别在于三个方面一是:BASH命令区分大小写,而DOS命令则不区分大小写。二是:在BASH下,/character是目录分隔符,\作为作为转义字符。在DOS下,/用作用命令参数分隔符,\是目录分隔符。三是:/作用命令文件中的约定,既8个字符的文件名后跟着一个点,扩展名为3个字符。BASH没有遵循这样的管例。...

2021-11-15 21:04:57 1568

原创 服务网关的作用

1,简化客户端的调用复杂度,统一处理外部请求。2,数据裁剪及聚合,根据不同的接口需求,对数据加工后对外。3.多渠道支持,针对不同的客户端提供不同的网关支持。4,遗留系统的微服务改造,可以作为新的老系统的中转组件。5,统一处理调用过程中的安全、权限问题。...

2021-11-14 05:15:00 849

原创 SpringCloud 和Dubbo 的区别

Dubbo关注的领域是Spring Cloud的一个子集。Dubbo专注与服务治理,其在服务治理、灰度发布、流量分发方面比SpringCloud比较全面。SpringCloud覆盖整个微服务架构领域。Dubbo使用RPC调用效率高一些。Spring Cloud 使用HTTP调用效率低。使用更简单。...

2021-11-13 03:45:00 254

原创 SpringMVC的优点

1,支持各种视图技术,而不仅仅局限于JSP2,与Spring框架集成比如ioc容器,AOP等3,清晰的角色分配:前端控制器,请求到处理器映射,处理器适配器,视图解析器。4,支持各种请求资源的映射资源。...

2021-11-12 05:30:00 419

原创 Spring MVC的组件

DispatcherServlet:Spring MVC中的前端控制器,是整个流程控制的核心。负责接受请求转发给对应的处理组件。Handler :处理器,完成具体业务逻辑,相对与Serviet或者ActionHandlerMapping: 完成URL到Controller映射,DispatcherServlet通过HandlerMapping将不同请求映射到不同的Handler。HandlerExrinterceptor:处理器拦截器,是一个接口,如果需要完成一些不同的拦截处理,可以实现接口。

2021-11-11 08:45:00 363

原创 Ribbon负载均衡

Spring Cloud Ribbon 是基于Netflix Ribbon 实现得一套客户端,负载均衡得工具。简单的说,Ribbon是Netflix 发布的开源项目,主要功能是提供客户端的软件负载均算法,将Netflix的中间层服务连接在一起。Ribbon 客户端组件提供一系列完整的配置项文件中列出load Balancer 后面有机器,Ribbon 会自动的帮助你基于某种规则去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均匀算法。...

2021-11-10 04:00:00 403

原创 zuul路由

Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过于滤器功能则负责对请求的处理过程进行干扰。是实现请求验证、服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从访问微服务都是通过Zuul跳转后获取得。值得注意得:Zuul服务最终还会注册近Eureka 提供=代理+路由+过滤 三大功能...

2021-11-09 05:45:00 218

原创 Hystrix

Hystrix从Netfix AP团队于2011年开始的弹性工程工作演变而来。在分布式环境中,许多服务依赖项中的一些不可避免地会失败。Hystrix是一个库,可通过添加延迟容错率和容错逻辑来帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,阻止他们之间的级联故障以及提供后备选项来实现这一目标,所有这些都可以提高系统的整体弹性。Hystrix功能:通过第三方客户端访问,依赖关系,以防至和控制延迟和故障。在复杂的分布式系统中停止级联故障快速失败并迅速回复在可能的情况

2021-11-08 10:00:00 92

原创 Spring Cloud

Spring Cloud 应用程序启动器是基于Spring Boot 的Spring 集成应用程序,提供鱼外部系统的集成,更专注于服务治理。Spring Cloud Task ,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。对于本人的来里了解来讲,Spring Cloud 就是一个胶水,把一些有用的功能粘在一起,只能说这是一个可以快速的使用的微服务,可以有效的发挥客户的要求。...

2021-11-07 16:34:41 81

原创 Mysql 的所得策略

表锁时候MYSQL中最基本的锁策略,并且时开销最小的策略,表锁会锁定整张表,一个用户在对表进行写操作前需要先获取写锁,这回阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他读取的用户 才能读取锁,读锁之间不相互阻塞。行锁可以最大程度的支持并发,同时也带来了最大的开锁。innoDB和XtraDb以及其他存储引擎实现了行锁。行锁只在存储引擎实现,而服务器没有实现。...

2021-11-06 03:00:00 126

原创 关于并发集合

Vector和CopyOnWriteArryList是两个线程安全的List,Vector读写操作都用了同步,相对来说跟适合写多读少的场合,CopyOnWriteArrayList在写的时候会=复制以个副本,对副本写,写完用副本替换原来的值,读的时候不需要同步,适用于写少读多的场合。并发setCopyOnWriteArraySet 基于CopyOnWrteArrayList来实现的,只是在不允许在重复性的对象这个特点上遍历处理了一下。并发MapConcurrentHashMap是专用于高并发

2021-11-05 08:00:00 94

原创 SpringBoot 的适配器模式

适配器模式属于结构型模式,它作用为两个不兼容接口之间的桥梁,结合了两个独立的接口的功能,将一个类的接口转换成另外一个接口使得原本的接口不兼容而不能一起工作的类可以一起工作。缺点就是过多的使用适配器会让系统非常乱,不易整合把握。不过对于我们程序员来说只要把架构布置好,其中有一两个需要适配器这种情况下时最适的。...

2021-11-04 04:00:00 1326

原创 SpringBoot 的观察者模式

观察者模式属于行为型模式,也叫发布订阅模式,定义对象间的一种一对多的依赖的关系,当一个对象的状况发生改变时,所有的依赖就会对它的对象都得到一个通知并自动跟新。主要解决一个对象状态改变给其他对象的通知,缺点就是如果被观察者对象有很多的直接和间接观察者的通话通知很耗时,如果存在循环依赖的话可能会导致系统夫人崩溃。另外观察者无法知道目标对象具体是怎么发生变化的。ServletContextListener能够监听ServletContext 对象的生命周期,实际上就是监听Web应用。当Servlet容器启动W

2021-11-03 05:15:00 597

原创 快速排序算法的原理

快速排序的算法原理是冒泡排序的一中改进版,是不稳定的,平均/最好时间复杂度为0,元素基本有序最坏的时间复杂度0,空间复杂度0.首先选择一个基本的准元素,通过一趟排序将要排序的数据分割成独立的两部分,一部分全部小于等于基准元素,一部分全部大于等于基准元素,再按照此方法递归对则这两部分数据进行快速排序。快速排序的一次次划分从两头交替搜索,直到low 和hig指针重合,一趟时间复杂度0,整个算法的时间复杂度与规划趟数有关。最好情况是每个划分选择的中间数恰好将当前的序列等分,经过趟化分便可得到长度为1的

2021-11-02 09:30:00 375

原创 循环和递归的区别

递归算法,代码少,简洁。一看就明白。缺点是它的运行需要较多次数的函数调用,如果调用层数比较深,需要增加额外的堆栈处理,比如参数传递需要压栈等操作,会对执行效率有一定的影响。但是,对于某些问题来说,如果不使用递归,那将是极端的难看的代码。循环算法:速度快,结构简单。缺点:并不能解决所有的问题,有的问题适合使用递归而不是循环。如果使用循环并不困难的话,最好使用循环。...

2021-11-01 06:45:00 191

原创 AVL树的结构

AVL树是平衡二叉查找树,增加和删除节点通过树形旋转重新达到平衡。右旋是一=以某个节点为中心,将它沉入当前的右子节点的位置,而让当前的左子节点作为新的树的根节点,也称顺时针旋转。同理左旋是以某个节点为中心,将它沉入当前的左子节点的位置,而让当前的右子节点作为新树的根节点,也被称为ie逆时针旋转。...

2021-10-31 16:32:36 234

原创 设计模式的原则

开闭原则:OOP中最基础的原则,指一个软件的类,模块,方法等应该对扩展开放,对修改关闭。强调用抽象构建框架,用实现扩展细节,提高代码的可复用性和可维护性。单一职责原则:一个类、接口或者方法只负责一个职责,降低代码复杂度以及变更引起的风险。依赖倒置原则:程序应该依赖抽象类或接口,而不是具体的实现类。接口隔离原则:将不同功能定义在不同接口中实现接口隔离,避免类依赖它不需要的接口,减少了接口之间的复杂性。里氏替换原则:开闭原则的补充,规定了任何父类可以出现的地方子类都一定可以出现,可以约束继承泛滥

2021-10-30 14:00:00 55

原创 SpringBoot 实现定时任务

定时任务也是一个常见的需求,Spring Boot 中对于定时任务的支持主要还是来自Spring框架。在Spring Boot 中使用定时框架任务主要有两种不同的方式,一个就是使用Spring 中的@Scheduled注解,另一个则是使用第三方框架Quartz。使用Spring 中的@Scheduled的方式主要通过@Scheduled注解来实现。使用Quartz ,则按照Quartz的方式,定义Job和RTrigger即可。...

2021-10-29 05:00:00 144

原创 Spring Boot 打成的jar 和普通的jar的区别

Spring Boot 项目 最终打包成jar 是可执行的jar,这种jar可以直接通过Java-jar xxx.jar命令行来运行,这种jar不可以作为普通的jar被其他的项目依赖,即使依赖了也无法使用其中的类。SpringBoot 的jar 无法被其他项目依赖,包里就是我们的代码,而Spring Boot 打包成的可执行的jar解压后,在\BOOT-INF\classes目录下才是我们的代码,因此无法被直接引用。如果的非要引用,可以在pom.xml文件中增加配置,将Spring Boot.

2021-10-28 05:30:00 890

原创 Spring Datea的介绍

SpringData是一个Spring的一个子项目,用于简化数据库的访问,在支持NOSQL和关系数据存储。其主要目标是是数据库的访问变得方便快捷。SpringDate 具体有这几个特点:SpringData项目支持NOSql存储MongoDB 文档数据库Neo4j 图形数据库Redis 键值对存储Hbase 列族数据库SpringData 项目所支持的关系型数据存储技术;JDBCJPASpring Data jpa 致力于减少数据访问层的开发量,开发者唯一要做的就是声明.

2021-10-27 04:30:00 243

原创 Spring Boot 的优点

1,容易上手,提升开发效率,为Spring开发提供一个更快、更广泛的入门体验。2,开箱即用,远离繁琐的配置。3,提供了一系列大型通用的非业务性功能,例如:内嵌服务器,安全管理、运行数据监控、运行状况检查和外部化配置等;4,没有代码生成,也不需要XML配置。5,避免大量的Maven导入和各种版本冲突。...

2021-10-26 09:30:00 182

原创 SpringBoot 和Shiro 的优缺点

对于官方来说,由于SpringBoot 官方提供录入大量的非常方便的开箱即用的Starter,包括Spring,Security的Starter ,使得在Spring Boot中使得Spring Security变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果Spring Boot 项目,一般选择 Spring Security。当然,这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。Shiro和SpringSecurity相比,主要有如下一些特点:Sprin

2021-10-25 05:15:00 418

原创 OSI的七层模型

应用层:网络服务与最终用户的一个接口表示层:数据的表示、安全、压缩。会话层:建立、管理、终止会话。传输层:定义传输数据的协议的端口号,以及流控和差错校验网络层:进行逻辑地址寻址,实现不同网络之间的路径选择数据链路层:建立逻辑链接、进行不同网络之间的路径选择物理层:建立、维护、断开物理链接。...

2021-10-24 08:45:00 48

原创 Linux的shell脚本测试文件

test命令可以用来测试文件。基础用法如下的表格:Test用法-d 文件名 如果文件存在并且是目录,返回true。-e文件名 如果文件存在,返回true-f文件名 如果文件存在并且是普通文件,返回true-r 文件名 如果文件存在并可读,返回true-s 文件名 如果文件存在并且不为空,返回true-w 文件名 如果文件存在并可写,返回true-x 文件名 如果文件存在并可以执行,返回true...

2021-10-23 08:15:00 169

原创 Java策略模式

策略模式属于行为模式,定义了一系列算法并封装起来,之间可以互相替换。策略模式主要解决在有多种算法相似的情况下,使用if/else所带来的难以维护。优点是算法可以自由切换,可以避免使用多重条件判断并且扩展性良好,缺点是策略类会增多并且所有 策略类都需要对外暴露。在集合框架中,经常需要通过构造方法传入一个比较器Comparator进行比较排序。Comparator 就是一个抽象策略,一个类通过实现该接口并重新写Comparator方法成为具体策略类。创建线程池时,需要传入拒绝策略,当创建新线程使当前

2021-10-22 08:30:00 44

原创 lambda函数

lambda函数也叫匿名函数,该函数可以包含任意数量的参数,但只能由一个执行操作的语句。lambda函数有如以下特点:lambda函数时匿名的:所谓的匿名函数,就是没有名字的函数,lambda函数没有名字的。lambda函数由输入和输出:输入时传入参数列表argument_list的值,输出是根据表达式expression计算到的值lambda函数一般功能简单:单行expression决定了expression函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要

2021-10-21 08:00:00 299

原创 Linux系统初始化后要做的安全工作

首先是添加一个普通用户登录,禁止root用户登录,更改SSH端口号。其次修改SSH端口。然后服务器使用密钥登录,禁止密码登录。开启防火墙,关闭SE Linux,根据业务需求设置相应的防火墙规则。安装fai2ban 这种防止SSH暴力击破的软件。设置只允许公司公网出口IP可以登录服务器,也可以安装VPN等软件,只允许链接XPN到服务器。修改历史命令记录的条数为10.只允许有需要的服务器可以访问外网,其它全部禁止。做好软件层面的防护。设置nginx_waf模块防止SQL注入

2021-10-20 08:00:00 164

原创 HTTP协议的特点

支持客户/服务器模式;简单快捷:客户向服务器请求服务时,只需要传送请求方法和路径。请求方法常用的有GET、HEAD、POST/灵活:HTTP允许传输任意类型的数据对象 无连接:无连接的含义时限制每次链接只处理一个请求。服务器处理完客户的请求,收到客户的应答后,及断开链接。无状态:HTTP是无协议状态,无状态意思是协议对于事务处理没有记忆能力。缺少状态意味着如果后序处理需要前面的信息,则它必须重传,这样可能导致每次链接传送的数据量增大。HTTP1.1支持持续来链接。...

2021-10-19 17:22:10 689

原创 ARP地址协议工作原理

对于我们来说,每个主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。当主机要发送数据的时,首先检查自己的ARP列表中具有是否对应的目的主机的MAC地址,如果有就直接发送ARP数据包,如果没有就向本网段的所有主机发送ARP数据包,该数据包扩的内容就是由源主机IP地址,源主机的MAC地址,目的主机的IP地址。当本网络的所有主机收到ARP数据包时,首先检查数据包中的IP地址是否自己的IP地址,如果不是,则忽悠略该数据包,如果是,则首先从数据包中取出源主机的IP和MA

2021-10-18 08:00:00 54

原创 目前的各种网络传输协议

ICMP:因特网控制报文协议。它是TCP/IP协议族的子协议,用于在IP主机,路由器之间传递控制消息TFTP:是TCP/IP协议族中的一个用来在客户机和服务器之间进行简单的文本传输的协议,提供不复杂、开销不大的文件传输服务。HTTP:超文本传输层协议,是一个属于应用层的面向对象的协议。NAT:网络地址转换接入广域网WAN技术,是一种将私有地址转换为合法IP地址的网络技术、DHCP:动态主机配置协议,使用UDP协议工作。给内部的网络和网络和网络服务供应商自动的分配IP地址。RAPRP是逆地

2021-10-17 15:22:14 1290

原创 InnoDB引擎的索引和原理

InnoDB的索引就是一颗B+树。页是InnoDB引擎在内存和磁盘之间交换数据的基本单位,页的大小一般是16kB,页的大小可以在启动MySQL服务的时候通过更改innodb_page_size参数来设置。而InnoDB索引的节点就是页。B+树的叶节点上的页是数据页,用于存放用户存入数据库中的一条一条的记录。而非叶子节点上的页是索引页,存放索引记录。一个节点存放一个页,所以又有“索引就是数据”,的说法。B+树同上一层页又是以双向链表的形式来组织的。在数据页和索引页中,所有的记录中都会存储一条记录相对页0字

2021-10-16 10:27:15 190

原创 Mysql隔离的等级

未提交读 READ UNCOMMITTED在该级别事务中的修改即使没有被提交,对其他事务也是可见的。事务可以读取其他事务修改完但是未提交的数据,这种问题称为脏读。这个级别还会导致不可重复读和幻读,性能没有比较其他的级别好,很少使用。提交读 READ COMMTTED多数数据库系统默认的隔离级别。提交读满足隔离性的简单定义;一个事务开始时只能“看见”已经提交的事务所做的修改。换句话说,一个事务从开始到直接提交之前的任何修改对其他事务都不可见的。也叫不可重复读,因为俩次执行同样的查询可能会得到不同的

2021-10-15 23:28:50 53

原创 程序的简介

大家好,我是耀曜,今天来讲一下关于程序运行是怎么回事,这是耀曜观看老马写的书总结的。对于我们来说计算机不是什么很高级的,二是一个很低级的,知道吗?我们的计算机是有各种学界的科学家和程序员写的一个一个有一个程序,说白了计算机就是一个图书馆,只不过我们在使用计算机时,我们的科学家们就已经写好相应的程序来满足你操作计算机使用的功能。不过计算机是由CPU,内存,硬盘和输入输出装备组成的,虽然有点傻,但是你能输入你运算的需求普通的计算机会在秒之间给你答案,这也是计算机的好出,只要你会使用不仅会增加你的办公效.

2021-10-14 08:00:00 131

原创 关于删除数据库的问题

大家好,今天耀曜就来说一下关于一些不小心删除数据库的措施。对于客户来说,客户的把数据上传的数据库时,有时会上传地方错误,在客户界面操作时,客户界面的设置时一条一条的删除,这不仅仅会浪费时间还会使客户对数据库的产品产生厌恶。对此我们在设计数据库时可以手动开启binlog日志,这个日志是二进制文件,数据库的增删改和alter,drop等写入都会binlog记录。binlog就是Binary Log ,他是二进制文件,用来记录数据库写操作的日志,数据库的增删改和alter,drop等写入都会binlo

2021-10-13 09:39:50 252

jQuery总结(1).doc

对于初级的wed前端开发适应

2021-07-24

空空如也

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

TA关注的人

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