java基础
文章平均质量分 59
JasonGaoH
技术宅,从事Android开发,目前在小红书。
展开
-
java中增强for循环的原理
package com.wind.gaohui;import java.util.ArrayList;import java.util.List;public class TestFor { public static void main(String[] args) { List<String> lists = new ArrayList<String>();原创 2016-10-23 13:30:05 · 7829 阅读 · 3 评论 -
synchronized关键字的原理
synchronized关键字什么是synchronizedJDK官网对synchronized关键字有个比较权威的解释。Synchronized keyword enable a simple strategy for preventing thread interference and memory consistency errors: if an object is visible ...原创 2019-08-06 10:27:19 · 670 阅读 · 0 评论 -
关于HashMap你需要知道的一些细节
本文的公众号文章链接:关于HashMap你需要知道的一些细节在官方文档中的描述:Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, and permits null values and the null ...原创 2019-06-03 08:13:21 · 1193 阅读 · 1 评论 -
从源码角度分析ArrayList和LinkedList的区别
List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表。ArrayList底层采用数组来保存每个集合的元素,LinkedList则是一种链式存储的线性表。其本质上就是一个双向链表,但它不仅实现了List接口,还是想了Deque接口。也就是说LinkedList既可以当成双向链表使用,也可以当成队列使用,还可以当成栈来适用于(Deque代表双端队列,即具有队列的特征,也具有栈的...原创 2019-05-31 10:07:19 · 429 阅读 · 0 评论 -
ArrayList和Vector的区别
ArrayList和Vector的区别ArrayList和Vector这两个集合本质上并没有什么太大的不停,他们都实现了List接口,而且底层都是基于Java数组来存储集合元素。在ArrayList集合类的源代码中也可以看到下面一行: transient Object[] elementData; // non-private to simplify nested class acce...原创 2019-05-31 09:49:20 · 3279 阅读 · 0 评论 -
Java基础知识总结
1. Java 面向对象编程三大特性: 封装 继承 多态封装继承多态2. Java对象的生命周期3. 抽象类和接口的区别抽象类与接口:常用关键字this、super、static和finalthis: 代表对象。就是所在函数所属对象的引用。super关键字 -static:关键字,是一个修饰符,用于修饰成员(成员变量和成员函数)。静态代码块:就是一个有静态关...原创 2019-05-27 09:43:57 · 513 阅读 · 1 评论 -
java并发编程(synchronized同步和Lock显示锁)
为什么需要并发程序? 线程是java语言中不可或缺的重要功能,它们能使复杂的异步代码变得更简单,从而极大地简化了复杂系统的开发。另外,在开发当数据量大的时候,往往需要使用多线程来提高程序的运行速度,尤其是如今处在一个大数据的时代。在并发编程中,就是需要解决实现线程安全问题,而这个问题的核心就在于要对状态访问操作进行管理,说简单点,就是要管理好对共享数据的访问。“共享”原创 2015-11-03 14:28:39 · 3723 阅读 · 0 评论 -
java中的synchronized(同步代码块和同步方法的区别)
问题的由来: 看到这样一个面试题://下列两个方法有什么区别public synchronized void method1(){}public void method2(){ synchronized (obj){}}synchronized用于解决同步问题,当有多条线程同时访问共享数据时,如果进行同步,就会发生错误,java提供的解决方案是:只要将操作共享数据的语句在某一时原创 2016-08-21 13:48:37 · 41532 阅读 · 26 评论 -
你真的理解程序中的变量吗
关于变量,很多人肯定觉得这有啥可说的,不就是int a=10这类的吗,这样的太简单了, 学习编程语言入门的时候就已经知道了,能没啥可讲的。 可是,你真的理解变量吗,你知道变量的本质是什么吗?变量的概念 既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称为常量。上述概念中说到了内存对象,要想真正理解变量就需要从内存的角度来理解。我们来看下面这张图: int a;定义了一个变量a,原创 2016-12-18 21:35:02 · 4834 阅读 · 1 评论 -
一篇文章彻底搞懂volatile关键字
volatile关键字和synchronized关键字一样,在Java多线程开发中,是一道必须要跨越的槛。之前有篇文章已经分析过synchronized关键字的原理,synchronized关键字的原理,这一次,我们来一步一步分析下volatile关键字的工作原理。本文篇幅稍微有点长,希望您能耐心看下去,并有所收获。volatile关键字的使用首先,我们从一个简单的程序来入手。public...原创 2019-09-28 17:39:40 · 2493 阅读 · 5 评论