java知识
java基础,jvm
码代码的小仙女
这个作者很懒,什么都没留下…
展开
-
synchronized的8大应用场景分析
synchronized的8大应用场景分析synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; ---对象锁 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; --对象锁 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象; ---类锁 4.原创 2020-12-19 10:16:59 · 1950 阅读 · 2 评论 -
Java面试核心知识点1——JVM
1 JVM的运行机制我们知道JVM是用于运行Java字节码的虚拟机,主要包括一套字节码指令集、一组程序计数器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。JVM运行在操作系统之上,不与硬件设备直接交互。Java源文件(.java文件)通过编译器被编译成.class文件(字节码文件),.class文件又被JVM中的解释器编译成机器吗在不同操作系统上运行(Windows,Mac,Linux)。每种操作系统的解释器都是不同的,但是基于解释器的虚拟机是一样的,这也是为什么Java能够跨平台的原因原创 2020-07-19 22:04:08 · 193 阅读 · 0 评论 -
多线程处理大数据量数据
最近公司需要一个新的需求,需要一个接口去跑数据。数据量还蛮大的,大约50-60万数据(一条一条执行),其中还涉及到与其他接口的交互,因此这些数据跑下来要耗时很久,因此设计了一个方案,使用多线程的方式进行处理。方案1 每次重数据库表中取一定量的数据(自己按实际情况定义)放在线程池缓存队列里,启动10个线程去线程池里去取数据。(相当于生产者和消费者的关系),这里需要有一个触发点,当我缓存里没有数据时,需要再次从数据库中再次获取数据。方案2 在数据库表中添加一个线程号字段,用来记录该条数据...原创 2020-07-01 22:22:25 · 5745 阅读 · 1 评论 -
深入理解Java虚拟机(Java面试常问知识点)
第一章 走进Java第二章 Java内存区域与内存溢出异常第一章Java程序设计语言、Java虚拟机、Java原创 2020-07-01 19:42:53 · 299 阅读 · 0 评论 -
若依管理系统用户管理-导出功能改造为EasyExcel
阿里巴巴的组件easyExcel原创 2020-05-10 17:42:44 · 3404 阅读 · 2 评论 -
Java内存模型
原创 2019-06-24 09:13:41 · 149 阅读 · 0 评论 -
2019Java面试整理——集合
1.HashMap与HashTable的区别 HashTable是线程安全,方法上添加了synchronized同步修饰,HashMap非线程安全 HashMap的key和value可以为空,HashTable的key不可以为空 HashMap继承AbstractMap,HashTable继承Dictionary,都实现了map接口 HashMap的初始容量是1...原创 2019-06-02 16:32:35 · 4034 阅读 · 1 评论 -
java高级工程师具备技能
原创 2019-06-05 22:55:22 · 554 阅读 · 0 评论 -
java高级工程师具备技能
转载 2019-06-06 10:40:08 · 962 阅读 · 0 评论 -
ConcurrentHashMap实现原理及源码解析
为什么要用ConcurrentHashMapHashMap线程不安全,而Hashtable是线程安全,但是它使用了synchronized进行方法同步,插入、读取数据都使用了synchronized,当插入数据的时候不能进行读取(相当于把整个Hashtable都锁住了,全表锁),当多线程并发的情况下,都要竞争同一把锁,导致效率极其低下。而在JDK1.5后为了改进Hashtable的痛点,Con...原创 2019-05-27 17:01:24 · 4041 阅读 · 3 评论 -
HashMap实现原理及源码解析
HashMap简介:在介绍hashmap之前,介绍几种常见的数据结构:数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平...原创 2019-05-27 16:41:56 · 164 阅读 · 0 评论 -
Java面试——基础知识
目录1.java平台无关性解释?2.java程序初始化的顺利是怎样的?3.java的作用域有哪些?4.什么是构造函数5.object中的方法1.java平台无关性解释?C/C++之所以不能跨平台,就是因为C/C++源程序是对平台编译的,所以与平台密切相关。如果有这样的一个环境:它既可以向下兼容(对平台兼容),又可以向上兼容(程序可以运行),那么不就可以跨平台了吗...原创 2019-05-23 11:16:30 · 136 阅读 · 0 评论 -
LinkedList实现原理及源码解析
LinkedList简介:LinkedList的底层是基于双向链表实现的,它具有插入删除快而查找修改慢的特点,此外,通过对双向链表的操作还可以实现队列和栈的功能。public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>,...原创 2019-05-27 10:29:47 · 501 阅读 · 0 评论 -
ArrayList实现原理及源码解析
ArrayList简介: ArrayList实现了List接口它是一个可调整大小的数组可以用来存放各种形式的数据。并提供了包括CRUD在内的多种方法可以对数据进行操作但是它不是线程安全的,另外ArrayList按照插入的顺序来存放数据。ArrayList是一个动态数组,实现了List<E>, RandomAccess, Cloneable, java.io.Serial...原创 2019-05-27 09:46:27 · 338 阅读 · 0 评论 -
JAVA集合总结——Set
1.java集合结构:java集合类主要有两个接口派生而出:Collection和map。Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类2.Set的介绍set表示数学意义上的集合概念。其主要的特点是集合中的元素不能重复,因此存入set中的每个元素都必须定义equals()方法来确保对象的唯一性。set接口中常用的几种方法:s...原创 2019-05-24 23:47:47 · 365 阅读 · 0 评论 -
2019-JAVA基础部分
第一章 JAVA基础部分1.java平台无关性解释C/C++之所以不能跨平台,就是因为C/C++源程序是对平台编译的,所以与平台密切相关。如果有这样的一个环境:它既可以向下兼容(对平台兼容),又可以向上兼容(程序可以运行),那么不就可以跨平台了吗。基于这样的原理,Java在计算机的操作系统上又提供了一个Java运行环境——JRE(安装JDK)。 JRE由Java虚拟机,类库和一些核心文件组成,...原创 2019-05-24 16:37:28 · 140 阅读 · 0 评论