自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 基础

java 组成 JDK JRE JVM的组成JDK – Java Development Kit 是包含了 Java 运行环境 JRE Java工具类 和Java基础类库JRE – Java Runtime Environment 包含了JVM 和 Java核心类库JVM – Java Virtual MachineJDK > JRE > JVM标识符:规则:A:标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其他特殊字符。B: 不能以数字

2021-03-24 10:26:42 134

原创 java之间int和char转换

现在普遍接受的是ASCII编码,例如a 对应 97,b 对应 98,int类型是一个32位的数据类型,因为其位有符号数,范围是-2^31 至 2^31 - 1。char是16位的数据类型,为无符号数,范围是0 至 2 ^ 32 -1,即0-65535,用十六进制来看就是’\u0000’-’\uffff’。char c1=97;System.out.println(c1);输出:a可以看到97ASCII码对应的字符是a,char q=‘a’;int w=q;System.out.p

2020-12-06 12:19:58 522

原创 进制转换

进制转换二进制数左移一位相当于数位上的数值乘以2,右移一位相当于数位上的数值除以2java中,>>为有符号右移,>>>为无符号右移,<<为有符号左移,不存在无符号左移运算符。^属于二进制位运算符 代表异或的意思运算时两个二进制数对应位的数不同时结果为1 否则为0所以1100^1010的结果应该是0110十六进制是由4位二进制组成的,进制的转换是不影响数制的,因此转换的时候应该是把二进制数从右往左来计算,每4位来组合成一个十六进制数,每4位数字都按照84

2020-11-08 13:50:52 679

原创 日期类Date

日期类DateetTime():取内部毫秒值setTime():存取内部毫秒值getMonth():获取当前月份getHours():获取当前小时compareTo(Date):当前对象与参数对象比较。当前对象大返回正数,小返回负数,相同0。

2020-11-08 13:22:20 122

原创 日期工具SimpleDateFormat

日期工具SimpleDateFormatnew SimpleDateFormat(格式)格式:yyyy-MM-dd HH:mm:ssMM/dd/yyyy…format(Date):把Date格式化成字符串parse(String):把String解析成Date

2020-11-08 13:18:41 120

原创 BigDecimal

BigDecimal/BigIntegerBigDecimal:常用来解决精确的浮点数运算。BigInteger:常用来解决超大的整数运算。常用方法add(BigDecimal bd): 做加法运算substract(BigDecimal bd) : 做减法运算multiply(BigDecimal bd) : 做乘法运算divide(BigDecimal bd) : 做除法运算divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用setScale(保留位数,舍入方式

2020-11-08 13:16:23 69

原创 API

equals(Object obj)当前对象和参数对象比较大小,默认是比较内存地址,如果要比较对象的属性,可以重写该方法。创建String对象方式1:new String(char[])char[] c = {‘a’,‘b’,‘c’,‘d’};String s = new String©;//堆中分配新的内存方式2:直接创建String s2=“abcd”;//常量池中分配新的内存System.out.println(s2);//如果使用过了就不再创建,引用存在的对象String s3=

2020-11-08 13:06:48 98

转载 linux命令

系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info的信息cat /proc/interrupts 显示中断cat /proc/meminfo 校验内存使用cat /pr

2020-11-08 12:18:12 142

原创 springmvc路由

springmvc的另一种配置@Configuration@EnableWebMvcpublic class SpringMVCConfig{@Beanpublic InternalResourceViewResolver viewResolver(){InternalResourceViewResolver viewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPre

2020-10-30 17:27:01 118

原创 SpringMVC路由配置

SpringMVC中的路由配置及参数传递详解SpringMVC中是如何路由到JSP文件的。首先我们使用spring中的@Controller注解将RouteController类声明为控制器类,然后在通过@RequestMapping配置路由映射。将路由"/route"映射到RouteController类上。也就是说在浏览器中访问该工程下的/route路径,就会访问到RouteController类...

2020-10-29 14:52:54 542

原创 Java队列的两种实现方式

Java队列的两种实现方式1. 基于数组package Algorithm.learn;import java.util.Arrays;/** * Created by liujinhong on 2017/3/7. */public class ArrayQueue<E> { Object[] queue; int size; public ArrayQueue() { queue = new Object[10]; }

2020-10-29 14:18:04 170 1

原创 http协议

http协议的底层实现1.http协议: 超文本传输协议,可以传递各种类型的文件,是使用最广泛的协议模式, 是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用2.http协议的底层是在应用层里,是一个特殊处理的socket,建立在TCP/IP协议之上的一种广泛应用2.1.服务器先初始化一个socket,与端口绑定,对端口进行监听,调用阻塞,等待客户端的连接2.2.初始化客户端的socket,与服务器的socket连接,需要经过三次握手第一次握手:客户端发送

2020-10-24 18:58:48 154

原创 封装返回状态的接口

业务说明由于业务处理一般都会通过JSON串的形式告知客户端程序是否完成.所以一般情况下都会通过vo对象来返回回执信息,一般情况下VO对象需要返回业务是否正确/业务处理信息/业务处理数据.```javapackage com.jt.vo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;impor

2020-10-23 18:36:00 128

原创 选择排序

选择排序a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。(这里只介绍常用的简单选择排序)b) 简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]ar

2020-10-22 16:45:15 79

原创

栈栈和队列是有操作限制的线性表。栈是一种只允许在一端进行插入或删除的线性表。1、栈的操作端通常被称为栈顶,另一端被称为栈底。2、栈的插入操作称为进栈(压栈|push);栈删除操作称为出栈(弹栈|pop)。顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。我们可以围绕栈的4个元素来实现栈:2状态:是否栈空;是否栈满。2操作:压栈push;进栈pop。顺序栈的实现package test;import org.junit.Test;public class test {@Testpub

2020-10-21 16:34:32 81

原创 二叉树

二叉树二叉树是树的特殊一种,具有如下特点:1、每个结点最多有两颗子树,结点的度最大为2。2、左子树和右子树是有顺序的,次序不能颠倒。3、即使某结点只有一个子树,也要区分左右子树1、斜树所有的结点都只有左子树(左斜树),或者只有右子树(右斜树)。这就是斜树,应用较少2、满二叉树所有的分支结点都存在左子树和右子树,并且所有的叶子结点都在同一层上,这样就是满二叉树。就是完美圆满的意思,关键在于树的平衡。根据满二叉树的定义,得到其特点为:叶子只能出现在最下一层。非叶子结点度一定是2.在同样深度的二

2020-10-21 15:43:52 468

原创 java安全防溢出的两整数平均值算法

一般求两整数平均值大家可能会有如下写法public static int mean(int a, int b){return (a + b) / 2;}好一些的会这样写public static int mean(int a, int b){return (a + b) >> 1;}//或public static int mean(int a, int b){return (a + b) >>> 1;}这样的确能够求出两个数的平均值,但是,当两数为a=

2020-10-21 11:24:05 302

原创 二分查找

二分查找二分查找算法思想有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩小一半的查找范围,直到匹配成功。一个情景:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。二分查找优缺点优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表

2020-10-21 11:21:42 66

原创 堆排序

堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。通常所说的堆是一个近似完全二叉树的结构,并同时满足堆的性质:即最大堆子结点的关键字总是小于(如果是最小堆那就是大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为 0 的情形中:父节点 i 的左子节点在位置 (2*i+1);父节点 i 的右子节点在位置 (2*i+2);子节点 i 的父节点在位置 (i-1) / 2; 0 1 23 4 5

2020-10-20 20:58:27 114

原创 面试题二

x和y是double,则表达式x=2,y=x+3/2的输出是(3.00000)y=2+1=3,因为是double有小数算式3<<2|3的结果是(15)3的二进制是11,<<是左移2位,1100,3的二进制是0011,进行或运算 得到是1111结果是15已知int a=0x122,则a/2为(145)0x122 的十进制是 116幂2+216+2=256+34=290,则a/2=145;###8位有符号二进制数11100101代表的十进制数为(-27)首位是代表符号

2020-10-20 20:48:21 729 1

原创 面试题一

一.去重id,并且按时间排序倒序,30万条数据select * from (select * from T_ORDER order by orderdate desc) group by id;优化1.创建索引create index varchar_index on kind(id);二.java设计开发模式一.单例模式其中单例模式最重要的是确保对象只有一个。简单来说,保证一个类在内存中的对象就一个。RunTime就是典型的单例设计,我们通过对RunTime类的分析,一窥究竟。目的:控

2020-10-18 13:17:22 181

原创 ribbon

Feign 是 netflix 开发的声明式、模板化的 http 客户端,在使用时就像调用本地(服务消费者自己)的方法一般,帮助我们更加优雅的调用服务提供者的 API。Feign 自身支持 springMVC,还整合了 Eureka、Ribbon,极大的简化了 Feign 的使用。就整合 Euraka 而言,只需和普通的服务配置 Eureka server 的信息即可。整合 Ribbon,就意味着不再需要通过标注@LoadBalanced的实例化后的 RestTemplate 去调用服务提供者方法了

2020-10-18 11:55:23 84

原创 eureka

eureka自我保护模式什么是自我保护模式?默认配置下,如果 Eureka Server 每分钟收到心跳续约的数量低于一个阈值(instance 的数量(60/每个 instance 的心跳间隔秒数)自我保护系数),并且持续 15 分钟,就会触发自我保护。在自我保护模式中,Eureka Server 会保护服务注册表中的信息,不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时,该 Eureka Server 节点就会自动退出自我保护模式。它的设计哲学前面提到过,那就是宁可保留错误的服务注

2020-10-18 11:50:11 79

原创 微服务架构

什么是微服务架构?“微服务”源于 Martin Fowler 的博文 Microservices。Martin 说:微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于 HTTP 的 RESTfulAPI 进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或者某些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。由于有了轻量级的通信协作基础,所以

2020-10-17 19:49:53 58

原创 SpringBoot

SpringBoot 全新开发方式特点⚫ 创建独立的 Spring 应用程序⚫ 嵌入的 Tomcat,无需部署 WAR 文件⚫ 简化 Maven 配置⚫ 自动配置 Spring⚫ 提供生产就绪型功能,如指标,健康检查和外部配置

2020-10-17 19:46:12 73

原创 Docker

DockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的 Docker 有以下几个部分组成:DockerClient 客户端Docker Daemon 守护进程 客户端和 Docker 容器交互的媒介Docker Image 镜像 应用程序的模板DockerContainer 容器 启动后的应用程序Docker 调用原理

2020-10-17 19:43:23 51

原创 Solr 介绍/ES

倒排索引倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API接口。用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引

2020-10-17 19:34:48 141

原创 消息队列

知道什么是消息队列吗,并说出几种常用的消息队列可以缓解服务器的访问压力,请求在在访问服务器时,先写入消息队列中,可以实现请求的异步操作,起到平峰削骨的作用但是缺点是消耗了用户的实际等待时间.常见的消息队列产品有 activeMQ(apache 的),RabbitMQ(爱立信的)消息队列有几种工作模式1.简单模式 2.工作模式 3.发布订阅模式 4.路由模式5.主题模式 6.RPC 模式...

2020-10-17 19:29:03 102

原创 Dubbo 框架

Dubbo 是 [1] 阿里巴巴公司开源的一个高性能优秀的服务框架(SOA),使得应用可通过高性能的 RPC 实现服务的输出和输入功能可以和 Spring 框架无缝集成。

2020-10-17 19:24:28 90

原创 Seata分布式事务框架-AT模式

Seata分布式事务框架-AT模式eata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。Seata AT事务方案Seata 的 AT 模式(Automatic Transaction)是一种无侵入的分布式事务解决方案Seata AT基本原理Seata AT 事务分两个阶段来管理全局事务:第一阶段: 执行各分支事务第二阶段: 控制全局事务最终提交或回滚Sea

2020-10-17 10:42:45 212

原创 分布式事务

分布式事务在微服务系统中,每个微服务应用都可能会有自己的数据库,它们首先需要控制自己的本地事务。一项业务操作可能会调用执行多个微服务。如何保证多个服务执行的多个数据库的操作整体成功或整体失败?这就是分布式事务要解决的问题。CAP 和 BASE 是对大规模互联网系统分布式实践的理论总结CAP:C:consistency一致性A:Availability 可用性P:partion Tolerance 分区容忍性在分布式系统中,由于网络原因出现子系统之间无法通信的情况,就会造成分区。一般分布式系统

2020-10-17 10:28:07 58

原创 SOA(面向服务)

SOA(面向服务)面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。知道 RPC 协议吗总结:RPC 调用的规则可以传输 java 对象.底层实现时将数据转化流,并且该流经过加密处理.并且 rpc 内部使用 UTF-8 编码格式要求:传输的 java 对象必须序列化

2020-10-16 18:17:49 138 1

原创 ZooKeeper

当 zk 如果宕机后,消费者能否正确消费???说明:答案:可以因为 zk 会动态的向客户端更新服务列表信息.当 zk 宕机后,由于之前已经同步了 zk的服务列表信息,所以客户端可以按照自己已经缓存的清单进行访问.如果在这个期间服务端程序发现宕机现象,那么则访问故障机时由于不能通信,则等待超时时间,则访问下一台服务器.如果这时,所有的服务端程序都宕机,则整个服务陷入瘫痪.微服务治理方案(ZooKeeper)说明:增加服务器或者减少服务器都是自动完成业务逻辑说明:当服务的提供者启动时,会

2020-10-16 18:13:39 143

原创 ThreadLocal

同一线程内的数据怎么实现共享(ThreadLocal)名称:本地线程变量作用:在同一线程内实现数据共享.原理说明:ThreadLocal 是线程安全的,在同一个线程内实现数据的共享.注意:使用完成后,切记销毁 threadLocal 对象,否则 gc 不能回收.导致 JVM 内存泄漏public class UserThreadLocal {//如果保存数据有多个,则使用 Map 集合private static ThreadLocal userThread = new ThreadLoca

2020-10-16 17:58:50 55

原创 单点登录

你的单点登录是怎么调用的原理:实现步骤:当用户登陆时,通过 nginx 访问 jt-web 中任意的服务器之后输入用户名和密码访问JT-SSO 单点登录服务器.获取用户的登陆信息查询数据库,校验用户名和密码是否正确.如果用户名和密码是正确的,将用户信息转化为 JSON 串.之后生成加密的秘钥 TOKEN(MD5(盐值+随机数)).将token:userJSON 保存 redis 中.并且将 token 信息返回给客户端(jt-web).Jt-web接收到服务端数据时首先校验数据是否有效.如果

2020-10-16 17:52:54 139

原创 HttpClient

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

2020-10-16 17:49:39 169

原创 跨域

浏览器不允许进行跨域请求.会将成功返回的数据进行拦截.不予显示.一切出于安全性的考虑同源策略规则:请求协议/域名/端口号是否相同,如果三者都一致,那么是同域访问.(即同源策略)浏览器可以正常执行.除此之外的全部的请求都是跨域请求.怎么解决跨域问题利用 javascript 中 src 属性实现跨域.客户端定义回调函数 callback=hello服务端程序封装特定的 JSON 格式 callback(JSON) 执行回调函数JSONP 就是基于这个原理实现的JQuery 中怎么使用 J

2020-10-16 17:45:01 75

原创 伪静态技术

伪静态技术动态页面不能被搜索引擎收录.为了保证搜索引擎的友好性.则以.html 的静态页面形式展现动态页面数据

2020-10-16 17:39:24 57

原创 商品分类目录数据结构分析

商品分类目录数据结构分析说明:一般电商网站的商品分类信息,都是3级标题.划分: 1级标题-2级标题-3级标题 标题是有所属关系的/1.查询一级商品分类信息/SELECT * FROM tb_item_cat WHERE parent_id = 0/2.查询二级商品分类信息/SELECT * FROM tb_item_cat WHERE parent_id = 1/3.查询三级商品分类信息/SELECT * FROM tb_item_cat WHERE parent_id = 24EasyU

2020-10-16 14:04:30 964

原创 商品列表数据格式化

商品列表数据格式化页面JS如何引入<jsp:include page="/commons/common-js.jsp"></jsp:include>页面引入JS<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><link rel="stylesheet" type="text/css" href="/js/jquery-easy

2020-10-16 11:45:03 120

空空如也

空空如也

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

TA关注的人

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