草庐IT

Linux 更加优雅地运行 JAR 文件,并将日志文件输出到本地目录,并优雅的查看日志文件信息

一、运行jar方式一:直接运行jar包,最常用的启动jar包命令,特点:当前ssh窗口被锁定,CTRL+C或关闭窗口,将打断程序运行,程序退出java-jarSpring.jar方式二:&代表在后台运行,CTRL+C后程序不会被终止,关闭SSH客户端连接,将终止程序使用nohup命令将进程放入后台运行,并使用&符号使命令立即返回终端提示符,例java-jarSpring.jar&方式三:nohup即nohangup不挂断,关闭SSH客户端连接,程序不会被终止缺省日志输出目标文件情况下所有输出将被重定向到nohup.out的文件中nohupjava-jarSpring.jar&指定日志文件noh

代码优雅之道——Java如何判空?

1、前言实际项目中我们会有很多地方需要判空校验,如果不做判空校验则可能产生NullPointerException异常。针对异常的处理我们在上一篇有提及:先来看一下实际项目中一些判空方式通常我们判断一个对象是否为Null,可以使用java.util中的Objects.nonNull(obj)、hutool中的ObjectUtil或者直接null!=obj2、List的判空像List这种比较特殊的在项目中可能不仅仅是判断非空了。对于List来说不等于null和List.size()不等于0是两回事,公司也有实习生常常有把这两个混淆的情况,list不等于null说明已经初始化了,堆内存中有一块属于

Unity Resources.LoadAsync 优雅的写法

        传统写法中Resources.LoadAsync("path"),保存回调ResourceRequest开启一个协程或者定时器,每帧去判断一下 ResourceRequest.isDone是否完成,这样每写一句Resources.LoadAsync就得新增一个定时器,如果使用Resources.Load同步加载很大预制体时会卡顿掉帧,所以我们的程序员宗旨就是能躺着绝不站着。    经过我的修改,使用起来相当舒服,有以下特点:1、减少后续繁琐的代码,减少重复代码,使用异步编程方式,一目了然,优雅实在是太优雅了。2、还没想好。。。。。。。。。。。。。    缺陷: 1、如果是需要显

Linux下连接WiFi常用命令,如何优雅的通过SSID、BSSID连接WiFi

Linux下扫描WiFi常用命令1、查看指定无线网卡WiFi情况iwconfigwlan0#wlan0--->网卡名称2、nmcli命令基本操作连接:sudonmclidevicewificonnectwifinamepasswordwifipasswd删除:sudonmclicondelwifiname启动:sudonmcliconnectionupwifiname关闭:sudonmcliconnectiondownwifiname扫描:sudonmclidevicewifilist查看Device:sudonmclidevicestatusExample:#使用wlan0无线网卡连接000

ios - 在 Swift 中传递空闭包的优雅方式

在Swift中,我经常需要将一个noop闭包传递给一个方法,以符合该方法的预期参数(arity)。在ObjC的美好时光里,可以通过nil进行noop回调并完成它。在Swift中是否有一种更快更优雅的方式来做到这一点,而无需传递如下所示的空block?UIAlertAction(title:"Ok",style:UIAlertActionStyle.Default,handler:{(UIAlertAction)->Voidin})//在回调中什么都不做完整示例:importUIKitclassUIAlertControllerFactory{classfuncok(title:Stri

ios - 在 Swift 中传递空闭包的优雅方式

在Swift中,我经常需要将一个noop闭包传递给一个方法,以符合该方法的预期参数(arity)。在ObjC的美好时光里,可以通过nil进行noop回调并完成它。在Swift中是否有一种更快更优雅的方式来做到这一点,而无需传递如下所示的空block?UIAlertAction(title:"Ok",style:UIAlertActionStyle.Default,handler:{(UIAlertAction)->Voidin})//在回调中什么都不做完整示例:importUIKitclassUIAlertControllerFactory{classfuncok(title:Stri

JVM应用优雅上下线,再也不担心抖动了

一、前言JVM的关闭方式可以分为三种:1.正常关闭:当最后一个非守护线程结束、或者调用了System.exit、或者通过其他特定平台的方法关闭(发送SIGINT,SIGTERM信号等)2.强制关闭:通过调用Runtime.halt方法、或者是在操作系统中直接kill(发送SIGKILL信号)掉JVM进程3.异常关闭:运行中遇到RuntimeException异常、OOM错误等。二、ShutdownHook通常JVM可使用runtime.addShutdownHook()对退出信号做处理,它让我们在程序正常退出或者发生异常时能有机会做一些清场工作。关闭钩子其实可以看成是一个已经初始化了的但还没启

vscode stm32cubemx 优雅开发stm32,最简单步骤教程

配置安装环境下载STM32cubeMX,这个大家可以自己在stm的官网下载到下载VSCode下载arm-none-eabi-gcc下载MinGW-w64,为了实现里面的makefile等功能下载OpenOCD这里用来调试stm32,支持jlinkstlinkdaplink上述安装步骤1、安装步骤2在这里比较简单,就不赘述了安装arm-none-eabi-gcc: 此处我们下载zip包,方便安装。以我为例,我们解压到E:\Tools\目录下安装MinGW-w64此处我们同样下载zip包,安装比较方便,注意一定要安装上述划线的版本 以我为例,我们解压到E:\Tools\目录下安装openocd 此

Spring5 中更优雅的第三方 Bean 注入

小伙伴们知道,当我们使用Spring容器的时候,如果遇到一些特殊的Bean,一般来说可以通过如下三种方式进行配置:静态工厂方法实例工厂方法FactoryBean不过从Spring5开始,在AbstractBeandefinition类中多了一个属性,对于特殊的Bean我们有了更多的选择:/***Specifyacallbackforcreatinganinstanceofthebean,*asanalternativetoadeclarativelyspecifiedfactorymethod.*Ifsuchacallbackisset,itwilloverrideanyotherconstr

Go优雅的错误处理: 支持错误堆栈, 错误码, 错误链的工具库

地址:https://github.com/morrisxyang/errors如果觉得有用欢迎Star和PR,有问题请直接提issueerrors简单的支持错误堆栈,错误码,错误链的工具库:支持携带堆栈,嵌套构造错误链支持携带错误码,方便接口返回支持自定义堆栈打印深度和错误链打印格式使用CallersFrames替代FuncForPC生成堆栈,避免特殊情况linenumber错误等问题,详见runtime:stronglyencourageusingCallersFramesoverFuncForPCwithCallersresult简化堆栈信息,一条链路多次Wrap操作只保留最深层堆栈,只