java
文章平均质量分 61
乄星落
到了最后,所有的一切都只不过是0或者1而已
展开
-
java单例模式解析
1. 前言单例模式是项目中经常使用的一种设计模式,其特点是整个项目中,只会有一个实例运行。想要创建一个单实例对象,需要以下几个条件: 1)单例类只能有一个实例。2)单例类必须自己创建自己的唯一实例。3)单例类必须给所有其他对象提供这一实例。为了不让外部可以随意的创建对象实例,我们需要私有化构造方法,然后从类的内部进行对象的实例化。对象实例化之后,我们可以通过静态变量来存储这个对象,创建单例模式有两种方式,一种是饿汉式,一种是懒汉式,下面会针对这两种方式进行讲解2.饿汉式饿汉式顾名思义,实例原创 2020-11-17 18:22:42 · 211 阅读 · 0 评论 -
使用SpringBoot发送邮件
在pom中引入用于发送邮件的starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>在application.yml(或者application.properti.原创 2020-11-04 15:47:45 · 732 阅读 · 0 评论 -
Lambda表达式
慕课网Lambda笔记第一章 Java为什么引入 Lmabda表达式1.1 什么是Lambda表达式Lambda表达式也被成为箭头函数、匿名函数、闭包Lambda表达式体现的是轻量级函数式编程思想‘->’符号是Lambda表达式的核心符号,符号左侧是操作参数,符号右侧是操作表达式1.2 Model Code as DataModel Code as Data,编码及数据...原创 2020-05-03 21:18:10 · 2090 阅读 · 1 评论 -
Cpu 指令重排序遵循规则 as-if-erial
在单线程情况下,无论如何对指令进行重排序,最后的执行结果是一样的原创 2020-03-15 13:47:27 · 267 阅读 · 0 评论 -
JMM内存模型(一部分,个人记忆用)
原创 2020-03-15 13:40:52 · 101 阅读 · 0 评论 -
使用java 8 提取出list中bean的某一属性
package com.demo; import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors; public class Test6 { public static void main(String[] args) { List<Student> stu...原创 2020-02-19 21:50:40 · 1519 阅读 · 0 评论 -
JAVA中 强引用、 软引用、 虚引用、 弱引用的概念
在JDK1.2以前,Java中引用的定义很传统,如果一个refernece类型的数据中,存储的数值代表了另一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过于狭隘,一个对象在这种定义下只有被引用和没有引用两种状态,对于如何描述一些“食之无味,弃之可惜”的对象就显得无能为力。我们希望能描述这样一种对象,当内存空间足够时,则保留在当前内存中,当内存资源经过垃圾收集后,内存资源依旧...原创 2020-02-13 22:53:16 · 86 阅读 · 0 评论 -
java运行时的数据区域
Java虚拟机在执行Java程序的过程中会把它所有管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存将会包括一下几个运行时数据区域。程序计数器程序计数器(Program Counter Re...原创 2020-01-07 17:00:50 · 169 阅读 · 0 评论 -
java.utils.concurrent 新类库中的构件(四)PriorityBlockingQueue
java.utils.concurrent 新类库中的构件(三)PriorityBlockingQueue这是一个很基础的优先级队列,它具有可阻塞的读取操作。下面是一个实例,其中在优先级队列中的对象是按照优先级顺序从队列中出现的任务。PrioritizedTask被赋予了一个优先级数字,以此来提供这种顺序package concurrency;//: concurrency/PriorityB...原创 2019-12-26 19:28:03 · 147 阅读 · 0 评论 -
java.utils.concurrent 新类库中的构件(三)DelayQueue
java.utils.concurrent 新类库中的构件(三)DelayQueue这是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期的时间最长。如果没有任何延迟到期,那么就不会有任何头元素,并且poll()将返回null(正因为这样,你不能将null放置到这种队列中)。下面是一个实...原创 2019-12-26 18:22:10 · 147 阅读 · 0 评论 -
java.utils.concurrent 新类库中的构件(二) CycliicBarrier
java.utils.concurrent 新类库中的构件(一) CycliicBarrierCycliicBarrier适用于这样的情况:你希望创建一组任务,它们并行执行工作,然后再进行下一个步骤之前等待,直至所有的任务都完成(看起来有点像join())。它使得所有的并行任务都将在栅栏处列队,因此可以一致的向前移动。这非常像CountDownLatch,只是CountDownLatch只是触发...原创 2019-12-20 13:35:44 · 117 阅读 · 0 评论 -
java.utils.concurrent 新类库中的构件(一) CountDownLatch
CountDownLatch它被用来同步一个或者多个任务,强制他们等待由其他任务执行的一组操作完成。 你可以向CountDownLatch对象设置一个初始计数值,任何在这个对象上调用wait()的方法都将阻塞,直到这个计数值达到0。其他任务在结束其工作时,可以在该对象上调用countDown()来减小这个计数值。CountDownLatch被设计为只出发一次,计数值不能被重置。...原创 2019-12-20 11:40:42 · 147 阅读 · 0 评论 -
shior 前后端分离项目Session失效后返回json字符串
最近公司在做APP项目,属于前后端分离,使用ajax请求后台传递JSON数据,但是现在有一个问题,shior默认的配置是session过期后直接跳转到Ligin请求,最后返回Login页面,但是前后端分离的项目都是通过ajax接受的,跳转也是由前台控制,这就导致了PC端与APP需要返回的数据类型不一致的问题。通过百度,找到一种可行的方案,贴出来以供参考。通过继承 org.apache.shi...原创 2019-12-09 15:37:20 · 923 阅读 · 0 评论 -
将一个list集合的子父节点关系的集合转换为一对多的关系
/** * 设备位置树形选择器 */ @RequiresPermissions("user") @ResponseBody @RequestMapping(value = "treeDataMobile") public List<Location> treeDataMobile(@RequestParam(required = ...原创 2019-11-05 18:57:05 · 695 阅读 · 0 评论 -
MyBatis 配置多数据源实现多个数据库动态切换
1.配置properties路径我的配置文件2.配置mybatis数据源配置 第二套数据源3 动态数据源的配置两个key分别引入了 两套数据源,默认使用jsdx_telecom4.配置SqlSessionFactory对象5.配置事物管理器,要扫描的basePackage接口6.创建一个类取名为DynamicDataSource ...原创 2018-09-30 14:27:33 · 2162 阅读 · 1 评论 -
linux下启动tomcat时报错 Tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
一眼就能看出来是jdk的环境有问题,但是用了这么久的jdk一直都配置的好好的,怎么一到Tomcat上就这么矫情了。最后查解决方案,原来是我的jdk从官网直接下载的,虽然我修改了java_home,但不太智能的tomcat仍然没有自动识别出java_home路径。linux解决方法:编辑文件 /usr/local/tomcat/bin/catalina.sh (根据你自己的jdk路径进行修...转载 2018-11-27 10:18:51 · 273 阅读 · 0 评论 -
多个数据源的轻松支持
前面文章里介绍了 自定义注解完成数据库切库 ,今天接着这个高并发的话题,继续说一下项目里多个数据源的支持。如何理解支持多个数据源呢?简单的说,就是一个项目里,同时可以访问多个不同的数据库。实现的原理先交待一下:单个数据源在配置时会绑定一套mybatis配置,多个数据源时,不同的数据源绑定不同的mybatis配置就可以了,简单的思路就是让不同的数据源扫描不同的包,让不同的包下的mapper对...转载 2018-12-14 14:49:33 · 202 阅读 · 0 评论 -
自定义注解完成数据库切库
前提这几天,学员们反馈希望学习一下自定义注解,正好准备高并发课程内容里有一块涉及到使用自定义注解完成数据库切库的内容。这里单独写一篇文章记录说明一下。为什么会有数据库切库一说首先,许多项目都有主库与从库,有的主库后面甚至会有很多个从库,主从库之间的通常同步也很快,这为数据库切库提供了一个基础,因为可以去不同的数据库查询,得到相同的结果(如果不同的数据库是完全不同的,这个不在我们这篇文章...转载 2018-12-14 14:50:18 · 187 阅读 · 0 评论 -
各大公司Java后端开发面试题总结
https://blog.csdn.net/sd09044901guic/article/details/80132173ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲...转载 2018-12-27 14:30:00 · 196 阅读 · 0 评论 -
关于activity 获取待办列表时报空指针异常的一种情况
在执行 /** * 获取待办列表 * * @param procDefKey 流程定义标识 * @return */ public List<Act> todoList(Act act) { String userId = UserUtils.getUser().getLoginName();//Obj...原创 2019-09-10 11:40:11 · 1516 阅读 · 3 评论 -
SpringMVC 配置定时执行任务
1.在SpringMVC配置文件中添加xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd 配置任务扫描<task:an...转载 2018-06-07 11:04:01 · 151 阅读 · 0 评论