JDK

和 Python 2.x 说再见!

回眸只為那壹抹淺笑 提交于 2020-12-24 06:05:40
本文经授权转自公众号CSDN(ID:CSDNnews) 如果你仍在使用 2.x,那么是时候将你的代码移植到 Python 3 了 。 在技术的长河中,软件、工具、系统等版本的迭代本是常事,但由于使用习惯、版本的兼容性、易用性等因素,很多用户及开发者在使用或做开发的过程中,并不愿意及时同步更新,而这无疑为 IT 技术圈带来了诸多碎片化问题,正如系统之 Android、Windows,也正如编程语言之 Python。 近日,Python 因为其版本的碎片化问题遭到了 英国国家网络安全中心(NCSC) 的点名,NCSC 警告开发者们必须考虑将 Python 2.x 的代码库移植到 Python 3.x 版本上,主要是因为自 2020 年 1 月 1 日起,Python 2.x 将走到其生命的尽头,不再得到支持(EOL,End-of-life)。与此同时,NCSC 还将继续使用 Python 2.x 的公司比作 EOL 以引诱另一个 WannaCry(病毒) 或 Equifax(信息泄露)事件的发生。 01 Python 的应用现状 回望近些年才被 AI 点燃的 Python,其实并非是一门新的语言,它最早于 1989 年底由知名的荷兰计算机程序员 Guido van Rossum 发明,后来 作为一门面向对象、直译式计算机程序设计语言于 1991 年面世。其 30

spring 工具类大集合

三世轮回 提交于 2020-12-24 03:13:02
接以前的文章 apache-commons 常用工具类 和文章 apache-commons 工具类扩展 小家 Spring 对 spring 的工具类做了详细的介绍(一) 这里我抽出一些好用的类,不是那种静态方法的类还有一些扩充来组成这篇博文 小家 Spring 工具类 (二) 路径匹配 org.springframework.util.AntPathMatcher 它可以帮助我们做一些路径的匹配,可以用于路径映射规则匹配 。? (任何单字符) * (任意数量字符) **(任意目录或文件) 占位符解析 org.springframework.util.PropertyPlaceholderHelper jdk 的类库中有一些用于字符串点位符的解析 ,像 String.format , MessageFormat String.format 只能顺序来解析类似像 C 语言那样的点位符,像 \d,\s 之类的。 MessageFormat 支持像 {0} ,{1} 这样的点位符。 但有时候我们更希望我们的点位符名称可以自定义,和 spring 的占位符一样的使用,则可以使用类 org.springframework.util.PropertyPlaceholderHelper ,你可以自定义占位符前缀后缀 ${ } 方法参数名解析 org.springframework.core

怎么实现web端上传超大文件,分片上传

风格不统一 提交于 2020-12-24 01:45:12
核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。 * 如何分片; * 如何合成一个文件; * 中断了从哪个分片开始。 如何分,利用强大的js库,来减轻我们的工作,市场上已经能有关于大文件分块的轮子,虽然程序员的天性曾迫使我重新造轮子。但是因为时间的关系还有工作的关系,我只能罢休了。最后我选择了百度的WebUploader来实现前端所需。 如何合,在合之前,我们还得先解决一个问题,我们如何区分分块所属那个文件的。刚开始的时候,我是采用了前端生成了唯一uuid来做文件的标志,在每个分片请求上带上。不过后来在做秒传的时候我放弃了,采用了Md5来维护分块和文件关系。 在服务端合并文件,和记录分块的问题,在这方面其实行业已经给了很好的解决方案了。参考迅雷,你会发现,每次下载中的时候,都会有两个文件,一个文件主体,另外一个就是文件临时文件,临时文件存储着每个分块对应字节位的状态。 这些都是需要前后端密切联系才能做好,前端需要根据固定大小对文件进行分片,并且请求中要带上分片序号和大小。前端发送请求顺利到达后台后,服务器只需要按照请求数据中给的分片序号和每片分块大小(分片大小是固定且一样的)算出开始位置,与读取到的文件片段数据,写入文件即可。 为了便于开发,我 将服务端的业务逻辑进行了如下划分,分成初始化

迷茫了,我们到底该不该用lombok?

旧街凉风 提交于 2020-12-24 00:50:29
前言 最近上网查资料发现很多人对 lombok 褒贬不一,引起了我的兴趣,因为我们项目中也在大量使用 lombok ,大家不同的观点让我也困惑了几天,今天结合我实际的项目经验,说说我的个人建议。 随便搜搜就找到了这几篇文章: 这些人建议使用 lombok ,觉得它是一个神器,可以大大提高编码效率,并且让代码更优雅。 在搜索的过程中,有些文章却又不推荐使用: 这些人觉得它有一些坑,容易给项目埋下隐患,我们到底该听谁的呢? 为什么建议使用lombok? 1.传统javabean 在没使用 lombok 之前,我们一般是这样定义javabean的: public class User { private Long id; private String name; private Integer age; private String address; public User() { } public User(Long id, String name, Integer age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } public Long getId() { return id; } public String getName() {

Maven 打包 .exe 可执行文件

烈酒焚心 提交于 2020-12-23 18:47:59
<build> <plugins> <plugin> <!-- 使用 maven-shade-plugin 打包项目 并导入 maven 中依赖的包 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.1</version> <configuration> <!-- 解决 A JNI error has occurred 问题 --> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- 不生成 简易的 pom 结构 --> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals>

阿里面试题:说说HashMap的扩容过程?

被刻印的时光 ゝ 提交于 2020-12-23 18:44:44
  这是一道阿里的面试题,考察你对HashMap源码的了解情况,废话不多说,咱们就直接上源码吧! jdk 1.7 源码 void resize( int newCapacity) { Entry[] oldTable = table; // 保存旧数组 int oldCapacity = oldTable.length; if (oldCapacity == MAXIMUM_CAPACITY) { // 判断当前数组大小是否达到最大值 threshold = Integer.MAX_VALUE; return ; } Entry[] newTable = new Entry[newCapacity]; // 创建一个新数组 boolean oldAltHashing = useAltHashing; useAltHashing |= sun.misc.VM.isBooted() && (newCapacity >= Holder.ALTERNATIVE_HASHING_THRESHOLD); boolean rehash = oldAltHashing ^ useAltHashing; // 是否需要重新计算hash值 transfer(newTable, rehash); // 将oldTable的元素迁移到newTable table = newTable; //

Oracle 12c CC安装碰见的认证问题

前提是你 提交于 2020-12-23 15:14:54
维护的系统增加,导致对应需要维护的开发数据库环境也增加了,为了简化管理和监控,搭建图形化管理平台,是一种不错的解决方案,我们知道,11g就有了GC(Grid Control),发展到现在,已经有了12c CC和13c CC(Cloud Control)。 这两篇文章,介绍了安装12c CC的整个流程。 Oracle 12c CC安装部署攻略 (上) Oracle 12c CC安装部署攻略 (下) 这次要说的是,由于机房搬迁,需要用新的机器来搭建,但即使安装步骤,和之前一样,运行到62%的时候,总是会出错, 看下日志,报的是未连接Node Manager,还有一些General SSLEngine problem的错误, ...... Connecting to Node Manager ... This Exception occurred at Thu Jul 13 14:33:03 CST 2017. javax.net.ssl.SSLHandshakeException: General SSLEngine problem Thu Jul 13 14:33:03 CST 2017 Node Manager is not running ...... Jul 13, 2017 2:33:04 PM oracle.sysman.omsca.util

jdk与jre的区别

可紊 提交于 2020-12-23 03:58:39
很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。 JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。 JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机

jre与jdk的区别

徘徊边缘 提交于 2020-12-23 03:47:44
1. 定义 JRE(Java Runtime Enviroment)是Java运行时环境。面向Java程序的使用者,而不是开发者。JRE是运行Java程序所必须环境集合,包含JVM标准实现及Java核心库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 JDK(Java Development Kit)是Java开发工具包,它提供了Java的开发环境(编译器javac等工具,用于将java文件编译成class文件)和运行环境(包括JVM和Runtime辅助包,用于解析class文件使其运行)。如果安装了JDK,那么不仅拥有了Java开发环境,也拥有了运行Java程序的平台。实际上JDK=开发工具tools+JRE+标准类库。 总结一下,jdk包含jre,jdk是jre的父级上级。jre只是jdk的一个子集存在。 2. 为什么安装JDK的时候会出现两套JRE 我们在安装JDK的时候会出现两个jre目录,一个是jdk的子目录(jdk内部目录),一个是jdk的同级目录(jdk外部目录),那么它们之间有什么区别呢? 先说一下Java的虚拟机是怎么回事 众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳。它会装载jvm.dll(windows下)

jsp+servlet搭建在线投票问卷系统

只愿长相守 提交于 2020-12-22 20:50:50
点赞再看,养成习惯 程序帮QQ:1022287044 开发环境准备: jdk1.8 tomcat8 mysql5.7 intellij IDEA 系统采用技术: jsp+ servlet mvc三层架构模式 jdbc jQuery+ajax ECharts 4.3.0 项目介绍 用户端 <br> 用户端可以查看问卷列表并参与问卷调查 查看个人参与的调查报告以及整个问卷情况 管理端 <br> 问卷的新增和维护 用户信息维护 项目设计 运行效果 登录 添加问卷 问卷投票列表 投票详情 数据库表 代码结构截图 关键代码: 添加问卷: public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { String questionTitle = request.getParameter("questionTitle"); //问卷标题 String qId = request.getParameter("qId"); //问卷id Integer ops =Integer.valueOf(request.getParameter("ops"));//具体几组 String doType=request.getParameter("doType"); //操作类型