《编程语言》Java笔记
文章平均质量分 93
Java基础学习
少侠露飞
Java后台开发,SSM框架,中间件,RPC
展开
-
【Java基础】Java8新特性(二):Streams API及使用
Java新特性:Stream的最佳实践原创 2021-03-30 19:47:02 · 585 阅读 · 2 评论 -
【Java基础】Java8新特性(一):lambda表达式及使用
熟练掌握lambda表达式原创 2021-03-30 16:24:33 · 301 阅读 · 0 评论 -
商业计算怎样才能保证精度并防止溢出
商业资金计算的正确使用方式原创 2021-02-27 14:07:44 · 587 阅读 · 0 评论 -
【Java基础】Integer的自动拆箱和享元模式,这次我学到了
这个NPE有点讲究原创 2020-09-16 20:39:30 · 210 阅读 · 0 评论 -
【Java集合】系列二:搞定HashSet(本篇源码基于Java11)
1 概念HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它保存的都是非重复的元素,不保证set的迭代顺序。此类允许使用null元素。对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。2 源码解...原创 2020-04-14 13:40:03 · 240 阅读 · 0 评论 -
【Java集合】系列一:详解ArrayList的底层原理(本篇源码基于Java11)
引言ArrayList集合类在面试、开发中饱受关注,用起来也是真香。本篇文章有针对性的归纳整理ArrayList的常见问题,如有遗漏,欢迎留言或评论。面试开始小伙子,说下ArrayList的底层数据结构吧?ArrayList的底层数据结构就是一个数组,数组元素的类型为Object类型,对ArrayList的所有操作底层都是基于该数组的。程序清单1: ArrayList的底层数组tr...原创 2020-04-09 15:34:49 · 216 阅读 · 0 评论 -
你想要的String面试的知识点,这里都有
引言Java中的String是每个开发者不得不正视的类。在面试以及开发中总是会出现它潇洒不拘的身影。今天少侠就和大家一起征战String,让它彻底臣服在我们六十米长的大刀下。面试开始此时,一个穿着西装的漂亮小姐姐潇洒的进入会议室,看着这么漂亮的技术面试官,你顿时六神无主:难道这就是大厂的工作环境么,这么的美妙,今天一定要好好表现,争取和这么漂亮的小姐姐共事。正当你思绪飘到九霄云外时,面试...原创 2020-04-06 22:06:20 · 246 阅读 · 0 评论 -
【Java基础】Java中获取系统当前时间:System.currentTimeMillis()和System.nanoTime()
System.nanoTime()返回的是纳秒,nanoTime而返回的可能是任意时间,甚至可能是负数。nanoTime主要的用途是衡量一个时间段,比如说一段代码执行所 用的时间,获取数据库连接所用的时间,网络访问所用的时间等。而Java中System.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数。/** * @author Carso...原创 2020-01-23 14:11:27 · 1819 阅读 · 0 评论 -
【Java基础】ConcurrentHashMap原理分析及应用
引言本篇博客是基于之前的HashMap开展的,读者若是对HashMap不甚了解的话,可以参看之前的博客。【Java基础】HashMap底层实现原理 附源码分析及面试题,让你深入Java集合简单来说,ConcurrentHashMap是HashMap的并发版本,适合在并发环境下使用。另外,本文关于ConcurrentHashMap的源码是基于JDK1.8的。原理分析Concurrent...原创 2020-01-17 20:37:16 · 2986 阅读 · 0 评论 -
【Java基础】HashMap底层实现原理 附源码分析及面试题,带你深入Java集合
Java8的HashMap实现和之前的版本有所不同,本文中将作出详尽的说明。另外对并发环境下的ConcurrentHashMap也做了分析。文章目录1. HashMap的数据结构1.1 数组和链表1.2 哈希2. HashMap的存取机制3. HashMap的扩容机制4. HashMap的遍历方式5. HashMap小结5.1 哈希碰撞的影响5.2 HashMap和Hashtable的区别5...原创 2020-01-16 21:13:29 · 44033 阅读 · 0 评论 -
【性能优化】两种方案优化双层for循环语句 附代码和实例
两种方案优化实际开发中的双层for循环语句 附代码和实例现有如下需求,需在订单信息类中根据用户信息类的userId匹配到对应的信息并输出商品skuId。先给出实体类:用户信息类UserInfo和订单信息类OrderInfo。用户信息类如下所示:/** * @author Carson * @date 2020/1/13 19:43 * 用户信息类 */@Datapubli...原创 2020-01-13 21:40:27 · 6327 阅读 · 0 评论 -
【Java】线程同步的方式
一、为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个统计变量count同时被两个线程操作,一个加6,一个减6。假设变量初始值为0,如果加数线程和减数线程同时发生,会出现什么结果呢?减数不成功,统计变量是6。减数成功了,统计变量是0。然而到底是哪个很难说清楚,因此多线程同步...原创 2019-07-12 14:01:03 · 7225 阅读 · 0 评论 -
【Java多线程】synchronized和ReentrantLock的区别
可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。锁的实现:synchronized是依赖于JVM实现的,而ReenTrantLock是JDK实现的,有什么区别,说白了就类似于操作系统来控制实现...原创 2019-07-16 13:43:03 · 9919 阅读 · 1 评论 -
【Java多线程】wait(),sleep(),notify()和notifyAll()方法详解
sleep()是线程类(Thread)的方法,导致此线程暂停执行指定的时间,到时后会自动恢复,调用sleep()不会释放对象锁。 sleep()方法是正在执行的线程主动让出CPU。wait()是Object类的方法,对此对象调用wait()方法导致本线程放弃对象锁,进入对象的等待锁定池,只有当此对象调用notify()方法(或notifyAll())后,本线程才进入对象锁定池准备获得对象锁进入...原创 2019-07-11 20:01:23 · 3339 阅读 · 0 评论 -
【Java基础】hashCode()方法和equals()方法的作用
首先需要明确hashCode()和equals()是Object类中定义的方法。所以Java中任何一个对象都具有这两种方法。这里有两个重要的规范: 1.若重写equals(Object obj)方法,有必要重写hashCode()方法。因为如果两个对象相同,那么他们的hashCode一定相等。 2.如果equals(Object obj)返回false,即两个对象“不相等”,但并不表明...原创 2019-07-11 13:33:49 · 531 阅读 · 0 评论