解决sh文件上传到linux服务器上后换行符不兼容的问题

2020-07-16
阅读 1 分钟
1.8k
批量替换为linux文件格式: sudo find /home/test -name "*.py" | xargs dos2unix 批量替换为dos文件格式: sudo find /home/test -name "*.py" | xargs unix2dos

docker 非root用户启动

2020-07-16
阅读 1 分钟
2.8k
docker非root用户启动容器需要执行以下命令,将docker加入用户组:sudo usermod -aG docker your_username

《java 8 实战》读书笔记 -第十四章 函数式编程的技巧

2019-05-20
阅读 2 分钟
1k
一等函数:能够像普通变量一样使用的函数称为一等函数(first-class function)通过::操作符,你可以创建一个方法引用,像使用函数值一样使用方法,也能使用Lambda表达式(比如,(int x) -> x + 1)直接表示方法的值。

《java 8 实战》读书笔记 -第十三章 函数式的思考

2019-05-07
阅读 3 分钟
1k
如果一个方法既不修改它内嵌类的状态,也不修改其他对象的状态,使用return返回所有的计算结果,那么我们称其为纯粹的或者无副作用的。副作用就是函数的效果已经超出了函数自身的范畴。下面是一些例子。

《java 8 实战》读书笔记 -第十二章 新的日期和时间 API

2019-05-06
阅读 9 分钟
1.4k
你还可以通过传递一个TemporalField参数给get方法拿到同样的信息。TemporalField是一个接口,它定义了如何访问temporal对象某个字段的值。ChronoField枚举实现了这一接口,所以你可以很方便地使用get方法得到枚举元素的值,如下所示。使用TemporalField读取LocalDate的值

《java 8 实战》读书笔记 -第十一章 CompletableFuture:组合式异步编程

2019-04-30
阅读 8 分钟
1.8k
在Future中触发那些潜在耗时的操作把调用线程解放出来,让它能继续执行其他有价值的工作,不再需要呆呆等待耗时的操作完成。打个比方,你可以把它想象成这样的场景:你拿了一袋子衣服到你中意的干洗店去洗。干洗店的员工会给你张发票,告诉你什么时候你的衣服会洗好(这就是一个Future事件)。衣服干洗的同时,你可以去...

《java 8 实战》读书笔记 -第十章 用Optional取代null

2019-04-26
阅读 4 分钟
1.1k
Java 8中引入了一个新的类java.util.Optional<T>。变量存在时,Optional类只是对类简单封装。变量不存在时,缺失的值会被建模成一个“空”的Optional对象,由方法Optional.empty()返回。

《java 8 实战》读书笔记 -第九章 默认方法

2019-04-25
阅读 3 分钟
1k
如果在现存的接口上引入了非常多的新方法,所有的实现类都必须进行改造,实现新方法,为了解决这个问题,Java 8为了解决这一问题引入了一种新的机制。Java 8中的接口现在支持在声明方法的同时提供实现,这听起来让人惊讶!通过两种方式可以完成这种操作。其一,Java 8允许在接口内声明静态方法。其二,Java 8引入了一个...

《java 8 实战》读书笔记 -第八章 重构、测试和调试

2019-04-25
阅读 10 分钟
1.5k
一、为改善可读性和灵活性重构代码 1.改善代码的可读性 Java 8的新特性也可以帮助提升代码的可读性: 使用Java 8,你可以减少冗长的代码,让代码更易于理解 通过方法引用和Stream API,你的代码会变得更直观 这里我们会介绍三种简单的重构,利用Lambda表达式、方法引用以及Stream改善程序代码的可读性: 重构代码,用Lam...

《java 8 实战》读书笔记 -第七章 并行数据处理与性能

2019-04-24
阅读 5 分钟
1.2k
它在内部实际上就是设了一个boolean标志,表示你想让调用parallel之后进行的所有操作都并行执行。类似地,你只需要对并行流调用sequential方法就可以把它变成顺序流。但最后一次parallel或sequential调用会影响整个流水线。

《java 8 实战》读书笔记 -第六章 用流收集数据

2019-04-23
阅读 11 分钟
2k
一、收集器简介 把列表中的交易按货币分组: {代码...} 从Collectors类提供的工厂方法(例如groupingBy)创建的收集器。它们主要提供了三大功能: 将流元素归约和汇总为一个值 元素分组 元素分区 二、归约和汇总 数一数菜单里有多少种菜: {代码...} 这还可以写得更为直接: {代码...} 1.查找流中的最大值和最小值 可以...

《java 8 实战》读书笔记 -第五章 使用流

2019-04-19
阅读 6 分钟
1.1k
Streams接口支持filter方法。该操作会接受一个谓词(一个返回boolean的函数)作为参数,并返回一个包括所有符合谓词的元素的流。例如筛选出所有素菜,创建一张素食菜单:

嵌套事务及事务不起作用的问题

2019-04-18
阅读 2 分钟
5k
代码方法示例 {代码...} 说明:   让事务起作用,遇到错误进行回滚,应该注意的事项: 第一种情况:同一个类中 一个方法无嵌套方法  1、如果方法名上加上@Transactional注解,方法内不要用try catch ;如果必须要用try catch ,则catch中必须用throw new RuntimeException()。否则事务不起作用。 第二种情况:同一个类中...

《java 8 实战》读书笔记 -第四章 引入流

2019-04-11
阅读 4 分钟
866
流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码。

《java 8 实战》读书笔记 -第三章 Lambda表达式

2019-04-11
阅读 5 分钟
1.8k
只有在需要函数式接口的时候才可以传递Lambda下哪些是使用Lambda表达式的有效方式?(1) {代码...} (2) {代码...} (3) {代码...} 答案:只有1和2是有效的。第一个例子有效,是因为Lambda() -> {}具有签名() -> void,这和Runnable中的抽象方法run的签名相匹配。请注意,此代码运行后什么都不会做,因为Lambda是空的...

数据库连接池

2019-02-28
阅读 9 分钟
4.6k
对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈...

java日志框架

2019-01-16
阅读 17 分钟
6.9k
java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,Slf4j,Logback,Jul。

Volatile与多线程

2019-01-16
阅读 4 分钟
1.5k
我们知道在多线程的场景下,线程安全是必须要着重考虑的。Java语言包含两种内在的同步机制:同步块(synchronize关键字)和 volatile 变量。但是其中 Volatile 变量虽然使用简单,有时候开销也比较低,但是同时它的同步性较差,而且其使用也更容易出错。下面我们先使用一个例子来展示下volatile有可能出现线程不安全的情...

jconsole监控远程运行在centos上的spring boot程序

2018-09-14
阅读 2 分钟
4.4k
1.定义环境变量 由于需要设置的java启动参数较多,故而将其设置到环境变量中,在/etc/profile 最后一行增加 {代码...} 然后 source /etc/profile 是文件生效。 2.修改权限文件 复制jmxremote.password.template,并重名为jmxremote.password {代码...} 对于jmxremote.password,将其中的: {代码...} 的注释去掉,改为 {...

spring security oauth2设置错误信息为json格式

2018-09-01
阅读 1 分钟
4.3k
spring security oauth2默认的错误信息返回格式是xml,如果要返回json,可以在请求头中指定'Accept: application/json'。

idea application.yml 文件文本显示的原因和解决方案

2018-09-01
阅读 1 分钟
5.4k
问题描述: idea 突然yml 文件不能正常显示, 就像下图一样 这里写图片描述 解决问题: 操作形式: file—> setting—->> File Types—>> Text 删除相应的信息 在点击: apply , ok 。 完成即可, 具体如下

centos6.8下 redis安装及远程访问设置

2018-08-31
阅读 1 分钟
2.6k
1.安装Remi的软件源 {代码...} 2.安装redis {代码...} 3.设为开机自启动 {代码...} 4.设置远程登录 编辑配置文件 {代码...} 1) 把bind 127.0.0.1这一行注释掉,或者改成bind 0.0.0.0 2) protected-mode 要设置成no 3) 增加requirepass yourPassword 5.重新启动redis {代码...} 6.开启防火墙端口 {代码...}

centos6.7下安装mysql

2018-08-30
阅读 1 分钟
1.9k
1、查看本系统是否已经安装有MySQL数据库 先查看本操作系统是否已经安装有操作系统,显示只有一个mysql的类库,并没有安装该数据库。 rpm -qa | grep mysql mysql-libs-5.1.73-3.el6_5.x86_64 2、使用yum安装MySQL数据库,需要安装mysql客户端和mysql-server端 sudo yum install mysql mysql-server 3、查看已安装数据库...