首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏nobody

    Java指南:ScheduledThreadPoolExecutor

    :提交的任务内部不处理异常,异常信息会丢失,任务不再继续被调度 ---- 提交的延迟任务被封装为ScheduledFutureTask,此类继承FutureTask,在任务处理过程中发生的异常会保存在 java.util.concurrent.FutureTask#outcome中: java.util.concurrent.FutureTask#run 如果我们不调用方法: java.util.concurrent.FutureTask Java指南:ThreadPoolExecutor提交任务出现异常,异常是否吞掉,线程是否退出的不同影响 由于是调度任务,此方法大多不会被开发者调用,所以提交的任务内部需要处理异常。 正确处理任务调度的异常案例: org.apache.rocketmq.broker.BrokerController#initializeBrokerScheduledTasks :被周期性调度的任务 :不要初始化corePoolSize过小,或设置allowCoreThreadTimeOut ---- 设置线程池数目过小或者核心线程池超时,可能导致任务不能及时被调度执行。

    2K40编辑于 2023-06-20
  • 来自专栏nobody

    Java指南:java.util.Arrays工具类

    ---- 一:java.util.Arrays#asList的参数不要传入基本类型数组 ---- 示例:基本类型数组作为参数 package com.example.demo; import <Integer> integers = Arrays.asList(1, 2, 3, 4, 5, 6); System.out.println(integers); } } 二 因为java.util.Arrays#asList返回的list对象是java.util.Arrays类中的一个私有的静态内部类: java.util.Arrays.ArrayList 此类没有实现父类 三、java.util.Arrays#asList传入数组对象返回的list并不是原数组对象的copy,修改会反映到原数组对象 ---- 示例: /** * @author 认知科技技术团队 * 小结 ---- java.util.Arrays工具类记: 【】java.util.Arrays#asList的参数不要传入基本类型数组; 【】java.util.Arrays#asList返回的

    30220编辑于 2023-06-19
  • 来自专栏nobody

    Java指南:涉及金钱计算时使用BigDecimal如何

    但是BigDecimal的有些方法是有的,稍不注意也会产生精度计算的问题。 BigDecimal一: 禁止使用java.math.BigDecimal#BigDecimal(double)构造函数方法 ---- 示例: /** * @author 认知科技技术团队 * 这和一情况一致。 BigDecimal三:禁止使用java.math.BigDecimal#equals比较 ---- 示例: /** * @author 认知科技技术团队 * 微信公众号:认知科技技术团队 */ BigDecimal四:禁止使用java.math.BigDecimal#round 进行舍入运算 ---- 示例: /** * @author 认知科技技术团队 * 微信公众号:认知科技技术团队

    63420编辑于 2023-06-19
  • 来自专栏nobody

    logback指南:AsyncAppender配置

    小结 ---- AsyncAppender配置指南: 1、OOM问题; 2、丢失日志问题; 3、阻塞问题; ----

    2.8K20编辑于 2023-06-19
  • 来自专栏nobody

    Java记:BigDecimal构造函数及比较函数--精度问题

    ---- BigDecimal构造函数使用java.math.BigDecimal#BigDecimal(java.lang.String) ---- 浮点数转换为BigDecimal类型时,如果使用 java.math.BigDecimal#BigDecimal(double)方法,会造成精度丢失。 java.math.BigDecimal#BigDecimal(java.lang.String) 使用compareTo方法比较BigDecimal,而不是equals方法 ---- 与上一篇博文一样 = xDec.scale) return false; 方法java.math.BigDecimal#compareTo会忽略精度,必须使用此方法比较java.math.BigDecimal 小结 ---- 考虑到精度问题,java.math.BigDecimal必须使用带字符串的构造函数,以及使用方法java.math.BigDecimal#compareTo比较。

    66140编辑于 2023-06-19
  • 来自专栏用AI私教速通Rust

    RustJava空指针异常

    这里所讨论的JavaOptional误用,以及之后的Rust空指针异常,并不是暗示Java不如Rust好,而仅仅是为了提升自学者入门Rust的动力而已。 这是 Java 8 及以后版本中函数式编程特性的一个很好的例子。2.2 Rust编译器对误用Option不修复不罢休Rust如何类似上面的”Java编译器无视对Optional的误用“的情况? Option<T>能帮程序员的最大的,是空指针解引用(null pointer dereference)。许多编程语言允许将null赋值给任何引用类型。 String能帮程序员的最大的,是内存安全问题。它通过所有权系统和自动内存管理,有效防止了悬垂指针、缓冲区溢出等常见的内存相关bug。 Rust的编译器能帮助程序员类似Java空指针异常那样的bug,那程序员在用Rust编程时,对于变量的使用,会踩什么?如果喜欢这篇文章,别忘了给文章点个“在看”,好鼓励小吾继续写哦~

    1K61编辑于 2024-09-21
  • 来自专栏nobody

    Java指南:并行化改造,使用CompletableFuture结合流(stream)不能并行执行

    很容易使用自定义的线程池去异步执行,而且CompletableFuture为我们提高了强大的任务编排和异常处理方法。

    1.9K51编辑于 2023-06-20
  • 来自专栏nobody

    Spring指南:Spring声明式事务@Transactional

    声明式事务是大多数程序员使用的,一个注解@Transactional走天下,由于事务的特性及事务是由aop技术来实现的,往往会碰到一些,使得事务失效或性能受损,甚至发生死锁现象。 事务失效的:AOP技术限制引起的 ---- Spring中的事务是AOP实现的,Srping AOP使用JDK动态代理或CGLIB来创建代理对象。 图片来源:https://javadevcentral.com/checked-and-unchecked-exception-in-java 事务回滚源码: org.springframework.transaction.interceptor.TransactionAspectSupport 4、事务多个业务有异步执行,异常不抛出,事务不会回滚 事务的实现涉及到java的ThreadLocal特性,如果异步执行,事务信息丢失或异常丢失,导致事务执行或回滚。 事务的:数据库引起的 ---- 1、数据库引擎不支持事务 事务的:大事务引发问题 ---- 1、锁定数据太多,容易造成大量阻塞或死锁问题和锁等待时间长而引发的锁超时问题; 2、回滚记录占用大量存储空间

    1.1K31编辑于 2023-06-19
  • 来自专栏程序员

    C++小白最容易踩的10(附指南)

    (std::make_unique<int[]>(size)){}//析构函数自动调用,内存自动释放};2.字符串操作陷阱常见错误:展开代码语言:C++AI代码解释//错误:缓冲区溢出charstr[10 if(x=10){//应该是x==10cout<<"xis10"<<endl;//总是会执行,而且x被改成了10!} 正确做法:展开代码语言:C++AI代码解释//习惯把常量放在左边if(10==x){//如果写成10=x,编译器会报错cout<<"xis10"<<endl;}//或者启用编译器警告//g++-Wall-Wextra ;#endif//MYCLASS_H//或者使用#pragmaonce(大多数编译器支持)#pragmaonceclassMyClass{//...};10.异常安全忽略常见错误:展开代码语言:C++AI 原则:资源获取即初始化避免裸指针:使用智能指针管理内存多写测试:特别是边界情况的测试使用现代C++:C++11/14/17/20的特性让很多传统问题变得简单记住,每个C++高手都曾经是小白,都踩过这些

    19010编辑于 2025-11-28
  • 来自专栏Greenplum

    greenplum时区

    修改以下参数把美国中部时区修改成中国标准时区(CST) 1、中国标准时区(CST)和美国中部时区(CST)重名 2、GP默认会将CST识别为美国中部时区 3、导致国内时区为CST的服务器在事件计算时出现意外结果 4、解决方法      4.1 修改GP安装目录下/share/postgresql/timezonesets/Default      4.2  找到CST - 21600这行,修改为CST 28800      4.3 所有Segment和Master服务器全部修改     4

    1.1K80发布于 2020-05-28
  • 来自专栏分享技术

    useState指南

    React的useState钩子是开发人员在处理函数组件状态时不可或缺的工具。尽管它看起来似乎很简单,但即使是经验丰富的开发人员也可能犯一些常见的错误,导致意外行为和错误。在本文中,我们将探讨八个常见的useState错误,并提供详细的解释和示例,以帮助你避免这些陷阱。

    76510编辑于 2023-11-27
  • 来自专栏C/C++基础

    Golang 指南

    本文将介绍 Golang 初学者容易菜的,希望广告 Gopher 避而远之。 1. int { ch := make(chan int) go func() { defer close(ch) for i := 0; i < 10 ch := make(chan int) go func() { defer close(ch) loop: for i := 0; i < 10 // map 读取情况 intMap := make(map[int]int, 10) for i := 0; i < 10; i++ { intMap[i] = i } for _, v : //读取是有序的 参考文献 Go 神 1 —— interface{} 与 nil 的比较 - CSDN 50 Shades of Go: Traps, Gotchas, and Common Mistakes

    36210编辑于 2024-06-11
  • 来自专栏程序员奇点

    Gorm 语法

    ), arr) // 0, 2, [] 3. append方法会根据slice容量决定是否创建新slice // 示范1: var arr = make([]int, 0) append(arr, 10 ) fmt.Println(arr) // [] arr = append(arr, 10) // 强烈推荐的写法 fmt.Println(arr) // [10] // 示范2: var arr = make([]int, 0, 2) append(arr, 10) fmt.Println(arr) // [10] 4. for-range上定义的变量,每次循环都不会改变变量的ptr,只会改变变量的值 slice } // 调用方拿到notGCSample返回值后,[100]int所占内存会释放 7. func copy(dst, src []Type)第一个参数是dst,第二个参数是src,和Java ptr,无法改变value里的字段值,可以取value里的字段值 // 示范1: valMap := map[string][3]int{"1": {1, 2, 3}} valMap["1"][0] = 10

    22600编辑于 2025-03-27
  • 来自专栏Tom

    torchvision指南

    2.安装一个dll的第三方库,叫做intel-openmp,看到这名字我上去就是一个大写的“漏”,因为根绝我的第三感,不用安装,而且这个方法的提供者说也失败了,所以Tom可信指数:3颗星

    1.6K20编辑于 2022-06-08
  • 来自专栏技术随笔心得

    CRTP实践

    今天借助本文,总结下在开发过程中,使用CRTP遇到的。 容器存储 CRTP技术因为其性能优越,实现简单,在工程应用中非常广泛。实际上,相对于普通的虚函数,其具有一定的局限性。

    1.1K30编辑于 2022-08-25
  • 来自专栏明明如月的技术专栏

    花式踩Java空指针和的正确姿势

    下面介绍几种工作中可能不经意中写出的,花式踩空指针异常的姿势。 二、踩姿势 2.1 自动拆箱空指针异常 如调用类似下面这种格式的二方服务接口, 如果不进行判空而直接使用,则很容易碰到空指针: 正确的使用姿势应该是: 2.2 RPC接口返回null 二方服务的批量查询接口如果数据量大容易超时 三、预防 3.1 手册 《阿里巴巴 Java编程规范》 给出了空指针的一些常见场景: 返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生 NPE 数据库查询结果可能为null NPE 对于 Session 中获取的数据,建议进行 NPE 检查,避免空指针 级联调用 obj.getA().getB().getC();一连串调用,易产生 NPE 3.2 源码 Java

    97010发布于 2021-08-31
  • 来自专栏全栈学习之路

    Java内存溢出的几个区域,注意

    存在内存的区域: Java堆溢出 虚拟机栈和本地方法栈溢出 方法区和运行时常量池溢出 本机内存溢出 1、Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象 如果虚拟机的栈内存允许动态扩展,当扩展栈容量无法申请到足够的内存时,将抛出OutOfMemoryError异常 《Java虚拟机规范》明确允许Java虚拟机实现自行选择是否支持栈的动态扩展,而HotSpot java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.List; JVM参数:-Xmx20M -XX:MaxDirectMemorySize=10M public class DirectMemoryOOM { private static final 类直接通过反射获取Unsafe实例进行内存分配(Unsafe类的getUnsafe()方法指定只有引导类加载器才会返回实 例,体现了设计者希望只有虚拟机标准类库里面的类才能使用Unsafe的功能,在JDK 10

    44520编辑于 2023-07-16
  • 来自专栏红色石头的机器学习之路

    WIn10+Anaconda 环境下安装 PyTorch 指南

    首先,安装环境是:操作系统 Win10,已经预先暗转了 Anaconda。 1. 为 PyTorch 创建虚拟环境 关于 Anaconda 的安装步骤这里就忽略不讲了,Win10 下安装 Anaconda 非常简单。 接下来记录一些。 2. PyTorch 官网安装 PyTorch 的官网提供了简单的安装方法,只需简单的命令即可。 尝试卸载 pillow 模块,但是会同时卸载 PyTorch,故为一。 3. pip 安装 上一种方法舍弃,这里尝试使用 pip 安装。 至此,填。PyTorch 成功安装。 ----

    2.8K20发布于 2019-05-25
  • 来自专栏萌海无涯

    ipython安装指南

    ,输入”cmd“ 点击确定,调出cmd命令行,键入“python”,查看安装状态; 出现上面的字符就说明python安装好了,我们接着下一步; 02 安装ipython的一 03 安装ipython的二 我们打出退出命令后继续执行上面的安装命令: 一看到红字就感觉哪里出错了,果不其然,又是一个错误,度娘真不靠谱,还是得自己来 ,查阅了下资料 ,因为小编电脑是win10的,所以使用cmd命令行删、改或者安装某些软件的时候需要管理员权限的,看来小编还得重新来了; 我们打开一个新的cmd窗口来试下: 这就安装成功了,其实安装需要下很多东西

    2.1K20发布于 2019-08-20
  • 来自专栏腾讯技术工程官方号的专栏

    C++指南

    ));if(ptr){ //do something} 隐式类型转换在带来便利性的同时也带来了一些,如下所示: template<typename T>class Array );Array<int> arr2(10);if(arr1 == arr2[0]){ //do something} 构造函数隐式转换带来的。 str1, const char *str2){ String str(str1); str.append(str2); return str;} operator type()带来的。 3.2 显示转换 正是由于隐式转换存在的,C++提供explicit关键字来阻止隐式转换,只能进行显示转换,分别作用域构造函数和operator(),如下所示: 1) explicit Ctor(const 1 1 5 10吗。

    2.1K30发布于 2019-06-12
领券