
java
文章平均质量分 81
森森之火
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql 索引欣失效的情况
详细介绍mysql索引失效的几种情况,由其是类型转换,这里有些坑,平时开发时容易被忽视!原创 2022-08-08 11:08:02 · 745 阅读 · 0 评论 -
JSONPath 表达式与用法
JsonPath是一种简单的方法来提取给定JSON文档的部分内容,其中正则表达式的包含或不包含配制有时候非常有用!json操作实例{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century",原创 2021-11-29 14:36:54 · 9315 阅读 · 1 评论 -
snack3 及jsonpath取值性能
基于jdk8,80kb。支持:序列化反序列化、解析和转换、Json path 查询。Snack3 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。特点:1、强调文档树的操控和构建能力2、做为中间媒体,方便不同格式互转3、高性能Json path查询(兼容性和性能很赞)4、支持序列化、反序列化5、基于 无参构造函数 + 字...原创 2021-10-29 15:34:42 · 694 阅读 · 0 评论 -
JVM调优总结
一些概念数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类型包括:类类型,接口类型和数组。堆与栈堆和栈是程序运行的关键,很有必要把他们的关系说清楚。原创 2021-04-19 11:21:39 · 223 阅读 · 0 评论 -
spring注释原理
我们现在工程中使用的是基于spring的注解来简化配置,是 springframework 2.5引入的,可用于修饰包、类、构造器、方法、成员变量、参数和局部变量 Spring对注解的支持主要都是通过反射来获取相应的注解,来做相应的处理,我们的工程中大部分都是使用@Service 和@Autowired来使用,其实我们还可以使用到其他的注解来加快我们的开发,满足我们的多...原创 2020-10-27 14:51:38 · 386 阅读 · 0 评论 -
普通for循环与增强for循环效率对比
开发中经常用到for循环,但是到底选择那一个效率更高,可能让有些同学出现纠结,给人感觉好像是增强for循环效率高,但是。。。。猜测总是没法让人不放心,千猜万猜还不如,动手做个测试,证明下,测试步骤如下1、定义一个对象,@Datapublic class Car { private String name; private Integer price; priva...原创 2020-10-27 14:52:10 · 1189 阅读 · 0 评论 -
ArrayList 与 LinkedList 增加数据与查询数据的效率对比
ArrayList 与 LinkedList都是list的实现类,前者是基于数组实现,具有查询快增删慢的特点,后者是基于双向链表实现,具有查询慢增删快的特点,对于查询与增删来说,二者正好相反,那二者到底相差多少下面我们来测试下,先上代码,所有代码如下package com.test.list;import java.util.*;/** * @ClassName ListDemo * @Description TODO * @Date 2018/11/20...原创 2020-09-27 14:31:06 · 599 阅读 · 3 评论 -
Dubbo 常见面试题目
1、Dubbo是什么?Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。面试官问你如果这个都不清楚,那下面的就没必要问了。官网:http://dubbo.apache.org2、为什么要用Dubbo?因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可原创 2020-09-15 15:04:48 · 2543 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(ConcurrentHashMap) 五)
主要就是为了应对hashmap在并发环境下不安全而诞生的,ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,final,CAS等lock-free技术来减少锁竞争对于性能的影响。我们都知道Map一般都是数组+链表结构(JDK1.8该为数组+红黑树)。ConcurrentHashMap避免了对全局加锁改成了局部加锁操作,这样就极大地提高了并发环境下的操作速度,由于ConcurrentHashMap在JDK1.7和1.8中的实现非常不同,接下来我们...原创 2020-07-21 16:03:37 · 231 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(WeakHashMap) 四)
WeakHashMap ,从名字上看, 有点特别原创 2020-06-30 10:41:57 · 356 阅读 · 0 评论 -
Java中的对象、对象引用及对象引用分类
在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,看完本文,不断能让你明白,这两词意思,还能进一步搞明白一些原理一、对象 在Java中有一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么是对象,需要跟类一起结合起来理解。按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词,类是抽象的,偏虚,而对象就是比较具体,偏实,比如那天你真看到了外原创 2020-06-11 15:07:30 · 1066 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理(TreeMap) 二)
一、TreeMap 1.1 数据结构源码定义如下public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.SerializableTreeMap继承AbstractMap,实现NavigableMap、Cloneable、Serializable三个接口。其中AbstractMap...原创 2020-06-02 19:51:25 · 383 阅读 · 0 评论 -
java集合的底层原理(Map的底层原理 一)
此文承接java集合的底层原理(List的底层原理),具体可以此文的开头讲述,此处简要概述的map的结构如下Map 接口 键值对的集合 (双列集合)├———Hashtable 接口实现类, 同步, 线程安全├———HashMap 接口实现类 ,没有同步, 线程不安全-│—————–├ LinkedHashMap 双向链表和哈希表实现│—————–└ WeakHashMap├ ——–TreeMap 红黑树对所有的key进行排序└———IdentifyHashMap———————————...原创 2020-06-01 22:25:42 · 6512 阅读 · 0 评论 -
java集合的底层原理(List的底层原理)
java集合的底层原理及扩充规律原创 2020-05-28 19:57:37 · 5863 阅读 · 1 评论 -
细说Java中hashCode
一、作用 HashCode的官方文档定义是这样写的: hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。hashCode 的常规协定是:在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。如果根据 equals...原创 2020-05-19 22:27:31 · 565 阅读 · 0 评论 -
java的字母ASCII 值与 hashcode的关系??
概念ASCII : ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符hashcode java中,就是把任意长度的输入,通过散列算...原创 2020-05-19 10:56:21 · 1832 阅读 · 1 评论 -
Tomcat的原理及架构
一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下:Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏就是这两个组件,他们的作用如下:1、Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化;2、Container转载 2020-05-12 09:56:55 · 429 阅读 · 0 评论 -
冒泡排序算法之解析及优化(一看就懂)
前言 面试中经常遇到写个排序算法,相信大家都会写冒泡排序算法,虽然很多人会写,我敢肯定,不是所有人都深知这个算法深层次的逻辑和规律,因为对于一个普通的开发者来说,通常工作中绝大部分时间用不到这些内容,为了应付面试,临时把这个算法背下来,一般面试官一看写对了,也不会再问什么,如果想要研究下算法问题,我们就有必要彻底弄清楚其中的奥秘,这些是基础,一、概要 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他...原创 2020-05-09 16:34:36 · 306 阅读 · 0 评论 -
tomcat常见的性能优化
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈为此为大家分享下tomcat几种常见的性能优化一、内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数 JAVA_OPTS参数说明 ...原创 2020-03-18 21:16:36 · 1431 阅读 · 0 评论 -
springcloud-框架搭建(一)(基于Ribbon+RestTemplate,有源码下载)
前言 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring ...原创 2020-02-20 21:14:09 · 375 阅读 · 0 评论 -
springcloud-框架搭建(二)(基于Feign,有源码下载)
上一篇是分享了springcloud-框架搭建(一)(基于Ribbon+RestTemplate),这一篇分享下 springcloud框架另一种服务间通信方式,基于Feign开始前解释什么是feign? Feign是一个声明式WebService客户端.使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持J...原创 2020-02-22 20:36:26 · 388 阅读 · 0 评论 -
MyBatis与Hibernate区别
相同点Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBat...原创 2020-01-17 15:43:05 · 122 阅读 · 0 评论 -
几种常见的加密算法
一、概念 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。 简单来说,就是把某一段数据(明文),按照“某种规则”转换成另外一段不可读的数据(密文)。这里选定的“...原创 2020-01-13 14:43:39 · 11214 阅读 · 0 评论 -
RESTful详解答
01 前言 看过很多RESTful相关的文章总结,参齐不齐,结合工作中的使用,非常有必要归纳一下关于RESTful架构方式了,RESTful只是一种架构方式的约束,给出一种约定的标准,完全严格遵守RESTful标准并不是很多,也没有必要。但是在实际运用中,有RESTful标准可以参考,是十分有必要的。实际上在工作中对api接口规范、命名规则、返回值、授权验证等进行一定的约束,一般的...原创 2020-01-08 15:12:20 · 346 阅读 · 0 评论 -
Tomcat实现多域名之间session共享
最近启用二级域名后,面临一个主域名与二级域名之间 session 不能共享的问题,带来的麻烦就是用户在主域名登陆,但由于二级域名 session 不能共享 ,因此无法进行登陆的操作,对一些功能有一些影响。问题的原因如下:Tomcat 下,不同的二级域名,Session 默认是不共享的,因为 Cookie 名称为 JSESSIONID 的 Cookie 根域是默认是没设置的,访问不同的二...原创 2020-01-06 20:47:41 · 733 阅读 · 0 评论 -
web开发常见的几大安全问题
一、SQL注入SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在...转载 2019-12-24 15:30:11 · 833 阅读 · 0 评论 -
springboot 与springcloud比较
SpringBoot与SpringCloud的关系与区别一、SpringBoot和SpringCloud简介1、SpringBoot:是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。2、SpringCl...原创 2020-02-21 10:18:52 · 1164 阅读 · 0 评论 -
java中常用的几种缓存类型介绍及比较
一、缓存概念 缓存就是数据交换的缓冲区(称作:Cache),当某一硬件要读取数据时,会首先从缓存汇总查询数据,有则直接执行,不存在时从内存中获取。由于缓存的数据比内存快的多,所以缓存的作用就是帮助硬件更快的运行二、为什么使用缓存 首先对于互联网应用来说,用户体验是非常重要的,而使用缓存的目的是想通过提高服务的性能从而提高应用的用户体验。而系统性能的指标一般包括:...原创 2019-12-12 20:29:23 · 3407 阅读 · 0 评论 -
常见的消息中间件对比(详细版)
一、 简介 “消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以...原创 2019-12-11 20:14:59 · 1689 阅读 · 0 评论 -
linux 搭建ES
一、下载安装包 1、下载地址 https://www.elastic.co/cn/downloads/elasticsearch2、选择版本(这里最最版本7.4.2)二、上传到服务器安装 这是我上传的目录解压后 tar -zxvfelasticsearch-7.4.2-linux-x86_64.tar.gz cd /...原创 2019-11-22 16:19:06 · 5051 阅读 · 0 评论 -
springboot 集成lucene (可下载demo代码)
引言在阅读此文前,最好了解下【lucene原理】,这样有助于你能更好的理解此文lucene原理:https://blog.youkuaiyun.com/yb546822612/article/details/103063493如果觉得那文章太长,看得两眼发花,也可以下载在demo先跑起来,过把隐,然后对照此文边看边理解demo码云地址在最底部一、新建springboot项目...原创 2019-11-14 13:53:39 · 3253 阅读 · 0 评论 -
lucene原理及java实现【容易理解】
转自https://blog.youkuaiyun.com/m0_37955444/article/details/79514811一、Lucene是什么?Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构...转载 2019-11-14 10:53:22 · 899 阅读 · 1 评论 -
9个基于Java的搜索引擎框架
9个基于Java的搜索引擎框架转自:http://blog.youkuaiyun.com/xiaomin1991222/article/details/509805731、Java 全文搜索引擎框架Lucene毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene为开发人员提供了相当完整的工...转载 2019-11-12 11:04:31 · 163 阅读 · 0 评论 -
springboot 中 HandlerInterceptor和Filter区别及使用
引言 经常在项目中看到filter和HandlerInterceptor,很时候感觉很像,但那只是那感觉 ,真正可不一样,那它们两个到底兄弟还是陌生人呢?请看下方,让我细细道来,过滤器(Filter)Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务...原创 2019-11-07 15:12:38 · 11270 阅读 · 2 评论 -
springboot中添加Filter的方法
springboot中创建Filter有四种方法,具体如下第一种@WebFilter(filterName = "myFilter",urlPatterns = "/*")public class MyFilter implements Filter { @Override public void init(FilterConfig filterCon...原创 2019-11-07 11:21:04 · 9221 阅读 · 5 评论 -
idea 中增加mybatis 自动生成代码插件
1、增加generatorConfig.xml配制文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "htt...原创 2019-10-10 14:16:37 · 2774 阅读 · 1 评论 -
java中最常用反转字串的方法
Java中经常会用到将字符串进行反转的时候,程序员孔乙己总结了5种反转方法,如下:public class Test { public static void main(String[] args) { System.out.println(reverse1("qwert")); } //方法1 递归方法 public static S...原创 2019-07-18 16:23:12 · 230 阅读 · 0 评论 -
java 容器都有哪些?
1、数组 (数组长度限制为 Integer.Integer.MAX_VALUE)2、String(String的长度限制: 底层是char 数组 长度 Integer.MAX_VALUE 线程安全的)3、java.util下的集合容器List:存放有序,列表存储,元素可重复Set:无序,元素不可重复Map:无序,元素可重复...原创 2019-07-28 17:57:05 · 498 阅读 · 0 评论 -
dependencyManagement和dependencies的区别
1)dependencies:自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目继承(属性全部继承)声明在父项目dependencies里的依赖项。2)dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要的依赖。如果不在子项目中声明依赖,是不会从父项目中继承的;只有在子项目中写...原创 2019-08-08 15:09:15 · 515 阅读 · 0 评论 -
jpa修改默认时间格式
最近用JPA开发时 遇到保存时间不对,对象属性为获取当前时间,我这里明明下午三点多,保存结果却是早上7点多,详细如下设置对象属为good.setCreateTime(new Date());保存结果为而当前时间大约为结果时间差不相关8个小时,中国采用东8区,一个时区为一个小时,所以推断JPA默认采用零时区(英国(格林尼治天文台旧址)为中时区(零时区))...原创 2020-11-16 15:23:44 · 2549 阅读 · 0 评论