随笔分类 - java基础
分享java基础知识,欢迎关注公众号 【知识追寻者】
摘要:线程池介绍 线程池是一个线程集合,当有任务到来时线程池会为任务分配一个线程用于执行任务,如果没有任务到来线程池里面的线程就处于空闲状态; 如果不使用线程池,当每个任务来时都会为其创建一个线程:代码如下 public static void main(String[] args) throws IOE
阅读全文
摘要:我们知道 synchronized 是java内部关键字,比较重量级的独占锁,好处就是使用方便,不需要手动释放锁;然而 Lock 则需要手动加锁,手动释放锁; 一ReentrantLock使用 ReentrantLock 意为可重入锁,方法预览如下 //创建一个 ReentrantLock 的实例
阅读全文
摘要:一对象回收算法 Java在GC时判断对象是否存活有两种方式;第一种是引用计数方式,第二种是可达性分析算法; 引用计数器算法: 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可用对象 额外占用空间,高效; 可达性分析算法
阅读全文
摘要:一 Timer 介绍 在开发中我们经常会遇到一些简单定时任务的需求,而不需要量级较重的定时任务就可以采取java定时器; java.util.Timer工具类中的Timer 是定时器,但定时任务写在java.util.TimerTask 中,由 Timer 执行 TimerTask ; Timer
阅读全文
摘要:一 Unsafe类常用API了解 今天的内容是Unsafe类,学习原子类的底层实现,并发编程中的基石之一,也是JDK源码中的重要成员。 Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JDK中有一个Unsafe类提供了硬件级别的原子操作,它们使用JIN的方式实
阅读全文
摘要:一 前言 本篇内容是关于 map 新特性的一些方法使用上的介绍,如果有不足之处欢迎补充!! 二 map新特性 关于以下函数式编程的函数的计算知识追寻者都使用 简单字符串代替了,参数无非就是Key,value; 2.1 forEach forEach迭代,相当于for循环 public static
阅读全文
摘要:前言 这是一篇看了能说的出来的jvm面试;个人能力有限,文中描述难免有错误,请指正; 一 JVM面试 1.1 简述Java内存模型(重点) jvm会将运行程序所管理的空间分为若干部分,每个部分都起到至关重要的部分;jdk1.8java运行时数据区如下: 程序计数器:当前线程执行字节码的行号指示器;字
阅读全文
摘要:前言 熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 一 java基础面试 1.1面向对象和面向
阅读全文
摘要:一 前言 本篇是继 "硬核ArrayList源码分析,答应我每天看一遍好么" 之后进行的第二篇源码分析;学完本篇你将对hashMap的结构和方法有个全面的了解;面试自己有多强,超人都不知道;比如HashMap的扩容机制,最大容量是多少,HashMap链表是如何转到红黑树,HashMap为什么线程不安
阅读全文
摘要:一 前言 知识追寻者目前的系列都是基于jdk1.8进行学习分析;本篇源码分析会进行每步分析,当所有方法分析完最后还会做个大总结;如果不爱看源码分析步骤,只要面试最终结论的读者可以看看文末的总结就行了; 知识追寻者(Inheriting the spirit of open source, Sprea
阅读全文
摘要:一 前言 这篇文章是针对初学者学习字符串使用的文章,在之前的基础系列文章中有使用过字符串,但是没有详细的讲解如何使用,这篇文章将会大方面将解String的API操作; 二 构造方法 String 的构造方法比较多,知识追寻者会挑选几个重点构造方法进行说明;String是不可变的字符串,每次使用Str
阅读全文
摘要: 一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心。本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性;将类成员使用不同的访问级别控制,在数据封装后,其他的类成员想要访问当前类成员,就必须要有足够的权限才能访问;这样做的目的就是我
阅读全文
摘要:一 前言 在 "《【java基础】 谈谈对面向对象理解 》" 一文中已经知道什么是对象,如何创建对象;这篇文章主讲对象的类型,简称类; 二 类介绍 2.1 类 每个对象都有一个类型,通常在所有的面向对象语言中对象的类型都是使用class表示;创建类的代码如下,这表示创建了一个车的类, 1. publ
阅读全文
摘要:一 前言 java编程规约是指在java代码编写过程中通俗的约定;通常我们是要遵守这些规范;这好比我们在生活中要遵守的道德准则,如果你做的事情超出了道德的底线,那就有可能会受到社会抨击;在java编程中也是类似的道理,如果你编写的代码不是很规范,尽管功能实现的功能强大,但其他java编程人员都看不懂
阅读全文
摘要:一 前言 Java的数据类型分为2种,分别是基本数据类型和引用数据类型;java的数据类型是强数据类型,意味着每声明一个变量,其必定有与之对应的数据类型;面试常问的java8大基本数据类型其实是基本数据类型;想要打好基础数据类型这关很重要; 二 基本数据类型 基本数据类型分为 整型4个 ,布尔型一个
阅读全文
摘要:一 前言 学习java运算符的基础是你对数学和计算机原理有一定的要求,如果文章中有些位运算不懂是生么意思,我建议大家去学习一下计算机原理,计算机组成类别的书籍,你也不用深入过多,只要了解计算机大概结构,变量存储,相关的位运算,反码之类;如果你懒得学习也行,java还是能继续学习下去,也就是散失了部分
阅读全文
摘要:一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了。基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者理解并且知识体系齐全觉得文章不错的可以关注一下作者。控制流程语句的概念其实作者感觉是从工程流程图里面
阅读全文
摘要:一 前言 本节内容将会提到方法重载,对象的初始化,对象的构造器,和this关键字的使用,以及会简要的概括一下java中对象回收机制。觉得文章不错的读者可以关注一下作者的博客和公众号(同博客名称) 二 方法重载 2.1 方法重载的定义 方法重载是指同名的方法具有不同的参数列表;不同的参数列表是指参数列
阅读全文
摘要:一 前言 本篇文章的核心知识如下,主要是帮助大家更好的理解面向对象编程; 二面向对象VS面向过程 2.1 面向过程编程 面向过程编程(Process Oriented Programming )其意指是面向过程编程,what?,过程是什么? 面向过程编程其实是围绕着代码的执行过程而实现;我们打个比喻
阅读全文