
JAVA编程相关
文章平均质量分 62
qq_31459039
越努力越幸运
展开
-
使用Charles进行移动APP抓包分析
解方式解压charles_3.11.4_Crack.rar,将其中的charles.jar替换掉Charles安装路径中(lib目录下)的charles.jar即可https://www.cnblogs.com/gopark/p/8377880.html转载 2019-10-14 17:57:38 · 180 阅读 · 0 评论 -
List 转换成以逗号分割的String字符串
1、使用谷歌的Joiner(代码超级短)import com.google.common.base.Joiner; import java.util.ArrayList;import java.util.List; public class Convert { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.转载 2021-01-04 16:35:53 · 12763 阅读 · 0 评论 -
java list排序的三种方式
1.使用 Collections 工具类中的 sort() 方法 参数不同: void sort(List list)在自定义类User里面实现Comparable<User>接口,并重写抽象方法compareTo(Student o); void sort(List list, Comparator c) 第二个参数为了省事,可以直接使用匿名内部类 //studentsList本身元素会改变 studentsList.sort(Com.原创 2020-12-10 10:30:51 · 3372 阅读 · 1 评论 -
yapi安装部署及使用
window下部署yapiYApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台。环境要求nodejs(尽量最新版本) mongodb(尽量最新版本)1、安装nodehttps://www.runoob.com/nodejs/nodejs-tutorial.html2、安装mongodbhttps://www.runoob.com/mongodb/mongodb-tutorial.html3、下载Yapihttps://gitee.com/mirrors/转载 2020-10-10 14:39:12 · 9633 阅读 · 1 评论 -
mybatis 自定义分页插件
https://blog.youkuaiyun.com/weixin_37139197/article/details/101539995转载 2020-03-29 13:55:31 · 302 阅读 · 0 评论 -
为什么不能用 isXXX
首先我们来看阿里巴巴的《Java开发手册》关于isXXX是怎么定义的吧:【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。我们再...转载 2020-01-05 23:26:21 · 538 阅读 · 0 评论 -
生成二维码
https://blog.youkuaiyun.com/qq_41879385/article/details/81429376https://blog.youkuaiyun.com/li1325169021/article/details/86538030转载 2019-12-29 19:56:06 · 160 阅读 · 0 评论 -
Windows 下 配置 ngrok ngrok使用教程
https://blog.youkuaiyun.com/qq_33404395/article/details/80788233https://blog.youkuaiyun.com/l631068264/article/details/41990409转载 2019-12-29 17:53:10 · 808 阅读 · 0 评论 -
如何设计一个本地缓存
https://juejin.im/post/5dd942e15188257324096fe7转载 2019-12-01 20:39:36 · 330 阅读 · 0 评论 -
牛逼哄哄的数据库连接池,底层原理是个啥?
每一次web请求都要建立一次数据库连接 , 建立连接是一个费时的活动,每次建立都得花费0.05s~1s的时间,而且系统还要分配内存资源。这个时间对于一次或几次数据库操作,或许感觉不出系统有多大的开销。可是对于现在的web应用,尤其是大型电子商务网站,同时有几百人甚至几千人在线是很正常的事。在这种情况下,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务...转载 2019-12-01 20:44:20 · 193 阅读 · 0 评论 -
spring启动时加载字典表数据放入缓存map
package com.anzhi.heifer.service.sys.impl;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map原创 2018-01-11 15:58:17 · 5223 阅读 · 0 评论 -
log4j2 使用详解
log4j记录log日志转载 2018-01-03 10:47:59 · 550 阅读 · 0 评论 -
java 获得枚举中的值
语法(定义) 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名原创 2018-01-11 16:38:45 · 12456 阅读 · 0 评论 -
Java的Date类与Calendar类
一:Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。 1.使用Date类代表当前系统时间 Date date = new Date(); System.out.println(date); 使用Date...转载 2018-02-01 16:57:26 · 331 阅读 · 1 评论 -
集合 判断是否为同一元素
总结:对于List集合,仅仅是通过判断两个对象的【equals】方法是否为true对于Hash系列的集合,是先判断对象的【hashCode】返回值是否相同,再判断对象的【equals】返回值是否为true对于Tree 系列的集合,是判断两个对象的【compareTo】方法的返回结果是否是0注意【Object】中的equals方法等同于==;默认不同对象调用hashCode方法返回的都是不同的整数。...转载 2018-02-26 18:19:13 · 689 阅读 · 0 评论 -
Java中的增强 for 循环 foreach+移除元素
JDK1.5中增加了增强的for循环 foreach (增强 for) 是 Java中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。在 Java 中还有比如 泛型、自动拆箱、自动装箱、内部类、枚举等等。 foreach 是用来对数组或者集合(collection接口下的集合L...转载 2018-02-12 16:48:57 · 2252 阅读 · 0 评论 -
Collections工具类的用法
Collections工具类提供了大量针对Collection/Map的操作,总体可分为四类,都为静态(static)方法:测试数据: List<String> list = new ArrayList<String>(); list.add("b张三"); list.add("d孙六"); list.add("...翻译 2018-02-27 10:52:39 · 285 阅读 · 0 评论 -
泛型的基本使用
泛型: 就是一种把指定数据类型的工作推迟到创建对象或者调用方法的时候的特殊的类型 , 是一种参数化类型 * 格式: * <数据类型> * 数据类型: 必须是引用数据类型 * * 泛型的好处: * a: 把运行期的错误提前到了编译期 * b: 省去了向下转型 * c: 去掉了黄色警告线 */ 泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方...原创 2018-02-28 16:34:14 · 139 阅读 · 0 评论 -
List遍历:for,foreach Iterator 速度比较
结论:如果是ArrayList,用三种方式遍历的速度是for>Iterator>foreach,速度级别基本一致; 如果是LinkedList,则三种方式遍历的差距很大了,数据量大时越明显(一般是超过100000级别),用for遍历的效率远远落后于foreach和Iterator,Iterator>foreach>>>for; 模拟100000条数据,放入Arr...原创 2018-03-01 15:40:29 · 7684 阅读 · 1 评论 -
哪种Map遍历方法更优
我们都知道遍历Map一般有3种方法(不包括对应的迭代器方法),values(),keySet()和entrySet(),常见的是keySet用的多,简单容易理解,entrySet()是返回Map中的静态内部类Entry类类型的Set实例,当然了你别说forEach,forEach只是一种代替for(int i=0;;)和while()遍历的一种方式,底层也是用迭代器实现的,只不过把部分东西隐藏了...转载 2018-03-01 17:53:36 · 321 阅读 · 0 评论 -
数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目,它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值,至少在一段时间之后,技术可以很快得到提高。同时,它也是软考的重点,我们需要对这部分的内容进行一下总结。 我们先看一下数据结构和算法的整体内容。 ...转载 2018-03-01 17:59:11 · 309 阅读 · 0 评论 -
java基本类型对应的包装类 Byte Short Integer Long Boolean
Long类Long(long value) 构造新分配的 Long 对象,表示指定的 long 参数。Long(String s) 构造新分配的 Long 对象,表示由 String 参数指示的 long 值。int compareTo(Long anotherLong) 在数字上比较两个 Long 对象,比较大小boolean equals(Object obj) 将此对象...原创 2018-03-16 15:47:04 · 1349 阅读 · 0 评论 -
Java:如何正确地使用异常详解
Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。Java异常机制用到的几个关键字:try、catch、finally、throw、throws。try ...转载 2018-03-18 16:53:37 · 766 阅读 · 0 评论 -
JavaBean中布尔类型使用注意
javaBean中,要设置或获取某个property的值,就需要相应的get和set方法,对于primitive和自定义类类型的属性(如:property),getter和setter方法就是getProperty和setProperty(第一个字母变大写,前面再加get或set)。对于类型为 boolean的属性(不是Boolean),getter方法还可以写为isProperty(getPro...转载 2018-03-18 22:28:30 · 943 阅读 · 0 评论 -
java 常用工具类
Apache Commons包估计是Java中使用最广发的工具包了,很多框架都依赖于这组工具包中的一部分,它提供了我们常用的一些编程需要,但是JDK没能提供的机能,最大化的减少重复代码的编写。org.apache.commons.lang3 为加强版的 org.apache.commons.lang 功能更加丰富一. org.apache.commons.lang3.StringUtil.....................原创 2018-03-14 18:27:05 · 4779 阅读 · 0 评论 -
java复制对象 commons-beanutils. BeanUtils
关于bean复制,如果属性较少,建议直接写个方法完成get/set即可。如果属性较多,可以自己采用反射实现一个满足自己需要的工具类,或者使用spring的那个beanutils类,不建议使用commons-beanutils包中的那个BeanUtils类,刚看了下,这个类对于内部静态类的对象复制也会出现问题,检验太复杂了,常会出现一些诡异的问题。毕竟我们bean复制一般就是简单的属性copy而已。...原创 2018-03-14 16:08:34 · 1750 阅读 · 0 评论 -
Java基本数据类型的比较
int 是在栈里创建的,Integer是在堆里创建的。栈里创建的变量要比在堆创建的速度快得多== 可以比较基本数据类型 , 也可以比较引用数据类型 equals: 只能比较引用数据类型, 默认比较的是地址值*(string类中重写了eqals方法),如果我们想建立自己的比较方式, 需要重写equals方法通过对比字符串比较来理解,基本类型100通过包装类Integer包装后生产一个Integer...原创 2018-03-27 18:51:46 · 9983 阅读 · 0 评论 -
StringUtils的相关操作
List、Set、 数组等转字符串public static void main(String[] args) { String str = ""; // list转字符串 List<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"原创 2018-03-28 16:10:00 · 163 阅读 · 0 评论 -
用window的画图工具制造不同尺寸的图片
原创 2018-09-06 15:52:06 · 464 阅读 · 0 评论 -
Log4j2 简明教程
一、概述log4j2官方文档内容非常多,要一次性了解全部是不可能的。正确的步骤应当是先了解最常见的配置,当发现原有知识无法解决问题,再重新查看文档看有没有合适的配置。下面将从文件结构入手,再到简单的实例,从实例入手分析常见的配置的用途,其中涉及其中包括Appenders, Filters, Layout, Lookups的知识,最后根据学习。可以搜索到的关于log4j2的教程非常少,这篇...转载 2019-01-09 14:29:13 · 346 阅读 · 0 评论 -
idea中如何将单个java类导出为jar包文件?
idea作为一个java开发的便利IDE工具,个人是比较喜欢的,今天来探索个小功能: 导出单个类文件为jar包! 偶有这种需求,就是某个类文件独立存在,但是需要将其导出为jar,供别人临时使用,或者一些必要的场合,如: 编写一些特殊的agent使用。 不想为某个单个文件写一个项目,就想把代码加载在某个项目的角落里,怎样将该单个类文件导出为jar包呢?1. 写好功能工具类,如...转载 2019-04-09 15:54:46 · 17506 阅读 · 0 评论 -
为什么重写equals()就尽量要重写hashCode()方法?
以下为本文目录:首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?我们再来看equals()方法和hashCode()方法两者有什么关系?最后来看为什么重写equals()就一定要重写hashCode()方法?1、首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?equals()方法:很明显,该方法就是用来判断两个对象是...转载 2019-04-26 16:09:44 · 773 阅读 · 1 评论 -
从字节码角度分析 i++ 和 ++i 实现
最近看到个面试题: public static void f4() { int j=0; for(int i=0;i<100;i++){ j = j++; } System.out.println(j); }输出结果是0,如果换成j++,那么输出100,这是为什么?对于这种问题,其...转载 2019-04-26 11:37:59 · 200 阅读 · 0 评论 -
java list排序的两种方式(实现Comparable接口和Collections.sort重载方法)
转载自:http://blog.youkuaiyun.com/zxy_snow/article/details/7232035用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,Comparable可以认为是一个内比较器(排序接口),实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Com...转载 2019-04-17 15:56:09 · 1184 阅读 · 0 评论 -
什么是Java中的自动拆装箱 integer
本文主要介绍Java中的自动拆箱与自动装箱的有关知识。1、基本数据类型基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。Java基本类型共有八种,基本类型可以分为三类:字符类型char布尔类型boolean整数类型...转载 2019-04-26 18:36:39 · 256 阅读 · 0 评论 -
Caused by: com.alibaba.fastjson.JSONException: autoType is not support
大体原因就是使用fastjson的时候:序列化时将class信息写入,反解析的时候,fastjson默认情况下会开启autoType的检查,相当于一个白名单检查吧,如果序列化信息中的类路径不在autoType中,反解析就会报上面的com.alibaba.fastjson.JSONException:autoType is not support的异常打开autotype功能1、JVM启动...原创 2018-05-10 11:22:11 · 1934 阅读 · 0 评论 -
算法面试中:时间复杂度和空间复杂度是什么?
时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度。这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示...转载 2019-04-28 15:32:39 · 4332 阅读 · 0 评论 -
java永久代,元空间,常量池,方法区详解
1,java内存模型简介《深入理解java虚拟机》里将java内存分为如下五个模块:堆-所有线程共享的,主要用来存储对象。其中,堆可分为:新生代和老年代两块区域。使用NewRatio参数来设定比例。对于年轻代,一个Eden区和两个Suvivor区,使用参数SuvivorRatio来设定大小;Java虚拟机栈/本地方法栈-线程私有的,主要存放局部变量表,操作数栈,动态链接和...转载 2019-04-28 17:18:20 · 569 阅读 · 0 评论 -
关于Spring+mybatis+PageHelper分页插件PageHelper的使用
把插件jar包导入项目(具体上篇有介绍http://blog.youkuaiyun.com/qq_33624284/article/details/72821811) spring-mybatis.xml文件中配置<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class=...转载 2019-04-19 15:13:48 · 208 阅读 · 0 评论 -
电商网站的秒杀是如何实现的
秒杀与其他业务最大的区别在于:秒杀的瞬间,(1)系统的并发量会非常的大(2)并发量大的同时,网络的流量也会瞬间变大。关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分离,把静态页面直接缓存到用户的浏览器端,所需要的数据从服务端接口动态获取。这样会大大节省网络的流量,再加上CDN,一般不会有大问题。关于(1),这里的核心问题就在于如何在大并发的情况下能保证DB能扛得住压力,因为大...转载 2019-04-19 17:20:02 · 162 阅读 · 0 评论