目录

菠萝🍍的博客

有谁不喜欢吃菠萝呢

CellStyleFactory减少cellstyle的创建,提高利用率

CellStyleFactory减少cellstyle的创建,提高利用率

通过Java连接linux,并执行脚本或者命令

通过 Java 连接 Linux,并执行脚本或者命令

根据文件,进行压缩为zip,批量下载

根据文件,进行压缩为zip,批量下载

Could not transfer artifact org.xolstice.maven.plugins:protobuf-maven-plugin:jar:0.5.0 from/to central解决办法

报错 Could not transfer artifact org.xolstice.maven.plugins:protobuf-maven-plugin🏺0.5.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: org/xolstice/maven/plugins/protobuf-maven-plugin/0.5.0/protobuf-maven-plugin-0.5.0.jar from central failed 是部分jar包没有下载下来,在本地仓库删除重新下载就行

对NIO 中channel的理解

Channel NIO 中 一个 连接 就是 用 一个 Channel( 通道) 来 表示。 大家知道, 从更广泛 的 层面 来说, 一个 通道 可以 表示 一个 底层 的 文件 描述 符, 例如 硬件 设备、文件、 网络 连接 等。 然而, 远远 不止 如此, 除了 可以 对应 到底 层 文件 描述 符, Java NIO 的 通道 还可以 更加 细化。 例如, 对应 不同 的 网络 传输 协议 类型, 在 Java 中 都有 不同 的 NIO Channel( 通道) 实现。 Channel( 通道) 的 主要 类型 这里 不对 纷繁 复杂 的 Java NIO 通道 类型 进行 过多 的 描述, 仅仅 聚焦 于 介绍 其中 最为 重要的 四种 Channel( 通道) 实现: FileChannel、 SocketChannel、 ServerSocketChannel、 DatagramChannel。 对于 以上 四种 通道, 说明 如下: (1) FileChannel 文件 通道, 用于 文件 的 数据 读写。 (2) SocketChannel 套 接 字 通道, 用....

【转载】NIO ByteBuffer的allocate与allocateDirect区别(HeapByteBuffer与DirectByteBuffer的区别)

其中allocateDirect分配的字节缓冲区用中文叫做直接缓冲区(DirectByteBuffer),用allocate分配的ByteBuffer叫做堆字节缓冲区(HeapByteBuffer).. 其实根据类名就可以看出,HeapByteBuffer所创建的字节缓冲区就是在jvm堆中的,即内部所维护的java字节数组。而DirectByteBuffer是直接操作操作系统本地代码创建的内存缓冲数组(c、c++的数组)。 一、测试代码测试 由于DirectByteBuffer操作的缓冲区是通过操作系统本地代码创建的,对于java来说创建和销毁DirectByteBuffer更消耗性能。而HeapByteBuffer内部是直接创建的java数组,对于java来说更快。可以根据下面的测试代码测试: public static void directAndHeapSpeedCompare(){ int length=1000000; directExecuteTime(length); heapExecuteTime(length); } private static void direc....

在家呆着,不如摘抄点啥【2】

《教父2》 第五章 不要忘了,我们真正的信仰在于我们相信奇迹会发生。

在家呆着,不如摘抄点啥【1】

王家卫台词 每个人都会坚持自己的信念,在别人看来是浪费时间,他却觉得很重要。 花什么时候开是有季节的,马贼什么时候到却没有人知道。 我以前听人说过如果刀快的话,血从伤口喷出来的时候像风声一样,很好听,想不到第一次听到的是我自己流出来的血。 虽然我很喜欢她,但是我不想让她知道,因为我明白得不到的东西永远是最好的。每次她凝望着那小孩子,我知道她心里其实在想另一个人。我很妒忌欧阳锋,我很想知道被人喜欢的的感觉是怎样的,结果我伤害了很多人。 以前也这么想,但是看着他一天天长大,我知道他早晚会离开我。现在我觉得什么都无所谓啦。以前我认为那句话很重要,因为我觉得有些话说出来就是一生一世,现在想一想,说不说也没有什么分别,有些事会变的。我一直以为是我自己赢了,直到有一天我看着镜子,才知道自己输了,在我最美好的时候,我最喜欢的人都不在我身边。如果能重新开始那该多好啊! 知乎上记载的一些回答 问:如果从一个空有上进心的人,变成行动上的巨人 答: 有没有办法把背单词这事儿赋予一个重大的意义呢?很快我想到一个。考过TOEFL/GRE,拿到高分,在新东方教书,据说年薪百万,那。。。一个单词就相当于50块....

【LeetCode刷题】1115. 交替打印FooBar

题目 我们提供一个类: class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } } } 两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo() 方法,另一个线程将会调用 bar() 方法。 请设计修改程序,以确保 "foobar" 被输出 n 次。 示例 1: 输入: n = 1 输出: "foobar" 解释: 这里有两个线程被异步启动。其中一个调用 foo() 方法, 另一个调用 bar() 方法,"foobar" 将被输出一次。 示例 2: 输入: n = 2 输出: "foobarfoobar" 解释: "foobar" 将被输出两次。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/print-foobar-alternately 著作....

POI开发指南2

图像 图像是图形支持的一部分。要添加图像,只需在绘图首字母上调用createPicture()。在编写时,支持以下类型: PNG JPG DIB 应该注意的是,一旦将一幅图像添加到一张纸上,任何现有的图形都可能被擦除。 //create a new workbook Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook(); //add picture data to this workbook. InputStream is = new FileInputStream("image1.jpeg"); byte[] bytes = IOUtils.toByteArray(is); int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); is.close(); CreationHelper helper = wb.getCreationHelper(); //create sheet Sheet sheet = wb.createSheet(); ....

POI开发指南1

POI开发指南1,来源 创建一个新的工作簿 Workbook wb = new HSSFWorkbook(); try (OutputStream fileOut = new FileOutputStream("workbook.xls")) { wb.write(fileOut); } Workbook wb = new XSSFWorkbook(); try (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) { wb.write(fileOut); } 这里应当注意的是,创建空的工作簿是无法打开的。HSSX=>.xls文件 XSSF=>.xlsx文件 创建一个新表 Workbook wb = new HSSFWorkbook(); // or new XSSFWorkbook(); Sheet sheet1 = wb.createSheet("new sheet"); Sheet sheet2 = wb.createSheet("second sheet"); // 请注意,工作表名称是Exc....

【LeetCode刷题】1117.H2O生成

【LeetCode刷题】1117.H2O生成 现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。 这些线程应该三三成组突破屏障并能立即组合产生一个水分子。 你必须保证产生一个水分子所需线程的结合必须发生在下一个水分子产生之前。 换句话说: 如果一个氧线程到达屏障时没有氢线程到达,它必须等候直到两个氢线程到达。 如果一个氢线程到达屏障时没有其它线程到达,它必须等候直到一个氧线程和另一个氢线程到达。 书写满足这些限制条件的氢、氧线程同步代码。 示例 1: 输入: "HOH" 输出: "HHO" 解释: "HOH" 和 "OHH" 依然都是有效解。 示例 2: 输入: "OOHHHH" 输出: "HHOHHO" 解释: "HOHHHO", "OHHHHO", "HHOHOH", "HOHHOH", "OHHHOH", "HHOOHH", "HO....

【转载】新年彩蛋:Spring Boot自定义Banner

新年彩蛋:Spring Boot 自定义 Banner 借用 Spring Boot 的 Banner 向各位程序猿同仁们问候一声:Happy New Year。 接下来我们就来介绍一下这个轻松愉快的自定义 banner 功能。实现的方式非常简单,我们只需要在 Spring Boot 工程的 /src/main/resources 目录下创建一个 banner.txt 文件,然后将 ASCII 字符画复制进去,就能替换默认的 banner 了。比如上图中的输出,就采用了下面的 banner.txt 内容: ${AnsiColor.BRIGHT_GREEN} ## ## ### ######## ######## ## ## ## ## ######## ## ## ## ## ######## ### ######## ## ## ## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #### #### ## ## ## ## ## #### ## ## ## #....

Netty的复习【3】Buffer、NIO

Buffer ByteBuffer可以理解为放在内存中的一个数组。Buffer是一个抽象类,它的具体实现有 ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,DoubleBuffer。为什么没有string,用char代替了。 在这些类型中,使用最多的是ByteBuffer,可以在网络上进行传输。 该图描述的是Buffer的分配、读写和常用操作 原生JDK网络编程- Buffer capacity 作为一个内存块,Buffer有一个固定的大小值,也叫“capacity”.你只能往里写capacity个byte、long,char等类型。一旦Buffer满了,需要将其清空(通过读数据或者清除数据)才能继续写数据往里写数据。 position 当你写数据到Buffer中时,position表示当前的位置。初始的position值为0.当一个byte、long等数据写到Buffer后, position会向前移动到下一个可插入数据的Buffer单元。position最大可为capacity – 1. 当读取....

Netty的复习【2】AIO

水平触发和边缘触发 水平触发Level_triggered 当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读完(如读写缓冲区太小),那么下次调用epoll_wait()时,它还会通知你在上没读写万的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!!!如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率。 边缘触发Edge_triggered 当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据全部读写完(如读写缓冲区太小),那么下次调用epoll_wait()时,它不会通知你,也就是它只会通知你一次,知道该文件描述符上出现第二次可读写事件才会通知你!!!这种模式比水平触发效率高,系统中不会充斥大量你不关心的就绪文件描述符!! select(),poll()模型都是水平触发模式,信号驱动IO是边缘触发模式,epoll()模型即支持水平触发,也支持边缘触发,默认是水平触发。 原生的JD....

Linux中mysql表的导出导入【转载】

导出整个数据库中的所有数据 1、在linux命令行下输入: mysqldump -uUserName -pPasword dabaseName > fileName.sql fileName.sql最好加上路径名 导出数据库中的某个表的数据 mysqldump -uUserName -pPassword dabaseName tableName > fileName.sql 导出整个数据库中的所有的表结构 在linux命令行下输入: mysqldump -uUserName -pPassword -d dabaseName > fileName.sql 注意:是加了-d 导出整个数据库中某个表的表结构 在linux命令行下输入: mysqldump -uUserName -pPassword -d dabaseName tableName > fileName.sql 注意:是加了-d 导出查询的数据 select * from tableName into outfile "/home/vobile/tn.txt" 导入mysql方法1 进入linu....

MySQL 出现的时区问题【转载】

MySQL 出现的时区问题 使用低版本的MySQL jdbc驱动,不会存在时区的问题。 1.驱动版本 问题 Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 启动时,发现提示说: 已经不赞成加载“com.mysql.jdbc.Driver”这个类,新的驱动类为“com.mysql.cj.jdbc.Driver”。 2.时区问题 发现读出数据库中的时间相差几个小时,这是由于数据库和系统时区差异所造成的。 需要在数据库连接串中设置时区。 serverTimezone=GMT即可解决问题,如果需要使用GMT+8时区,需要写成GMT%2B8,否则会被解析为空 serverTimezone=GMT%2B....

Netty的复习【1】

OSI七层模型【记不太清了,要好好复习一下】 OSI七层模型各层作用 物理层 物理层并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的功能描述和执行连接的规程。 DTE、DCE DTE数据终端:手机 DCE数据通信设备:光猫 作用 1.提供数据传输的实际通道 2.传输数据 数据链路层 数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。 网卡可以看作独立的数据链路层产品。 网络层 路由选择和中继,在一条数据链路上复用多条网络连接 传输层 定义传输数据的协议端口号,以及流控和差错校验。 会话层 建立、管理、终止会话 表示层 把应用层提供的信息变换为能够共同理解的形式 应用层 网络服务与最终用户的一个接口 TCP/IP协议 端口号:端口号用来识别同一台计算机中进行通信的不同应用程序。因此,也被称为程序地址。 三次握手 首先标志位SYN置为1,客户端将这个报文发送给服务器端。 然后客户端的状态变为SYN_CENT,然后服务端把SYN,ACK标志位置为1,大写的ACK和小写的ack并不一样,小写的ack表示一个具体的值,seq=K中的K值为随机数,然后服务端....

【LeetCode刷题】按序打印

原题:按序打印 我们提供了一个类: public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); } } 三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 one() 方法 线程 B 将会调用 two() 方法 线程 C 将会调用 three() 方法 请设计修改程序,以确保 two() 方法在 one() 方法之后被执行,three() 方法在 two() 方法之后被执行。 示例 1: 输入: [1,2,3] 输出: "onetwothree" 解释: 有三个线程会被异步启动。 输入 [1,2,3] 表示线程 A 将会调用 one() 方法,线程 B 将会调用 two() 方法,线程 C 将会调用 three() 方法。 正确的输出是 "onetwothree"。 示例 2: 输入: [1,3,2] 输出: "onetwothree" 解释: 输入 [1,3,2] 表示....

【转载】"您与此网站之间建立的连接并非完全安全" ????

有时候即使SSL证书有效, Chrome还是显示"并非完全安全"?比如: 肿么肥事呢?原来一个网页不完全由1个https包得到的, 而是由多个资源共同组成的,打开网络工具就可以看到: 在'Size'那一列, 只有第1个资源(通常是html)是不会走缓存的,这个资源也来自浏览器地址栏里面所看到的url. 光第1个资源上了https其他资源只是http并不能保证网站就是完全安全的了. 这时候是'不完全安全'状态, 但是比'危险状态'要安全, 因为毕竟第1个'主导'资源是信任的, 由它调用的其他http资源相对还是比较可靠的. 没有人能授权信任http, 因为http从网络层上就已经不安全了 所以以后要杜绝这类隐患: 代码里的元素:图片,js,css,等调用外面的http://路径; 使用iframe到http://路径上; 推荐使用相对路径(CDN的话除外, 也要记得使用https的cdn哦): ———————————————— 版权声明:本文为CSDN博主「流浪的狗和一坨屎」的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:....