java
houjx3
这个作者很懒,什么都没留下…
展开
-
递归算法
递归递归的3个条件:一个问题的解可以分解为几个子问题的解。 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样。 存在递归终止条件。其实在代码当中只需要2个return终止条件返回 返回子问题(F(n)的计算方式)。示例:斐波那契数列 0、1、1、2、3、5、8、13、21、34。。。。。。数学上的递推方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)要求:求第n个数是多少?分析:假设求第6个数原创 2021-03-02 10:17:14 · 167 阅读 · 0 评论 -
java首字母大小写转换
public class SwitchCaseUtil { //32为是char类型大小写的差数,-32是小写变大写,+32是大写变小写 /** * 首字母小写 * @param str * @return */ public static String lowerFirstCase(String str){ char[] chars = str.toCharArray(); //首字母小写方法,大写会变成..原创 2021-02-07 14:20:12 · 4078 阅读 · 2 评论 -
如何定义函数式接口,从而使用lambda表达式.
1.注意下图中的4个黑色图标,图标1是原方法,现在要将其改造成函数式接口,从而可以使用lambda表达式按照图中红色字从上往下一步一步来即可,图片为引用,如有侵权,联系我,会删除原创 2021-01-27 19:28:41 · 350 阅读 · 0 评论 -
throw new Exception("xxx"); 事务没有回滚
手动抛异常事务不会滚问题,上网查throw new RuntimeException("xxx"); 事务回滚throw new Exception("xxx"); 事务没有回滚记一下,原理暂时先不管原创 2018-11-30 16:05:24 · 2534 阅读 · 0 评论 -
扫码登录的实现(第一版)
整个流程:1.pc进入登录页面,点击扫码登录,点击事件向服务器发送请求获取唯一标识,(服务器生成唯一标识,以该标识为key,以创建一个新码对象为value,放入redis)2.页面根据获取的唯一标识生成二维码(用qrcode.js),然后开始轮询( 将唯一标识发送到服务器,以唯一标识为key,从redis查询对应的码对象,查看二维码(码对象的是否被扫描字段)是否被扫描 )3.用户用ap...原创 2018-11-21 15:41:22 · 344 阅读 · 0 评论 -
URL编码问题java.io.IOException: Server returned HTTP response code: 400 for URL: http://
今天搞了段代码,在本地跑的好好的,搞到测试服务器就不行了,上网查了下原来是url编码的问题:1.url该编码的编码一定要编码,否则如果存在空格就会报400错误,那么什么样的url是该编码的呢? . url中有空格等特殊字符的 . URL中有中文的2.编码要只对参数编码,不要对整个url进行编码,因为如果对整个url编码的话会把url中的"/","&"等字...原创 2018-11-14 13:41:37 · 23903 阅读 · 1 评论 -
获取项目根路径
获取项目根路径, 其中xxx是当前的类名 1.根据上下文获取 ServletActionContext.getServletContext().getRealPath(""); 或getRequest().getSession().getServletContext().getRealPath(""); 这种在普通情况下是正常可以用的,但是在定时器里就不好使了,会...原创 2018-11-14 10:13:31 · 3838 阅读 · 0 评论 -
代码思想
1.替换计算对象思想,计算前找出要计算的对象,减少代码冗余DeliveryType calcDeliveryType = null;//计算的运送方式,用来避免冗余代码 if(thisDeliveryType != null){//找到了对应地址的运送方式 calcDeliveryType = thisDeliveryType;}else if(thisdefaultDeliv...原创 2018-11-04 09:14:56 · 490 阅读 · 0 评论 -
全部引入思想CGLib动态代理报错org.objectweb.asm.Type
代码写的很欢,没有任何语法错误,Ctrl+F11(运行)一下,懵逼了…… CGLib动态代理报错org.objectweb.asm.Typeorg/objectweb/asm/TypeException in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type at net.sf.cglib.c...转载 2018-10-16 13:25:35 · 511 阅读 · 0 评论 -
redisTemplate操作
private RedisTemplate redisTemplate; public void setRedisTemplate(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } //存值 public void testSetValues(){ redisTemplate....原创 2018-12-01 08:54:45 · 626 阅读 · 0 评论 -
分布式文件服务器FastDFS
什么是FastDFSFastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker s...转载 2019-03-05 20:50:25 · 151 阅读 · 0 评论 -
Redis、Jedis、Spring Data Redis简介
4.2 Redisredis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、memcached 、MongoDB等。4.3 JedisJedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如J...转载 2019-03-16 13:10:43 · 259 阅读 · 0 评论 -
Spring Data Redis入门小Demo
4.5.1准备工作(1)构建Maven工程 SpringDataRedisDemo(2)引入Spring相关依赖、引入JUnit依赖 (内容参加其它工程)(3)引入Jedis和SpringDataRedis依赖<!-- 缓存 --><dependency> <groupId>redis.clients</groupId&...转载 2019-03-18 20:09:37 · 87 阅读 · 0 评论 -
分布式ID生成器
我们采用的是开源的twitter( 非官方中文惯称:推特.是国外的一个网站,是一个社交网络及微博客服务) 的snowflake算法。(1)将“配置文件/工具类”下的IdWorker.java 拷贝到common工程package util;import java.lang.management.ManagementFactory;import java.net.InetAd...转载 2019-03-31 16:01:07 · 102 阅读 · 0 评论 -
项目对接跨域问题
如果甲向乙发送数据,乙接收到甲发的数据,但是甲报跨域,那问题就是甲的服务器不允许跨域,设置一下nginx允许跨域就行原创 2019-04-25 15:34:03 · 172 阅读 · 0 评论 -
知识点
目录分离算法struts2文件上传<div> <button onclick="rusure(this)" class="sub_button">提交</button> <button onclick="rusure(this)" class="sub_button1">提交1</button> <button...原创 2019-10-08 16:14:49 · 102 阅读 · 0 评论 -
递归汉诺塔
递归问题:递归要有三个要素:1.递归结束条件2.递归结束时的处理3.抽取重复的逻辑,剥离外壳(重点都在这一步)汉诺塔问题:把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 首先,要搞这个编码得要知道汉诺塔的解题思路: 1.把A塔上编号1~n-1的圆盘移到B上 2.以C为辅助塔,把A塔上...原创 2018-10-18 17:50:22 · 196 阅读 · 0 评论 -
Java 请求异步响应
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lv_hang515888/article/details/79005176背景:接口请求的时候如果是同步,那么有时业务逻辑处理时间很长,请求就会超时!所以需要在接口请求过来时,就先响应,再去执行业务逻辑。(或者不是一个请求,一个方法里面两个无关的业务逻辑需要异步执行节省效率的也可以用这个方法,...转载 2018-10-08 14:54:35 · 5621 阅读 · 2 评论 -
线程2
线程对象是可以产生线程的对象。比如在Java平台中Thread对象,Runnable对象。线程,是指正在执行的一个指点令序列。在java平台上是指从一个线程对象的start()开始,运行run方法体中的那一段相对独立的过程。相比于多进程,多线程的优势有: (1)进程之间不能共享数据,线程可以; (2)系统创建进程需要为该进程重新分配系统资源,故创建线程代价比较小; (3)Ja...转载 2018-03-22 13:48:55 · 270 阅读 · 0 评论 -
线程池
转自:http://blog.csdn.net/syoung99/article/details/52526475转自:https://www.jianshu.com/p/210eab3454231.初识线程池:根据系统自身的环境情况,有效的限制执行线程的数量,使得运行效果达到最佳。线程主要是通过控制执行的线程的数量,超出数量的线程排队等候,等待有任务执行完毕,再从队列最前面取出任务执行。2.线程...转载 2018-03-14 14:31:44 · 152 阅读 · 0 评论 -
多线程
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...转载 2018-03-14 15:13:07 · 101 阅读 · 0 评论 -
常见四种线程池ExecutorService
常见四种线程池CachedThreadPool()可缓存线程池 1.线程数无限制 2.有空闲线程则复用空闲线程,若无空闲线程则新建线程 3.一定程序减少频繁创建/销毁线程,减少系统开销 ExecutorService cacheThreadPool = Executors.newCachedThreadPool();FixedThreadPool()定长线程池 1.可控制线程最大并发数(同时执行的...原创 2018-04-08 10:18:10 · 1107 阅读 · 0 评论 -
搞懂WebSocket
转自:https://blog.csdn.net/frank_good/article/details/50856585一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并...原创 2018-03-26 14:43:13 · 173 阅读 · 0 评论 -
concurrent包
通常所说的concurrent包基本有3个package组成 java.util.concurrent:提供大部分关于并发的接口和类,如BlockingQueue,Callable,ConcurrentHashMap,ExecutorService, Semaphore等 java.util.concurrent.atomic:提供所有原子操作的类, 如AtomicInteger, Atomi...转载 2018-04-02 11:46:04 · 814 阅读 · 0 评论 -
java线程并发top50问
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什...转载 2018-04-04 11:33:41 · 134 阅读 · 0 评论 -
非线程安全示例ArrayList
一.概述对于ArrayList,相信大家并不陌生。这个类是我们平时接触得最多的一个列表集合类。面试时相信面试官首先就会问到关于它的知识。一个经常被问到的问题就是:ArrayList是否是线程安全的?答案当然很简单,无论是背来的还是自己看过源码,我们都知道它是线程不安全的。那么它为什么是线程不安全的呢?它线程不安全的具体体现又是怎样的呢?我们从源码的角度来看下。二.源码分析首先看看这个类所拥有的部分...转载 2018-03-29 15:33:56 · 200 阅读 · 0 评论 -
23种设计模式全解析
出自:http://blog.csdn.net/longyulu/article/details/9159589一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式...转载 2018-04-12 10:38:52 · 142 阅读 · 0 评论 -
详解Spring中的Profile
前言由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息、ZooKeeper的信息、数据库连接、Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆,一旦在部署的时候某个参数忘记修改了,那么就必须重新打包部署,这确实让人感到非常头疼。因此就想到使用Spring中的Profile来解决上面描述的问题,并且在此记录一下其使用的方式,如果有不对的地方...转载 2018-06-21 10:46:27 · 236 阅读 · 0 评论 -
split 分割 字符串(分隔符如:* ^ : | , .) 及注意点
要点:(1)split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\加以转义。 (2)如果使用多个分隔符则需要借助 | 符号,如【2】所示,但需要转义符的仍然要加上分隔符进行处理。eg :【1】单个符号作为分隔符 String address=”上海|上海市|闵行区|吴中路”; String[] splitA...转载 2018-06-01 16:33:55 · 5483 阅读 · 0 评论 -
不使用注解返回Json
private String jsonStr;private static final String toJson = "toJson";public String getJsonStr() { return jsonStr;}public void setJsonStr(String jsonStr) { this.jsonStr = jsonStr;}public...原创 2018-06-27 09:26:21 · 433 阅读 · 0 评论 -
一个经典的Spring IOC疑难症状释疑
Case 请看下面的IOC实例: 1)AaaService实现AaaaInterface接口 2)在BaaService中Autowired AaaService Code //1.AaaInterface package com.test; public interface AaaInterface { void method1(); ...转载 2018-09-12 09:06:46 · 101 阅读 · 0 评论 -
java书籍
https://blog.csdn.net/qq_41790443/article/details/79817030转载 2018-09-14 14:21:17 · 169 阅读 · 0 评论 -
cron表达式
在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Quartz和SpringTask等。Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1)Seconds Minutes Hours Dayo...原创 2018-09-28 09:53:06 · 259 阅读 · 0 评论 -
Mybatis的bug: XML fragments parsed from previous mappers does not contain value for
<sql id="ll"> * </sql><select id="selectPageList" parameterType="com.yns.model.UserFootmark" resultType="com.yns.model.UserFootmark"> select <incl原创 2018-09-28 17:31:05 · 4419 阅读 · 0 评论 -
java快速失败和安全失败
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCount的值...转载 2018-03-08 11:02:40 · 824 阅读 · 0 评论