Java 14 新功能介绍

第14版包含的JEP(Java Enhancement Proposals,Java增强提案)比12版和13版加起来还要多。在这篇文章中,我将主要讨论以下几点:

•改进的switch表达式,第一次出现在Java 12和13中,在Java 14中获得了完全的支持

•instanceof支持模式匹配(语言特性)

•NullPointerException(JVM特性)

希望你在阅读完本文后,积极地代码中实验这些功能,为Java团队提供反馈,并为Java的发展做出贡献。

第14版包含的JEP(Java Enhancement Proposals,Java增强提案)比12版和13版加起来还要多。在这篇文章中,我将主要讨论以下几点:

•改进的switch表达式,第一次出现在Java 12和13中,在Java 14中获得了完全的支持

•instanceof支持模式匹配(语言特性)

•NullPointerException(JVM特性)

希望你在阅读完本文后,积极地代码中实验这些功能,为Java团队提供反馈,并为Java的发展做出贡献。

防止win10休眠的小程序

Awake 是一款非常小巧且无界面的小工具,它能够阻止 Windows 系统休眠、屏幕关闭,运行即防休眠,关闭即恢复正常系统设置。

Insomnia 临时阻止电脑进入休眠状态

Awake 是一款非常小巧且无界面的小工具,它能够阻止 Windows 系统休眠、屏幕关闭,运行即防休眠,关闭即恢复正常系统设置。

Insomnia 临时阻止电脑进入休眠状态

阿里巴巴的开源项目!

开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题。

把阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。

开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题。

把阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。

QT可重入与线程安全

可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。
可重入函数:
不为连续的调用持有静态数据。
不返回指向静态数据的指针;所有数据都由函数的调用者提供。
使用本地数据,或者通过制作全局数据的本地拷贝来保护全局数据。
如果必须访问全局变量,记住利用互斥信号量来保护全局变量。
绝不调用任何不可重入函数

可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。
可重入函数:
不为连续的调用持有静态数据。
不返回指向静态数据的指针;所有数据都由函数的调用者提供。
使用本地数据,或者通过制作全局数据的本地拷贝来保护全局数据。
如果必须访问全局变量,记住利用互斥信号量来保护全局变量。
绝不调用任何不可重入函数

   

实用网络命令

•ping 主机名
•ping 域名
•ping IP 地址
ipconfig 命令
arp 命令(地址转换协议)
traceroute 命令
route 命令
nslookup 命令
nbtstat 命令
netstat 命令
net 命令

•ping 主机名
•ping 域名
•ping IP 地址
ipconfig 命令
arp 命令(地址转换协议)
traceroute 命令
route 命令
nslookup 命令
nbtstat 命令
netstat 命令
net 命令

Git 高级用法

跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法。

跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法。

   

在Github上面精准条件搜索开源项目

我们想要进行精准搜索,无非就是增加筛选条件。

in:name xxx // 按照项目名搜索
in:readme xxx // 按照README搜索
in:description xxx // 按照description搜索

那么在这里面呢,我们又可以增加筛选条件

stars:>xxx // stars数大于xxx
forks:>3000 // forks数大于xxx
language:xxx // 编程语言是xxx
pushed:>YYYY-MM-DD // 最后更新时间大于YYYY-MM-DD

我们想要进行精准搜索,无非就是增加筛选条件。

in:name xxx // 按照项目名搜索
in:readme xxx // 按照README搜索
in:description xxx // 按照description搜索

那么在这里面呢,我们又可以增加筛选条件

stars:>xxx // stars数大于xxx
forks:>3000 // forks数大于xxx
language:xxx // 编程语言是xxx
pushed:>YYYY-MM-DD // 最后更新时间大于YYYY-MM-DD