JDK

java 使用jacod 实现word转pdf

我们两清 提交于 2020-10-30 16:04:45
java 使用jacod实现word转pdf(IDEA Maven项目) 步骤: 一、 插件与jar包下载 SaveAsPDFandXPS 下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=7 (若访问不了,百度搜索SaveAsPDFandXPS) jacob 包下载地址: http://sourceforge.net/projects/jacob-project/ 二、安装插件SaveAsPDFandXPS (本例好像不安装也可以) 如要安装,百度搜索SaveAsPDFandXPS,安装即可 三、jacod jar包和dll存放路径 .下载 jacob 解压后存放路径:  jacob.jar 放在 C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext目录下 jacob.dll 放在 C:\Program Files\Java\jdk1.8.0_171\jre\bin 目录下 四、 项目里src/main/resource/lib 下放jar包 五、pom文件中添加依赖 <dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifactId> <version>1.20</version>

还在用BlockingQueue?读这篇文章,了解下Disruptor吧

喜欢而已 提交于 2020-10-30 16:02:29
1.何为队列 听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不仅让这个超市崩溃,还会容易造成各种踩踏事件,当然这些事其实在我们现实中也是会经常发生。 当然在计算机世界中,队列是属于一种数据结构,队列采用的FIFO(first in firstout),新元素(等待进入队列的元素)总是被插入到尾部,而读取的时候总是从头部开始读取。在计算中队列一般用来做排队(如线程池的等待排队,锁的等待排队),用来做解耦(生产者消费者模式),异步等等。 2.jdk中的队列 在jdk中的队列都实现了java.util.Queue接口,在队列中又分为两类,一类是线程不安全的,ArrayDeque,LinkedList等等,还有一类都在java.util.concurrent包下属于线程安全,而在我们真实的环境中,我们的机器都是属于多线程,当多线程对同一个队列进行排队操作的时候,如果使用线程不安全会出现,覆盖数据,数据丢失等无法预测的事情,所以我们这个时候只能选择线程安全的队列。在jdk中提供的线程安全的队列下面简单列举部分队列: 队列名字 是否加锁 数据结构 关键技术点 是否有锁 是否有界 ArrayBlockingQueue 是 数组array

大多数人不知道的:HashMap链表成环的原因和解决方案

人盡茶涼 提交于 2020-10-30 11:09:11
前言: 在 JDK7 版本下,很多人都知道 HashMap 会有链表成环的问题,但大多数人只知道,是多线程引起的,至于具体细节的原因,和 JDK8 中如何解决这个问题,很少有人说的清楚,百度也几乎看不懂,本文就和大家聊清楚两个问题: JDK7 中 HashMap 成环原因; JDK8 中是如何解决的。 一、JDK7 中 HashMap 成环原因 成环的时机 HashMap 扩容时。 多线程环境下。 成环的具体代码位置 在扩容的 transfer 方法里面,有三行关键的代码,如下: void transfer ( Entry [ ] newTable , boolean rehash ) { int newCapacity = newTable . length ; for ( Entry < K , V > e : table ) { //e为空时循环结束 while ( null != e ) { Entry < K , V > next = e . next ; if ( rehash ) { e . hash = null == e . key ? 0 : hash ( e . key ) ; } int i = indexFor ( e . hash , newCapacity ) ; // 成环的代码主要是在这三行代码 // 首先插入是从头开始插入的 e . next =

java_oop_类

此生再无相见时 提交于 2020-10-30 08:04:47
类的初始化顺序 再论类的组成 类的初始化顺序详解 变量 实例变量(成员变量) 类变量(静态变量) 方法 实例方法 类方法 构造方法 初始化块 实例初始化块 静态初始化块 内部类 单个类的初始化顺序 静态成员变量,静态代码块(与顺序有关) 实例成员变量,代码块(与顺序有关) 构造方法 方法重载 重载的概念 重载的调用 重载与装箱/拆箱 重载与可变长度参数 方法重载是指在同一个类中,有相同名称但参数不同的方法 参数不同: 数量不同 数据类型不同 顺序不同 只有能区分开方法,就是合法的 一般方法的重载 构造方法的重载 优先级 实参是基本类型 实参是包装类 方法重写 方法重写的概念 方法重写的语法 @override注解 父类 子类,重写父类的方法 测试类,这是调用类 方法的重载 重写语法规则 this关键字 指向当前的实例 使用场景 方法中使用 构造方法中 this不能用在static上下文中 super关键字 指向父类的实例 使用场景 在一般的实例方法中使用 在构造方法中使用 在构造方法中使用必须是第一句代码 访问控制修饰符 在java中,有4种访问控制修饰符 可以放在方法与变量前,部分访问控制修饰符也可以放在类前 目的是控制代码的访问权限 public修饰方法,变量,和类 protected,本包及子类 默认,本包 private,本类可以访问 同一个类中调用 同一个包中不同类调用

JAVA工程师-蚂蚁金服电话面试

懵懂的女人 提交于 2020-10-30 01:44:23
   今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来。挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好。剩下半个小时完全没有心思再工作了,把常问的HashMap,concurrentHashMap底层看了一下,算是临时抱佛脚吧。一下班,就收拾出发在公司楼下找了个地方等面试电话。    没一会儿,电话如期而至。先是聊了下大概情况,然后聊了下工作经历。叫我挑选一个自己觉得掌握的最好的项目开始发问。    最开始问了你觉得项目中最难的地方,自己因为毕业了一直在小公司,也没有感觉遇到特别困难的地方,憋了半天憋不出来。面试官也放弃了,直接问,项目中用到Map集合吧,用到过哪些Map。自己就说了个最熟悉的HashMap。但是面试官好像不太想问这个,又问有没有用到过排好序的Map,当时自己脑子短路了,没想到TreeMap是排序的,当时竟然一时想不出有排好序的Map,就说了没有排好序的Map,但是可以实现Compareble接口来实现排序。肯定面试官也很无语,这送分题都不会啊!然后又问HashMap put方法的时间复杂度,我说因为HashMap底层是数组加链表实现的,如果没有hash碰撞时间复杂度就是O(1),有碰撞最坏情况就是O(n)。然后看到我建立上有写线程池,就问了下创建线程池的具体参数的含义,这个没啥难的

Java基础知识总结(超级经典)

十年热恋 提交于 2020-10-29 23:26:09
Java基础知识总结(超级经典)   写代码:     1,明确需求。我要做什么?     2,分析思路。我要怎么做?1,2,3。     3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。     4,代码实现。用具体的java语言代码把思路体现出来。   学习新技术的四点:     1,该技术是什么?     2,该技术有什么特点(使用注意):     3,该技术怎么使用。demo     4,该技术什么时候用?test。 —————————————————————————————————————————————————————— 一:java概述:   1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;   1994年将Oak语言更名为Java;   Java的三种技术架构:   JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;   JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;   JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;   1,JDK:Java

如何在Redhat7.4安装CDH6.0

∥☆過路亽.° 提交于 2020-10-29 22:38:10
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 Cloudera在前天8月30日,对外宣布正式发布Cloudera Enterprise 6,相关介绍可以参考Fayson昨天的文章《 Cloudera Enterprise 6正式发布 》。本文档Fayson主要描述如何在Redhat7.4安装CDH6.0。CDH6与CDH5的安装步骤一致,主要包括以下四部分: 1.安全前置准备,包括安装操作系统、关闭防火墙、同步服务器时钟等; 2.外部数据库如MySQL安装 3.安装Cloudera Manager; 4.安装CDH集群; 请务必注意CDH6的安装前置条件包括如下: 外部数据库支持: MySQL 5.7或更高 MariaDB 5.5或更高 PostgreSQL 8.4或更高 Oracle 12c或更高 JDK Oracle JDK1.8,将不再支持JDK1.7 操作系统支持 RHEL 6.8或更高 RHEL 7.2或更高 SLES 12 SP2或更高 Ubuntu 16或更高 本次Fayson的测试环境为 1.CM和CDH版本为6.0 2.Redhat7.4 3.JDK1.8.0

Java基础知识

北慕城南 提交于 2020-10-29 20:41:21
1. 面向对象和面向过程的区别 面向过程 面向对象 2. Java 语言有哪些特点 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 OpenJDK 的对比 5. Java和C++的区别 6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同 7. Java 应用程序与小程序之间有那些差别 8. 字符型常量和字符串常量的区别 9. 构造器 Constructor 是否可被 override 10. 重载和重写的区别 11. Java 面向对象编程三大特性: 封装 继承 多态 封装 继承 多态 12. String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的 13. 自动装箱与拆箱 14. 在一个静态方法内调用一个非静态成员为什么是非法的 15. 在 Java 中定义一个不做事且没有参数的构造方法的作用 16. import java和javax有什么区别 17. 接口和抽象类的区别是什么 18. 成员变量与局部变量的区别有那些 19. 创建一个对象用什么运算符?对象实体与对象引用有何不同? 20. 什么是方法的返回值?返回值在类的方法里的作用是什么? 21. 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?

一名北漂三年的Java程序员的面试经历和题库总结

六眼飞鱼酱① 提交于 2020-10-29 16:57:26
最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦。所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考。其中会包含一些面试的小经验,如果您是面霸,希望能给予指导。自己不是大牛,如果您是大牛,也可以忽略之。我面试的岗位是Java后端开发工程师。 一、简历 简历里面需要包含的内容应该是学历,自己的技术栈,然后自己做过的一些项目。简历不需要太长,两页纸即可。里面应该重点写你使用过的一些框架,自己做的一些项目,以及自己的收获,简练第一。一般面试官不会有很多的耐心,看你的项目详细描述,所以尽量简洁明了即可。 二、简历投递 投递的方式有几种吧,相信大家也都知道。一般在程序员的垂直招聘网站投递即可,比如脉脉、BOSS直聘、拉勾等等。智联招聘啥的,不太适合咱们程序员,你懂的。另外,由于自己不是大牛,所以如果有猎头勾搭的话,我尽量不会理会,因为有过血的教训。所以尽量还是自己投简历比较靠谱,或者是内推。 三、面试 由于我是跨城市,所以我接到的面试一般都是电话面试+视频面试,如果聊得差不多了,也有现场面试,不会拘泥于形式。 一般来说,面试流程都差不太多。首先自我介绍,重点介绍一下自己的一些工作经历,以及自己主要负责的一些内容。这块可以提前准备一下,不过也不需要特地准备,别搞得像背书似的,反而觉得不真实。 3.1 技术面试 一般公司都会有两到三轮的技术面试,大厂的技术面试轮次还可能更多

当IntelliJ IDEA2020.1遇上JDK14:所有美好环环相扣

99封情书 提交于 2020-10-29 16:47:18
原文地址:blog.csdn.net/weixin_43413658/article/details/105839472 松哥原创的四套视频教程已经全部杀青,感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 IntelliJ IDEA新功能: 界面支持中文 但这里要注意的是不是原生支持中文,而是要安装jetbrains的官方插件, 如下图 导航栏改进 上面的导航栏可以直接跳转到各个方法,这个以前要实现的话要点左侧的Structure ,现在就方便多了 支持Javadoc的渲染 以前Javadoc看起来很费劲,要手动转换html格式,现在看起来就很方便了,还可以更改字体大小 以前 现在 新增主题和字体 主题: 字体: Lightedit模式 你可以把idea当成编辑器 Zen模式 进入了蝉模式,世界瞬间变得清爽了很多,让你专注于写代码 在IDEA里安装JDK 支持Java 14新特性 instanceof用法增强 record新语法支持 命令行终端支持分栏 更加智能的检查和重构 支持就地更改方法签名 智能分析日期字符串格式 更加智能的检查和重构 支持数据流分析辅助,可以直接预测下面的运行结果 调试时,支持对象字段的置顶 以文件形式存储运行配置 更加先进的版本控制 优化了代码提交的窗口 支持搜索,刷新本地及远端的代码分支 Maven和Gradle导入更新