随笔分类 - Java Core
摘要:一,什么是线程池? 简单来说,管理线程的池子。帮我们重复管理线程,避免创建大量的线程增加开销。 二,为什么用线程池? 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果
阅读全文
摘要:一,浅谈ReentrantLock A, Lock接口及ReentrantLock简介 ReentrantLock实现的接口为Lock,Lock接口是锁操作方法的基本定义,提供了synchronized关键字所具备的全部功能。 与synchronized同步代码块的方式不同,Lock接口提供了编程式
阅读全文
摘要:一,进程,多线程基础预览 A, 进程: 1.进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元. 2.进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,我们可以理解为手机上的一个app. 3.每个进程之间是独立的,每个进程均运行在其专用且受保
阅读全文
摘要:1、为什么用HashMap? HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射 HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改 HashMap是非synchronized,所以HashMap很快 HashMap
阅读全文
摘要:之前一直不是很理解为什么要重写HashCode和Equals方法,才只能作为键值存储在HashMap中。通过下文,可以一探究竟。 首先,如果我们直接用以下的Person类作为键,存入HashMap中,会发生发生什么情况呢? public class Person { private String i
阅读全文
摘要:1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 c. 缺乏更
阅读全文
摘要:阅读Java源码的前提条件: 1、技术基础 在阅读源码之前,我们要有一定程度的技术基础的支持。 假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。 比如设计模式,许多J
阅读全文
摘要:1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看
阅读全文
摘要:在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 2. 尽量
阅读全文
摘要:今天看《码出高效》第四章JVM内容时,读到JVM提供了直接控制操作栈的指令时,突然联想到数据结构中对于栈结构的出入栈的操作。遂联想二者之间莫非有什么关联,于是就查阅相关博文,记录成文。 数据结构中的堆栈 栈:是一种连续存储的数据结构,特点是存储的数据先进后出。 堆:是一棵完全二叉树结构,特点是父节点
阅读全文
摘要:最近愈发对JVM底层的运行 原理产生了兴趣,遂查阅相关资料以备忘。 内存分配策略 根据编译原理的观点,程序运行时的内存分配,有三种策略,分别为静态的、堆式的、栈式的。 静态存储分配指的是在编译时就能确定每个数据目标在运行时的存储空间需求,因而在编译时就给它们分配了固定的内存空间。这种分配方式要求程序
阅读全文
摘要:当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种
阅读全文
摘要:1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
阅读全文
摘要:从个人技术积累的角度,来看看一名合格的Java工程师在面试时所需要的知识技能。 1、基本语法 这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作 用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态
阅读全文

浙公网安备 33010602011771号