![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
语法
qq_42317239
这个作者很懒,什么都没留下…
展开
-
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
日期类Date
日期类DateetTime():取内部毫秒值setTime():存取内部毫秒值getMonth():获取当前月份getHours():获取当前小时compareTo(Date):当前对象与参数对象比较。当前对象大返回正数,小返回负数,相同0。原创 2020-11-08 13:22:20 · 122 阅读 · 0 评论 -
日期工具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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
springmvc路由
springmvc的另一种配置@Configuration@EnableWebMvcpublic class SpringMVCConfig{@Beanpublic InternalResourceViewResolver viewResolver(){InternalResourceViewResolver viewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPre原创 2020-10-30 17:27:01 · 118 阅读 · 0 评论 -
SpringMVC路由配置
SpringMVC中的路由配置及参数传递详解SpringMVC中是如何路由到JSP文件的。首先我们使用spring中的@Controller注解将RouteController类声明为控制器类,然后在通过@RequestMapping配置路由映射。将路由"/route"映射到RouteController类上。也就是说在浏览器中访问该工程下的/route路径,就会访问到RouteController类...原创 2020-10-29 14:52:54 · 542 阅读 · 0 评论 -
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 评论 -
选择排序
选择排序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 阅读 · 0 评论 -
栈
栈栈和队列是有操作限制的线性表。栈是一种只允许在一端进行插入或删除的线性表。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 阅读 · 0 评论 -
二叉树
二叉树二叉树是树的特殊一种,具有如下特点:1、每个结点最多有两颗子树,结点的度最大为2。2、左子树和右子树是有顺序的,次序不能颠倒。3、即使某结点只有一个子树,也要区分左右子树1、斜树所有的结点都只有左子树(左斜树),或者只有右子树(右斜树)。这就是斜树,应用较少2、满二叉树所有的分支结点都存在左子树和右子树,并且所有的叶子结点都在同一层上,这样就是满二叉树。就是完美圆满的意思,关键在于树的平衡。根据满二叉树的定义,得到其特点为:叶子只能出现在最下一层。非叶子结点度一定是2.在同样深度的二原创 2020-10-21 15:43:52 · 465 阅读 · 0 评论 -
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 阅读 · 0 评论 -
堆排序
堆排序堆排序(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 阅读 · 0 评论 -
面试题二
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 · 728 阅读 · 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 阅读 · 0 评论 -
SpringBoot
SpringBoot 全新开发方式特点⚫ 创建独立的 Spring 应用程序⚫ 嵌入的 Tomcat,无需部署 WAR 文件⚫ 简化 Maven 配置⚫ 自动配置 Spring⚫ 提供生产就绪型功能,如指标,健康检查和外部配置原创 2020-10-17 19:46:12 · 73 阅读 · 0 评论 -
Dubbo 框架
Dubbo 是 [1] 阿里巴巴公司开源的一个高性能优秀的服务框架(SOA),使得应用可通过高性能的 RPC 实现服务的输出和输入功能可以和 Spring 框架无缝集成。原创 2020-10-17 19:24:28 · 90 阅读 · 0 评论 -
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 · 210 阅读 · 0 评论 -
分布式事务
分布式事务在微服务系统中,每个微服务应用都可能会有自己的数据库,它们首先需要控制自己的本地事务。一项业务操作可能会调用执行多个微服务。如何保证多个服务执行的多个数据库的操作整体成功或整体失败?这就是分布式事务要解决的问题。CAP 和 BASE 是对大规模互联网系统分布式实践的理论总结CAP:C:consistency一致性A:Availability 可用性P:partion Tolerance 分区容忍性在分布式系统中,由于网络原因出现子系统之间无法通信的情况,就会造成分区。一般分布式系统原创 2020-10-17 10:28:07 · 58 阅读 · 0 评论 -
ThreadLocal
同一线程内的数据怎么实现共享(ThreadLocal)名称:本地线程变量作用:在同一线程内实现数据共享.原理说明:ThreadLocal 是线程安全的,在同一个线程内实现数据的共享.注意:使用完成后,切记销毁 threadLocal 对象,否则 gc 不能回收.导致 JVM 内存泄漏public class UserThreadLocal {//如果保存数据有多个,则使用 Map 集合private static ThreadLocal userThread = new ThreadLoca原创 2020-10-16 17:58:50 · 55 阅读 · 0 评论 -
HttpClient
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。原创 2020-10-16 17:49:39 · 169 阅读 · 0 评论 -
跨域
浏览器不允许进行跨域请求.会将成功返回的数据进行拦截.不予显示.一切出于安全性的考虑同源策略规则:请求协议/域名/端口号是否相同,如果三者都一致,那么是同域访问.(即同源策略)浏览器可以正常执行.除此之外的全部的请求都是跨域请求.怎么解决跨域问题利用 javascript 中 src 属性实现跨域.客户端定义回调函数 callback=hello服务端程序封装特定的 JSON 格式 callback(JSON) 执行回调函数JSONP 就是基于这个原理实现的JQuery 中怎么使用 J原创 2020-10-16 17:45:01 · 75 阅读 · 0 评论 -
MybatisPlus
MybatisPlus特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 -原创 2020-10-14 19:38:40 · 114 阅读 · 0 评论 -
SPEL表达式
指定配置文件为属性赋值需求: YML配置文件是SpringBoot整合第三方配置文件,如果将业务配置与YML配置写到一起,则不方便管理.能否在指定的配置文件(pro)中实现属性的赋值.@RestController//导入配置文件,之后由Spring容器扫描@PropertySource(value = “classpath:/properties/image.properties”, encoding = “UTF-8”)public class FileController {@Value(原创 2020-10-14 16:37:23 · 108 阅读 · 0 评论 -
基于Spring原生AOP的实现为特定业务对象添加简易日志实现。
基于Spring原生AOP的实现为特定业务对象添加简易日志实现。定义RequiredLog注解,用于描述目标业务对象package com.cy.spring.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@原创 2020-10-06 20:07:07 · 108 阅读 · 0 评论 -
AOP
用户行为日志记录实现(实践)本小节作为课堂练习,以AOP方式记录项目中的用户行为信息,并将其存储到数据库。参考日志模块的文档。在SysLogDao接口中添加,用于实现日志信息持久化的方法。关键代码如下:int insertObject(SysLog entity);在SysLogMapper.xml中添加insertObject元素,用于向日志表写入用户行为日志。关键代码如下: insert into sys_logs (username,operation,method,param原创 2020-10-06 16:05:29 · 96 阅读 · 0 评论 -
instanceof 关键字
instanceof 关键字的作用instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。boolean result原创 2020-09-03 15:04:13 · 108 阅读 · 0 评论 -
Shiro 框架
Shiro 框架权限管理时的认证和授权流程描述Shiro 权限控制流程的原理:应用代码 —- 调用 Subject (shiro 的 Subject 就代表当前登陆用户) 控制权限 —- Subject 在 shiro 框架内部 调用 Shiro SecurityManager 安全管理器 —–安全管理器调用 Realm (程序和安全数据连接器 )。Subject 要进行任何操作,都必须要调用安全管理器(对我们来说是自动的)。而安全管理器会调用指定的 Realms 对象,来连接安全数据。Rea原创 2020-08-20 14:16:39 · 69 阅读 · 0 评论 -
Mybatis
Mybatis 的好处把 Sql 语句从 Java 中独立出来。封装了底层的 JDBC,API 的调用,并且能够将结果集自动转换成 JavaBean 对象,简化了Java 数据库编程的重复工作。自己编写 Sql 语句,更加的灵活。入参无需用对象封装(或者 map 封装),使用@Param 注解...原创 2020-08-20 10:11:40 · 310 阅读 · 0 评论 -
SpringMVC
Struts2 和 SpringMvc 的区别入口不同:Struts2:filter 过滤器SpringMvc:一个 Servlet 即前端控制器开发方式不同:Struts2:基于类开发,传递参数通过类的属性,只能设置为多例SpringMvc:基于方法开发(一个 url 对应一个方法),请求参数传递到方法形参,可以为单例也可以为多例(建议单例)请求方式不同:Struts2:值栈村塾请求和响应的数据,通过 OGNL 存取数据SpringMvc:通过参数解析器将 request 请求内容解析原创 2020-08-20 10:09:56 · 131 阅读 · 0 评论 -
Spring
Spring 在 ssm 中起什么作用?Spring:轻量级框架作用:Bean 工厂,用来管理 Bean 的生命周期和框架集成。两大核心:1、IOC/DI(控制反转/依赖注入) :把 dao 依赖注入到 service 层,service 层反转给 action层,Spring 顶层容器为 BeanFactory。2、AOP:面向切面编程Spring 的配置文件中的内容开启事务注解驱动事务管理器开启注解功能,并配置扫描包配置数据库配置 SQL 会话工厂,别名,映射文件不用编写 Da原创 2020-08-20 10:07:14 · 174 阅读 · 0 评论 -
Tomcat
Tomcat 配置,部署优化内存优化:Tomcat 依赖于 JVM,可以配置 JVM 的内存配置最大连接数配置(并发能力)通常搭配 Nginx 提升 Tomcat 的并发性能原创 2020-08-20 09:27:36 · 122 阅读 · 1 评论 -
HTML 和 xml 的区别
HTML 和 xml 的区别XML 是可扩展标记语言,而 HTML 超文本标记语言。不同之处:1、语法有所不同。XML 语法比较严谨而 HTML 语法比较松散。2、用途不同。XML 主要用于数据格式化存储而 HTML 主要用于网页的编辑。...原创 2020-08-20 09:23:03 · 79 阅读 · 0 评论 -
Ajax
Ajax 原理Ajax 的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给 Ajax 引擎自己来做, 只有确定需要从服务器读取新数据时再由 Ajax 引擎代为向服务器提交请求。Ajax 其核心只有 JavaScript、XMLHTTPRequest 和 DOM,在旧的交互方式中,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端, 每当服务器处理客户端提交的请求原创 2020-08-20 09:16:43 · 247 阅读 · 0 评论 -
事务
什么是事务事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性:事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据保持一致的状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B 树索引或双向链表)都必须是正确的。隔离性:由并发事务所做的修改必须与任何其他并发事务所做的修改原创 2020-08-19 15:00:58 · 155 阅读 · 0 评论 -
md5原理与实现
md5原理与实现@SpringBootTestpublic class MD5Tests {@Testvoid testMD501() { String pwd="123456"; //String salt=UUID.randomUUID().toString();//da5bf161-32eb-4521-970e-efe61d56a8e6 String salt="da5bf161-32eb-4521-970e-efe61d56a8e6"; System.out.println("sal原创 2020-08-18 15:10:56 · 144 阅读 · 0 评论 -
web 容器与设计模式
什么是 web 容器给处于其中的应用程序组件(JSP、Servlet)提供一个环境,是 JSP、Servlet 直接跟容器中的变量交互,不必关注其他系统问题。主要有 web 服务器来实现。例如:tomcat、weblogic、sphere、JBoss 等。该容器提供的接口严格遵守 J2EE 规范中的 web application 标准。我们把遵守以上标准的 web 服务器叫做 J2EE 的 web 容器。J2EE 常用的设计模式?说明工厂模式Java 中一共有 23 中设计模式:Facto原创 2020-08-18 15:15:13 · 96 阅读 · 0 评论 -
MVC
MVC基于 java 的 web 应用系统采用 MVC 设计模型,即用 Model(模型)、View(视图)和Controller(控制)分离设计,这是目前 web 应用服务系统的主流设置方向。Model:处理业务逻辑的模块。View:负责页面显示,显示 Model 的处理结果给用户,主要实现数据到页面的转换过程。Controller:负责每个请求的分发,把 Form 数据传递给 Model 进行处理,处理完成后,把处理结果返回给相应的 View 显示给用户。...原创 2020-08-17 20:21:15 · 79 阅读 · 0 评论