JAVA
吃鱼的羊
这个作者很懒,什么都没留下…
展开
-
decimal,float和double的区别是什么?
https://zhuanlan.zhihu.com/p/352503879今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别,分享给大家:表示小数的一共有三种类型:float是单精度,double是双精度,decimal是数字型,它们所占的内存空间不一样,表示的位数也不一样。1、精度:float单精度小数部分能精确到小数点后面6位,用 32 位二进制进行描述 double双精度小数部分能精确到小数点后的15.转载 2021-06-22 13:54:18 · 6696 阅读 · 0 评论 -
maven dependency中scope=compile 和 provided区别
https://blog.csdn.net/mccand1234/article/details/60962283问题再现上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是provided的情况,比如如下:<span style="color:#000000"><code><span style="color:#006666 !important"><<span style="color:#4f4f4.转载 2021-05-25 15:12:27 · 741 阅读 · 0 评论 -
Maven中 jar包冲突原理与解决办法
https://blog.csdn.net/noaman_wgs/article/details/81137893Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题。本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲突的解决办法。一、Maven中jar包冲突产生原因MAVEN项目运行中如果报如下错误:Caused by:java.lang.NoSuchMethodErrorCaused by:转载 2021-05-25 15:06:51 · 163 阅读 · 0 评论 -
图解!一文彻底弄懂九大常见数据结构!
https://www.sohu.com/a/403025294_120052431数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。常用的数据结构可根据数据访问的特点分为线性结构和非线性结构。线性结构包括常见的链表、栈、队列等,非线性结构包括树、图等。数据结构种类繁多,本文将通过图解的方式对常用的数据结构进行理论上的介绍和讲解,以方便大家转载 2021-01-15 21:18:42 · 1007 阅读 · 0 评论 -
JDK容器学习之Map: HashMap,TreeMap,LinkedHashMap对比小结
https://cloud.tencent.com/developer/article/1038436?from=information.detail.hashmap%E5%AD%98%E5%82%A8%E7%BB%93%E6%9E%84HashMap, TreeMap, LinkedHashMap 对比1. 存储结构HashMap 存储结构: 数组 + 链表 + 红黑树LinkedHashMap 存储结构 和HashMap 相同,区别是维护一个根据插入顺序保持的双向链表Tr..转载 2021-01-15 14:20:51 · 146 阅读 · 0 评论 -
Fastjson生成json时Null属性不显示
生成json代码片段Map < String , Object > jsonMap = new HashMap< String , Object>();jsonMap.put("a",1);jsonMap.put("b","");jsonMap.put("c",null);jsonMap.put("d","wuzhuti.cn");String str = JSONObject.toJSONString(jsonMap);System.out.println(st原创 2020-06-24 14:19:45 · 287 阅读 · 0 评论 -
java中的关键字transient ,不需序列化的属性
https://baijiahao.baidu.com/s?id=1636557218432721275&wfr=spider&for=pctransient关键字总结java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。像银行卡、密码等等这些数据。这个需要根据业务情况了。这个关键字的作用其实我在写java的序列化机制中曾经写过.转载 2020-06-23 17:26:28 · 2393 阅读 · 0 评论 -
poi简介与简单使用 导入导出excel
https://blog.csdn.net/weixin_44520739/article/details/88368779简介:POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。所以POI的主要功能是可以用Java操作Microsoft Office的相转载 2020-06-12 17:12:51 · 266 阅读 · 0 评论 -
Java中对于+和append拼接字符串效率的误解
https://blog.csdn.net/m0_37589327/article/details/78605268引言 对于初学Java的人来说,在学习String的时候,肯定有无数个人和我们讲过,”尽量不要使用+拼接字符串,效率不好,应该使用append,你自己循环拼接个十万次自己瞧瞧就知道了“,然后像下面那样给我们演示了一下,用+和用StringBuilder的append拼接个十万次,输出一下各自消耗的时间,差距非常大,让我们立刻深信不疑,+拼接就是个垃圾,除了平时方便测试代码,否则都不转载 2020-06-12 16:51:26 · 448 阅读 · 0 评论 -
Geohash原理
https://www.jianshu.com/p/1ecf03293b9a1. 引言GeoHash本质上是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。以GeoHash方式建立空间索引,可以提高对空间poi数据进行经纬度检索的效率。2.认识GeoHashGeoHash将二维的经纬度转换成字符串,比如下图展示了北京9个区域的GeoHash字符串,分别是WX4ER,WX4G2...转载 2020-06-12 15:46:19 · 314 阅读 · 0 评论 -
Geohash算法原理及实现
https://www.jianshu.com/p/2fd0cf12e5ba最近需要实现一个功能,查找车辆附近的加油站,如果车和加油站距离在200米以内,则查找成功。加油站数量肯定不小,能否缩小查找范围,否则以遍历形式,效率肯定高不了。Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法。基本原理GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经转载 2020-06-12 15:31:37 · 1992 阅读 · 0 评论 -
Fork/Join框架学习
https://www.jianshu.com/p/42e9cd16f705什么是Fork/Join框架Fork/Join框架是一组允许程序员利用多核处理器支持的并行执行的API。它使用了“分而治之”策略:把非常大的问题分成更小的部分,反过来,小部分又可以进一步分成更小的部分,递归地直到一个部分可以直接解决。这被叫做“fork”。然后所有部件在多个处理核心上并行执行。每个部分的结果被“join”在一起以产生最终结果。因此,框架的名称是“Fork/Join”。下面的为代码展示了分治策略如何与F转载 2020-06-12 15:17:20 · 251 阅读 · 0 评论 -
Fork/Join框架浅谈
https://www.jianshu.com/p/f32ee3e25c2d什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架,采用类似于分治算法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。Fork/Join框架在这个框架中值得注意的一个重要概念是在理想状态下是没有空闲的工作线程。 它们实现了一种工作窃取算法,闲置的工作线程可以从忙碌的工作线程拿工作执行。For转载 2020-06-12 15:06:39 · 300 阅读 · 0 评论 -
java8新特性(六):Stream多线程并行数据处理
https://blog.csdn.net/sunjin9418/article/details/53143588将一个顺序执行的流转变成一个并发的流只要调用parallel()方法publicstaticlongparallelSum(longn){returnStream.iterate(1L,i->i+1).limit(n).parallel().reduce(0L,Long::sum);}并行流就是一个把内容分成多个数据块,并用不不同的线程分别处理...转载 2020-06-12 14:43:27 · 4643 阅读 · 0 评论 -
Java 自动装箱导致的性能问题
https://www.cnblogs.com/wang-yaz/p/8516151.html从 Java 1.5 开始,新增了自动装箱(autoboxing)的功能,这一定程度上模糊了基本类型与装箱基本类型的区别,有些人会很随意地将两者进行混用,这样代码在编译及运行时虽不报错,但在性能上却有着不小的差别,看下面的例子:long startTime = System.currentTimeMillis();Long sum = 0L;for (long i = 0; i < 1000.转载 2020-06-12 14:26:24 · 900 阅读 · 0 评论 -
JAVA8新特性(吐血整理)—— Optional 类
https://www.cnblogs.com/liuxiaozhi23/p/10880147.html一、Java 8 Lambda 表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda 表达式可以使代码变的更加简洁紧凑。1.1 语法lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) -&转载 2020-06-12 10:32:08 · 963 阅读 · 0 评论 -
java8 新特性精心整理(全)——新 Date/Time API
https://blog.csdn.net/sanri1993/article/details/101176712前言越来越多的项目已经使用 Java 8 了,毫无疑问,Java 8 是Java自Java 5(发布于2004年)之后的最重要的版本。这个版本包含语言、编译器、库、工具和 JVM 等方面的十多个新特性。在本文中我们将学习这些新特性,并用实际的例子说明在什么场景下适合使用。**引用:**本文参考了这两篇文章,加以自己的理解,整理成一份最容易理解的 Java8 新特性文章,有少部分章.转载 2020-06-12 10:19:54 · 434 阅读 · 0 评论 -
JAVA8十大新特性详解(精编)
https://www.jianshu.com/p/0bf8fe0f153b一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); }}Formula接口在拥有cal.转载 2020-06-11 18:31:34 · 118 阅读 · 0 评论 -
@JsonView的使用
https://www.cnblogs.com/yufeng218/p/11795652.html1.使用场景在某一些请求返回的JSON中,我们并不希望返回某些字段。而在另一些请求中需要返回某些字段。例如:在查询列表请求中,不返回password字段 在获取用户详情中,返回password字段用户类public class User{ private Integer id; private String username; private S..转载 2020-06-11 11:23:26 · 569 阅读 · 0 评论 -
Java8新特性——StreamAPI 的使用
https://www.cnblogs.com/nnxud/p/9844593.htmlhttps://www.cnblogs.com/kaisadadi/p/9099485.html,Stream 的特性可以归纳为:不是数据结构 它没有内部存储,它只是用操作管道从 source(数据结构、数组、generator function、IO channel)抓取数据。 它也绝不修改自己所封装的底层数据结构的数据。例如 Stream 的 filter 操作会产生一个不包含被过滤元素的新 Stre转载 2020-06-11 10:35:00 · 309 阅读 · 0 评论 -
Java中判断字符串是否为数字
https://blog.csdn.net/u013066244/article/details/53197756前言网上有很多这种资料,之所以我又写一篇,是今天在实践网上给的方法时,发现很多bug。所以我就自己总结下。同时也请那些在复制粘贴别人的东西时,最好实践下。不实践的话,自己得到的可能是错误的方法,同时也误导他人!用JAVA自带的函数 public static boolean isNumericZidai(String str) { for (int i...转载 2020-06-10 17:49:11 · 197 阅读 · 0 评论 -
java使用jxl导出excel字符串类型转化成数值型
https://blog.csdn.net/zzq900503/article/details/49123387运用场景:导出excel后 发现 数值类型的字段 在excel中表现为文本类型,这样不利于计算。解决办法:// 创建一个可写入的工作表 // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet(ti...转载 2020-06-10 15:52:45 · 1980 阅读 · 0 评论 -
HashSet中如何去除重复的对象
通过查看java底层api实现可以发现在hashset中比较2个值是否相等,他是比较的hash值和equals方法,所以我们只需要重写这2个方法即可。实例程序:packagecom;importjava.util.HashSet;importjava.util.Set;publicclassSetDemo{publicstaticvoid...转载 2020-04-24 13:12:48 · 2021 阅读 · 0 评论 -
java实现发送短信验证码
https://www.jb51.net/article/165274.htm最近用学习了一下调用第三方接口发送短信验证码的程序,希望能够帮助到大家。1.首先下图为项目的目录结构,需要带入三个包:commons-httpclient-3.1.jarcommons-logging-1.0.4.jarcodec-1.3.jar2.其次要创建模拟POST、GET请求的工具类:...转载 2020-03-14 22:07:32 · 225 阅读 · 0 评论 -
Java实现邮件发送
https://blog.csdn.net/baolingye/article/details/96598222Java实现邮件发送一、邮件服务器与传输协议要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址:一般是 smtp.xxx.com,比如163邮...转载 2020-03-14 22:00:03 · 277 阅读 · 0 评论 -
IDEA中设置注释模板的方法
IDEA中设置注释模板的方法https://www.cnblogs.com/pcheng/p/10121683.htmlhttps://blog.csdn.net/zlbdmm/article/details/93873188IDEA中设置注释模板主要分为两个部分,分别是创建java文件时类的注释和方法的注释。 这里为大家详细介绍一下方法,按MyEclipse的风格设置(MyEcli...转载 2020-03-08 16:41:41 · 7504 阅读 · 0 评论 -
com.alibaba.fastjson 把JSONObject转换为Map(String, Integer)对象
JSONObject obj = new JSONObject();{obj.put("key1", "value1");obj.put("key2", "value2");obj.put("key3", "value3");}Map<String, Integer> params = JSONObject.parseObject(obj.toJSONString(), n...转载 2020-03-04 10:10:43 · 9046 阅读 · 1 评论 -
Java高性能反射工具包ReflectASM
https://blog.csdn.net/HUXU981598436/article/details/90634602ReflectASM使用字节码生成的方式实现了更为高效的反射机制。执行时会生成一个存取类来 set/get字段,访问方法或创建实例。一看到ASM就能领悟到ReflectASM会用字节码生成的方式,而不是依赖于Java本身的反射机制来实现的,所以它更快,并...转载 2020-02-29 21:45:57 · 1042 阅读 · 0 评论 -
Java各种反射性能对比
https://www.cnblogs.com/vielat/p/10246596.html对各种方法实现get方法的性能进行了一个测试。总共有5个测试,,每个测试都是执行1亿次1. 直接通过Java的get方法2.通过高性能的ReflectAsm库进行测试3.通过Java Class类自带的反射获得Method测试4.使用Java自带的Property类获取Method测...转载 2020-02-29 21:42:31 · 911 阅读 · 0 评论 -
Java反射:框架设计的灵魂
https://www.jianshu.com/p/1fc45c89e76b要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有两种方式:一种是传统的RTTI(Run-Time Type Identification),它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。使用的前提条件:必须先得到代表的...转载 2020-02-29 21:41:04 · 320 阅读 · 0 评论 -
SpringBoot - 配置文件application.yml使用详解(附:Profile多环境配置)
https://www.hangge.com/blog/cache/detail_2459.html1,基本介绍(1)YAML是JSON的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。(2)在创建一个SpringBoot项目时,引入的spring-boot-starter-web依赖间接地引入了snakeya...转载 2020-02-29 18:11:18 · 19176 阅读 · 0 评论 -
git branch分支切换和合并
创建与合并分支https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所...转载 2020-02-26 17:40:17 · 9175 阅读 · 1 评论 -
POSTMAN
https://www.onlinedown.net/soft/971602.htm基本简介postman是一款强大网页调试工具的客户端,postman为用户提供强大的 Web API & HTTP 请求调试功能。postman能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers,是一款非常实用的调试工具。需要的朋...转载 2020-03-12 10:13:39 · 643 阅读 · 1 评论 -
keytool BIEE与LDAP配置SSL连接
--LDAPOBIEE 11g Security Week : Connecting to Active Directory, and Obtaining Group Membership from Database Tableshttps://www.rittmanmead.com/blog/2012/03/obiee-11g-security-week-connecting-to-acti...转载 2020-01-16 11:29:20 · 778 阅读 · 0 评论 -
java中对于new HashMap(){{put("xxx", "yyy");}}
一、HashMap的初始化1、HashMap 初始化的文艺写法HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化:[java] view plain copyHashMap<String, String> map =new HashMap<String, String>();map.put(“Name”...转载 2020-01-15 09:43:57 · 9760 阅读 · 1 评论 -
uwsgi、wsgi和nginx的区别和关系
https://blog.csdn.net/CHENYAoo/article/details/83055108区分uWSGI和WSGI在python web开发中,我们经常使用uwsgi配合nginx部署一个web框架,如Django或flask。同时我们又会说,框架和web服务器之间要符合WSGI协议。那就来厘清一下这几个概念。web服务器和web框架在讲uWSGI和WSGI之...转载 2020-01-09 11:09:13 · 150 阅读 · 0 评论 -
nginx怎么配置负载均衡
https://m.php.cn/nginx/423607.html负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实...转载 2020-01-09 10:38:42 · 509 阅读 · 0 评论 -
SpringBoot学习(二):内嵌服务器引擎(Tomcat,Jetty)实现原理
http://www.zijin.net/news/tech/1088822.html概述SpringBoot使用main方法启动的一个重要特性是,不需要打包成war部署到Tomcat这种Servlet容器中,而是只需打包成jar,然后通过java或mvn等命令运行这个jar包,然后应用就可以在指定的端口监听客户端的连接请求了。 在SpringBoot内部主要是引用了embedde...转载 2020-01-09 10:34:41 · 1673 阅读 · 0 评论 -
什么是微服务
微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。在所...转载 2020-01-09 10:33:37 · 178 阅读 · 0 评论 -
spring与tomcat的关系逆袭前后的设计分析
https://blog.csdn.net/herriman/article/details/103646985简介 Tomcat与spring是最常用的东东。本文以Tomcat代表webServer,对比了从Tomcat这样的webServer,来启动spring应用,和最新的springboot启动Tomcat的源码实现过程。加深了对两个系统的了解,从大的方向上学习了系统之间如何...转载 2020-01-08 18:47:16 · 1755 阅读 · 0 评论