4 AlbenXie

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 943

Java三元表达式拆包

三元表达式拆包三元表达式是Java编码中的一个固定语法格式:“条件表达式?表达式1:表达式2”。三元表达式的逻辑为:“如果条件表达式成立,则执行表达式1,否则执行表达式2”。1.问题现象boolean condition = false;Double value1 = 1.0D;Double value2 = 2.0D;Double value3 = null;Double result = condition ? value1 * value2 : value3;//抛出空指针异常

2020-09-28 10:31:13

异步请求xhr、ajax、axios与fetch的区别比较

why: 为什么会出现不同的方法呢?what: 这些都是异步请求数据的方法。在不重新刷新页面的情况下与服务器通信,交换数据,或更新页面。how:他们都有各自的特点。目录XMLHttpRequest对象 jQuery ajax axios fetch 参考1. XMLHttpRequest对象现代浏览器,最开始与服务器交换数据,都是通过XMLHttpRequest对象。它可以使用JSON、XML、HTML和text文本等格式发送和接收数据。它给我们带来了很多好处。不重新加载页面的

2020-09-27 18:48:07

Network中XHR与JS的区别

1、主要作用是用于筛选所有的XHR类型的请求,达到只看XHR类型请求的目的 XHR这个标签出现在Chrome浏览器的开发者工具Network选项卡中 XHR类型即通过XMLHttpRequest方法发送的请求 filter是一个过滤器,它可以筛选包含输入关键词的请求,也可以筛选特性类型的请求,如domain、status-code等2、简单的说就是 content-type 的区别:xhr 是 application/json js 是 application/javascript.

2020-09-27 18:46:17

Java中throw和throws的区别

throw和throws的区别:1、throw代表动作,表示抛出一个异常的动作;throws代表一种状态,代表方法可能有异常抛出throw用在方法实现中,而throws用在方法声明中;throw只能用于抛出一种异常,而throws可以抛出多个异常2、throw关键字用来在程序中明确的抛出异常,相反 throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。3、throw是在代码块内的

2020-09-27 18:41:22

消灭 Java 代码的“坏味道”

简介:阿里妹导读:代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多。如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻"。这里,一直从事Java研发相关工作的阿里高级地图技术工程师王超,整理了日常工作中的一些"坏味道",及清理方法,供大家参考。让代码性能更高需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 ent..

2020-09-25 18:20:47

大写的服,看完这篇你还不懂RocketMQ算我输

目录 RocketMQ介绍 RocketMQ概念 为什么要用RocketMQ? 异步解耦 削峰填谷 分布式事务最终一致性 数据分发 RocketMQ架构 RocketMQ消息类型 普通消息 顺序消息 定时消息 事务消息 最佳实践 消息重试 消息过滤 消费模式 消费幂等

2020-09-25 12:14:51

Java 代码精简之道,总结得太好了!

前言古语有云:道为术之灵,术为道之体;以道统术,以术得道。其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。在拜读大佬“孤尽”的文章《Code Review是苦涩但有意思的修行》时,感受最深的一句话就是:“优质的代码一定是少即是多的精兵原则”,这就是大佬的代码精简之“道”。工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已经得道,这就是“工

2020-09-25 10:34:53

java保证值存在

普通:Integer thisValue;if (Objects.nonNull(value)) { thisValue = value;} else { thisValue = DEFAULT_VALUE;}精简://Optional.ofNullable(value).orElse(DEFAULT_VALUE) 判断对象是否为nullInteger thisValue = Optional.ofNullable(value).orElse(DEFAULT_VAL

2020-09-24 17:14:31

Java泛型:泛型类、泛型接口、泛型方法

文章目录泛型类 泛型类的继承 泛型与内部类泛型接口 泛型接口的实现泛型方法 形参的类型参数通过实参确定 泛型方法被多个形参推断 返回值的类型参数通过方法返回值赋值的对象确定 形参和返回值用了同一个类型参数 泛型方法定义中的类型推断 静态方法不可以使用泛型类定义的类型参数 泛型方法返回值赋值给形参 可变参数和泛型方法泛型类和泛型方法 泛型类中的成员泛型方法和静态泛型方法匿名内部类和泛型个人理解总结...

2020-09-24 11:28:26

Java泛型全解析【接口、类、封装类型】

目录1、导读2、为何需要泛型?3、泛型的定义格式4、泛型的好处5、什么时候使用泛型?6、泛型的擦除7、泛型的补偿8、泛型的应用 8.1【泛型类】 8.2【泛型方法】 8.3【泛型接口】9、泛型の通配符:?10、泛型的限定1、导读泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。Generic有“类的,属性的”之意,在Java中代表泛型。泛型作为一种安全机制而产生。2、为何需要泛型?我们知道集合...

2020-09-24 10:44:54

java 读取本地json文件

pom依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version></dependency>读取JSON工具类/*** 读取json文件,返回json串* @param fileName* @return*/public ..

2020-09-23 17:19:37

java实现本地json文件的读取和解析

依赖:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId

2020-09-23 16:55:10

Collections.unmodifiableList方法的使用与场景

在公司接触到 Collections.unmodifiableList(List<? extends T> list)) 觉得用法挺特殊的,所以学习了下,简单而言,看名字就知道,将参数中的List返回一个不可修改的List。觉得以下这篇文章写得很好,说明了它的应用场景。在《重构——改善既有代码的设计》一书中,有一种重构手法叫Encapsulate Collection(封装集群),为了演示该重构手法,我写了四个类,通过对比重构前后的代码,加深对这一重构手法的理解。类Student有.

2020-09-23 14:50:07

关于类加载的一些常见错误

最近在做类隔离相关的一些工作,而恰恰之前协助开发同学时也发现会遇到许多类加载相关的异常,并且往往比较难定位与解决。这里简单做一个小总结。类加载首先我们来捋一捋类加载的基础知识。以上是大家比较熟悉的类加载器模型,主要包含 3 种类加载器:BootstrapClassloader 根加载器,也就是系统类加载器,加载核心库,如 rt.jar。 ExtensionClassloader 扩展类加载器,主要加载/ext/下面的 jar 包 AppClassloader 离我们最近的类加载器,负责加载

2020-09-22 19:44:58

JAVA线上故障排查全套路

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。一、CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用js

2020-09-22 17:45:24

ThreadLocal的应用场景和注意事项

前言这篇文章聊聊 ThreadLocal,我们经常会在一些开源中间件的源码中见到它的身影,比较常见的用途是保存上下文信息,还有就是保证了线程安全。实际上,ThreadLocal 为每个线程提供一个单独的变量,确是一种保证线程安全的手段,ThreadLocal 创建的变量只能被当前线程访问,其他线程不得干涉。ThreadLocal API使用 ThreadLocal 其实非常简单,直接看下面的示例:public class ThreadLocalSimpleDateFormat {

2020-09-22 17:03:15

使用ThreadLocal注意事项

需要注意两个事项:在get方法的时候出现null 内存泄漏或产生脏数据1、在get方法的时候出现nullpackage com.ray.deepintothread.ch04.topic_3;public class ThreadLocalGetNull { private int count = 0; public ThreadLocal<Integer> intThreadLocal = new ThreadLocal<Integer>();

2020-09-22 16:41:17

如何决定使用 HashMap 还是 TreeMap?

问:如何决定使用 HashMap 还是 TreeMap?介绍TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论

2020-09-22 15:06:43

一次搞懂 Runnable、Callable、Future、FutureTask,不懂不要钱!

一般创建线程只有两种方式,一种是继承Thread,一种是实现Runnable接口。但是这两种创建方式有一个致命的缺点就是没有返回值,没返回值就让人很苦恼了啊。得用共享变量或者其他通信方式才能得到线程处理完的结果,就有点麻烦。还有一般不提倡使用继承Thread来创建线程方式,因为Java只有单继承,不能继承多个。但是Runnable是接口,所以可以让你的实现类同时实现多个接口。而且之后要上线程池,如果之前你是用Runnable来实现的,那就可以直接传入Runnable给线程池进行管理了!在Java1.

2020-09-22 14:13:27

图解+代码|常见限流算法以及限流在单机分布式场景下的思考

大家好,我是 yes。今天来说说限流的相关内容,包括常见的限流算法、单机限流场景、分布式限流场景以及一些常见限流组件。当然在介绍限流算法和具体场景之前我们先得明确什么是限流,为什么要限流?。任何技术都要搞清它的来源,技术的产生来自痛点,明确痛点我们才能抓住关键对症下药。限流是什么?首先来解释下什么是限流?在日常生活中限流很常见,例如去有些景区玩,每天售卖的门票数是有限的,例如 2000 张,即每天最多只有 2000 个人能进去游玩。题外话:我之前看到个新闻,最不想卖门票的景区“

2020-09-22 13:06:08

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取