Object转List public static <T> List<T> castList(Object source, Class<T> clazz) { List<T> result = new ArrayList<>(); if(source instanceof List<?>) { for (Object o : (List<?>) source) { ...
Java中将异常Exception转化为String字符串 public static String getExceptionToString(Throwable e) { if (e == null){ return ""; } StringWriter stringWriter = new StringWriter(); e.printStackTrace(new PrintWriter(stringWriter)); return stringWr...
Redis原理之String底层数据结构SDS(Simple Danamic String) Redis是C语言开发的,但是Redis字符串没有直接使用C语言的字符串,学过c语言的朋友应该都知道,C语言字符串是以"\0"结尾的,那为什么Redis没有直接使用C语言的字符串,而是使用简单动态字符串SDS(Simple Danamic String)?1、SDS(Simple Danamic String)数据结构struct sdshdr{ //记录buf数组中已使用字节的数量 //等于 SDS 保存字符串的长度 int len; //记录 buf 数...
RedisTemplate过期时间问题 Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置: redis最大内存不足时,数据清除策略,默认为"volatile-lru"。 In Redis 2.6 or older the command returns -1 if the key does not exist or if the key exist but has no associated expire. Starting with Redis 2.8 the retur..
解决response.getOutputStream()输出页面中文乱码 import org.apache.commons.io.IOUtils @RequestMapping(value = "aaa", method = {RequestMethod.POST, RequestMethod.GET})public void downloadResult(@NotNull String uploadId, HttpServletResponse response) { response.setContentType("text/html;charse.
ElasticSearch集群黄色原因以及解决方案 1、原因ElasticSearch集群黄色,表示主分片数据正常,至少有一个索引的副本分片未分配给节点,存在副本数据丢失Elasticsearch采用默认配置(5分片,1副本),实际只部署了单节点集群 分配过多的副本分片的数量 而节点数不够 ,节点数应满足 N > = R + 1 其中: N——集群中节点的数目; R——集群中所有索引的最大副本数目 磁盘空间不足也会导致群集状态为黄色2、解决方案针对原因1,2添加节点数即可。...
Git分支重命名操作 1、新命名分支: git branch -m oldBranch newBranch;2、将重命名后的分支推送到远程 git push origin newBranch;3、删除远程分支 git push --delete origin oldBranch。
IO多路复用 多路复用就是通过一种机制,复用同一个线程可以监听多个描述符,一旦某个描述符就绪(可以读/写),就通过某种方法(select、poll、epoll)就通知用户进程进行相应read、write操作。在select,poll,epoll出现之前,最初处理多路复用的方法是:通过非阻塞忙轮询I/O的方式处理多个描述符特点:不停的从头到尾地轮询所有描述符缺点:如果所有的描述符都没有数据返回,cpu空转,浪费cpu资源。1、select:为了解决原始处理方式的cpu空转浪费资源问题,引入了一个sele...
JVM之三色标记法(5) 三色标记法根据可达性分析,从GC Roots开始进行遍历访问,按“是否访问过”这个条件标记成以下三种颜色:黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部访问过了。 (自己标记完了,自己的孩子(包括多个孩子)也标记完了,都不是垃圾)灰色:本对象已访问过,但是本对象 引用到 的其他对象 尚未全部访问完。全部访问后,会转换为黑色。(自己标记完了,自己的孩子(包括多个孩子)没有标记)白色:尚未访问过,对象即为GC Roots 不可达,可以进行回收。1、CMS和G1都存在并发标...
Spring事务的传播行为 传播行为一:事务方法A调用非事务方法B,AB都具有事务。 出现异常数据同时回滚。 //方法A 开启事务 @Transactional public int A(PartFamily record) { Style style=new Style("55566",8); partFamilyMapper.save(record); ...
面试题:层级遍历二叉树,包含前序、中序、后序遍历 /** * 二叉树结构 */ private static class TreeNode { // 值 int value; // 左节点 TreeNode left; // 右节点 TreeNode right; public TreeNode(int value, TreeNode left, TreeNode right) { this.value = value; this.left = left; this.right = righ...
面试题:链表前半部分正序交叉后半部分逆序 /** * 给定一个链表 L: L0->L1->L2->L3->L4....Ln * 给出这样的链表:L: L0->Ln->L1->Ln-1->L2...... * 例如1: * 输入:head->1->2->3->4->5 * 输出:head->1->5->2->4->3 * 例如2: * 输入:head->1->2->3->4->5->6 *.
面试题:按大小合并k个有序链表 /** * 按大小合并k个有序链表 * * 例如 * 输入 * 链表1:head->1->3->5->7 * 链表2:head->2->4->5->8->10->12 * 链表3:head->1->2->3 * 输出:head->1->1->2->2->3->3->4->5->5->7->8->10->12 */.
面试题:交替合并两个链表 交替合并两个链表 给定一个链表 L1: L0->L1->L2->L3->L4....Ln给定一个链表 L2: Lm->Lm+1->L....LM+n例如 输入 链表1:head->1->3->5->7 链表2:head->2->4->6->8->10->12 输出:head->1->2->3->4->5->6->7->8->10->.
面试题: 检查链表是否存在环,并计算环的长度以及环的起点位置 /** * 链表结构 */ public static class ListNode { // next指针 ListNode next; // value值 int value; // 构造方法 public ListNode(int val) { next = null; value = val; } } /** * 检查链表是否存在环,并计算环的长度以及环的起点 * * 判断一个链表是否存在环有一个简单的方法,就是使用一个...
面试题:反转单链表 /** * 链表结构 */ public static class ListNode { // next指针 ListNode next; // value值 int value; // 构造方法 public ListNode(int val) { next = null; value= val; } } public static void main(String[] args) { ListNode head = new List...
MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据? 相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰;volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰;volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰;allkeys-l
Redis的两种持久化RDB和AOF Redis持久化备份数据的方式有两种:RDB(Redis DataBase) 、 AOF(Append Only File).1、什么是RDB在指定时间间隔内,将内存中的数据集快照写入磁盘,存储在默认名为dump.rdb的文件中。(要注意,这个文件的位置取决于redis-server启动时的路径)在redis进行rdb持久化数据时,会fork一个完全一样的进程作为redis的子进程,由子进程来完成数据写入磁盘的工作。在这个过程中,只有子进程来负责IO操作,主进程仍然处理客户端的请求,这就确保了.
ElasticSearch IK分词器 ik有两种分词模式1、ik_max_word会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、 华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。2、ik_smart 会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。对于ik分词器建议是索引时使用ik_max_word将搜索内容进行细粒度分词,搜索时使用ik_smart提高搜索精确性。...
ElasticSearch增加字段并对历史数据赋初始值 elasticsearch如何为指定索引中类型添加字段并赋初值,就像数据库中添加字段为老的数据赋初始值一样。用update_by_query结合script可以办到,例如:POST my_index/_update_by_query{ "script": { "lang": "painless", "inline": "if (ctx._source.like== null) {ctx._source.like= 'i like it'}" }} @Test...
ElasticSearch 已存在mapping文档新增字段 @Test public void tesPutMapping() { // 添加新字段 PutMappingRequest putMappingRequest = new PutMappingRequest(INDEX_NAME).type("_doc"); Map<String, Object> like = new HashMap<>(); like.put("type", "keyword")...
vue watch深度监听多个属性 watch :{ //监听type的变化 'temp.type': { handler(type,old) { //这里写你的业务逻辑 console.log('obj.a changed', type); if (type == 1) { this.temp.beforePushTitle = ""+ this.temp.liveName +" 速来↓↓↓" this.temp.after.
vue table显示两位小数 <el-table-column align="center" label='推荐度' > <template slot-scope="scope"> {{scope.row.recommend.toFixed(2) }} </template> </el-table-column>
Java正则匹配提取内容 /** * 正则 */ public final static String RGEX = "#@(.*?)@#"; /** * 正则表达式匹配两个指定字符串中间的内容 * @param soap * @return */ public static List<String> getSubUtil(String soap, String rgex){ List<String>...
Redis为什么是单线程还这么快? 1、Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽;2、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU;3、采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket连接,复用-指的是复用一个线程。...
大List分批次执行任务循环处理 public static void main(String[] args) { List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9)); //一次执行n个 int n = 4; int start = 0; int end = n; int num ...
Mysql关于时间范围内重合的数据查询 2个时间:a_start, a_endb_start, b_end公式:a_start <= b_end and a_end >= b_startMybatis条件 <if test="onlineTime != null and offlineTime != null" > <![CDATA...
vue拖拽 <template> <div class="fluid container"> <div class="form-group form-group-lg panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"&...
Springboot以jar形式部署(内置Tomcat) ①使用maven打成jar包;②使用rz -be命令拷贝到linux服务器上,注意:如果服务器存在该jar包,则不会拷贝成功;③使用java -jar boot-xxx.jar命令启动服务。...
http中requestbody参数json多层级问题 Map<String, Object> map = new HashMap<>(); map.put("timestamp", timestamp.toString()); map.put("item_type", 1001); map.put("item_id", "xxxx"); map.put("title", "xxxx"); ...
BIO server端 public static void main(String[] args) throws IOException { // 创建服务端 ServerSocket serverSocket= new ServerSocket(); serverSocket.bind(new InetSocketAddress(9600)); System.out.pri...
Git设置用户名称和邮箱 git 修改当前的project的用户名的命令为:git config user.name 你的目标用户名;git 修改当前的project提交邮箱的命令为:git config user.email 你的目标邮箱名;如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,--global,代表的是全局。 命令分别为:git config --global...
RabbitMq重试次数和幂等性 当消费者配出异常,也就是说当消息消费不成功的话,该消息会存放在rabbitmq的服务端,一直进行重试,直到不抛出异常为止。如果一直抛异常,我们的服务很容易挂掉,那有没有办法控制重试几次不成功就不再重试了呢?答案是有的。我们在消费者application.yml中增加一段配置。spring: rabbitmq: # 连接地址 host: 127.0.0.1 # ...
Git如何回到拉取之前的代码 1、运行git reflog命令查看你的历史变更记录;2、git reset --hard 2aee3f8Git基础命令总结请参考:https://blog.csdn.net/MrLiar17/article/details/60875452
ThreadPoolExecutor线程池 构造方法: public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue<Runnable> workQueue); public ThreadPoolExecutor(int c...
windows下Log4j2打印日志报错 ERROR Unable to create file ${sys:catalina.home}/logs/upload.log windows下Log4j2打印日志报错Connected to the target VM, address: '127.0.0.1:52594', transport: 'socket'2019-11-28 17:53:24,842 main ERROR Unable to create file ${sys:catalina.home}/logs/upload.log java.i...
利用了移位操作,取第几位的值(二进制) public static void main(String[] args) { Integer dbCLProgress =10; Integer j=4; // 利用了移位操作,取第几位的值 先进行右移n-1,与1进行&运算 Integer status=(dbCLProgress >> (j-1)) & 1; System.out.p...
某个数转化为二进制时1的个数 /** * 取得k转化为二进制时1的个数 * @param k * @return */ private static Integer getNumber(Integer k) { Integer count=0; while(k!=0){ k=k&(k-1); count++; } return count; }...
分布式锁和@Transactional注解一起使用锁失效问题(并不是真正的失效,只是读到数据有问题) 锁失效并不是真正的失效,只是读到数据,读取的数据库数据不是最新的。下面今行程序分析 @Override @Transactional public ReceiveH5ActivityPrizeResponse receive(ReceiveH5ActivityPrizeRequest request) { logger.info("getH5Acti...
InputStream转File,出现文件不完全 1、文件处于磁盘上或者流处于内存中 public static void main(String[] args) throws Exception { InputStream is = new FileInputStream(new File("C:/Users/Desktop/aaa.png")); byte[] buffer = new byte[i...
在element-ui中的table加入可跳转的链接 <el-table-column align="center" label='url' > <template slot-scope="scope"> <a :href="scope.row.url" target="_blank" class="buttonText">{{scope.row.url}}</a&g...
Git基础命令之git rebase命令 1、合并代码 git rebase origin/master:拉取分支后,合并他人提交的代码,并且没有merge信息的污染记录(不同于merge操作) 输入 git rebase --abort ,回到最初的状态(rebase之前的状态) git rebase –continue继续操作 git rebase --skip,git status如果不显示冲突文...
Mysql的一致性非锁定读和一致性锁定读 一致性非锁定读一致性非锁定读指的是:要读取的行被加了X锁(排它锁),这时候其他事务读操作不会等待行上锁的释放,而是会读取行的一个快照数据。如下图所示:需要注意的一些点:①每行记录可能有多个版本②在事务隔离级别READ COMMITTED (简写RC)和 REPEATABLE READ(简写RR)下,InnoDB存储引擎使用一致性非锁定读。但是对快照的定义却不相同。在RC下,...
Linux压缩gzip日志查看 1、linux不解压超大日志gz包直接查找特定内容#########首先过滤Exception信息#########gzip -dc catalina.out-2019-08-03.gz | grep 'Exception' | more########打印Exception的行数############### gzip -dc catalina.out-2019-08-02.gz ...
Leetcode169 :求众数(求数组中超过一半的数字) 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。解法一:二层for循环public static int majorityElement(){ int[] element={1,1,1,4,1,4,4};//数据 int majorityElement=0; int max=...
[Leetcode] 第319题 灯泡开关 一、题目描述初始时有n个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第i轮,每i个灯泡切换一次开关。 对于第n轮,你只切换最后一个灯泡的开关。 找出n轮后有多少个亮着的灯泡。示例:输入: 3输出: 1 解释: 初始时, 灯泡状态 [关闭, 关闭, 关闭]...
计算上周一开始时间戳 计算上周一开始时间戳: public static Long geLastWeekMonday(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); // 获得当前日期是一个星期的第几天 int dayWeek = cal.get(C...
vue单选框显示默认选中问题 传入temp.status=0,默认选中无效 <el-form-item prop="status"> <el-radio v-model="temp.status" label=1 border size="medium">通过</el-radio> <el-radio v-model="te...
获取上个月第一天和最后一天 获取上个月第一天Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); ...
获得一天最小和最大毫秒数 获得某天最大时间 2019-07-18 23:59:59public static Date getEndOfDay(Date date) {LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());;Local...
ZooKeeper集群搭建以及Leader选举过程 单机zk会带来那些问题?zk宕机后不会影响现有consumer和provider之间的调用,但是新的provider想要注册到注册中心上是不行的,因为zk已经宕机了。因此单点zk一旦宕机就会影响新的provider的注册和新的consumer去订阅可用列表。因此我们需要将zk搭建成集群的,那么问题又来了,搭建集群时搭建几台呢?建议是搭建奇数台,最少搭建三台,搭建偶数可以吗?是可以的,但是在...
kafka的高可用架构原理 每一个topic都有多个Partition,每个Partition负责存储这个Topic一部分的数据。在kafka集群中,每个Partition都有多个副本,其中一个副本叫做leader,其他的副本叫做follower,如下图。假设一个Topic拆分为了3个Partition,分别是Partition0,Partiton1,Partition2,此时每个Partition都有2个副本。...
bootstorp查询时当前页的页码问题 bootstorp查询时当前页的页码问题,如果点击第三页或者其他非第一页数据时,不会自动默认返回第一页解决方法:function loadData() { $('#table').bootstrapTable('refreshOptions',{pageNumber:1}); $('#table').bootstrapTable('refresh', {query: ge...
POI下载Excel文件 maven依赖的jar <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version>...
js 去除最后一个逗号 js 去除最后一个逗号(value.substring(value.length-1)==',')?value.substring(0,value.length-1):value
SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题 后台代码: @RequestMapping(value = "/upload") public JSONObject fileUpload(HttpServletRequest request) { JSONObject resultJson = new JSONObject(); try { String fileNam...
Git撤销提交 git add命令会将工作目录中已修改的文件放到暂存区域,这时如果你又不想下次将这些内容push。那么你可以使用命令git reset HEAD <撤销的文件1> ...来取消暂存。例如:$ vim c.txt$ git add.c.txt$ git reset HEAD c.txt接着如果想放弃已经修改的内容,将某个文件恢复到上次commit的状态。只需要使用命令git...
nested exception is org.apache.ibatis.binding.BindingException: Parameter 'ids' not found. Available 接口List<OperationalLocation> getByIds(List<String> ids);xml配置文件<select id="getByIds" parameterType="java.util.List" resultMap="BaseResultMap"> SELECT <include refid...
vue input输入框联想输入 input 联想输入框<el-form label="新管理员:" ref="transferDataForm"> <!-- key="temp.useridList" @change="changeUserid" --> <el-select v-model="transferDialogForm.entity.createBy" ...
Windows之——pid为4的system进程占用80端口,Nginx无法启动的解决办法 转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48213403因为Apache无法启动的原因,用netstat命令查看了一下80端口是否被占用了,如下C:\Users\Maple>netstat -ano | findstr 0.0.0.0:80TCP 0.0.0.0:80 0.0.0.0:0 LISTENING ...
Lambda表达式之sort排序 List<SigninImg> signinImgList=new ArrayList<>(); for (int i=0;i<10;i++){ SigninImg img=new SigninImg(); img.setId((long)i); img.setS...
Git双分支开发如何不提交代码切分支 假如你在dev_2.0分支正在进行开发,此时dev_1.0分支出现bug,那如何不提交dev_2.0分支内容并切换到dev_1.0分支上,在当前分支上执行$ git stash命令,将当前分支存起来。这时候再执行 $ git status 命令,显示没有东西需要提交,这个时候你就可以切换到dev_1.0分支上了,在dev_1.0分支上解决bug后,commit、push之后,执行git ...
设计模式之代理设计模式(Proxy)之 (3)动态代理(CGLIB) cglib代理前提条件:需要引入cglib的jar文件,由于Spring的核心包中已经包括了Cglib功能,所以也可以直接引入spring-core-xxx.jar 目标类不能为final 目标对象的方法如果为final/static,那么就不会被拦截,即不会执行目标对象额外的业务方法/** 接口*/public interface ISinger { void si...
设计模式之代理设计模式(Proxy)之 (2)动态代理(JDK) 动态代理:在实现阶段不用关心代理类的具体实现,而是在运行时才生成代理对象(JAVA中是通过反射实现,具体见下文)平台或者三方库有提供。动态代理的扩展性更高,所以一般一些开源框架都会使用。/** 接口*/public interface ISinger { void sing();} /** * 目标对象Singer1 实现了某一接口 */public class ...
设计模式之代理设计模式(Proxy)之 (1)静态代理 代理模式是什么代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展。比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing()。 public class Singer{ public void sing(){ System.out.println("唱一首歌"); } }假如你希望,在唱歌前后还...
Git命令解决冲突 一般我们在合作开发一个项目的过程中,都会有分工,有时会两个人同时修改一个类,这样就会存在冲突。那么我们怎么去解决冲突呢?1、git pull 从仓库拉去远程代码,这时会冲突; 2、git commit 提交本次修改到本地仓库; 3、git pull 从仓库拉去远程代码,解决冲突; 4、git add 添加文件; 5、git commit提交合并冲突后的代码到本地仓库; 6、gi...
log4j2.xml文件的配置详解 log4j2.xml文件的配置大致如下:Configurationproperties Appenders Console PatternLayout File RollingRandomAccessFile Async Loggers Logger Root AppenderRef Configuration:为根节点,...
Sentinel实现监控数据持久化(1):Log4j日志输出到Kafka 背景:Sentinel实现监控数据持久化的功能Sentinel 控制台可以通过Sentinel 客户端预留的 API从秒级监控日志中拉取监控数据,并进行聚合。目前 Sentinel 控制台Dashboard中监控数据聚合后直接存在内存中,未进行持久化,且仅保留最近 5 分钟的监控数据。若需要监控数据持久化的功能,可以自行扩展实现MetricsRepository接口(0.2.0 版本...
Sentinel实现监控数据持久化(2):Log4j2日志异步输出到Kafka 背景:Sentinel实现监控数据持久化的功能Sentinel 控制台可以通过Sentinel 客户端预留的 API从秒级监控日志中拉取监控数据,并进行聚合。目前 Sentinel 控制台中监控数据聚合后直接存在内存中,未进行持久化,且仅保留最近 5 分钟的监控数据。若需要监控数据持久化的功能,可以自行扩展实现MetricsRepository接口(0.2.0 版本),然后注册成 S...
spring.BeanUtils与apache.BeanUtils对象属性copy的性能对比以及源码分析 版权声明:本文为博主转载文章 https://blog.csdn.net/u010209217/article/details/848378211. 对象属性拷贝的常见方式及其性能在日常编码中,经常会遇到DO、DTO对象之间的转换,如果对象本身的属性比较少的时候,那么我们采用硬编码手工setter也还ok,但如果对象的属性比较多的情况下,手工setter就显得又low又效率又低。这个时候我...
SpringBoot项目启动时初始化缓存资源 在实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池、提前加载mysql数据库到缓存等。Springboot中CommandLineRunner接口的Component会在所有Spring Beans都初始化之后SpringApplication.run()之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作。package com.xf.z...
Lambda表达式之list收集集合某一元素到另一集合 List<CourseLessonExt> taglist = map.get(CourseLessonExtTypeEnum.TAG.getIndex());List<String> tagIdList=taglist.stream() .map((clExt)->clExt.getRefId()).collect(Collectors.toList()...
实现Redis分页查询 java https://blog.csdn.net/weixin_36563269/article/details/80804916https://blog.csdn.net/hadoopxsy/article/details/80009413https://blog.csdn.net/tianluke1234/article/details/80431222https://blog.csd...
Git添加.gitignore文件 git中若不想把一些文件提交到版本库,可以在工作区的根目录下创建.gitignore文件忽略指定的文件。使用touch .gitignore命令,创建.gitignore文件。 添加要忽略的文件,进行.gitgnore文件编辑,例如添加如下: .idea/*.iml.gitignore ...
JDK1.8 报错java.io.IOException: invalid constant type: 18 Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18 at javassist.CtClassType.getClassFile2(CtClassType.java:204) at javassist.compiler.MemberResolver.lookupMethod(...
Lambda表达式之List条件filter过滤 List<CourseLessonExt> Taglist=courseLessonExtList.stream() .filter(CourseLessonExt->(CourseLessonExt.getType()==3)) .collect(Collectors.toList());
SpringCache之 @CacheEvict allEntries注解使用CacheEvict注解,会清除对应的Key值得缓存,分为以下两种情况:如果使用allEntries为true时,测试会把所有value对应的缓存全部删除; 如果allEntries为false(默认),此时只会删除该key值的缓存; @CacheEvict(value="User",key="#id.toString()",allEntries=tr...
SpringCache之 @CachePut 使用CachePut注解,该方法每次都会执行,会清除对应的key值得缓存(或者更新),分为以下两种情况:如果返回值null,下次进行该key值查询时,还会查一次数据库,此时相当于@CacheEvict注解; 如果返回值不为null,此时会进行该key值缓存的更新,更新缓存值为返回的数据;分析:情况一返回值为null: //使用Redis缓存 @Cacheable(val...
Nginx命令 windows:在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx cd 改变工作目录start nginx 启动nginxnginx -s stop 强制关闭 nginx -s quit 安全关闭 nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效 nginx -s reopen 重新打开日志文件ngin...
Nginx反向代理配置 Nginx反向代理配置server { listen 8000; server_name localhost; autoindex on; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Credentials true; add_header Access-C...
IDEAL破解 1、去官网下载并安装 idea地址:https://www.jetbrains.com/idea/download文件有点大,耐心等待一会儿。2、下载破解(crack) jar 包地址 http://idea.lanyus.com/jar/JetbrainsCrack-2.7-release-str.jar如果失效,去下面这个网站 http...
Leetcode:4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中...
算法(3)-二分查找 总共有n个元素,每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。由于n/2^k取整后>=1,即令n/2^k=1,可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O()=O(logn) public static boolean binarySearch(int[] a,int k){ ...
Leetcode:3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...
Leetcode:2.两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...
Leetcode:1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一: ...
JVM之类加载器机制(4) 类加载:是指把类的.class二进制文件加载到JVM中,创建一个java.lang.Class对象。类的生命周期:加载、连接、初始化、使用和卸载,其中前三部是类的加载的过程。类加载器有三种默认使用的类加载器:Bootstrap类加载器、Extension类加载器和Application类加载器。1) Bootstrap类加载器 – JRE/lib/rt.jar它是所有...
JVM之垃圾收集器(3) JDK1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)JDK1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)JDK1.9 默认垃圾收集器G1垃圾搜集器:串行搜集器(serial collector):Serial、Serial Old并行搜集器(parallel co...
Java对象的对象头、偏向锁、轻量级锁、重量级锁 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Object Header)、实例数据(Instance Data)和对齐填充(Padding)。对象头(Object Header) JVM的对象头包括二/三部分信息:1、Mark Word;2、 类型指针;3、数组长度(只有数组对象才有) 1、Mark Word用于存储对象自身的运行时数据, 如哈希码(Ha...
设计模式之策略设计模式(Strategy) 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。 这个模式涉及到三个角色:● 环境(Context)角色:持有一个Strategy的引用。● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。● 具体策略(ConcreteStrategy)角...
设计模式之单例设计模式(Singleton) 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。基本的实现思路单例模式要求类能够有返回对象...
加密工具类导致内存溢出 异常信息如下: /** * 私钥解密 * @desc * @param data * @param privateKey * @return * @throws Exception */ public static byte[] decryptByPrivateKey(byte[] data, ...
面试题:删除第n个链表节点和删除倒数第n个链表节点 第一题:删除第n个节点 思路:如果要删除第n个节点,只需要第n-1个节点next指针指向n+1节点即可。 /** * 删除第n个节点 * @param n */ public void deleteNode(int n){ if(n>size||n<0){ throw new IndexOut...