- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 Java之三种并发工具类
一、概述Semaphore:信号量信号量是对锁的扩展,无论是ReentrantLock或synchronized,一次都只允许一个线程访问一个临界资源,信号量可以允许多个线程同时访问一个资源。可以理解为限流的工具。CountDownLatch:倒计时器通常用来控制线程等待,和Object.wait()和Object.notify()有点像。它可以让某一个线程等待知道倒计时结束,再开始执行。...
2018-12-13 15:41:38 569
原创 Java并发包总结(JUC)
一、对java.util.concurrent包中常用的工具,类等进行一个大概的总结二、概述Java目前已成为当下最流行的服务端编程语言,熟悉和了解基于Java的并行程序开发有着重要的实用价值。三、常用JUC总结按照api分:按照功能点分:四、详细的各个api的使用以及源码分析。。。未完待续...
2018-12-03 17:02:08 1845
原创 输入一个链表,反转链表后,输出新链表的表头
输入一个链表,反转链表后,输出新链表的表头思路:链表的反转 等价于反转链表的指针,只要把原链表中的指针反转,便是链表的反转比如 原链表中 head指向head.next,先把head.next保存起来(不然改变head的指向后,原链表会断开,找不到下一个节点),然后改变head指向result(新建节点),再用result表示新链表的表头1>2>3>41(result)...
2018-10-30 16:29:32 1834
原创 SpringBoot集成Redis及使用总结
一、Centos下安装Redis1、下载安装包到/usr/localwget http://download.redis.io/releases/redis-4.0.2.tar.gz2、解压及安装tar xzf redis-4.0.2.tar.gzcd redis-4.0.2makemake install二、Redis常用指令redis-server 启动redis服务器...
2018-10-11 10:28:27 258
原创 Java之集合框架总结
一、 定义 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象。 在java.util 包中 二、框架图 三、总结 1、 集合框架主要分为两个接口:Collection和Map 2、 Collection接口实Iterable接口,凡是实现了Iterable接口,都可以使用迭代器或增强for循环(for each)来进行遍历 3、 List接口 L...
2018-09-17 17:01:18 217
原创 多线程之中断线程
1、线程在运行过程中,有些时候可能需要中断一些阻塞的线程,类Thread中提供了几种中断线程的方法,其中Thread.suspend()和Thread.stop()方法已经过时了,因为这两个方法是不安全的,如果线程突然停掉,线程持有的锁会永远的休眠,迟迟不归还锁,可能会产生死锁等等。所以以上两种方法不能使用,继而Thread.resume()也不能使用。具体可产开Java API手册。 2、 中...
2018-09-14 18:35:56 677
原创 多线程之线程间通信
一、 概述 多个线程并发执行时,CPU是随机切换线程的,是无序的,当我们需要用多个线程来共同完成一个操作,就需要某种通信机制来协调线程,如果没有协调通信的机制,会造成多个线程对共享资源的争夺,会造成严重的数据污染问题。比如说现在共有5个苹果,A拿走5个同时B放进去3个,那么此时剩余的苹果可能是0、3、8,这就是线程间不通信造成的。 二、线程间的通信方式 1、synchronized对象锁 ...
2018-09-07 16:24:46 234
原创 springcloud之Feign、ribbon设置超时时间和重试机制的总结
一、 Feign设置超时时间 使用Feign调用接口分两层,ribbon的调用和hystrix的调用,所以ribbon的超时时间和Hystrix的超时时间的结合就是Feign的超时时间#hystrix的超时时间hystrix: command: default: execution: timeout: ...
2018-09-04 17:23:11 80192 20
原创 springcloud之Hystrix
一、 概述 各个服务之间可以相互调用(rpc),服务之间具有依赖性,由于网络或自身的原因,当某个服务出现问题,该服务一定会出现请求超时,线程阻塞等问题,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。Hystrix可以解决雪崩问题 1、资源隔离:包括线程...
2018-09-03 17:49:08 154
原创 springcloud之服务客户端之间的调用Feign
一、 概述Rest 和Feign都可以实现对客户端的调用Feign是一个声明式的WebService客户端,它使得编写WebSerivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。二、 实现maven依赖:(在实现了eureka的基础上) <dependency> <groupId>org.spring...
2018-08-30 17:47:08 532
原创 springcloud之服务注册与发现
一、 概述微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。每个任务代表着一个小的业务能力。就相当与把一个大的应用拆分成许多小的应用,各个小应用之间可以相互调用,相互配合完成任务。为了使服务便于管理,便需要eureka。eureka-server 是服务注册中心...
2018-08-30 17:23:41 182
原创 Java小知识点备忘录
1、Map和JSON的相互转化Map<String,String> map = new HashMap<>();map.put("username","tom");map.put("age","15"); String str = JSON.toJSONString(map);//map转JsonMap map1 = JSON.parseObject
2018-08-10 09:44:39 195
原创 mysql:使用union合并查询时出现了两条一样的数据
union和union all 可以进行多表之间的合并查询,前提是多表都有想同的属性。select a,b from Aunion allselect a,b from Bunion allselect a,b from C在springboot中 使用Jpa查询时,为了使合并查询到的数据便于使用,会把查询到的数据自动转化为我们所需要的对象。当出现查询的数据中有重复的,...
2018-08-09 14:56:49 4392
原创 java 反射机制
一、 概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。二、反射的使用1、 获取class的三种方式//第一种Man man1=new Man();Class class1=man1.getClass();//第二...
2018-08-03 09:56:35 195
原创 spring mvc使用@ResponseBody报错No converter found for return value of **
SSH框架中,在controller中用@ResponseBody返回对象给前端时,报错500:No converter found for return value of **解决方案:1、添加jackson的jar包jackson-databind.jarjackson-core.jarjackson-annotations.jar2、添加好jar包运行Tomcat,可...
2018-07-28 11:28:49 761
原创 springboot之乐观锁和悲观锁
适用场景:悲观锁:比较适合写入操作比较频繁的场景,如果出现大量的读取操作,每次读取的时候都会进行加锁,这样会增加大量的锁的开销,降低了系统的吞吐量。乐观锁:比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能性就会增大,为了保证数据的一致性,应用层需要不断的重新获取数据,这样会增加大量的查询操作,降低了系统的吞吐量。总结:两种所各有优缺点,读取频繁使用乐观锁,写入...
2018-07-18 10:03:38 9246 4
原创 springboot之多个filter的执行顺序以及配置
当项目中有多个filter时,为了便于管理,可以创建一个配置文件,对所有的filter进行管理。有的方法可能同时需要多个filter依次对其进行过滤,这时候便需要对filter的执行进行优先级的排序。如下:新建一个配置文件ComponentFilterOrderConfig.java先生成一个过滤器的bean,再把过滤器的bean注入到FilterRegistrationBean中,并设置一些属性...
2018-06-29 14:49:59 29772
原创 Java-时间日期之间的转化
一、 获取当前时间 SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Long time=System.currentTimeMillis();//当前时间 单位是毫秒二、 毫秒转化为日期 Date date1=new Date(time); Syste...
2018-06-26 15:36:50 218
转载 Could not write JSON: Infinite recursion (StackOverflowError);
在controller返回数据到统一json转换的时候,出现了json infinite recursion stackoverflowerror的错误,即json在将对象转换为json格式的数据的时候,出现了无限递归调用的情况。具体的情况如下:A类中,有个属性:List<B> b, A与B的关系为 OneToMany;在B类中,有属性A a,引用到A中的字段id,并作为外键。hibe...
2018-05-24 15:32:13 11086 4
原创 JavaScript 用ajax传递参数到后台
前端:</style><script type="text/javascript"> var validateNum; function validateButton() { if (validateNum!=null){ if (document.getElementById("validateNum")....
2018-05-22 10:43:53 2117
原创 通过域名访问部署到腾讯云服务器的过程中遇到的问题总结
1、 域名 注册域名后,必须备案后才可以正常解析域名。2、云服务器 云服务器需要配置好安全组才可以被正常访问。 设置安全组的目的就是开放服务器的一些必要的端口,使得服务器可以被正常访问。 在配置安全组规则时要注意:入站规则和出栈规则都要配置。之后还要关联实例,就是安全组绑定你的服务器。3、完成以上操作后,这时如果直接去访问域名,会发现还是不能正常的去访问。 通过pin...
2018-05-10 17:22:23 7746 2
原创 双向关联表查询时异常:java.lang.StackOverflowError: null
java.lang.StackOverflowError: null报错的原因是栈溢出。是由于使用Jpa查询时产生了死循环或无限递归。比如如下两个双向关联的实体列:public class User{//其他属性及get set 方法略@ManyToMany@JoinTable(name = "UserRole", joinColumns = { @JoinColumn(name = "us...
2018-04-23 15:26:55 13978 2
原创 springboot之token的用法总结
一、 token的构造 token是又header(头)、payload(荷载)、sign(签名)三部分组成。 header:头部信息主要包括(参数的类型--JWT,签名的算法--HS256) payload:存放自己想要的信息 sign:是为了防止恶意篡改数据二、JWT的生成和解析生成:String token=JavaWebTokenUtil.createJWT...
2018-04-03 11:50:24 19376 2
原创 springboot之继承JpaRepository后自定义数据库操作后出现java.lang.ClassCastException的错误
java.lang.ClassCastException: * cannot be cast to *;这是数据类型强制转化失败的问题。在继承的Jpa的接口中,使用如下的查询方式:在Jpa的自带的方法中,删除操作的方法只有这几种:但是如果我要根据FileName来进行删除操作,一般是如上面的操作,添加方法deleteByFileName(String fileName);使用该方法,你会发现会报C...
2018-03-26 11:42:22 2190
原创 springboot之Filter指定过滤URL的常见问题
在使用Filter对一些自己指定的URL进行过滤拦截时,经常会出现如下错误:1、 明明在@WebFilter(urlPatterns={"/app/online"})中过滤的是/app/online 路径,但是运行之后发现,这个WebFilter过滤器对所有的URL都进行了过滤。2、 运行之后发现过滤器没有初始化,没有被加载下面总结一下使用正确的,合适的注解配置filter的方法:1、 指定路径 ...
2018-03-26 11:16:22 43224 4
原创 Linux centos上部署MySQL及在使用过程中常见错误的处理
一、 在腾讯云上部署MySQL(经本人多次操作,这种方法是最简单,快捷的,且不容易报错) 1、 下载mysql的repo源 /usr/local/mysql 下载命令:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2、 ...
2018-03-16 11:41:24 406
原创 springboot之基于Socket的两个或多个客户端之间的聊天功能
一、 Socket简介点击超链接查看: socket与HTTP的区别二、两个或多个客户端之间进行聊天1、 服务器端(1) 实体类:原理:每个用户都有自己的socket套接字,也就是每个用户都有自己的输出流和输入流,只要用某个用户的输出流 进行输出,某个用户就可以接收到消息。public class SocketUser { private String name; private ...
2018-03-07 15:58:31 9430
转载 Socket与HTTP的说明与区别
网络七层:物 数 网 传 会 表 应,如图HTTP 协议: 超文本传输协议,对应于应用层,用于如何封装数据.TCP/UDP 协议: 传输控制协议,对应于传输层,主要解决数据在网络中的传输。IP 协议: 对应于网络层,同样解决数据在网络中的传输。传输数据的时候只使用 TCP/IP 协议(传输层),如果没有应用层来识别数据内容,传输后的协议都是无用的。应用层协议很多 FTP,HTTP,TELNET等,...
2018-03-07 14:46:32 687
转载 springboot 注入的@service为空,运行时报空指针
转载:http://blog.csdn.net/georgeshaw1/article/details/74943089背景: 做了一个TCP服务器来接入智能设备,然后需要将设备实时发送的定位等关键信息存储到数据库。为了考虑将来可能对外提供rest接口,采用将TCP服务器集成到SpringBoot框架,当然,也是为了能最快利用mybatis框架实现数据访问,然后依次解决了如何启动,如何
2018-01-26 14:34:47 20179 7
原创 spring boot之session的创建,销毁,超时,监听等等小结
一、 session简介1. 服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器只能产生一个session,当新建一个窗口访问服务器时,还是原来的那个session。session中默认保存的是当前用户的信息。因此,在需要保存其他用户数据时,我们可以自己给session添加属性。session(会话)可以看为是一种标识,通过带session的请求,可以让服务器知道是谁
2018-01-25 10:21:52 63937 6
原创 springboot之几种同步,线程安全处理的方法
在一些公共资源的处理上,经常会出现对公共资源的争夺使用权限的问题,以及对数据库处理时,容易出现线程安全的问题,比如对数据操作时的一致性,可见性等等。 这时候,为了避免这样的问题,一般的处理方式是当某一个公共资源在被某一个线程调用时,把这个公共资源(即代码块)锁住。 下面先大概介绍两种简单的同步方法: 注:同步是一种高开销的操作,因此应该尽量减少同步的内容。 没有必...
2018-01-02 17:44:44 48336 7
原创 springboot集成rabbitMQ之对象传输
rabbitMQ的安装方法网上有很多教程,这里就不重复了。 在springboot上使用rabbitMQ传输字符串和对象,本文所给出的例子是在两个不同的项目之间进行对象和和字符串的传输。 rabbitMQ的依赖(在两个项目中一样的配置): <dependency> <groupId>org.springframework.boot</groupId>
2017-12-26 12:05:59 16377 9
原创 spring boot之本地图片不能加载(图片路径)的问题
在使用html加载图片时,发现本地图片在页面上不能显示,但是直接引用网络上的资源是可以显示的。参考了众多前人的经验,得出一下结论: 本地图片不能显示最主要的问题是,图片在本地url和图片在服务器上被加载是的URL是不一样的。也就是路径的问题。 解决的办法其实很简单,只要写一个配置文件,也就是图片位置的转化器,原理是虚拟一个在服务器上的文件夹,与本地图片的位置进行匹配。
2017-12-23 10:39:34 21400 10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人