JDK

解决跨域session 同步问题

﹥>﹥吖頭↗ 提交于 2021-01-07 02:29:07
跨域来源 :( 前端站点和后端 API 布署到不同的站点) 解决方案 一 . 服务端设置 1.配置允许跨域请求 public class BaseAction { /** * 支持跨域请求 * @author fxd * @param response * @since JDK 1.6 */ protected void crossComain(HttpServletRequest request,HttpServletResponse response){ String[] allowDomains = {"http://www域名1","http://www域名2" }; Set allowOrigins = new HashSet(Arrays.asList(allowDomains)); String originHeads = request.getHeader("Origin" ); if (allowOrigins.contains(originHeads)){ // 配置跨域访问的最简单的方式是用通配符 * ,(就是不安全,所有的请求都能跨域) response.setHeader("Access-Control-Allow-Origin" , originHeads); response.setHeader( "Access-Control-Allow

IDEA安装及默认配置习惯配置(一)

試著忘記壹切 提交于 2021-01-06 21:00:53
最新新转战IDEA,每次安装完需要做一些操作习惯的设置,在这里记录一下,下次安装可以快速上手用。 第一步,JAVA安装 JDK官方下载地址: https://www.oracle.com 下载JDK时根据需求安装合适的即可,不一定需要最新版。 历史版本下载路径: Downloads à Java à Java (JDK) for Developers à Java Archive https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载历史版本 JAVA8使用范围比较广,这里选择下载 JDK8 小版本和过去安装的保持一致,就选择:8u191,根据操作系统要求下载安装不同版本 第二步,安装IDEA 下载地址: https://www.jetbrains.com/idea/ 安装提示 安装选项 根据操作系统位数选择要安装使用版本,安装包中内置了32和64。 IDEA配置 首次打开,提示是否导入之前的IDEA配置文件,如果没有则选择第二项跳过。 同意使用协议,并继续 是否发送一些用户体验数据,不要发送就OK. 皮肤选择,默认提供黑白两种,可以先根据喜好选一种,进入IDE后可以重新设置。 默认插件 选择默认插件安装 第三步,IDEA激活 补丁激活方法 下载破解补丁: http://idea.lanyus

Java 虚拟机 最易理解的 全面解析

。_饼干妹妹 提交于 2021-01-06 20:56:52
先上一个最容易理解的类实例化的内存模型案例截图: 转载自: https://www.zybuluo.com/Yano/note/321063 周志明著的《深入理解 Java 虚拟机》的干货~如有错误,欢迎指出 O(∩_∩)O 转载请保留以上信息。 JDK 是什么 JRE 是什么 Java历史版本的特性 Java Version SE 50 Java Version SE 6 Java Version SE 7 Java 8 运行时数据区域包括哪些 程序计数器线程私有 Java 虚拟机栈线程私有 本地方法栈线程私有 Java 堆线程共享 方法区线程共享 运行时常量池 Java 中对象访问是如何进行的 如何判断对象是否死去 什么是引用计数法 引用计数法的缺点 什么是根搜索算法 Java 的4种引用方式 强引用 软引用 弱引用 虚引用 有哪些垃圾收集算法 标记-清除算法Mark-Sweep 什么是标记-清除算法 有什么缺点 复制算法Copying- 新生代 优点 缺点 应用 标记-整理算法Mark-Compact-老年代 分代收集算法 Minor GC 和 Full GC有什么区别 Java 内存 为什么要将堆内存分区 堆内存分为哪几块 分代收集算法 内存分配有哪些原则 Young Generation Space 采用复制算法 Tenure Generation Space采用标记

漫画设计模式:什么是 “装饰器模式” ?

好久不见. 提交于 2021-01-06 15:33:49
————— 第二天 ————— ———————————— 装饰器模式都包含哪些核心角色呢? 1. Component接口 在我们上面的例子中,Component接口相当于汽车接口,所有的被包装类、包装类,都继承于这个接口。 2. ConcreteComponent类 ConcreteComponent类是被包装的实现类。在例子中,奔驰汽车、宝马汽车、特斯拉汽车都属于这个角色。 3 . Decorator抽象类 所有的包装类,都继承自Decorator抽象类,而Decorator类又实现了Component接口,这么做是为了实现多层嵌套包装。 4 . Concrete Decorator类 具体的包装类,用于扩充被包装类的功能,比如例子中的自动驾驶功能、飞行功能扩展。 这四大核心角色的关系是怎样的呢?我们可以用装饰器模式的UML类图来表达: 首先是汽车接口,也就是Component这个角色,里面定义了run这个行为: public interface Car { void run(); } 接下来是各种汽车的实现类,也就是ConcreteComponent角色,不同的汽车对于run行为有着不同的实现: public class BenzCar implements Car{ @Override public void run() { System.out.println("奔驰开车了

jenkins自动化pipline的ci/cd流水线

风格不统一 提交于 2021-01-06 04:28:22
pipeline { agent any tools { // 工具必须预先在jenkins中预配置 maven ' mvn ' jdk ' jdk ' } stages { stage( ' Env ' ) { steps { sh ' printenv ' } } stage( ' git ' ) { steps{ checkout([$ class : ' GitSCM ' , branches: [[name: ' */develop ' ]], doGenerateSubmoduleConfigurations: false , extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ' 18980d0a-1ae4-443b17dc687b1 ' , url: ' https://CFAI_the_best/codeflag-basis.git ' ]]]) } } stage( ' mvn install ' ) { steps { sh ' cd /var/lib/jenkins/workspace/k8s-test-basis/src/main/resources && mv application.test.properties application.properties '

Java 非阻塞 IO 和异步 IO

廉价感情. 提交于 2021-01-06 04:26:09
原文出处: JavaDoop 上一篇文章介绍了 Java NIO 中 Buffer、Channel 和 Selector 的基本操作,主要是一些接口操作,比较简单。 本文将介绍非阻塞 IO 和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。 本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行优化,最后再介绍 JDK7 引入的异步 IO,由于网上关于异步 IO 的介绍相对较少,所以这部分内容我会介绍得具体一些。 希望看完本文,读者可以对非阻塞 IO 和异步 IO 的迷雾看得更清晰些,或者为初学者解开一丝丝疑惑也是好的。 NIO,JDK1.4,New IO,Non-Blocking IO NIO.2,JDK7,More New IO,Asynchronous IO,严格地说 NIO.2 不仅仅引入了 AIO 阻塞模式 IO 我们已经介绍过使用 Java NIO 包组成一个简单的客户端-服务端网络通讯所需要的 ServerSocketChannel、SocketChannel 和 Buffer,我们这里整合一下它们,给出一个完整的可运行的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Server {

Java 异步 IO

生来就可爱ヽ(ⅴ<●) 提交于 2021-01-06 04:11:36
阅读文本大概需要3分钟。 JDK 7 引入了 Asynchronous I/O, 即AIO。在进行 I/O 编程中, 常用到两种模式: Reactor 和 Proactor。 Java的NIO就是Reactor, 当有事件触发时, 服务器端得到通知, 进行相应的处理。 AIO即NIO2.0,叫做异步不阻塞的IO。 AIO引入异步通道的概念, 采用了 Proactor 模式, 简化了程序编写,有效的请求才启动线程, 它的特点是先由操作系统完成后才通知服务端程序启动线程去处理, 一般适用于连接。 异步IO功能的关键点,它们是Channel 类的一些子集,Channel在处理IO操作的时候需要被切换成一个后台进程。一些需要访问较大,耗时的操作,或是其它的类似实例,可以考虑应用此功能。 在这里只单独讲解针对文件IO操作的AsynchronousFileChannel,但是需要注意的是,还有一些其他的异步管道,包括: AsynchronousFileChannel:针对文件; AsynchronousSocketChannel :针对客户端的socket; AsynchronousServerSocketChannel:针对服务器端的异步socket,用来接收到来的连接。 针对异步管道的交互有两种不同的方式: Future 风格; callback 风格。 0x01:Future风格的异步

java 异步

落花浮王杯 提交于 2021-01-06 03:13:47
注:本文基于 jdk1.8 1. 异步不需要返回值; CompletableFuture.runAsync() 示例代码如下: public JsonResult test() { JsonResult result = new JsonResult(); CompletableFuture.runAsync(() -> { // 准备请求 JsonResult postResult = appTool.postRequest(url, params, headers); // 请求结果处理 if (!postResult.getCode().equals("0")) { // 请求失败 logger.error("请求失败"); } }); return result; } 在上述代码中,把一个请求异步执行,方法不必等待post请求结束; 2.异步需要返回值; CompletableFuture.supplyAsync() 示例代码如下: public String test() { CompletableFuture <JsonResult> future = CompletableFuture.supplyAsync(() -> { // 准备请求 JsonResult postResult = appTool.postRequest(url, params, headers

Linux 入门系列

孤者浪人 提交于 2021-01-06 01:29:49
前言 以前我的不喜欢用 Linux 系统,什么目录啊,文件啊,权限啊,都得命令操作,入门难度较大。但是一旦熟练起来,真不想再去用 windows 了。再加上 shell 脚本,那才叫如虎添翼啊,真的是见识到了什么才是性能,什么才是自动化。 Linux 相较于 windows 而言,占用内存更小,因为 windows 的图形化界面比较占内存。 Linux 的生态也比较丰富,各种各样的服务端软件都会有 Linux 版本。 Linux 也衍生出各种格言的版本,我用的比较多的是 Centos 在 Linux 中,一切皆文件。所以各种目录、文件的权限、创建者、所属组都是比较实用的东西。 本文内容基于 Centos 7.4 版本。 主要内容: linux 目录说明 PATH 加载的原理及配置 常用简单命令 sed,awk,find,管道流,重定向,scp 目录介绍 Linux 中的目录还是要清楚的,有一些约定成俗的规定需要大家了解。 目录只介绍一些重要常用的。大致了解什么作用即可。 根目录- / 根目录下面有许多子目录 bin etc home opt usr sbin var tmp 等等。 /root 是用户 root 的家目录。 /home 除 root 用户之外的其它的用户家目录。 cd ~ 就是进入当前用户的家目录。 /bin /bin 实际是个软连接(理解为 windows

对象池微性能测试对比

风格不统一 提交于 2021-01-06 01:28:28
源码: https://github.com/Chris2018998/BeeOP/blob/main/doc/temp/benchmark.rar 测试说明 说明项 参数值 PC I5-4210M(2.6hz),12G内存 JDK JAVA8_64 Pool设置 初始0,最大32 Pool commons-pool2-2.9.0 ,beeop-0.4 来源: oschina 链接: https://my.oschina.net/u/3918073/blog/4880867