+Java-面试基础篇
文章平均质量分 94
Java基础常问问题
啊策策
通吃java, 大数据.
展开
-
JDK1.8 新特性
1. JDK1.8新特性2. JDK1.8新特性简介2.1 Lambda表达式什么是Lambda表达式Lambda是一个匿名函数, 我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递).可以写出更加简洁,灵活的代码. 作为一种更加紧凑的代码风格, 使java的语言表达能力得到了提升.格式就是(方法参数)->方法体箭头函数表示法如果没有方法参数, 小括号不能省略, ()->方法体如果方法参数是一个的话, 小括号可以省略也可以带着, (m)->方法体或原创 2021-01-18 10:30:42 · 162 阅读 · 2 评论 -
分布式锁的三种实现方式, 数据库分布式锁, Redis分布式锁, Zookeeper分布式锁
各位小伙伴儿, 上篇我们介绍了Java中的7类锁, 现在还有一个重头戏, 那就是分布式锁, 我们接着上篇的标题,继续探索~8. 分布式锁8.1 为什么需要分布式锁首先我们先了解一下分布式锁的使用场景, 然后再来理解为什么需要分布式锁, 那么我们举两个例子进行阐述:银行转账问题: A在上海,B在北京同时在建行转账给杭州C,A转账时,会修改C处服务器的表,B不能在此刻转账,同理,B转账时,A不能做处理,A,B的转账操作时同步,必须保证数据的一致性,这就需要分布式锁来进行处理.取任务问题: 某服务提供原创 2020-06-12 18:18:09 · 1660 阅读 · 0 评论 -
Java基础之java中的各种锁详细介绍,悲观锁/乐观锁,可重入锁/非可重入锁
Java提供了种类丰富的锁, 每种锁因特性不同, 在适当的应用场景下能够展示出非常高的效率.Java中往往是按照是否含有某一特性来定义锁, 我们通过特性将锁进行分组归类, 再使用对比的方式进行介绍, 帮助大家更快捷的理解相关知识. 下面给出本文内容的总体分类目录:1. 乐观锁VS悲观锁乐观锁与悲观锁是一种广义的概念, 体现了看待多线程同步的不同角度, 在Java和数据库都有此概念对应的实际应用.悲观锁: 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据, 因此在获取数据的时候会先加锁, 确原创 2020-06-10 18:19:45 · 993 阅读 · 2 评论 -
Java基础之如果保证线程安全,synchronized关键字, Lock锁, Threadlocal关键字
1. 什么是线程安全?一段代码所在的进程中有多个线程在同一时间段内运行,而这些线程可能会同时运行这段代码。每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说,一个类或者程序所提供的接口,对于线程来说是不可拆分的操作; 或者多个线程之间的切换不会导致该接口的执行结果存在差异,也就是说我们不用考虑同步的问题。其实线程安全不是一个“非黑即白”单...原创 2019-12-18 11:54:43 · 1326 阅读 · 0 评论 -
Java基础之创建线程本质方法, 线程的状态, 如何终止线程
1. Thread和Runnable的区别如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。适合多个相同的程序代码的线程去共享同一个资源。可以避免java中的单继承的局限性。增加程序的健壮性,实现解耦操作,代码可以被多个线程共享,代码和线程独立。线程池只能放入实现Runable或Callable类线程,不能直接放入继承Threa...原创 2019-12-17 16:42:37 · 613 阅读 · 0 评论 -
Java基础之创建线程的几种方式, 线程池创建原理, 线程池核心参数
1. 什么是线程?线程和进程的区别?线程:是进程的一个实体,是 cpu 调度和分派的基本单位,是比进程更小的可以独立运 行的基本单位。进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位。特点:线程的划分尺度小于进程,这使多线程程序拥有高并发性,进程在运行时各自内存 单元相互独立,线程之间内存共享,这使多线程编程可以拥有更好的性能和...原创 2019-12-17 14:08:16 · 747 阅读 · 0 评论 -
Java基础之ConcurrentHashMap和HashTable,HashMap的区别
5. HashMap, HashTable和ConcurrentHashMap区别5.1 三者读写效率ConcurrentHashMap(线程安全) > HashMap > HashTable(线程安全)5.2 HashMap和HashTable区别HashMap是非线程安全的, HashTable是线程安全的.HashMap的键和值都允许有null值存在, 而HashTa...原创 2019-12-14 19:19:03 · 240 阅读 · 0 评论 -
Java基础之HashMap底层, HashMap多线程操作导致死循环, ConcurrentHashMap底层, HashTable底层
1. HashMap底层实现原理HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值.因而具有很快的访问速度,但是遍历顺序却不确定的.HashMap最多只允许一条记录的键为null,允许多条记录的值为null.HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致.如果需要满足线程安全,可以用Collections的syn...原创 2019-12-14 17:53:57 · 622 阅读 · 0 评论 -
Java基础之集合体系,ArrayList, LinkedList和Voctor区别, List 和 Map、Set 的区别
1. Java中的集合集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含Queue)和 map(映射)。Iterator:迭代器,可以通过迭代器遍历集合中的数据Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Map:是映射表的基础接口接下来我们详细介绍下每个接口和实现类~1.1 Iterato...原创 2019-12-14 16:40:09 · 406 阅读 · 0 评论 -
Java基础之常见的数据结构有哪些?
1. 常见的数据结构有哪些?1.1 数组数组是最常用的数据结构,数组的特点是长度固定,可以用下标索引,并且所有的元素的类型都是一致的。数组常用的场景有:从数据库里读取雇员的信息存储为 EmployeeDetail[ ];把一个字符串转换并存储到一个字节数组中便于操作和处理等等。尽量 把数组封装在一个类里,防止数据被错误的操作弄乱。另外,这一点也适合其他的数据结构。1.2 列表列表和数组很相...原创 2019-12-12 17:18:35 · 893 阅读 · 0 评论