240 发简信
IP属地:上海
  • 120
    java 锁(Lock)

    为什么需要 Lock synchronized 不够用。 效率低:锁的释放情况少、试图获取锁时不能设定超时、不能中断一个正在试图获得锁的线程。 不够灵活:加锁和释放的时机单一...

  • Python 日志(logging)模块

    级别什么时候使用数值DEBUG详细信息,一般只在调试问题时使用。10INFO证明事情按预期工作。20WARNING某些没有预料到的事件的提示,或者在将来可能会出现的问题提示。...

  • 120
    重排序 VS 可见性 VS 原子性

    重排序 代码实际执行顺序和代码在 Java 文件中的顺序不一致,代码指令并不是严格按照代码语句顺序执行的,这就是重排序。 重排序的好处:提高处理速度 重排序前:代码: 指令:...

  • volatile 关键字

    是什么? volatile 是一种同步机制,比 synchronized 或者 Lock 相关类更轻量,因为 volatile 并不会发生上下文切换 等开销很大的行为。 如果...

  • 120
    JVM 内存结构 VS Java 内存模型 VS Java 对象模型

    整体上 JVM 内存结构:和 Java 虚拟机运行时区域有关。 Java 内存模型:和 Java 的并发编程有关。 Java 对象模型:和 Java 对象在虚拟机中的表现形式...

  • 统一处理子线程异常

    方法一(不推荐):在子线程中捕捉。 方法二(推荐):使用 UncaughtExceptionHandler UncaughtExceptionHandler 配置 uncau...

  • 120
    Java 异常体系

    开发人员难以控制的异常 所有继承的 Error 的异常开发人员都难以控制,比如 OOM(内存越界)。当这些异常发生的时候,往往要对代码进行优化。牵一发动全身,所以这些异常难以...

  • 正确停止 Java 线程

    原则 使用 interrupt 来通知,而不是强制。 需要停止的线程可能不是别人写的程序,正确的做法是通知别人停下来,而不是强制。因为别人是线程的开发者,他自己更清楚线程里做...

  • Java 线程池创建、使用、停止

    JUC 已经提供了一些现成的线程池给开发者使用,但是这些线程池或多或少不能满足具体的业务开发需求,所以在使用线程池的时候,大多是自己创建。 JUC 提供的线程池 newSin...

  • 两大使用场景-ThreadLocal 的用途

    典型场景一: 每个线程需要一个独享的对象(通常是工具类,典型的类有 SimpleDateFormat 和 Random) 代码示例: 典型场景二: 每个线程内需要保存全局变量...

  • 120
    Java 线程生命周期

    线程的六种状态: New Runnable Blocked Waiting Timed Waiting Terminated 状态之间的关系如下: 验证 首先验证 New,R...

  • Spring 事务参数详解

    spring 中的事务使用起来很简单,只需要在需要使用事务的方法上加上 Transactional 注解就好了。这个注解是有一个 Propagation 的参数。这个参数有默...

  • 120
    Java 创建新线程的唯一方法

    Java 创建新线程有很多种方式,归根到底只有一种方式。实现 Thread 的 run 方法。 方式1、通过 Runnable 方式实现 方式2、通过 Thread 方式实现...

  • 120
    构建 Maven 聚合工程

    maven 聚合工程是使用 maven 将多个工程打包,工程之间可以互相依赖,多个工程的公共依赖库可以在父工程中统一引入。 1、新建一个空的 maven 工程 不需要 src...

  • Tomcat 单机部署多应用

    1. 修改 /etc/profile 增加 tomcat 环境变量 然后执行 source /etc/profile 使配置文件生效 2. 修改 tomcat 配置 第一个 ...

  • MySQL 基础语法

    分组数据 数据分组 分组是在SELECT语句的GROUP BY子句中建立的。 GROUP BY子句可以包含任意数目的列。这使得能对分组进行嵌套, 为数据分组提供更细致的控制。...

  • jdbcType 和 javaType 的映射关系

    jdbcTypejavaTypeCHARStringVARCHARStringLONGVARCHARStringNUMERICjava.math.BigDecimalDECI...

  • Java 基础知识点

    异常处理 Exception 和 Error 都继承 Throwable 。只有 Throwable 类的对象才能被抛出(throw)或者捕获(catch)。 Throwa...

  • 120
    构建 Maven 环境隔离

    实际的项目环境: 本地开发环境(Local) 开发环境(Dev) 测试环境(Beta) 线上环境(Prod) 环境隔离的目的: 生产环境与其他环境的 DB、MQ、Redis、...